All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] NET: r8169: fix past rtl_chip_info arraysize for unknown chipsets
@ 2008-04-17 14:40 Roel Kluin
  0 siblings, 0 replies; only message in thread
From: Roel Kluin @ 2008-04-17 14:40 UTC (permalink / raw)
  To: romieu; +Cc: netdev, lkml

i is unsigned, so, with an unknown chip, for (;i >= 0;) fails and i
just keeps decrementing, underflowing past ARRAY_SIZE(rtl_chip_info).

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
---
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 3acfeea..7d6be1b 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1702,21 +1702,19 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	/* Identify chip attached to board */
 	rtl8169_get_mac_version(tp, ioaddr);
-
 	rtl8169_print_mac_version(tp);
 
-	for (i = ARRAY_SIZE(rtl_chip_info) - 1; i >= 0; i--) {
-		if (tp->mac_version == rtl_chip_info[i].mac_version)
+	for (i = ARRAY_SIZE(rtl_chip_info) - 1;
+			tp->mac_version != rtl_chip_info[i].mac_version; i--) {
+		if (i == 0) {
+			/* Unknown chip: assume chipset 0: original RTL-8169 */
+			if (netif_msg_probe(tp)) {
+				dev_printk(KERN_DEBUG, &pdev->dev,
+					"unknown chip version, assuming %s\n",
+					rtl_chip_info[0].name);
+			}
 			break;
-	}
-	if (i < 0) {
-		/* Unknown chip: assume array element #0, original RTL-8169 */
-		if (netif_msg_probe(tp)) {
-			dev_printk(KERN_DEBUG, &pdev->dev,
-				"unknown chip version, assuming %s\n",
-				rtl_chip_info[0].name);
 		}
-		i++;
 	}
 	tp->chipset = i;
 

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

only message in thread, other threads:[~2008-04-17 14:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-17 14:40 [PATCH] NET: r8169: fix past rtl_chip_info arraysize for unknown chipsets Roel Kluin

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.