Patchwork e1000: always call e1000_check_for_link() on e1000_ce4100 MACs.

login
register
mail settings
Submitter Nicolas Schichan
Date July 7, 2011, 1:16 p.m.
Message ID <1310044617-22978-1-git-send-email-nschichan@freebox.fr>
Download mbox | patch
Permalink /patch/103660/
State Awaiting Upstream
Delegated to: David Miller
Headers show

Comments

Nicolas Schichan - July 7, 2011, 1:16 p.m.
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(-)
Greg KH - July 7, 2011, 2:10 p.m.
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
Jeff Kirsher - July 8, 2011, 4:21 p.m.
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.

Patch

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;