Re: [PATCH] scsi: libiscsi: select CRYPTO_HASH for ISCSI_TCP

From: Vegard Nossum
Date: Fri Oct 15 2021 - 09:55:01 EST



On 10/15/21 3:36 PM, Herbert Xu wrote:
> On Fri, Oct 15, 2021 at 03:11:15PM +0200, Vegard Nossum wrote:
>> Fix the following build/link error by adding a dependency on CRYPTO_HASH:
>>
>> ld: drivers/scsi/libiscsi_tcp.o: in function `iscsi_tcp_dgst_header':
>> libiscsi_tcp.c:(.text+0x237): undefined reference to `crypto_ahash_digest'
>> ld: drivers/scsi/libiscsi_tcp.o: in function `iscsi_tcp_segment_done':
>> libiscsi_tcp.c:(.text+0x1325): undefined reference to `crypto_ahash_final'
>>
>> Fixes: 5d6ac29b9ebf2 ("iscsi_tcp: Use ahash")
>> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
>> Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx>
>> ---
>> drivers/scsi/Kconfig | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
>> index 6e3a04107bb65..09764f3c42447 100644
>> --- a/drivers/scsi/Kconfig
>> +++ b/drivers/scsi/Kconfig
>> @@ -290,6 +290,7 @@ config ISCSI_TCP
>> tristate "iSCSI Initiator over TCP/IP"
>> depends on SCSI && INET
>> select CRYPTO
>> + select CRYPTO_HASH
>> select CRYPTO_MD5
>> select CRYPTO_CRC32C
>> select SCSI_ISCSI_ATTRS
>
> CRYPTO_MD5 already selects CRYPTO_HASH so this shouldn't be needed.

You're right, my apologies.

libiscsi_tcp.o is built for CONFIG_ISCSI_TCP, but it's _also_ built for
CONFIG_SCSI_CXGB3_ISCSI and CONFIG_SCSI_CXGB4_ISCSI. I missed that when
I looked at the Makefile and wrongly assumed that CONFIG_ISCSI_TCP was
missing the select.

I'm not sure what the right fix here would be -- should
CONFIG_SCSI_CXGB[34]_ISCSI depend on CONFIG_ISCSI_TCP..? Or should we
add those CRYPTO* selects in there as well?


Vegard