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>