From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Yet more PCI fixes for 2.5.70
Date: Tue, 10 Jun 2003 11:49:30 -0700 [thread overview]
Message-ID: <10552709701662@kroah.com> (raw)
In-Reply-To: <1055270970689@kroah.com>
ChangeSet 1.1386, 2003/06/10 10:30:30-07:00, greg@kroah.com
[PATCH] PCI: add pci_find_next_bus() function to prevent people from walking pci bus lists themselves.
drivers/pci/search.c | 25 ++++++++++++++++++++++---
include/linux/pci.h | 1 +
2 files changed, 23 insertions(+), 3 deletions(-)
diff -Nru a/drivers/pci/search.c b/drivers/pci/search.c
--- a/drivers/pci/search.c Tue Jun 10 11:15:57 2003
+++ b/drivers/pci/search.c Tue Jun 10 11:15:57 2003
@@ -29,10 +29,10 @@
struct pci_bus *
pci_find_bus(unsigned char busnr)
{
- struct pci_bus* bus;
+ struct pci_bus* bus = NULL;
struct pci_bus* tmp_bus;
- pci_for_each_bus(bus) {
+ while ((bus = pci_find_next_bus(bus)) != NULL) {
tmp_bus = pci_do_find_bus(bus, busnr);
if(tmp_bus)
return tmp_bus;
@@ -41,6 +41,26 @@
}
/**
+ * pci_find_next_bus - begin or continue searching for a PCI bus
+ * @from: Previous PCI bus found, or %NULL for new search.
+ *
+ * Iterates through the list of known PCI busses. A new search is
+ * initiated by passing %NULL to the @from argument. Otherwise if
+ * @from is not %NULL, searches continue from next device on the
+ * global list.
+ */
+struct pci_bus *
+pci_find_next_bus(const struct pci_bus *from)
+{
+ struct list_head *n = from ? from->node.next : pci_root_buses.next;
+ struct pci_bus *b = NULL;
+
+ if (n != &pci_root_buses)
+ b = pci_bus_b(n);
+ return b;
+}
+
+/**
* pci_find_slot - locate PCI device from a given PCI slot
* @bus: number of PCI bus on which desired PCI device resides
* @devfn: encodes number of PCI slot in which the desired PCI
@@ -96,7 +116,6 @@
}
return NULL;
}
-
/**
* pci_find_device - begin or continue searching for a PCI device by vendor/device id
diff -Nru a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h Tue Jun 10 11:15:57 2003
+++ b/include/linux/pci.h Tue Jun 10 11:15:57 2003
@@ -568,6 +568,7 @@
struct pci_dev *pci_find_class (unsigned int class, const struct pci_dev *from);
struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
int pci_find_capability (struct pci_dev *dev, int cap);
+struct pci_bus * pci_find_next_bus(const struct pci_bus *from);
int pci_bus_read_config_byte (struct pci_bus *bus, unsigned int devfn, int where, u8 *val);
int pci_bus_read_config_word (struct pci_bus *bus, unsigned int devfn, int where, u16 *val);
next prev parent reply other threads:[~2003-06-10 19:45 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-10 18:49 [PATCH] Yet more PCI fixes for 2.5.70 Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH [this message]
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
-- strict thread matches above, loose matches on Subject: below --
2003-06-10 18:33 [BK PATCH] " Greg KH
2003-06-10 18:49 ` [PATCH] " Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
2003-06-10 18:49 ` Greg KH
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=10552709701662@kroah.com \
--to=greg@kroah.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox