Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Nov 2015 11:31:41 -0500
From:      Ryan Stone <rysto32@gmail.com>
To:        Steven Hartland <steven@multiplay.co.uk>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Jack F Vogel <jfv@freebsd.org>
Subject:   Re: Intel XL710 broken link down detection?
Message-ID:  <CAFMmRNwuc4N%2B6TSCFuknbfYZnMzXuuunFbyeGfyaOzYWxgWfaA@mail.gmail.com>
In-Reply-To: <56436A5F.4020102@multiplay.co.uk>
References:  <564357E0.1050002@freebsd.org> <56436A5F.4020102@multiplay.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 11, 2015 at 11:18 AM, Steven Hartland <steven@multiplay.co.uk>
wrote:

> Comparing this to the Linux driver which does detect the link down I've
> discovered it actually polls the link status by default in its watchdog.
>
> Disabling this with "ethtool --set-priv-flags eth1 LinkPolling off" and
> the Linux driver also fails to detect link down.
>
> So this seems like a firmware or even hardware bug where it should be
> reporting down events and the Linux driver has been updated to workaround
> the problem?


No, apparently the Linux devs just didn't read the datasheet closely enough
(and presumably the FreeBSD driver copied the mistake).  There is a mask of
interrupt causes that works backwards from how one would expect; you mask
out events that you *don't* want rather than events that you do want.  Both
the Linux and FreeBSD drivers pass a mask of events that they want
interrupts for (the only reason why it appears to work on link up is that
the the AN Completed event fires when link is up, as far as I can tell).
Try the following patch:

https://people.freebsd.org/~rstone/patches/ixl_link_int.diff



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNwuc4N%2B6TSCFuknbfYZnMzXuuunFbyeGfyaOzYWxgWfaA>