Skip to contentSkip to conversation

Why does lpfc select GENERIC_CSUM?

DISCUSSION Anton Blanchard 3 participants 4 messages Aug 5, 2013 – Aug 8, 2013 SCSI

lore
Share & tools
lore
#0 lore raw

Hi Randy,

commit 6a7252fd ([SCSI] lpfc: fix up Kconfig dependencies) added a select of GENERIC_CSUM. This seems strange to me - it's an architecture specific detail if the checksum routines are implemented in assembly or if they pull in lib/checksum.c.

The networking code doesn't select GENERIC_CSUM, so I'm not sure why the lpfc driver needs to. Was there a real issue we hit here?

Regards,
Anton

#1 lore raw
Quoted 8 lines · Anton Blanchard

Hi Randy,

commit 6a7252fd ([SCSI] lpfc: fix up Kconfig dependencies) added a select of GENERIC_CSUM. This seems strange to me - it's an architecture specific detail if the checksum routines are implemented in assembly or if they pull in lib/checksum.c.

Quoted 6 lines

The networking code doesn't select GENERIC_CSUM, so I'm not sure why the lpfc driver needs to. Was there a real issue we hit here?

Regards,
Anton

Hi Anton,

I reported:
"""
on i386:
# CONFIG_CRC_T10DIF is not set

drivers/built-in.o: In function `lpfc_bg_crc':
(.text+0x3cb3c9): undefined reference to `crc_t10dif' """

and then James Bottomley provided the patch.
I don't know why he added GENERIC_CSUM to it.

Signature · 1 line
~Randy
#2 lore raw

[SCSI] lpfc: Don't force CONFIG_GENERIC_CSUM on

Hi Randy,

Quoted 6 lines

I reported:
"""
on i386:
# CONFIG_CRC_T10DIF is not set

Quoted 6 lines

drivers/built-in.o: In function `lpfc_bg_crc':
(.text+0x3cb3c9): undefined reference to `crc_t10dif' """

and then James Bottomley provided the patch.
I don't know why he added GENERIC_CSUM to it.

Thanks for investigating this. How does this patch look?

Anton
--

[SCSI] lpfc: Don't force CONFIG_GENERIC_CSUM on

We want ppc64 to be able to select between optimised assembly checksum routines in big endian and the generic lib/checksum.c routines in little endian.

The lpfc driver is forcing CONFIG_GENERIC_CSUM on which means we are unable to make the decision to enable it in the arch Kconfig. If the option exists it is always forced on.

This got introduced in 3.10 via commit 6a7252fdb0c3 ([SCSI] lpfc:
fix up Kconfig dependencies). I spoke to Randy about it and the original issue was with CRC_T10DIF not being defined.

As such, remove the select of CONFIG_GENERIC_CSUM.

---

drivers/scsi/Kconfig +0 -1
index 48b2918..92ff027 100644
@@ -1353,7 +1353,6 @@ config SCSI_LPFC
 	tristate "Emulex LightPulse Fibre Channel Support"
 	depends on PCI && SCSI
 	select SCSI_FC_ATTRS
-	select GENERIC_CSUM
 	select CRC_T10DIF
 	help
           This lpfc driver supports the Emulex LightPulse
Acked-by
#3 lore raw

Re: [SCSI] lpfc: Don't force CONFIG_GENERIC_CSUM on

I'm good with it. You folks understand the config dependencies better than I.

-- james

Quoted 52 lines · Anton Blanchard

Hi Randy,

Quoted 6 lines

I reported:
"""
on i386:
# CONFIG_CRC_T10DIF is not set

Quoted 6 lines

drivers/built-in.o: In function `lpfc_bg_crc':
(.text+0x3cb3c9): undefined reference to `crc_t10dif' """

and then James Bottomley provided the patch.
I don't know why he added GENERIC_CSUM to it.

Thanks for investigating this. How does this patch look?

Anton
--

[SCSI] lpfc: Don't force CONFIG_GENERIC_CSUM on

We want ppc64 to be able to select between optimised assembly checksum routines in big endian and the generic lib/checksum.c routines in little endian.

The lpfc driver is forcing CONFIG_GENERIC_CSUM on which means we are unable to make the decision to enable it in the arch Kconfig. If the option exists it is always forced on.

This got introduced in 3.10 via commit 6a7252fdb0c3 ([SCSI] lpfc:
fix up Kconfig dependencies). I spoke to Randy about it and the original issue was with CRC_T10DIF not being defined.

As such, remove the select of CONFIG_GENERIC_CSUM.

---

drivers/scsi/Kconfig +0 -1
index 48b2918..92ff027 100644
@@ -1353,7 +1353,6 @@ config SCSI_LPFC
  	tristate "Emulex LightPulse Fibre Channel Support"
  	depends on PCI && SCSI
  	select SCSI_FC_ATTRS
-	select GENERIC_CSUM
  	select CRC_T10DIF
  	help
            This lpfc driver supports the Emulex LightPulse