mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 2/2] drivers/ide/cy82c693.c: Add missing pci_dev_put
@ 2011-07-28 16:26 Julia Lawall
  2011-08-04  8:30 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Julia Lawall @ 2011-07-28 16:26 UTC (permalink / raw)
  To: David S. Miller; +Cc: kernel-janitors, linux-ide, linux-kernel

From: Julia Lawall <julia@diku.dk>

Pci_get_slot calls pci_dev_get, so pci_dev_put is needed before leaving the
function in the case where pci_get_slot is locally used.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
local idexpression x;
expression e;
@@

*x = pci_get_slot(...)
... when != true x == NULL
    when != pci_dev_put(x)
    when != e = x
    when != if (x != NULL) {<+... pci_dev_put(x); ...+>}
*return ...;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>

---
Not tested.

 drivers/ide/cy82c693.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/ide/cy82c693.c b/drivers/ide/cy82c693.c
index 3be60da..67cbcfa 100644
--- a/drivers/ide/cy82c693.c
+++ b/drivers/ide/cy82c693.c
@@ -141,6 +141,8 @@ static void cy82c693_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive)
 		pci_write_config_byte(dev, CY82_IDE_SLAVE_IOW, time_16);
 		pci_write_config_byte(dev, CY82_IDE_SLAVE_8BIT, time_8);
 	}
+	if (hwif->index > 0)
+		pci_dev_put(dev);
 }
 
 static void __devinit init_iops_cy82c693(ide_hwif_t *hwif)


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 2/2] drivers/ide/cy82c693.c: Add missing pci_dev_put
  2011-07-28 16:26 [PATCH 2/2] drivers/ide/cy82c693.c: Add missing pci_dev_put Julia Lawall
@ 2011-08-04  8:30 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2011-08-04  8:30 UTC (permalink / raw)
  To: julia; +Cc: kernel-janitors, linux-ide, linux-kernel

From: Julia Lawall <julia@diku.dk>
Date: Thu, 28 Jul 2011 18:26:47 +0200

> From: Julia Lawall <julia@diku.dk>
> 
> Pci_get_slot calls pci_dev_get, so pci_dev_put is needed before leaving the
> function in the case where pci_get_slot is locally used.
> 
> The semantic match that finds this problem is as follows:
> (http://coccinelle.lip6.fr/)
...
> Signed-off-by: Julia Lawall <julia@diku.dk>

Applied, thanks!

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-08-04  8:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-28 16:26 [PATCH 2/2] drivers/ide/cy82c693.c: Add missing pci_dev_put Julia Lawall
2011-08-04  8:30 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®