Re: [PATCHv4 6/8] crypto: add rocksoft 64b crc guard tag framework

From: Vasily Gorbik
Date: Tue Mar 08 2022 - 15:22:04 EST


On Thu, Mar 03, 2022 at 12:13:10PM -0800, Keith Busch wrote:
> Hardware specific features may be able to calculate a crc64, so provide
> a framework for drivers to register their implementation. If nothing is
> registered, fallback to the generic table lookup implementation. The
> implementation is modeled after the crct10dif equivalent.

Hi Keith,

this is failing on big-endian systems. I get the following on s390:

[ 0.551573] crc32: CRC_LE_BITS = 64, CRC_BE BITS = 64
[ 0.551575] crc32: self tests passed, processed 225944 bytes in 118879 nsec
[ 0.551697] crc32c: CRC_LE_BITS = 64
[ 0.551698] crc32c: self tests passed, processed 112972 bytes in 58963 nsec
[ 0.577325] crc32_combine: 8373 self tests passed
[ 0.603321] crc32c_combine: 8373 self tests passed
[ 0.603502] alg: shash: crc64-rocksoft-generic test failed (wrong result) on test vector 0, cfg="init+update+final aligned buffer"
[ 0.603506] ------------[ cut here ]------------
[ 0.603507] alg: self-tests for crc64-rocksoft-generic (crc64-rocksoft) failed (rc=-22)
[ 0.603542] WARNING: CPU: 0 PID: 43 at crypto/testmgr.c:5726 alg_test+0x3c2/0x638
[ 0.603554] Modules linked in:
[ 0.603557] CPU: 0 PID: 43 Comm: cryptomgr_test Not tainted 5.17.0-rc7-next-20220308-118584-gcb153b68ff91 #168
[ 0.603560] Hardware name: IBM 8561 T01 701 (KVM/Linux)
[ 0.603562] Krnl PSW : 0704e00180000000 00000000007d2286 (alg_test+0x3c6/0x638)
[ 0.603565] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3
[ 0.603568] Krnl GPRS: 00000000ffffffea 000000000177c350 000000000000004b 00000000ffffefff
[ 0.603570] 0000000001663ed0 0000038000000001 0000000001ed1720 0000000081a4e480
[ 0.603572] 0000000081a4e400 000003800000003e ffffffffffffffea 000000000000003e
[ 0.603611] 0000000081a5a100 000000000000003e 00000000007d2282 00000380001b7cf0
[ 0.603618] Krnl Code: 00000000007d2276: c02000495b9e larl %r2,00000000010fd9b2
[ 0.603618] 00000000007d227c: c0e50026dbc6 brasl %r14,0000000000cada08
[ 0.603618] #00000000007d2282: af000000 mc 0,0
[ 0.603618] >00000000007d2286: b904002a lgr %r2,%r10
[ 0.603618] 00000000007d228a: eb6ff1380004 lmg %r6,%r15,312(%r15)
[ 0.603618] 00000000007d2290: 07fe bcr 15,%r14
[ 0.603618] 00000000007d2292: 47000700 bc 0,1792
[ 0.603618] 00000000007d2296: 1842 lr %r4,%r2
[ 0.603632] Call Trace:
[ 0.603634] [<00000000007d2286>] alg_test+0x3c6/0x638
[ 0.603636] ([<00000000007d2282>] alg_test+0x3c2/0x638)
[ 0.603638] [<00000000007cfff8>] cryptomgr_test+0x68/0x70
[ 0.603641] [<000000000017b228>] kthread+0x108/0x110
[ 0.603646] [<0000000000103374>] __ret_from_fork+0x3c/0x58
[ 0.603650] [<0000000000ccc3ba>] ret_from_fork+0xa/0x40
[ 0.603658] Last Breaking-Event-Address:
[ 0.603659] [<0000000000cada68>] __warn_printk+0x60/0x68
[ 0.603663] ---[ end trace 0000000000000000 ]---