From 5b78d36e234cbcf4c83beabdbf7d831c51c8d0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 12 Mar 2006 21:17:26 +0000 Subject: [PATCH] Fixed a possible crashing bug with early interrupts. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16747 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/network/ipro1000/if_em.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/ipro1000/if_em.c b/src/add-ons/kernel/drivers/network/ipro1000/if_em.c index 76957077ba..f0650ab0f4 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/if_em.c +++ b/src/add-ons/kernel/drivers/network/ipro1000/if_em.c @@ -758,7 +758,6 @@ em_intr(void *arg) ifp = &adapter->interface_data.ac_if; - reg_icr = E1000_READ_REG(&adapter->hw, ICR); if (!reg_icr) { return B_UNHANDLED_INTERRUPT; @@ -770,7 +769,6 @@ em_intr(void *arg) release_event_sem = true; } - while (loop_cnt > 0) { if (ifp->if_flags & IFF_RUNNING) { em_process_receive_interrupts(adapter, -1); @@ -1530,6 +1528,9 @@ em_allocate_pci_resources(struct adapter * adapter) adapter->unit); return(ENXIO); } + + adapter->hw.back = &adapter->osdep; + if (bus_setup_intr(dev, adapter->res_interrupt, INTR_TYPE_NET, em_intr, adapter, &adapter->int_handler_tag)) { @@ -1538,9 +1539,7 @@ em_allocate_pci_resources(struct adapter * adapter) return(ENXIO); } - adapter->hw.back = &adapter->osdep; - - return(0); + return 0; } static void