[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



Hello Joshua,

On Fri, Aug 18, 2006 at 09:59:16AM -0600, Joshua Rubin wrote:
> 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.

> 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.



Reply to: