public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] PCI: allow pci driver to support only dynids
@ 2008-11-26  3:36 Chris Wright
  2008-11-26  3:38 ` [PATCH 2/2] PCI: pci-stub module to reserve pci device Chris Wright
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Chris Wright @ 2008-11-26  3:36 UTC (permalink / raw)
  To: jbarnes
  Cc: greg, khali, miltonm, linux-pci, linux-kernel, kvm, allen.m.kay,
	jun.nakajima

commit b41d6cf38e27 (PCI: Check dynids driver_data value for validity)
requires all drivers to include an id table to try and match
driver_data.  Before validating driver_data check driver has an id
table.

Cc: Jean Delvare <khali@linux-fr.org>
Cc: Milton Miller <miltonm@bga.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
 drivers/pci/pci-driver.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index b4cdd69..0a5edbe 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -48,7 +48,7 @@ store_new_id(struct device_driver *driver, const char *buf, size_t count)
 		subdevice=PCI_ANY_ID, class=0, class_mask=0;
 	unsigned long driver_data=0;
 	int fields=0;
-	int retval;
+	int retval=0;
 
 	fields = sscanf(buf, "%x %x %x %x %x %x %lx",
 			&vendor, &device, &subvendor, &subdevice,
@@ -58,16 +58,18 @@ store_new_id(struct device_driver *driver, const char *buf, size_t count)
 
 	/* Only accept driver_data values that match an existing id_table
 	   entry */
-	retval = -EINVAL;
-	while (ids->vendor || ids->subvendor || ids->class_mask) {
-		if (driver_data == ids->driver_data) {
-			retval = 0;
-			break;
+	if (ids) {
+		retval = -EINVAL;
+		while (ids->vendor || ids->subvendor || ids->class_mask) {
+			if (driver_data == ids->driver_data) {
+				retval = 0;
+				break;
+			}
+			ids++;
 		}
-		ids++;
+		if (retval)	/* No match */
+			return retval;
 	}
-	if (retval)	/* No match */
-		return retval;
 
 	dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
 	if (!dynid)
-- 
1.6.0.3

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

end of thread, other threads:[~2008-12-01 20:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-26  3:36 [PATCH 1/2] PCI: allow pci driver to support only dynids Chris Wright
2008-11-26  3:38 ` [PATCH 2/2] PCI: pci-stub module to reserve pci device Chris Wright
2008-11-26  4:19   ` Greg KH
2008-11-26  5:07     ` Chris Wright
2008-11-26  5:17 ` [PATCH 2/2 v2] " Chris Wright
2008-11-26  8:28 ` [PATCH 1/2] PCI: allow pci driver to support only dynids Jean Delvare
2008-11-26 15:19   ` Chris Wright
2008-11-26 20:34     ` Jean Delvare
2008-11-26 21:07       ` Chris Wright
2008-12-01 20:41 ` Jesse Barnes

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