Skip to contentSkip to conversation

Bug#380272: kernel-image-2.6-686-smp: cpqarray module fails to detect arrays

DISCUSSION Joshua Rubin 5 participants 5 messages Aug 18, 2006 – Aug 19, 2006 SCSI

lore
Share & tools
lore
#0 lore raw

Hi Maks,

I have confirmed that loading cpqarray first fixes the problem on several systems now. I have also realized that when this is the case, the sym53c8xx driver is not needed or loaded. I thought this was noteworthy. It appears that your presumption was correct that the sym53c8xx and cpqarray modules do not play nicely.

Is this something that can be handled in the initramfs automatically instead of forcing everyone running these systems to update
their /etc/initramfs-tools/modules file?

Thanks again!!!
Joshua

#1 lore raw

Hello Joshua,

Quoted 6 lines · Joshua Rubin

I have confirmed that loading cpqarray first fixes the problem on several systems now. I have also realized that when this is the case, the sym53c8xx driver is not needed or loaded. I thought this was noteworthy. It appears that your presumption was correct that the sym53c8xx and cpqarray modules do not play nicely.

The problem is because they both claim support for the same PCI Ids:

cpqarray.c,
static const struct pci_device_id cpqarray_pci_device_id[] =

{
	....
        { PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C1510,
                0x0E11, 0x4048, 0, 0, 0},       /* LC2 */
        { PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C1510,
                0x0E11, 0x4040, 0, 0, 0},      /* Integrated Array */
	....
};

and sym53c8xx_2/sym_glue.c,

static struct pci_device_id sym2_id_table[] __devinitdata = {
	....
        { PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_53C1510,
          PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
	....
        { PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_NCR_53C1510,
          PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, /* new */
	....
};

More correctly, the problem is because sym2 is claiming support for all devices with these PCI device/vendor id.

Can we get the output of lspci -v output from your machine?

If LSI was kind, the PCI class might be different between the two, or some other clue might be there to differentiate them.

Quoted 3 lines

Is this something that can be handled in the initramfs automatically instead of forcing everyone running these systems to update
their /etc/initramfs-tools/modules file?

The easiest thing to do from the initramfs point of view is to simply load cpqarray in preference to sym53c8xx.

Regards,
Kyle M.