can we get asane ic7xxx/79xx probing _please_
Subsystems (2)
Sorry to complain to you for Justins mess, but could you please fixup the damn pci probing? Andi sent you a patch to add proper pci tables, and not ignoring the pci_module_init retval would be trivial if the module initialization wasn't split over three routines.
Curretly hotplug loads the adaptec drivers for every PCI scsi adapter in the system, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270102
for details
Hi Christoph,
Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.
I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.
Thanks again,
Luben
Quoted 12 lines · Christoph Hellwig
Sorry to complain to you for Justins mess, but could you please fixup the damn pci probing? Andi sent you a patch to add proper pci tables, and not ignoring the
pci_module_initretval would be trivial if the module initialization wasn't split over three routines.Curretly hotplug loads the adaptec drivers for every PCI scsi adapter in the system, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270102for details
Quoted 8 lines · Luben Tuikov
Hi Christoph,
Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.
I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of
pci_module_init()and return the appropriate result.
Luben, please stop that new version of the driver stuff. Your job as a maintainer is to keep the driver in the kernel working, and your the steering point for getting right fixes in fast in a controlled way, the last thing we need is driver "releases" that batch up unrelated changes and are delayed forever.
So is Andi's (and my later fix okay) and can James apply them or not?
Quoted 12 lines · Christoph Hellwig
Quoted 8 lines · Luben Tuikov
Hi Christoph,
Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.
I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of
pci_module_init()and return the appropriate result.
Quoted 7 lines
Luben, please stop that new version of the driver stuff. Your job as a maintainer is to keep the driver in the kernel working, and your the steering point for getting right fixes in fast in a controlled way, the last thing we need is driver "releases" that batch up unrelated changes and are delayed forever.
So is Andi's (and my later fix okay) and can James apply them or not?
Yes they are okay and James can apply them.
Luben
Quoted 1 line · Luben Tuikov
Yes they are okay and James can apply them.
OK, could someone do a resend with changelog that applies to the current tree, please.
James
Quoted 5 lines · James Bottomley
Quoted 1 line · Luben Tuikov
Yes they are okay and James can apply them.
OK, could someone do a resend with changelog that applies to the current tree, please.
----
[PATCH] add proper pci id table to aic7xxx
(trivial respin of an earlier patch by Andi Kleen)
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c +71 -9
@@ -40,6 +40,7 @@*/ #include "aic7xxx_osm.h" +#include "aic7xxx_pci.h" #if LINUX_VERSION_CODE <KERNEL_VERSION (2 ,4 ,0 )struct pci_device_id
@@ -57,16 +58,77 @@#if LINUX_VERSION_CODE >=KERNEL_VERSION (2 ,4 ,0 )static void ahc_linux_pci_dev_remove (struct pci_dev *pdev); -/* We do our own ID filtering. So, grab all SCSI storage class devices. */ static struct pci_device_id ahc_linux_pci_id_table[] = { - { -0x9004 ,PCI_ANY_ID ,PCI_ANY_ID ,PCI_ANY_ID , -PCI_CLASS_STORAGE_SCSI <<8 ,0xFFFF00 ,0 - }, - { -0x9005 ,PCI_ANY_ID ,PCI_ANY_ID ,PCI_ANY_ID , -PCI_CLASS_STORAGE_SCSI <<8 ,0xFFFF00 ,0 - }, +#define LINUXID(x,s) (unsigned)((((x) >> s) & 0xffff) ?: PCI_ANY_ID) +#define ID(x) \ + { \ + LINUXID(x,32), LINUXID(x,48), LINUXID(x,0), LINUXID(x,16), \ + PCI_CLASS_STORAGE_SCSI << 8, 0xFFFF00, 0 \ + } +#define ID4(x,y) \ +ID (x | ((y+0 )<<48 )),ID (x | ((y+1 )<<48 )),ID (x | ((y+2 )<<48 )), \ + ID(x | ((y+3)<<48)) +#define ID16(x) ID4(x,0ULL), ID4(x,4ULL), ID4(x,8ULL), ID4(x,12ULL) +ID (ID_AHA_2902_04_10_15_20C_30C ), +ID (ID_AHA_2930CU ), +ID (ID_AHA_1480A &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2940AU_0 &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2940AU_CN &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2930C_VAR &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2940 ), +ID (ID_AHA_3940 ), +ID (ID_AHA_398X ), +ID (ID_AHA_2944 ), +ID (ID_AHA_3944 ), +ID (ID_AHA_4944 ), +ID (ID_AHA_2940U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_3940U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2944U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_3944U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_398XU &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_4944U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2930U &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2940U_PRO &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2940U_CN &ID_DEV_VENDOR_MASK ), +ID (ID_AHA_2930U2 ), +ID (ID_AHA_2940U2B ), +ID (ID_AHA_2940U2_OEM ), +ID (ID_AHA_2940U2 ), +ID (ID_AHA_2950U2B ), +ID (ID_AIC7890_ARO ), +ID (ID_AAA_131U2 ), +ID (ID_AHA_29160 ), +ID (ID_AHA_29160_CPQ ), +ID (ID_AHA_29160N ), +ID (ID_AHA_29160C ), +ID (ID_AHA_29160B ), +ID (ID_AHA_19160B ), +ID (ID_AIC7892_ARO ), +ID (ID_AHA_2940U_DUAL ), +ID (ID_AHA_3940AU ), +ID (ID_AHA_3944AU ), +ID (ID_AIC7895_ARO ), +ID (ID_AHA_3950U2B_0 ), +ID (ID_AHA_3950U2B_1 ), +ID (ID_AHA_3950U2D_0 ), +ID (ID_AHA_3950U2D_1 ), +ID (ID_AIC7896_ARO ), +ID (ID_AHA_3960D ), +ID (ID_AHA_3960D_CPQ ), +ID (ID_AIC7899_ARO ), +ID (ID_AIC7850 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7855 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7859 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7860 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7870 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7880 &ID_DEV_VENDOR_MASK ), +ID16 (ID_AIC7890 ), +ID16 (ID_AIC7892 ), +ID (ID_AIC7895 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7896 ), +ID (ID_AIC7899 ), +ID (ID_AIC7810 &ID_DEV_VENDOR_MASK ), +ID (ID_AIC7815 &ID_DEV_VENDOR_MASK ), {0 } };
===== drivers/scsi/aic7xxx/aic7xxx_pci.c 1.19 vs edited =====
drivers/scsi/aic7xxx/aic7xxx_pci.c +2 -92
102 lines not on this page · raw message
Quoted 11 lines · Christoph Hellwig
Quoted 5 lines · James Bottomley
Quoted 1 line · Luben Tuikov
Yes they are okay and James can apply them.
OK, could someone do a resend with changelog that applies to the current tree, please.
----
[PATCH] add proper pci id table to aic7xxx(trivial respin of an earlier patch by Andi Kleen)
This doesn't actually compile: aic7xxx_pci.h is missing, I think.
James
Quoted 8 lines · Luben Tuikov
Hi Christoph,
Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.
I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of
pci_module_init()and return the appropriate result.
please please please provide linux compliant MODULE_DEVICE_TABLE's. Operating system hardware probing apps *require* those for device probing; right now there are very ugly hacks especially for aic7xxx that should go away.
Quoted 12 lines · Arjan van de Ven
Quoted 8 lines · Luben Tuikov
Hi Christoph,
Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.
I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of
pci_module_init()and return the appropriate result.
Quoted 5 lines
please please please provide linux compliant MODULE_DEVICE_TABLE's. Operating system hardware probing apps *require* those for device probing; right now there are very ugly hacks especially for aic7xxx that should go away.
Yes Arjan, I agree.
Luben