kernel: split 82574L patch into multiple files
[openwrt/staging/jow.git] / target / linux / generic / pending-4.9 / 190-1-5-e1000e-Fix-error-path-in-link-detection.patch
1 From patchwork Fri Jul 21 18:36:23 2017
2 Content-Type: text/plain; charset="utf-8"
3 MIME-Version: 1.0
4 Content-Transfer-Encoding: 7bit
5 Subject: [1/5] e1000e: Fix error path in link detection
6 From: Benjamin Poirier <bpoirier@suse.com>
7 X-Patchwork-Id: 9857487
8 Message-Id: <20170721183627.13373-1-bpoirier@suse.com>
9 To: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
10 Cc: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>,
11 intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
12 linux-kernel@vger.kernel.org
13 Date: Fri, 21 Jul 2017 11:36:23 -0700
14
15 In case of error from e1e_rphy(), the loop will exit early and "success"
16 will be set to true erroneously.
17
18 Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
19 ---
20 drivers/net/ethernet/intel/e1000e/phy.c | 7 ++++---
21 1 file changed, 4 insertions(+), 3 deletions(-)
22
23 --- a/drivers/net/ethernet/intel/e1000e/phy.c
24 +++ b/drivers/net/ethernet/intel/e1000e/phy.c
25 @@ -1744,6 +1744,7 @@ s32 e1000e_phy_has_link_generic(struct e
26 s32 ret_val = 0;
27 u16 i, phy_status;
28
29 + *success = false;
30 for (i = 0; i < iterations; i++) {
31 /* Some PHYs require the MII_BMSR register to be read
32 * twice due to the link bit being sticky. No harm doing
33 @@ -1763,16 +1764,16 @@ s32 e1000e_phy_has_link_generic(struct e
34 ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
35 if (ret_val)
36 break;
37 - if (phy_status & BMSR_LSTATUS)
38 + if (phy_status & BMSR_LSTATUS) {
39 + *success = true;
40 break;
41 + }
42 if (usec_interval >= 1000)
43 msleep(usec_interval / 1000);
44 else
45 udelay(usec_interval);
46 }
47
48 - *success = (i < iterations);
49 -
50 return ret_val;
51 }
52