1
0
Fork 0
Fork of alistair23 Linux kernel for reMarkable from https://github.com/alistair23/linux
 
 
 
 
 
 
Go to file
Jan Kiszka a1a73e42a4 ivshmem-net: Fix TX queue locking and plug notification races
This reworks the broken locking of the TX queue from ground up. The
locking was broken in many ways. It didn't protect the critical state
in ivshm_net_queue consistently, leaving phases from cleanup was reading
intermediate states while xmit was running. ivshm_net_tx_ok also has to
be covered by the lock because it tests both num_free and tail against
head. The new locking is reusing the TX queue lock of the device because
this is already held across ivshm_net_xmit.

Furthermore, there were many races between the sender and the receiver
around enabling and evaluating TX interrupts. One was about turning on
the TX completion interrupt only after signaling the submission of
packets. That could potentially cause the peer to miss the need for
signaling completion.

The other race that led to stalled senders was around not properly
re-checking for updates and not posting own updates while processing
freed TX descriptors in ivshm_net_tx_clean. Doing so could cause the
sender to miss that there are more free entries or cause the receiver to
stop signaling further free ones after kicking the sender for the first.

Acked-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2020-04-29 15:03:04 +08:00
Documentation MLK-23674-2 doc: SECO MU driver binding for cmd and rsp tags 2020-04-22 15:56:40 +02:00
LICENSES LICENSES: Rename other to deprecated 2019-05-03 06:34:32 -06:00
arch MLK-23865 ARM64: dts: enable dma support for lpspi 2020-04-28 16:07:44 +08:00
block This is the 5.4.24 stable release 2020-03-08 18:57:18 +08:00
certs PKCS#7: Refactor verify_pkcs7_signature() 2019-08-05 18:40:18 -04:00
crypto crypto: tls - fix logical-not-parentheses compile warning 2020-04-07 11:13:12 +03:00
drivers ivshmem-net: Fix TX queue locking and plug notification races 2020-04-29 15:03:04 +08:00
fs xfs: clear kernel only flags in XFS_IOC_ATTRMULTI_BY_HANDLE 2020-03-05 16:43:51 +01:00
include MLK-23674-1 imx: scu-pd: add V2X MU resources 2020-04-22 15:56:40 +02:00
init kbuild: remove header compile test 2020-03-05 16:43:47 +01:00
ipc Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()" 2020-02-28 17:22:20 +01:00
kernel blktrace: Protect q->blk_trace with RCU 2020-03-05 16:43:52 +01:00
lib This is the 5.4.24 stable release 2020-03-08 18:57:18 +08:00
mm mm, thp: fix defrag setting if newline is not used 2020-03-05 16:43:51 +01:00
net This is the 5.4.24 stable release 2020-03-08 18:57:18 +08:00
samples samples/bpf: Set -fno-stack-protector when building BPF programs 2020-02-24 08:36:36 +01:00
scripts kbuild: move headers_check rule to usr/include/Makefile 2020-03-05 16:43:47 +01:00
security MLK-23620-1 security/keys/secure_key: update the check for the return code of caam_jr_enqueue function 2020-03-19 11:06:49 +02:00
sound MLK-23854-2 ASoC: SOF: Check correct return value 2020-04-27 18:16:17 +03:00
tools MLK-23724-2 perf vender events: add JSON metrics for imx8dxl DDR Perf 2020-04-01 18:04:33 +08:00
usr kbuild: move headers_check rule to usr/include/Makefile 2020-03-05 16:43:47 +01:00
virt This is the 5.4.24 stable release 2020-03-08 18:57:18 +08:00
.clang-format clang-format: Update with the latest for_each macro list 2019-08-31 10:00:51 +02:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Modules updates for v5.4 2019-09-22 10:34:46 -07:00
.mailmap ARM: SoC fixes 2019-11-10 13:41:59 -08:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS MAINTAINERS: Remove Simon as Renesas SoC Co-Maintainer 2019-10-10 08:12:51 -07:00
Kbuild kbuild: do not descend to ./Kbuild when cleaning 2019-08-21 21:03:58 +09:00
Kconfig docs: kbuild: convert docs to ReST and rename to *.rst 2019-06-14 14:21:21 -06:00
MAINTAINERS This is the 5.4.24 stable release 2020-03-08 18:57:18 +08:00
Makefile Linux 5.4.24 2020-03-05 16:43:52 +01:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06: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.