On Thursday, June 20, 2019 11:36:50 AM CEST Hauke Mehrtens wrote: > Hi, > > The patch "crypto: crypto4xx - properly set IV after de- and encrypt" > causes a compile error on kernel 4.4. 3.18 as well. > > When I revert this commit it compiles for me again: > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e9a60ab1609a7d975922adad1bf9c46ac6954584 > > I do not have hardware to test if it is really working. I have a few APM821XX. But please note drivers without commit b66c685a482117d4e9ee987d252ca673689a5302 Author: Christian Lamparter <chunkeey@xxxxxxxxx> Date: Fri Dec 22 21:18:36 2017 +0100 crypto: crypto4xx - support Revision B parts don't work on those and I do have my doubts that 460EX series (and older) would either. I also don't believe that the inital driver as it was submitted would have worked. >From what I've seen in their SDK, they patched the testmgr at the time to either disable tests or provided their own... so, might as well revert these patches for 4.4 and 3.18. Because... > drivers/crypto/amcc/crypto4xx_core.c: In function > 'crypto4xx_ablkcipher_done': > drivers/crypto/amcc/crypto4xx_core.c:649:21: warning: dereferencing > 'void *' pointer > if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) { This would probably need 9e0a0b3a1 ("crypto: crypto4xx - pointer arithmetic overhaul") which is a big patch. > ^ > drivers/crypto/amcc/crypto4xx_core.c:649:21: error: request for member > 'sa_command_0' in something not a structure or union > drivers/crypto/amcc/crypto4xx_core.c:650:38: error: implicit declaration > of function 'crypto_skcipher_reqtfm' [-Werror=implicit-function-declaration] > struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req); > ^ This would require adding #include <crypto/skcipher.h> to crypto4xx_core.c The patch that added it upstream was ce05ffe10457 ("crypto: crypto4xx - convert to skcipher") But this is more than just a one-liner. > drivers/crypto/amcc/crypto4xx_core.c:650:61: error: 'req' undeclared > (first use in this function) > struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req); > ^ > drivers/crypto/amcc/crypto4xx_core.c:650:61: note: each undeclared > identifier is reported only once for each function it appears in see "#include <crypto/skcipher.h>" > drivers/crypto/amcc/crypto4xx_core.c:652:3: error: implicit declaration > of function 'crypto4xx_memcpy_from_le32' > [-Werror=implicit-function-declaration] > crypto4xx_memcpy_from_le32((u32 *)req->iv, > ^ crypto4xx_memcpy_from_le32 is from 4865b122d4af ("crypto: crypto4xx - use the correct LE32 format for IV and key defs") I think crypto4xx_memcpy_le() could work in this place. But again I do have my doubts that the device works without said patch. > drivers/crypto/amcc/crypto4xx_core.c:653:19: warning: dereferencing > 'void *' pointer > pd_uinfo->sr_va->save_iv, > ^ > drivers/crypto/amcc/crypto4xx_core.c:653:19: error: request for member > 'save_iv' in something not a structure or union See "crypto: crypto4xx - pointer arithmetic overhaul". > drivers/crypto/amcc/crypto4xx_core.c:654:4: error: implicit declaration > of function 'crypto_skcipher_ivsize' [-Werror=implicit-function-declaration] > crypto_skcipher_ivsize(skcipher)); > ^ see "#include <crypto/skcipher.h>" (Yeaah, there seems to be a limit of what automatic cherry-picking of patches can do :( )