Re: [PATCH 2.6.13-rc6] MODULE_DEVICE_TABLE for cpqfcTS driver

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

 



Jiri Slaby wrote:
>Rolf Eike Beer napsal(a):
>>Signed-off-by: Rolf Eike Beer <[email protected]>
>>
>>--- a/drivers/scsi/cpqfcTSinit.c	2005-08-14 14:20:40.000000000 +0200
>>+++ b/drivers/scsi/cpqfcTSinit.c	2005-08-14 14:25:33.000000000 +0200
>>@@ -264,18 +264,14 @@ static void launch_FCworker_thread(struc
>>  * Agilent XL2
>>  * HP Tachyon
>>  */
>>-#define HBA_TYPES 3
>>-
>>-#ifndef PCI_DEVICE_ID_COMPAQ_
>>-#define PCI_DEVICE_ID_COMPAQ_TACHYON	0xa0fc
>>-#endif
>>-
>>-static struct SupportedPCIcards cpqfc_boards[] __initdata = {
>>-	{PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_TACHYON},
>>-	{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHLITE},
>>-	{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHYON},
>>+static struct pci_device_id cpqfc_boards[] __initdata = {
>>+	{PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_TACHYON, PCI_ANY_ID,
>> PCI_ANY_ID, 0, 0, 0}, +	{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHLITE,
>> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, +	{PCI_VENDOR_ID_HP,
>> PCI_DEVICE_ID_HP_TACHYON, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, +	{0, }
>> };
>
>Wouldn't be better to use PCI_DEVICE macro for better readability?

Yes, useful little thing. Thanks, I wasn't aware of it.

>>+MODULE_DEVICE_TABLE(pci, cpqfc_boards);
>>
>> int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate)
>> {
>>@@ -294,14 +290,9 @@ int cpqfcTS_detect(Scsi_Host_Template *S
>>   ScsiHostTemplate->proc_name = "cpqfcTS";
>> #endif
>>
>>-  for( i=0; i < HBA_TYPES; i++)
>>-  {
>>-    // look for all HBAs of each type
>>-
>>-    while((PciDev = pci_find_device(cpqfc_boards[i].vendor_id,
>>-				    cpqfc_boards[i].device_id, PciDev)))
>>-    {
>>-
>>+  for(i = 0; cpqfc_boards[i]; i++) {
>>+    while((PciDev = pci_get_device(cpqfc_boards[i].vendor,
>>+				    cpqfc_boards[i].device, PciDev))) {
>>       if (pci_enable_device(PciDev)) {
>> 	printk(KERN_ERR
>> 		"cpqfc: can't enable PCI device at %s\n", pci_name(PciDev));
>
>You maybe forgot to add pci_dev_put in error cases. 

No, all errors will result in next iteration of this loop. Anyway this 
function should be rewritten. Once I figure out how to do the correct 
register stuff for SCSI drivers I'll port this over to Linux 2.6 driver 
model. Then this loop will go away.

>You can inspire yourself here:
>http://www.fi.muni.cz/~xslaby/lnx/pci_find/drivers:scsi:cpqfcTSinit.c.txt
>(it wasn't accepted yet).

*g* I've done such patches more than once ;)

>BTW. Greg KH wants me to cc him, if some of these changes are being done.

I read that, yes. But I had reasons not to CC him. This change is more or less 
to prevent others touching this file ;)

Eike

P.S.: your host is listed in cbl.abuseat.org. You should go and check this. 
Either you have a dynamic IP used by someone dumb before (than you have to 
ask them for delisting) or you probably have some sort of security hole.

Attachment: pgpAKwbvSx0iZ.pgp
Description: PGP signature


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux