3.11 boot failure caused by commit crypto
Subsystems (6)
When i boot my system with the latest 3.11-rc2 kernel, something occur as follow:
Waiting for device /dev/disk/by-id/... to appear: ............ Could not find //dev/disk/by-id/... Want me to fall back to /dev/disk/by-id/..... ?
I found out the patch commit id: 2d31e518a42828df7877bca23a958627d60408bc (crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework) cause this problem by bisect.
I revert this patch and this problem go away, the boot become successful.
Herbert Xu
maintainerQuoted 9 lines · Zhao Hongjiang
When i boot my system with the latest 3.11-rc2 kernel, something occur as follow:
Waiting for device
/dev/disk/by-id/... to appear: ............ Could not find //dev/disk/by-id/... Want me to fall back to/dev/disk/by-id/..... ?I found out the patch commit id:
2d31e518a42828df7877bca23a958627d60408bc(crypto: crct10dif - Wrapcrc_t10diffunction all to use crypto transform framework) cause this problem by bisect.I revert this patch and this problem go away, the boot become successful.
OK, I will revert this until we have a proper solution in place that does not break boot on systems like yours.
commit e70308ec0e4bff344fcfdf160de40e1150552c5f
Author: Herbert Xu <[email protected]> Date: Wed Jul 24 17:04:16 2013 +1000
Revert "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
This reverts commits
67822649d7305caf3dd50ed46c27b99c94eff996
39761214eefc6b070f29402aa1165f24d789b3f7
0b95a7f85718adcbba36407ef88bba0a7379ed03
31d939625a9a20b1badd2d4e6bf6fd39fa523405
2d31e518a42828df7877bca23a958627d60408bc
Unfortunately this change broke boot on some systems that used an initrd which does not include the newly created crct10dif modules. As these modules are required by sd_mod under certain configurations this is a serious problem.
arch/x86/crypto/Makefile +0 -2
@@ -27,7 +27,6 @@ obj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o obj-$(CONFIG_CRYPTO_CRC32_PCLMUL) += crc32-pclmul.o obj-$(CONFIG_CRYPTO_SHA256_SSSE3) += sha256-ssse3.o obj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o -obj-$(CONFIG_CRYPTO_CRCT10DIF_PCLMUL) += crct10dif-pclmul.o # These modules require assembler to support AVX. ifeq ($(avx_supported),yes)
@@ -82,4 +81,3 @@ crc32c-intel-$(CONFIG_64BIT) += crc32c-pcl-intel-asm_64.o crc32-pclmul-y := crc32-pclmul_asm.o crc32-pclmul_glue.o sha256-ssse3-y := sha256-ssse3-asm.o sha256-avx-asm.o sha256-avx2-asm.o sha256_ssse3_glue.o sha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o -crct10dif-pclmul-y := crct10dif-pcl-asm_64.o crct10dif-pclmul_glue.o
arch/x86/crypto/crct10dif-pcl-asm_64.S deleted +0 -643
643 lines not on this page · raw message
arch/x86/crypto/crct10dif-pclmul_glue.c deleted +0 -151
151 lines not on this page · raw message
crypto/Kconfig +0 -19
@@ -376,25 +376,6 @@ config CRYPTO_CRC32_PCLMUL which will enable any routine to use the CRC-32-IEEE 802.3 checksum and gain better performance as compared with the table implementation. -config CRYPTO_CRCT10DIF - tristate "CRCT10DIF algorithm" - select CRYPTO_HASH - help - CRC T10 Data Integrity Field computation is being cast as - a crypto transform. This allows for faster crc t10 diff - transforms to be used if they are available. - -config CRYPTO_CRCT10DIF_PCLMUL - tristate "CRCT10DIF PCLMULQDQ hardware acceleration" - depends on X86 && 64BIT && CRC_T10DIF - select CRYPTO_HASH - help - For x86_64 processors with SSE4.2 and PCLMULQDQ supported, - CRC T10 DIF PCLMULQDQ computation can be hardware - accelerated PCLMULQDQ instruction. This option will create - 'crct10dif-plcmul' module, which is faster when computing the - crct10dif checksum as compared with the generic table implementation. - config CRYPTO_GHASH tristate "GHASH digest algorithm" select CRYPTO_GF128MUL
crypto/Makefile +0 -1
@@ -83,7 +83,6 @@ obj-$(CONFIG_CRYPTO_ZLIB) += zlib.o obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o obj-$(CONFIG_CRYPTO_CRC32) += crc32.o -obj-$(CONFIG_CRYPTO_CRCT10DIF) += crct10dif.o obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o authencesn.o obj-$(CONFIG_CRYPTO_LZO) += lzo.o obj-$(CONFIG_CRYPTO_842) += 842.o
crypto/crct10dif.c deleted +0 -178
178 lines not on this page · raw message
crypto/tcrypt.c +0 -8
@@ -1174,10 +1174,6 @@ static int do_test(int m) ret +=tcrypt_test ("ghash" );break ; -case 47 : - ret +=tcrypt_test ("crct10dif" ); -break ; -case 100 : ret +=tcrypt_test ("hmac(md5)" );break ;
@@ -1502,10 +1498,6 @@ static int do_test(int m)test_hash_speed ("crc32c" , sec, generic_hash_speed_template);if (mode >300 && mode <400 )break ; -case 320 : -test_hash_speed ("crct10dif" , sec, generic_hash_speed_template); -if (mode >300 && mode <400 )break ; -case 399 :break ;
crypto/testmgr.c +0 -10
@@ -2046,16 +2046,6 @@ static const struct alg_test_desc alg_test_descs[] = { } } }, { - .alg = "crct10dif", - .test = alg_test_hash, - .fips_allowed = 1, - .suite = { - .hash = { - .vecs = crct10dif_tv_template, - .count = CRCT10DIF_TEST_VECTORS - } - } - }, { .alg = "cryptd(__driver-cbc-aes-aesni)", .test = alg_test_null, .fips_allowed = 1,
crypto/testmgr.h +0 -33
@@ -450,39 +450,6 @@ static struct hash_testvec rmd320_tv_template[] = { } }; -#define CRCT10DIF_TEST_VECTORS 3 -static struct hash_testvec crct10dif_tv_template[] = { - { - .plaintext ="abc" , - .psize =3 , -#ifdef __LITTLE_ENDIAN - .digest ="\x3b\x44" , -#else - .digest ="\x44\x3b" , -#endif - }, { - .plaintext ="1234567890123456789012345678901234567890" -"123456789012345678901234567890123456789" , - .psize =79 , -#ifdef __LITTLE_ENDIAN - .digest ="\x70\x4b" , -#else - .digest ="\x4b\x70" , -#endif - }, { - .plaintext = -"abcddddddddddddddddddddddddddddddddddddddddddddddddddddd" , - .psize =56 , -#ifdef __LITTLE_ENDIAN - .digest ="\xe3\x9c" , -#else - .digest ="\x9c\xe3" , -#endif - .np =2 , - .tap = {28 ,28 } - } -}; -/* * SHA1 test vectors from from FIPS PUB 180-1 * Long vector from CAVS 5.0
include/linux/crc-t10dif.h +0 -4
@@ -3,10 +3,6 @@#include <linux/types.h> -#define CRC_T10DIF_DIGEST_SIZE 2 -#define CRC_T10DIF_BLOCK_SIZE 1 - -__u16 crc_t10dif_generic (__u16 crc,const unsigned char *buffer,size_t len);__u16 crc_t10dif (unsigned char const *,size_t );#endif
lib/Kconfig +0 -2
@@ -63,8 +63,6 @@ config CRC16 config CRC_T10DIF tristate "CRC calculation for the T10 Data Integrity Field" - select CRYPTO - select CRYPTO_CRCT10DIF help This option is only needed if a module that's not in the kernel tree needs to calculate CRC checks for use with the
lib/crc-t10dif.c +43 -30
87 lines not on this page · raw message
Thanks,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Quoted 27 lines · Herbert Xu
Quoted 9 lines · Zhao Hongjiang
When i boot my system with the latest 3.11-rc2 kernel, something occur as follow:
Waiting for device
/dev/disk/by-id/... to appear: ............ Could not find //dev/disk/by-id/... Want me to fall back to/dev/disk/by-id/..... ?I found out the patch commit id:
2d31e518a42828df7877bca23a958627d60408bc(crypto: crct10dif - Wrapcrc_t10diffunction all to use crypto transform framework) cause this problem by bisect.I revert this patch and this problem go away, the boot become successful.
OK, I will revert this until we have a proper solution in place that does not break boot on systems like yours.
commit
e70308ec0e4bff344fcfdf160de40e1150552c5fAuthor: Herbert Xu <[email protected]> Date: Wed Jul 24 17:04:16 2013 +1000Revert "crypto: crct10dif - Wrap
crc_t10diffunction all to use crypto transform framework"This reverts commits
67822649d7305caf3dd50ed46c27b99c94eff996
39761214eefc6b070f29402aa1165f24d789b3f7
0b95a7f85718adcbba36407ef88bba0a7379ed03
31d939625a9a20b1badd2d4e6bf6fd39fa523405
2d31e518a42828df7877bca23a958627d60408bc
Quoted 4 lines
Unfortunately this change broke boot on some systems that used an initrd which does not include the newly created crct10dif modules. As these modules are required by
sd_modunder certain configurations this is a serious problem.
Herbert, what are your thoughts on a proper fix to initrd issue for crct10dif modules not getting included? Or can we
let the config option for the pclmul version to be either compiled out or compiled in for now for people who do want to use this?
Thanks.
Tim
Herbert Xu
maintainerQuoted 5 lines · Tim Chen
Herbert, what are your thoughts on a proper fix to initrd issue for crct10dif modules not getting included? Or can we
let the config option for the pclmul version to be either compiled out or compiled in for now for people who do want to use this?
With the MODULES_SOFTDEP patch that Rusty recently merged, all we need to do is to use that in lib/crct10dif module. Once that patch hits mainline I'll take care of the rest.
Cheers,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Quoted 10 lines · Herbert Xu
Quoted 5 lines · Tim Chen
Herbert, what are your thoughts on a proper fix to initrd issue for crct10dif modules not getting included? Or can we
let the config option for the pclmul version to be either compiled out or compiled in for now for people who do want to use this?With the
MODULES_SOFTDEPpatch that Rusty recently merged, all we need to do is to use that in lib/crct10dif module. Once that patch hits mainline I'll take care of the rest.
Great. Thanks.
Tim
Quoted 8 lines · Tim Chen
Quoted 7 lines · Herbert Xu
Quoted 5 lines · Tim Chen
Herbert, what are your thoughts on a proper fix to initrd issue for crct10dif modules not getting included? Or can we
let the config option for the pclmul version to be either compiled out or compiled in for now for people who do want to use this?
Quoted 7 lines
Quoted 3 lines
With the
MODULES_SOFTDEPpatch that Rusty recently merged, all we need to do is to use that in lib/crct10dif module. Once that patch hits mainline I'll take care of the rest.Great. Thanks.
Tim
Does this imply that you want me to push that to Linus now, and/or CC stable? Was planning for *next* merge window...
Cheers,
Rusty.
Herbert Xu
maintainerQuoted 3 lines · Rusty Russell
Does this imply that you want me to push that to Linus now, and/or CC stable? Was planning for *next* merge window...
Next merge window is fine. However, it would be good to restore the new driver for that as well. So I see two ways to do this, either we push the crct10dif driver patches through your tree, on top of the MODULES_SOFTDEP patch, or I pull the MODULES_SOFTDEP patch into the crypto tree.
What would you like to do?
Cheers,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Rusty Russell
Acked-by Herbert XuQuoted 5 lines · Herbert Xu
Quoted 3 lines · Rusty Russell
Does this imply that you want me to push that to Linus now, and/or CC stable? Was planning for *next* merge window...
Quoted 7 lines
Next merge window is fine. However, it would be good to restore the new driver for that as well. So I see two ways to do this, either we push the crct10dif driver patches through your tree, on top of the
MODULES_SOFTDEPpatch, or I pull theMODULES_SOFTDEPpatch into the crypto tree.What would you like to do?
You're welcome to it: it's v. unlikely to conflict with anything else.
Here it is, fresh from my pending-rebases branch, with my Signed-off-by.
Cheers,
Rusty.
From: Andreas Robinson <[email protected]>
Subject: modules: add support for soft module dependencies
Additional and optional dependencies not found while building the kernel and modules, can now be declared explicitly.
--- include/linux/module.h | 5 +++++ 1 file changed, 5 insertions(+)
include/linux/module.h +5 -0
@@ -97,6 +97,11 @@ extern const struct gtype##_id __mod_##gtype##_table \/* For userspace: you can also call me... */ #define MODULE_ALIAS (_alias) MODULE_INFO(alias, _alias) +/* Soft module dependencies. See man modprobe.d for details. +* Example: MODULE_SOFTDEP("pre: module-foo module-bar post: module-baz") +*/ +#define MODULE_SOFTDEP (_softdep) MODULE_INFO(softdep, _softdep) +/* * The following license idents are currently accepted as indicating free * software modules
Herbert Xu
maintainerQuoted 4 lines · Rusty Russell
You're welcome to it: it's v. unlikely to conflict with anything else.
Here it is, fresh from my pending-rebases branch, with my Signed-off-by.
Great. I've added it to the cryptodev tree. Thanks Rusty!
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt