Skip to contentSkip to conversation

Patch "igb: Explicitly select page 0 at initialization" has been added to the 4.12-stable tree

PATCH [email protected] 1 participant 1 message Jul 22, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

igb: Explicitly select page 0 at initialization

to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
igb-explicitly-select-page-0-at-initialization.patch
and it can be found in the queue-4.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 440aeca4b9858248d8f16d724d9fa87a4f65fa33 Mon Sep 17 00:00:00 2001

From: Matwey V Kornilov <[email protected]>
Date: Thu, 24 Nov 2016 13:32:48 +0300
Subject: igb: Explicitly select page 0 at initialization

From: Matwey V Kornilov <[email protected]>

commit 440aeca4b9858248d8f16d724d9fa87a4f65fa33 upstream.

The functions igb_read_phy_reg_gs40g/igb_write_phy_reg_gs40g (which were removed in 2a3cdea) explicitly selected the required page at every phy_reg access. Currently, igb_get_phy_id_82575 relays on the fact that page 0 is already selected. The assumption is not fulfilled for my Lex 3I380CW motherboard with integrated dual i211 based gigabit ethernet. This leads to igb initialization failure and network interfaces are not working:

    igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
    igb: Copyright (c) 2007-2014 Intel Corporation.
    igb: probe of 0000:01:00.0 failed with error -2
    igb: probe of 0000:02:00.0 failed with error -2

In order to fix it, we explicitly select page 0 before first access to phy registers.

See also: https://bugzilla.suse.com/show_bug.cgi?id=1009911
See also: http://www.lex.com.tw/products/pdf/3I380A&3I380CW.pdf

Fixes 2a3cdea ("igb: Remove GS40G specific defines/functions")
---
 drivers/net/ethernet/intel/igb/e1000_82575.c |    1 +
 1 file changed, 1 insertion(+)
drivers/net/ethernet/intel/igb/e1000_82575.c +1 -0
@@ -257,6 +257,7 @@ static s32 igb_init_phy_params_82575(str
 	}
 
 	/* Set phy->phy_addr and phy->id. */
+	igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);
 	ret_val = igb_get_phy_id_82575(hw);
 	if (ret_val)
 		return ret_val;

Patches currently in stable-queue which might be from [email protected] are

queue-4.12/igb-explicitly-select-page-0-at-initialization.patch