Re: [PATCH] 2.6.25-rc1-git2: GDT SCSI: change drivers/scsi/gdth.cinto using pci_get device

From: James Bottomley
Date: Tue Feb 12 2008 - 11:22:50 EST


On Tue, 2008-02-12 at 11:31 -0300, Sergio Luis wrote:
> Fix compilation warning in drivers/scsi/gdth.c, using deprecated pci_find_device.
> Change it into using pci_get_device instead:
> drivers/scsi/gdth.c:645: warning: 'pci_find_device' is deprecated (declared at include/linux/pci.h:495)
>
> Signed-off-by: Sergio Luis <sergio@xxxxxxxxxxxxxx>
>
> gdth.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>
> diff -urN linux-2.6.25-rc1-git2.orig/drivers/scsi/gdth.c linux-2.6.25-rc1-git2/drivers/scsi/gdth.c
> --- linux-2.6.25-rc1-git2.orig/drivers/scsi/gdth.c 2008-02-12 09:26:14.000000000 -0300
> +++ linux-2.6.25-rc1-git2/drivers/scsi/gdth.c 2008-02-12 10:33:08.000000000 -0300
> @@ -642,7 +642,7 @@
> *cnt, vendor, device));
>
> pdev = NULL;
> - while ((pdev = pci_find_device(vendor, device, pdev))
> + while ((pdev = pci_get_device(vendor, device, pdev))
> != NULL) {
> if (pci_enable_device(pdev))
> continue;

This can't be correct without a matching put in the error leg.

The difference between the two APIs is that pci_get_device returns a
pci_device with a reference taken and pci_find_device doesn't. However,
pci_get_device does drop the reference again so as long as you never
exit the loop until it returns NULL, it is OK ... it's the exits before
pci_get_device() returns NULL that need the put.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/