netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Poirier <bpoirier@suse.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	intel-wired-lan <intel-wired-lan@lists.osuosl.org>,
	Netdev <netdev@vger.kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] e1000e: Fix link check race condition.
Date: Wed, 28 Feb 2018 14:19:12 +0900	[thread overview]
Message-ID: <20180228051912.cueusc3wn44ksdc3@f1.synalogic.ca> (raw)
In-Reply-To: <CAKgT0Ueyz9LPz4UwYVpgZJ+nW2YV2A-mYqUQbBP2RaDfgH91rA@mail.gmail.com>

On 2018/02/26 08:14, Alexander Duyck wrote:
[...]
> 
> >
> >         switch (hw->mac.type) {
> >         case e1000_pch2lan:
> >                 ret_val = e1000_k1_workaround_lv(hw);
> >                 if (ret_val)
> > -                       return ret_val;
> > +                       goto out;
> >                 /* fall-thru */
> >         case e1000_pchlan:
> >                 if (hw->phy.type == e1000_phy_82578) {
> >                         ret_val = e1000_link_stall_workaround_hv(hw);
> >                         if (ret_val)
> > -                               return ret_val;
> > +                               goto out;
> >                 }
> >
> >                 /* Workaround for PCHx parts in half-duplex:
> > @@ -1595,7 +1596,7 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
> >         if (hw->phy.type > e1000_phy_82579) {
> >                 ret_val = e1000_set_eee_pchlan(hw);
> >                 if (ret_val)
> > -                       return ret_val;
> > +                       goto out;
> >         }
> >
> >         /* If we are forcing speed/duplex, then we simply return since
> > @@ -1618,10 +1619,14 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
> >         ret_val = e1000e_config_fc_after_link_up(hw);
> >         if (ret_val) {
> >                 e_dbg("Error configuring flow control\n");
> > -               return ret_val;
> > +               goto out;
> >         }
> 
> Technically these changes would be a change in behavior. For these we
> may just want to leave them as-is since I am not certain they would
> have any actual impact on the link state other than delaying the
> link-up. For example do we really care if we fail to negotiate flow
> control? We may not so we might report link up and just a debug
> message indicating we didn't negotiate that part of the link.

You're right and actually that raises yet another problem with commit
19110cfbb34d ("e1000e: Separate signaling for link check/link up").

Previously these errors which come after the "get_link_status = false"
would be ignored and the link considered up. After that commit, any
error implies that the link is down:

-			link_active = !hw->mac.get_link_status;
+			link_active = ret_val > 0;

I'll send a patch to fix that problem first and then get back to this
race.

  reply	other threads:[~2018-02-28  5:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-26  9:12 [PATCH 0/3] e1000e: Revert interrupt handling changes Benjamin Poirier
2018-01-26  9:12 ` [PATCH 1/3] Partial revert "e1000e: Avoid receiver overrun interrupt bursts" Benjamin Poirier
2018-01-26 16:50   ` Alexander Duyck
2018-01-29  7:20     ` Benjamin Poirier
2018-01-29 15:42       ` Alexander Duyck
2018-01-26  9:12 ` [PATCH 2/3] Revert "e1000e: Separate signaling for link check/link up" Benjamin Poirier
2018-01-26 17:03   ` Alexander Duyck
2018-01-29  7:21     ` Benjamin Poirier
2018-01-29 15:48       ` Alexander Duyck
2018-02-26  2:31         ` [RFC PATCH] e1000e: Fix link check race condition Benjamin Poirier
2018-02-26 16:14           ` Alexander Duyck
2018-02-28  5:19             ` Benjamin Poirier [this message]
2018-01-26  9:12 ` [PATCH 3/3] Revert "e1000e: Do not read ICR in Other interrupt" Benjamin Poirier
2018-01-26 21:01   ` Alexander Duyck
2018-01-29  7:28     ` Benjamin Poirier
2018-01-29 17:22       ` Alexander Duyck
2018-02-08  6:40         ` Benjamin Poirier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180228051912.cueusc3wn44ksdc3@f1.synalogic.ca \
    --to=bpoirier@suse.com \
    --cc=alexander.duyck@gmail.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).