From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: linux-kernel@vger.kernel.org
Subject: [PATCH 1/2] pdc202xx_new: fix PCI refcounting
Date: Sun, 19 Aug 2007 18:53:12 +0400 [thread overview]
Message-ID: <200708191853.12724.sshtylyov@ru.mvista.com> (raw)
The driver erroneously "lets go" the mate IDE chip in init_setup_pdc20270()
when ide_setup_pci_devices() call succeeds -- fix this, and drop a couple of
useless assignments in this function while at it...
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
---
This patch is against the current Linus' tree, it has only been compile tested
since I do not have PDC2027x chips (and even less so behind DC21150 bridge :-).
I'm reposting the patchset a wider audience now...
drivers/ide/pci/pdc202xx_new.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
Index: linux-2.6/drivers/ide/pci/pdc202xx_new.c
===================================================================
--- linux-2.6.orig/drivers/ide/pci/pdc202xx_new.c
+++ linux-2.6/drivers/ide/pci/pdc202xx_new.c
@@ -9,7 +9,7 @@
* Split from:
* linux/drivers/ide/pdc202xx.c Version 0.35 Mar. 30, 2002
* Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org>
- * Copyright (C) 2005-2006 MontaVista Software, Inc.
+ * Copyright (C) 2005-2007 MontaVista Software, Inc.
* Portions Copyright (C) 1999 Promise Technology, Inc.
* Author: Frank Tiernan (frankt@promise.com)
* Released under terms of General Public License
@@ -521,7 +521,7 @@ static int __devinit init_setup_pdcnew(s
static int __devinit init_setup_pdc20270(struct pci_dev *dev,
ide_pci_device_t *d)
{
- struct pci_dev *findev = NULL;
+ struct pci_dev *findev;
int ret;
if ((dev->bus->self &&
@@ -529,7 +529,7 @@ static int __devinit init_setup_pdc20270
(dev->bus->self->device == PCI_DEVICE_ID_DEC_21150)) {
if (PCI_SLOT(dev->devfn) & 2)
return -ENODEV;
- d->extra = 0;
+
while ((findev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, findev)) != NULL) {
if ((findev->vendor == dev->vendor) &&
(findev->device == dev->device) &&
@@ -538,7 +538,8 @@ static int __devinit init_setup_pdc20270
findev->irq = dev->irq;
}
ret = ide_setup_pci_devices(dev, findev, d);
- pci_dev_put(findev);
+ if (ret < 0)
+ pci_dev_put(findev);
return ret;
}
}
next reply other threads:[~2007-08-19 14:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-19 14:53 Sergei Shtylyov [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-08-18 18:46 [PATCH 1/2] pdc202xx_new: fix PCI refcounting Sergei Shtylyov
2007-08-21 20:01 ` Bartlomiej Zolnierkiewicz
2007-08-26 12:56 ` Sergei Shtylyov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200708191853.12724.sshtylyov@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.