[patch] i810-tco OOPS

From: Randy.Dunlap (rddunlap@osdlab.org)
Date: Wed Jul 11 2001 - 14:33:16 EST


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

--- 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)) { /*

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jul 15 2001 - 21:00:15 EST