summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPetr Vandrovec <petr@vandrovec.name>2008-10-13 05:58:29 +0200
committerDavid S. Miller <davem@davemloft.net>2008-10-13 05:58:29 +0200
commit738e1e694bf6d9e965ba0ce2667a1bec5780a172 (patch)
tree803330370e1127554c5c2f3e1e821c4afdd6b86e /drivers
parentsmc911x: Fix external PHY detection (diff)
downloadlinux-738e1e694bf6d9e965ba0ce2667a1bec5780a172.tar.xz
linux-738e1e694bf6d9e965ba0ce2667a1bec5780a172.zip
r8169: NULL pointer dereference on r8169 load
mmio_addr in r8169 needs to be initialized before use Maybe that all tp-> initialization should be moved before rtl_init_mac_address call, but this is enough to get rid of crash in rtl_rar_set due to mmio_addr being uninitialized. Signed-off-by: Petr Vandrovec <petr@vandrovec.name> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/r8169.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index bdae2c59a750..c821da21d8eb 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2154,6 +2154,8 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
spin_lock_init(&tp->lock);
+ tp->mmio_addr = ioaddr;
+
rtl_init_mac_address(tp, ioaddr);
/* Get MAC address */
@@ -2186,7 +2188,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
#endif
tp->intr_mask = 0xffff;
- tp->mmio_addr = ioaddr;
tp->align = cfg->align;
tp->hw_start = cfg->hw_start;
tp->intr_event = cfg->intr_event;