No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Sebastian Andrzej Siewior 6dea95f640 hsr: Avoid double remove of a node.
[ Upstream commit 0c74d9f79ec4299365bbe803baa736ae0068179e ]

Due to the hashed-MAC optimisation one problem become visible:
hsr_handle_sup_frame() walks over the list of available nodes and merges
two node entries into one if based on the information in the supervision
both MAC addresses belong to one node. The list-walk happens on a RCU
protected list and delete operation happens under a lock.

If the supervision arrives on both slave interfaces at the same time
then this delete operation can occur simultaneously on two CPUs. The
result is the first-CPU deletes the from the list and the second CPUs
BUGs while attempting to dereference a poisoned list-entry. This happens
more likely with the optimisation because a new node for the mac_B entry
is created once a packet has been received and removed (merged) once the
supervision frame has been received.

Avoid removing/ cleaning up a hsr_node twice by adding a `removed' field
which is set to true after the removal and checked before the removal.

Fixes: f266a683a4 ("net/hsr: Better frame dispatch")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-18 11:41:09 +01:00
arch MIPS: OCTEON: warn only once if deprecated link status is being used 2023-01-18 11:40:58 +01:00
block block: unhash blkdev part inode when the part is deleted 2022-12-19 12:24:16 +01:00
certs
crypto crypto: akcipher - default implementation for setting a private key 2022-10-26 13:22:45 +02:00
Documentation ASoC: dt-bindings: wcd9335: fix reset line polarity in example 2023-01-18 11:41:06 +01:00
drivers clk: qcom: clk-krait: fix wrong div2 functions 2023-01-18 11:41:09 +01:00
fs NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn 2023-01-18 11:41:07 +01:00
include bonding: Rename slave_arr to usable_slaves 2023-01-18 11:41:05 +01:00
init init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash 2022-12-08 11:22:59 +01:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:23:06 +01:00
kernel bpf: propagate precision in ALU/ALU64 operations 2023-01-18 11:41:02 +01:00
lib lib/notifier-error-inject: fix error when writing -errno to debugfs file 2023-01-18 11:40:55 +01:00
LICENSES
mm mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page 2022-12-19 12:24:15 +01:00
net hsr: Avoid double remove of a node. 2023-01-18 11:41:09 +01:00
samples
scripts scripts/faddr2line: Fix regression in name resolution on ppc64le 2022-12-08 11:23:02 +01:00
security ima: Fix misuse of dereference of pointer in template_desc_init_fields() 2023-01-18 11:41:03 +01:00
sound ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe 2023-01-18 11:41:08 +01:00
tools netfilter: conntrack: set icmpv6 redirects as RELATED 2023-01-18 11:41:08 +01:00
usr
virt KVM: arm64: vgic: Fix exit condition in scan_its_table() 2022-10-29 10:20:35 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add Chandan as xfs maintainer for 5.4.y 2022-09-28 11:03:58 +02:00
Makefile Linux 5.4.228 2022-12-19 12:24:17 +01:00
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.