Re: [PATCH 1/3] e1000: fix shared interrupt warning message
Jeff Garzik wrote: Kok, Auke wrote: Signed-off-by: Jesse Brandeburg [EMAIL PROTECTED] Signed-off-by: Auke Kok [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/net/e1000/e1000_main.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) applied 1-3, though patch #1 had a noticable lack of description. you should describe your change, not just the condition that prompted it. operation reordering is something that people shouldn't have to /try/ to understand. Things should just be obvious, and if not, document why. For the record then: It is suspected that workarounds in the _up() routine of e1000 can cause the receive unit to be enabled before we're all done initializing the adapter data. An interrupt arriving before we're all done setting up obviously causes problems. To fix, we postpone enabling interrupts completely until the software intialization is finished. Thanks, Auke - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] e1000: fix shared interrupt warning message
Auke Kok [EMAIL PROTECTED] : [...] It is suspected that workarounds in the _up() routine of e1000 can cause ^ the receive unit to be enabled before we're all done initializing the adapter data. An interrupt arriving before we're all done setting up obviously causes problems. To fix, we postpone enabling interrupts completely until the software intialization is finished. Call me dense but is there a chance that the same receive unit that should not be enabled now emits interrupts between e1000_up() and request_irq() ? -- Ueimor - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] e1000: fix shared interrupt warning message
Francois Romieu wrote: Auke Kok [EMAIL PROTECTED] : [...] It is suspected that workarounds in the _up() routine of e1000 can cause ^ the receive unit to be enabled before we're all done initializing the adapter data. An interrupt arriving before we're all done setting up obviously causes problems. To fix, we postpone enabling interrupts completely until the software intialization is finished. Call me dense but is there a chance that the same receive unit that should not be enabled now emits interrupts between e1000_up() and request_irq() ? turning on the receive unit starts the rx logic on the mac, but doesn't make the mac generate interrupts as far as I know. The fix was verified and even suggested earlier by some people as well. Cheers, Auke - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/3] e1000: fix shared interrupt warning message
Signed-off-by: Jesse Brandeburg [EMAIL PROTECTED] Signed-off-by: Auke Kok [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/net/e1000/e1000_main.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 619c892..f293690 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -1417,10 +1417,6 @@ e1000_open(struct net_device *netdev) if ((err = e1000_setup_all_rx_resources(adapter))) goto err_setup_rx; - err = e1000_request_irq(adapter); - if (err) - goto err_req_irq; - e1000_power_up_phy(adapter); if ((err = e1000_up(adapter))) @@ -1431,6 +1427,10 @@ e1000_open(struct net_device *netdev) e1000_update_mng_vlan(adapter); } + err = e1000_request_irq(adapter); + if (err) + goto err_req_irq; + /* If AMT is enabled, let the firmware know that the network * interface is now open */ if (adapter-hw.mac_type == e1000_82573 @@ -1439,10 +1439,10 @@ e1000_open(struct net_device *netdev) return E1000_SUCCESS; +err_req_irq: + e1000_down(adapter); err_up: e1000_power_down_phy(adapter); - e1000_free_irq(adapter); -err_req_irq: e1000_free_all_rx_resources(adapter); err_setup_rx: e1000_free_all_tx_resources(adapter); --- Auke Kok [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html