public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] i810-tco OOPS
@ 2001-07-11 19:33 Randy.Dunlap
  0 siblings, 0 replies; only message in thread
From: Randy.Dunlap @ 2001-07-11 19:33 UTC (permalink / raw)
  To: linux-kernel, Alan, Linus, nils

[-- Attachment #1: Type: text/plain, Size: 403 bytes --]

Please apply to 2.4.7-preX and to 2.4.6-acX.

If one builds a kernel with the i810 tco watchdog driver
but does not have this chipset, the i810tco_getdevice()
function doesn't detect this and still calls pci_read_config_byte(),
which promptly oopses...since the pci_for_each_dev() loop
termination wasn't checked  [i.e., <dev> is non-null after the
loop whether the device was found or not].

-- 
~Randy

[-- Attachment #2: i810found.diff --]
[-- Type: text/plain, Size: 477 bytes --]

--- linux/drivers/char/i810-tco.c.org	Mon Jul  2 13:56:41 2001
+++ linux/drivers/char/i810-tco.c	Wed Jul 11 12:11:22 2001
@@ -256,14 +256,19 @@
 	struct pci_dev *dev;
 	u8 val1, val2;
 	u16 badr;
+	int found = 0;
 	/*
 	 *      Find the PCI device
 	 */
 
 	pci_for_each_dev(dev) {
-		if (pci_match_device(i810tco_pci_tbl, dev))
+		if (pci_match_device(i810tco_pci_tbl, dev)) {
+			found = 1;
 			break;
+		}
 	}
+	if (!found)
+		return 0;
 
 	if ((i810tco_pci = dev)) {
 		/*

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-07-11 19:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-07-11 19:33 [patch] i810-tco OOPS Randy.Dunlap

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