Message ID | 1310044617-22978-1-git-send-email-nschichan@freebox.fr |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, Jul 07, 2011 at 03:16:57PM +0200, nschichan@freebox.fr wrote: > From: Nicolas Schichan <nschichan@freebox.fr> > > Interrupts about link lost or rx sequence errors are not reported by > the ce4100 hardware, leading to transitions from link UP to link DOWN > never being reported. > > Signed-off-by: Nicolas Schichan <nschichan@freebox.fr> > --- > drivers/net/e1000/e1000_main.c | 11 +++++++---- > 1 files changed, 7 insertions(+), 4 deletions(-) <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read Documentation/stable_kernel_rules.txt for how to do this properly. </formletter> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 2011-07-07 at 06:16 -0700, nschichan@freebox.fr wrote: > From: Nicolas Schichan <nschichan@freebox.fr> > > Interrupts about link lost or rx sequence errors are not reported by > the ce4100 hardware, leading to transitions from link UP to link DOWN > never being reported. > > Signed-off-by: Nicolas Schichan <nschichan@freebox.fr> > --- > drivers/net/e1000/e1000_main.c | 11 +++++++---- > 1 files changed, 7 insertions(+), 4 deletions(-) Thank you for the patch. I have added the patch to my queue.
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 76e8af0..a02333f 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -2357,13 +2357,16 @@ bool e1000_has_link(struct e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw; bool link_active = false; - /* get_link_status is set on LSC (link status) interrupt or - * rx sequence error interrupt. get_link_status will stay - * false until the e1000_check_for_link establishes link - * for copper adapters ONLY + /* get_link_status is set on LSC (link status) interrupt or rx + * sequence error interrupt (except on intel ce4100). + * get_link_status will stay false until the + * e1000_check_for_link establishes link for copper adapters + * ONLY */ switch (hw->media_type) { case e1000_media_type_copper: + if (hw->mac_type == e1000_ce4100) + hw->get_link_status = 1; if (hw->get_link_status) { e1000_check_for_link(hw); link_active = !hw->get_link_status;