* [KJ] replacing pci_find_device in isdn driver
@ 2007-02-21 11:51 Surya
2007-02-21 20:45 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Surya @ 2007-02-21 11:51 UTC (permalink / raw)
To: kernel-janitors
Hi,
replacing the pci_find_device with pci_get_device and its respective
cleanup function pci_dev_put. Applies and compiles clean on the latest
Linus tree. But not tested!!
thanks.
Signed-off-by: Surya Prabhakar <surya.prabhakar@wipro.com>
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
index b04a178..2991780 100644
--- a/drivers/isdn/hisax/avm_pci.c
+++ b/drivers/isdn/hisax/avm_pci.c
@@ -789,19 +789,19 @@ setup_avm_pcipnp(struct IsdnCard *card)
}
#endif
#ifdef CONFIG_PCI
- if ((dev_avm = pci_find_device(PCI_VENDOR_ID_AVM,
+ if ((dev_avm = pci_get_device(PCI_VENDOR_ID_AVM,
PCI_DEVICE_ID_AVM_A1, dev_avm))) {
- if (pci_enable_device(dev_avm))
- return(0);
+ if (pci_enable_device(dev_avm))
+ goto dev_avm_cleanup;
cs->irq = dev_avm->irq;
if (!cs->irq) {
printk(KERN_ERR "FritzPCI: No IRQ for PCI card found\n");
- return(0);
+ goto dev_avm_cleanup;
}
cs->hw.avm.cfg_reg = pci_resource_start(dev_avm, 1);
if (!cs->hw.avm.cfg_reg) {
printk(KERN_ERR "FritzPCI: No IO-Adr for PCI card found\n");
- return(0);
+ goto dev_avm_cleanup;
}
cs->subtyp = AVM_FRITZ_PCI;
} else {
@@ -822,7 +822,7 @@ ready:
CardType[card->typ],
cs->hw.avm.cfg_reg,
cs->hw.avm.cfg_reg + 31);
- return (0);
+ goto dev_avm_cleanup;
}
switch (cs->subtyp) {
case AVM_FRITZ_PCI:
@@ -842,7 +842,7 @@ ready:
break;
default:
printk(KERN_WARNING "AVM unknown subtype %d\n", cs->subtyp);
- return(0);
+ goto dev_avm_cleanup;
}
printk(KERN_INFO "HiSax: %s config irq:%d base:0x%X\n",
(cs->subtyp = AVM_FRITZ_PCI) ? "AVM Fritz!PCI" : "AVM Fritz!PnP",
@@ -858,5 +858,14 @@ ready:
cs->irq_func = &avm_pcipnp_interrupt;
cs->writeisac(cs, ISAC_MASK, 0xFF);
ISACVersion(cs, (cs->subtyp = AVM_FRITZ_PCI) ? "AVM PCI:" : "AVM PnP:");
+
+ if (dev_avm)
+ pci_dev_put(dev_avm);
+
return (1);
+
+dev_avm_cleanup:
+ if (dev_avm)
+ pci_dev_put(dev_avm);
+ return 0;
}
--
surya.
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [KJ] replacing pci_find_device in isdn driver
2007-02-21 11:51 [KJ] replacing pci_find_device in isdn driver Surya
@ 2007-02-21 20:45 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2007-02-21 20:45 UTC (permalink / raw)
To: kernel-janitors
On Wed, Feb 21, 2007 at 05:09:54PM +0530, Surya wrote:
>
> Hi,
> replacing the pci_find_device with pci_get_device and its respective
> cleanup function pci_dev_put. Applies and compiles clean on the latest
> Linus tree. But not tested!!
>
> thanks.
>
> Signed-off-by: Surya Prabhakar <surya.prabhakar@wipro.com>
>
> diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
> index b04a178..2991780 100644
> --- a/drivers/isdn/hisax/avm_pci.c
> +++ b/drivers/isdn/hisax/avm_pci.c
> @@ -789,19 +789,19 @@ setup_avm_pcipnp(struct IsdnCard *card)
> }
> #endif
> #ifdef CONFIG_PCI
> - if ((dev_avm = pci_find_device(PCI_VENDOR_ID_AVM,
> + if ((dev_avm = pci_get_device(PCI_VENDOR_ID_AVM,
> PCI_DEVICE_ID_AVM_A1, dev_avm))) {
> - if (pci_enable_device(dev_avm))
> - return(0);
> + if (pci_enable_device(dev_avm))
> + goto dev_avm_cleanup;
Your indentation here is a bit "odd".
You also added a trailing space to the line, not nice.
> cs->irq = dev_avm->irq;
> if (!cs->irq) {
> printk(KERN_ERR "FritzPCI: No IRQ for PCI card found\n");
> - return(0);
> + goto dev_avm_cleanup;
> }
> cs->hw.avm.cfg_reg = pci_resource_start(dev_avm, 1);
> if (!cs->hw.avm.cfg_reg) {
> printk(KERN_ERR "FritzPCI: No IO-Adr for PCI card found\n");
> - return(0);
> + goto dev_avm_cleanup;
> }
> cs->subtyp = AVM_FRITZ_PCI;
> } else {
> @@ -822,7 +822,7 @@ ready:
> CardType[card->typ],
> cs->hw.avm.cfg_reg,
> cs->hw.avm.cfg_reg + 31);
> - return (0);
> + goto dev_avm_cleanup;
> }
> switch (cs->subtyp) {
> case AVM_FRITZ_PCI:
> @@ -842,7 +842,7 @@ ready:
> break;
> default:
> printk(KERN_WARNING "AVM unknown subtype %d\n", cs->subtyp);
> - return(0);
> + goto dev_avm_cleanup;
> }
> printk(KERN_INFO "HiSax: %s config irq:%d base:0x%X\n",
> (cs->subtyp = AVM_FRITZ_PCI) ? "AVM Fritz!PCI" : "AVM Fritz!PnP",
> @@ -858,5 +858,14 @@ ready:
> cs->irq_func = &avm_pcipnp_interrupt;
> cs->writeisac(cs, ISAC_MASK, 0xFF);
> ISACVersion(cs, (cs->subtyp = AVM_FRITZ_PCI) ? "AVM PCI:" : "AVM PnP:");
> +
> + if (dev_avm)
> + pci_dev_put(dev_avm);
> +
You don't have to check to call pci_dev_put(), you can pass NULL to it
and it will not die.
> return (1);
> +
> +dev_avm_cleanup:
> + if (dev_avm)
> + pci_dev_put(dev_avm);
Same thing here, the check isn't needed.
Care to redo it with these minor fixes? Other than that, the logic
looks correct.
thanks,
greg k-h
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-02-21 20:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-21 11:51 [KJ] replacing pci_find_device in isdn driver Surya
2007-02-21 20:45 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.