<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/atheros, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-06-30T00:08:02Z</updated>
<entry>
<title>net: alx: fix race condition in alx_remove</title>
<updated>2020-06-30T00:08:02Z</updated>
<author>
<name>Zekun Shen</name>
</author>
<published>2020-06-15T15:50:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=120736d175d2b339f1cdb98577ee09be89356275'/>
<id>urn:sha1:120736d175d2b339f1cdb98577ee09be89356275</id>
<content type='text'>
[ Upstream commit e89df5c4322c1bf495f62d74745895b5fd2a4393 ]

There is a race condition exist during termination. The path is
alx_stop and then alx_remove. An alx_schedule_link_check could be called
before alx_stop by interrupt handler and invoke alx_link_check later.
Alx_stop frees the napis, and alx_remove cancels any pending works.
If any of the work is scheduled before termination and invoked before
alx_remove, a null-ptr-deref occurs because both expect alx-&gt;napis[i].

This patch fix the race condition by moving cancel_work_sync functions
before alx_free_napis inside alx_stop. Because interrupt handler can call
alx_schedule_link_check again, alx_free_irq is moved before
cancel_work_sync calls too.

Signed-off-by: Zekun Shen &lt;bruceshenzk@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>atl1e: checking the status of atl1e_write_phy_reg</title>
<updated>2019-12-05T14:27:02Z</updated>
<author>
<name>Kangjie Lu</name>
</author>
<published>2018-12-26T04:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c97734b244ad96515df73ef4d95df8129fd6c0f'/>
<id>urn:sha1:0c97734b244ad96515df73ef4d95df8129fd6c0f</id>
<content type='text'>
[ Upstream commit ff07d48d7bc0974d4f96a85a4df14564fb09f1ef ]

atl1e_write_phy_reg() could fail. The fix issues an error message when
it fails.

Signed-off-by: Kangjie Lu &lt;kjlu@umn.edu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: set static variable an initial value in atl2_probe()</title>
<updated>2019-03-23T07:44:34Z</updated>
<author>
<name>Mao Wenan</name>
</author>
<published>2019-02-22T06:57:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8bbb2ce3da911a527e4c60d9a5a0003f4c6bac70'/>
<id>urn:sha1:8bbb2ce3da911a527e4c60d9a5a0003f4c6bac70</id>
<content type='text'>
[ Upstream commit 4593403fa516a5a4cffe6883c5062d60932cbfbe ]

cards_found is a static variable, but when it enters atl2_probe(),
cards_found is set to zero, the value is not consistent with last probe,
so next behavior is not our expect.

Signed-off-by: Mao Wenan &lt;maowenan@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>atl1c: reserve min skb headroom</title>
<updated>2018-09-05T07:18:35Z</updated>
<author>
<name>Florian Westphal</name>
</author>
<published>2018-07-20T17:30:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=405d3fdb6b8671d73377f619e1971ce4fece7a50'/>
<id>urn:sha1:405d3fdb6b8671d73377f619e1971ce4fece7a50</id>
<content type='text'>
[ Upstream commit 6e56830776828d8ca9897fc4429eeab47c3bb432 ]

Got crash report with following backtrace:
BUG: unable to handle kernel paging request at ffff8801869daffe
RIP: 0010:[&lt;ffffffff816429c4&gt;]  [&lt;ffffffff816429c4&gt;] ip6_finish_output2+0x394/0x4c0
RSP: 0018:ffff880186c83a98  EFLAGS: 00010283
RAX: ffff8801869db00e ...
  [&lt;ffffffff81644cdc&gt;] ip6_finish_output+0x8c/0xf0
  [&lt;ffffffff81644d97&gt;] ip6_output+0x57/0x100
  [&lt;ffffffff81643dc9&gt;] ip6_forward+0x4b9/0x840
  [&lt;ffffffff81645566&gt;] ip6_rcv_finish+0x66/0xc0
  [&lt;ffffffff81645db9&gt;] ipv6_rcv+0x319/0x530
  [&lt;ffffffff815892ac&gt;] netif_receive_skb+0x1c/0x70
  [&lt;ffffffffc0060bec&gt;] atl1c_clean+0x1ec/0x310 [atl1c]
  ...

The bad access is in neigh_hh_output(), at skb-&gt;data - 16 (HH_DATA_MOD).
atl1c driver provided skb with no headroom, so 14 bytes (ethernet
header) got pulled, but then 16 are copied.

Reserve NET_SKB_PAD bytes headroom, like netdev_alloc_skb().

Compile tested only; I lack hardware.

Fixes: 7b7017642199 ("atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring")
Signed-off-by: Florian Westphal &lt;fw@strlen.de&gt;
Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net: alx: Work around the DMA RX overflow issue</title>
<updated>2016-07-11T16:31:12Z</updated>
<author>
<name>Feng Tang</name>
</author>
<published>2016-06-24T07:26:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=999e0d18786192faf8240a5048dd1a08cf5d4bd0'/>
<id>urn:sha1:999e0d18786192faf8240a5048dd1a08cf5d4bd0</id>
<content type='text'>
[ Upstream commit 881d0327db37ad917a367c77aff1afa1ee41e0a9 ]

Note: This is a verified backported patch for stable 4.4 kernel, and it
could also be applied to 4.3/4.2/4.1/3.18/3.16

There is a problem with alx devices, that the network link will be
lost in 1-5 minutes after the device is up.

&gt;From debugging without datasheet, we found the error always
happen when the DMA RX address is set to 0x....fc0, which is very
likely to be a HW/silicon problem.

This patch will apply rx skb with 64 bytes longer space, and if the
allocated skb has a 0x...fc0 address, it will use skb_resever(skb, 64)
to advance the address, so that the RX overflow can be avoided.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70761
Signed-off-by: Feng Tang &lt;feng.tang@intel.com&gt;
Suggested-by: Eric Dumazet &lt;edumazet@google.com&gt;
Tested-by: Ole Lukoie &lt;olelukoie@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>atl2: Disable unimplemented scatter/gather feature</title>
<updated>2016-05-19T00:06:36Z</updated>
<author>
<name>Ben Hutchings</name>
</author>
<published>2016-04-20T22:23:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5c9a73c501e8aed86dd578309813c7818ca248c'/>
<id>urn:sha1:b5c9a73c501e8aed86dd578309813c7818ca248c</id>
<content type='text'>
[ Upstream commit f43bfaeddc79effbf3d0fcb53ca477cca66f3db8 ]

atl2 includes NETIF_F_SG in hw_features even though it has no support
for non-linear skbs.  This bug was originally harmless since the
driver does not claim to implement checksum offload and that used to
be a requirement for SG.

Now that SG and checksum offload are independent features, if you
explicitly enable SG *and* use one of the rare protocols that can use
SG without checkusm offload, this potentially leaks sensitive
information (before you notice that it just isn't working).  Therefore
this obscure bug has been designated CVE-2016-2117.

Reported-by: Justin Yackoski &lt;jyackoski@crypto-nite.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Fixes: ec5f06156423 ("net: Kill link between CSUM and SG features.")
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>atl1c: Improve driver not to do order 4 GFP_ATOMIC allocation</title>
<updated>2015-12-04T22:01:00Z</updated>
<author>
<name>Pavel Machek</name>
</author>
<published>2015-12-04T08:50:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f2a3771ae8aca879c32336c76ad05a017629bae2'/>
<id>urn:sha1:f2a3771ae8aca879c32336c76ad05a017629bae2</id>
<content type='text'>
atl1c driver is doing order-4 allocation with GFP_ATOMIC
priority. That often breaks  networking after resume. Switch to
GFP_KERNEL. Still not ideal, but should be significantly better.

atl1c_setup_ring_resources() is called from .open() function, and
already uses GFP_KERNEL, so this change is safe.

Signed-off-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Acked-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethernet/atheros/alx: add Killer E2400 device ID</title>
<updated>2015-11-18T19:58:04Z</updated>
<author>
<name>Ben Pope</name>
</author>
<published>2015-11-18T01:21:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0208e951d55c435137543e12d7ee795c3784713a'/>
<id>urn:sha1:0208e951d55c435137543e12d7ee795c3784713a</id>
<content type='text'>
This patch adds the PCI device ID (0xe0a1) and alx_pci_tbl entry for the
Killer E2400 Ethernet controller, modeled after the Killer E2200
controller support (0xe091) already present in the alx driver.

This patch was originally authored by Ben Pope, but it got held up by
issues in the commit message, so I'm resubmitting it on his behalf.

I've extensively used a kernel with this patch on a System76 serw9
laptop and am quite confident it works well (at least on the hardware I
have available for testing).

Note that as a favor to System76, Ubuntu has been carrying this as a
sauce patch in their 4.2 based Wily kernel, which presumably has given
it real-world testing on other E2400 equipped hardware (I don't know of
any Ubuntu kernel bugs filed about it):

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1498633

Signed-off-by: Jason Gerard DeRose &lt;jason@system76.com&gt;
Signed-off-by: Ben Pope &lt;benpope81@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers/net: get rid of unnecessary initializations in .get_drvinfo()</title>
<updated>2015-10-16T07:24:10Z</updated>
<author>
<name>Ivan Vecera</name>
</author>
<published>2015-10-15T19:28:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=47ea0325337b166c1c8695119aa6e83cdc035ef5'/>
<id>urn:sha1:47ea0325337b166c1c8695119aa6e83cdc035ef5</id>
<content type='text'>
Many drivers initialize uselessly n_priv_flags, n_stats, testinfo_len,
eedump_len &amp; regdump_len fields in their .get_drvinfo() ethtool op.
It's not necessary as these fields is filled in ethtool_get_drvinfo().

v2: removed unused variable
v3: removed another unused variable

Signed-off-by: Ivan Vecera &lt;ivecera@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: atl1c: add BQL support</title>
<updated>2015-08-12T23:27:40Z</updated>
<author>
<name>Ron Angeles</name>
</author>
<published>2015-08-12T06:01:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=47b344b27a003fcdaccbdc07b3d558a7ccdfec04'/>
<id>urn:sha1:47b344b27a003fcdaccbdc07b3d558a7ccdfec04</id>
<content type='text'>
This BQL implementation is mostly derived from its related driver, alx.
Tested on AR8131 (rev c0) [1969:1063]. Saturated a 100mbps link with 5
concurrent runs of netperf. Ping latency dropped from 14ms to 3ms.

Signed-off-by: Ron Angeles &lt;ronangeles@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
