aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
Commit message (Expand)AuthorAge
* s390: delete any traces of token ring supportPaul Gortmaker2012-05-15
* qeth: Use blkt defaults for OSA Express 4Stefan Raspl2012-04-24
* qeth: allow change of blkt default valuesUrsula Braun2012-04-24
* [S390] s390/char/vmur.c: fix memory leakDennis Chen2012-04-11
* [S390] drivers/s390/block/dasd_eckd.c: add missing dasd_sfree_requestJulia Lawall2012-04-11
* Merge tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub...Linus Torvalds2012-03-28
|\
| * Remove all #inclusions of asm/system.hDavid Howells2012-03-28
| * Disintegrate asm/system.h for S390David Howells2012-03-28
* | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s39...Linus Torvalds2012-03-27
|\ \
| * | [S390] qdio: log all adapter characteristicsJan Glauber2012-03-23
| |/
* / s390/char: use for_each_clear_bit()Akinobu Mita2012-03-23
|/
* Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s39...Linus Torvalds2012-03-22
|\
| * [S390] dasd: prevent validate server for offline devicesStefan Haberland2012-03-11
| * [S390] Remove monolithic build option for zcrypt driver.Holger Dengler2012-03-11
| * [S390] kernel: Add z/VM LGR detectionMichael Holzheu2012-03-11
| * [S390] irq: external interrupt code passingHeiko Carstens2012-03-11
| * [S390] zfcpdump: Implement async sdias event processingMichael Holzheu2012-03-11
| * [S390] rework idle codeMartin Schwidefsky2012-03-11
| * [S390] rework smp codeMartin Schwidefsky2012-03-11
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-nextLinus Torvalds2012-03-21
|\ \
| * | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2012-03-09
| |\|
| * | lcs: Return zero from ccwgroup devs set_offline functionKlaus-Dieter Wacker2012-03-08
| * | qeth: meaningful return code for set_mac_addressUrsula Braun2012-03-08
| * | ctcm: use correct idal word list for ctcmpcBelinda Thompson2012-03-08
| * | ctcm: make ctcmpc debugging compilableUrsula Braun2012-03-08
| * | qeth: synchronize discipline module loadingFrank Blaschka2012-03-08
| * | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2012-03-05
| |\ \
| * \ \ Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2012-02-26
| |\ \ \
| * | | | qeth: add wake_up on write channelUrsula Braun2012-02-08
| * | | | qeth: add query OSA address table supportFrank Blaschka2012-02-08
| * | | | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2012-02-04
| |\ \ \ \
| * | | | | qeth: Move away from using neighbour entries in qeth_l3_fill_header()David Miller2012-02-02
* | | | | | Merge tag 'tty-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/ttyLinus Torvalds2012-03-20
|\ \ \ \ \ \
| * | | | | | TTY: remove unneeded tty->index checksJiri Slaby2012-03-08
| * | | | | | TTY: remove re-assignments to tty_driver membersJiri Slaby2012-03-08
| | |/ / / / | |/| | | |
* | | | | | Merge tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/...Linus Torvalds2012-03-20
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | |
| * | | | | Merge 3.3-rc6 into driver-core-nextGreg Kroah-Hartman2012-03-09
| |\ \ \ \ \ | | | |_|_|/ | | |/| | |
| * | | | | Merge 3.3-rc2 into the driver-core-next branch.Greg Kroah-Hartman2012-02-02
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | cio: remove {get,put}_driverSebastian Ott2012-01-24
| * | | | | Driver core: driver_find() drops reference before returningAlan Stern2012-01-24
| | |_|/ / | |/| | |
* | | | | [S390] qdio: fix handler function arguments for zfcp data routerSteffen Maier2012-03-02
| |_|/ / |/| | |
* | | | compat: fix compile breakage on s390Heiko Carstens2012-02-27
| |_|/ |/| |
* | | [S390] 3215 deadlock with tty_wakeupMartin Schwidefsky2012-02-17
| |/ |/|
* | [S390] dasd: revalidate server for new pathgroupStefan Haberland2012-01-18
* | [S390] dasd: revert LCU optimizationStefan Haberland2012-01-18
|/
* module_param: make bool parameters really bool (drivers & misc)Rusty Russell2012-01-12
* module_param: avoid bool abuse, add bint for special cases.Rusty Russell2012-01-12
* virtio: harsher barriers for rpmsg.Rusty Russell2012-01-12
* Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds2012-01-09
|\
| * s390: tape_class.h: remove kobj_map.h inclusionGreg Kroah-Hartman2011-12-13
; ROUND(cc, dd, aa, bb, F3, K3, in[8], 13); ROUND(bb, cc, dd, aa, F3, K3, in[1], 15); ROUND(aa, bb, cc, dd, F3, K3, in[2], 14); ROUND(dd, aa, bb, cc, F3, K3, in[7], 8); ROUND(cc, dd, aa, bb, F3, K3, in[0], 13); ROUND(bb, cc, dd, aa, F3, K3, in[6], 6); ROUND(aa, bb, cc, dd, F3, K3, in[13], 5); ROUND(dd, aa, bb, cc, F3, K3, in[11], 12); ROUND(cc, dd, aa, bb, F3, K3, in[5], 7); ROUND(bb, cc, dd, aa, F3, K3, in[12], 5); /* round 4: left lane */ ROUND(aa, bb, cc, dd, F4, K4, in[1], 11); ROUND(dd, aa, bb, cc, F4, K4, in[9], 12); ROUND(cc, dd, aa, bb, F4, K4, in[11], 14); ROUND(bb, cc, dd, aa, F4, K4, in[10], 15); ROUND(aa, bb, cc, dd, F4, K4, in[0], 14); ROUND(dd, aa, bb, cc, F4, K4, in[8], 15); ROUND(cc, dd, aa, bb, F4, K4, in[12], 9); ROUND(bb, cc, dd, aa, F4, K4, in[4], 8); ROUND(aa, bb, cc, dd, F4, K4, in[13], 9); ROUND(dd, aa, bb, cc, F4, K4, in[3], 14); ROUND(cc, dd, aa, bb, F4, K4, in[7], 5); ROUND(bb, cc, dd, aa, F4, K4, in[15], 6); ROUND(aa, bb, cc, dd, F4, K4, in[14], 8); ROUND(dd, aa, bb, cc, F4, K4, in[5], 6); ROUND(cc, dd, aa, bb, F4, K4, in[6], 5); ROUND(bb, cc, dd, aa, F4, K4, in[2], 12); /* round 1: right lane */ ROUND(aaa, bbb, ccc, ddd, F4, KK1, in[5], 8); ROUND(ddd, aaa, bbb, ccc, F4, KK1, in[14], 9); ROUND(ccc, ddd, aaa, bbb, F4, KK1, in[7], 9); ROUND(bbb, ccc, ddd, aaa, F4, KK1, in[0], 11); ROUND(aaa, bbb, ccc, ddd, F4, KK1, in[9], 13); ROUND(ddd, aaa, bbb, ccc, F4, KK1, in[2], 15); ROUND(ccc, ddd, aaa, bbb, F4, KK1, in[11], 15); ROUND(bbb, ccc, ddd, aaa, F4, KK1, in[4], 5); ROUND(aaa, bbb, ccc, ddd, F4, KK1, in[13], 7); ROUND(ddd, aaa, bbb, ccc, F4, KK1, in[6], 7); ROUND(ccc, ddd, aaa, bbb, F4, KK1, in[15], 8); ROUND(bbb, ccc, ddd, aaa, F4, KK1, in[8], 11); ROUND(aaa, bbb, ccc, ddd, F4, KK1, in[1], 14); ROUND(ddd, aaa, bbb, ccc, F4, KK1, in[10], 14); ROUND(ccc, ddd, aaa, bbb, F4, KK1, in[3], 12); ROUND(bbb, ccc, ddd, aaa, F4, KK1, in[12], 6); /* round 2: right lane */ ROUND(aaa, bbb, ccc, ddd, F3, KK2, in[6], 9); ROUND(ddd, aaa, bbb, ccc, F3, KK2, in[11], 13); ROUND(ccc, ddd, aaa, bbb, F3, KK2, in[3], 15); ROUND(bbb, ccc, ddd, aaa, F3, KK2, in[7], 7); ROUND(aaa, bbb, ccc, ddd, F3, KK2, in[0], 12); ROUND(ddd, aaa, bbb, ccc, F3, KK2, in[13], 8); ROUND(ccc, ddd, aaa, bbb, F3, KK2, in[5], 9); ROUND(bbb, ccc, ddd, aaa, F3, KK2, in[10], 11); ROUND(aaa, bbb, ccc, ddd, F3, KK2, in[14], 7); ROUND(ddd, aaa, bbb, ccc, F3, KK2, in[15], 7); ROUND(ccc, ddd, aaa, bbb, F3, KK2, in[8], 12); ROUND(bbb, ccc, ddd, aaa, F3, KK2, in[12], 7); ROUND(aaa, bbb, ccc, ddd, F3, KK2, in[4], 6); ROUND(ddd, aaa, bbb, ccc, F3, KK2, in[9], 15); ROUND(ccc, ddd, aaa, bbb, F3, KK2, in[1], 13); ROUND(bbb, ccc, ddd, aaa, F3, KK2, in[2], 11); /* round 3: right lane */ ROUND(aaa, bbb, ccc, ddd, F2, KK3, in[15], 9); ROUND(ddd, aaa, bbb, ccc, F2, KK3, in[5], 7); ROUND(ccc, ddd, aaa, bbb, F2, KK3, in[1], 15); ROUND(bbb, ccc, ddd, aaa, F2, KK3, in[3], 11); ROUND(aaa, bbb, ccc, ddd, F2, KK3, in[7], 8); ROUND(ddd, aaa, bbb, ccc, F2, KK3, in[14], 6); ROUND(ccc, ddd, aaa, bbb, F2, KK3, in[6], 6); ROUND(bbb, ccc, ddd, aaa, F2, KK3, in[9], 14); ROUND(aaa, bbb, ccc, ddd, F2, KK3, in[11], 12); ROUND(ddd, aaa, bbb, ccc, F2, KK3, in[8], 13); ROUND(ccc, ddd, aaa, bbb, F2, KK3, in[12], 5); ROUND(bbb, ccc, ddd, aaa, F2, KK3, in[2], 14); ROUND(aaa, bbb, ccc, ddd, F2, KK3, in[10], 13); ROUND(ddd, aaa, bbb, ccc, F2, KK3, in[0], 13); ROUND(ccc, ddd, aaa, bbb, F2, KK3, in[4], 7); ROUND(bbb, ccc, ddd, aaa, F2, KK3, in[13], 5); /* round 4: right lane */ ROUND(aaa, bbb, ccc, ddd, F1, KK4, in[8], 15); ROUND(ddd, aaa, bbb, ccc, F1, KK4, in[6], 5); ROUND(ccc, ddd, aaa, bbb, F1, KK4, in[4], 8); ROUND(bbb, ccc, ddd, aaa, F1, KK4, in[1], 11); ROUND(aaa, bbb, ccc, ddd, F1, KK4, in[3], 14); ROUND(ddd, aaa, bbb, ccc, F1, KK4, in[11], 14); ROUND(ccc, ddd, aaa, bbb, F1, KK4, in[15], 6); ROUND(bbb, ccc, ddd, aaa, F1, KK4, in[0], 14); ROUND(aaa, bbb, ccc, ddd, F1, KK4, in[5], 6); ROUND(ddd, aaa, bbb, ccc, F1, KK4, in[12], 9); ROUND(ccc, ddd, aaa, bbb, F1, KK4, in[2], 12); ROUND(bbb, ccc, ddd, aaa, F1, KK4, in[13], 9); ROUND(aaa, bbb, ccc, ddd, F1, KK4, in[9], 12); ROUND(ddd, aaa, bbb, ccc, F1, KK4, in[7], 5); ROUND(ccc, ddd, aaa, bbb, F1, KK4, in[10], 15); ROUND(bbb, ccc, ddd, aaa, F1, KK4, in[14], 8); /* combine results */ ddd += cc + state[1]; /* final result for state[0] */ state[1] = state[2] + dd + aaa; state[2] = state[3] + aa + bbb; state[3] = state[0] + bb + ccc; state[0] = ddd; return; } static int rmd128_init(struct shash_desc *desc) { struct rmd128_ctx *rctx = shash_desc_ctx(desc); rctx->byte_count = 0; rctx->state[0] = RMD_H0; rctx->state[1] = RMD_H1; rctx->state[2] = RMD_H2; rctx->state[3] = RMD_H3; memset(rctx->buffer, 0, sizeof(rctx->buffer)); return 0; } static int rmd128_update(struct shash_desc *desc, const u8 *data, unsigned int len) { struct rmd128_ctx *rctx = shash_desc_ctx(desc); const u32 avail = sizeof(rctx->buffer) - (rctx->byte_count & 0x3f); rctx->byte_count += len; /* Enough space in buffer? If so copy and we're done */ if (avail > len) { memcpy((char *)rctx->buffer + (sizeof(rctx->buffer) - avail), data, len); goto out; } memcpy((char *)rctx->buffer + (sizeof(rctx->buffer) - avail), data, avail); rmd128_transform(rctx->state, rctx->buffer); data += avail; len -= avail; while (len >= sizeof(rctx->buffer)) { memcpy(rctx->buffer, data, sizeof(rctx->buffer)); rmd128_transform(rctx->state, rctx->buffer); data += sizeof(rctx->buffer); len -= sizeof(rctx->buffer); } memcpy(rctx->buffer, data, len); out: return 0; } /* Add padding and return the message digest. */ static int rmd128_final(struct shash_desc *desc, u8 *out) { struct rmd128_ctx *rctx = shash_desc_ctx(desc); u32 i, index, padlen; __le64 bits; __le32 *dst = (__le32 *)out; static const u8 padding[64] = { 0x80, }; bits = cpu_to_le64(rctx->byte_count << 3); /* Pad out to 56 mod 64 */ index = rctx->byte_count & 0x3f; padlen = (index < 56) ? (56 - index) : ((64+56) - index); rmd128_update(desc, padding, padlen); /* Append length */ rmd128_update(desc, (const u8 *)&bits, sizeof(bits)); /* Store state in digest */ for (i = 0; i < 4; i++) dst[i] = cpu_to_le32p(&rctx->state[i]); /* Wipe context */ memset(rctx, 0, sizeof(*rctx)); return 0; } static struct shash_alg alg = { .digestsize = RMD128_DIGEST_SIZE, .init = rmd128_init, .update = rmd128_update, .final = rmd128_final, .descsize = sizeof(struct rmd128_ctx), .base = { .cra_name = "rmd128", .cra_flags = CRYPTO_ALG_TYPE_SHASH, .cra_blocksize = RMD128_BLOCK_SIZE, .cra_module = THIS_MODULE, } }; static int __init rmd128_mod_init(void) { return crypto_register_shash(&alg); } static void __exit rmd128_mod_fini(void) { crypto_unregister_shash(&alg); } module_init(rmd128_mod_init); module_exit(rmd128_mod_fini); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>"); MODULE_DESCRIPTION("RIPEMD-128 Message Digest");