No description
Find a file
Tong Zhu d47ec7a0a7 neighbour: Disregard DEAD dst in neigh_update
After a short network outage, the dst_entry is timed out and put
in DST_OBSOLETE_DEAD. We are in this code because arp reply comes
from this neighbour after network recovers. There is a potential
race condition that dst_entry is still in DST_OBSOLETE_DEAD.
With that, another neighbour lookup causes more harm than good.

In best case all packets in arp_queue are lost. This is
counterproductive to the original goal of finding a better path
for those packets.

I observed a worst case with 4.x kernel where a dst_entry in
DST_OBSOLETE_DEAD state is associated with loopback net_device.
It leads to an ethernet header with all zero addresses.
A packet with all zero source MAC address is quite deadly with
mac80211, ath9k and 802.11 block ack.  It fails
ieee80211_find_sta_by_ifaddr in ath9k (xmit.c). Ath9k flushes tx
queue (ath_tx_complete_aggr). BAW (block ack window) is not
updated. BAW logic is damaged and ath9k transmission is disabled.

Signed-off-by: Tong Zhu <zhutong@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-31 14:10:46 -07:00
arch Merge branch 'akpm' (patches from Andrew) 2021-03-25 11:43:43 -07:00
block
certs
crypto
Documentation dt-bindings: net: bcm4908-enet: fix Ethernet generic properties 2021-03-29 16:25:01 -07:00
drivers net: phy: broadcom: Only advertise EEE for supported modes 2021-03-30 17:39:23 -07:00
fs Merge branch 'akpm' (patches from Andrew) 2021-03-25 11:43:43 -07:00
include net: ensure mac header is set in virtio_net_hdr_to_skb() 2021-03-30 17:40:46 -07:00
init
ipc
kernel Merge branch 'akpm' (patches from Andrew) 2021-03-25 11:43:43 -07:00
lib
LICENSES
mm Merge branch 'akpm' (patches from Andrew) 2021-03-25 11:43:43 -07:00
net neighbour: Disregard DEAD dst in neigh_update 2021-03-31 14:10:46 -07:00
samples
scripts
security
sound
tools selftests: forwarding: vxlan_bridge_1d: Add more ECN decap test cases 2021-03-29 13:29:49 -07:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Merge branch 'akpm' (patches from Andrew) 2021-03-25 11:43:43 -07:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: Add entry for Qualcomm IPC Router (QRTR) driver 2021-03-29 13:38:33 -07:00
Makefile
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.