The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)
Перейти к файлу
Boqun Feng 7b1f8c6179 lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage()
In the step #3 of check_irq_usage(), we seach backwards to find a lock
whose usage conflicts the usage of @target_entry1 on safe/unsafe.
However, we should only keep the irq-unsafe usage of @target_entry1 into
consideration, because it could be a case where a lock is hardirq-unsafe
but soft-safe, and in check_irq_usage() we find it because its
hardirq-unsafe could result into a hardirq-safe-unsafe deadlock, but
currently since we don't filter out the other usage bits, so we may find
a lock dependency path softirq-unsafe -> softirq-safe, which in fact
doesn't cause a deadlock. And this may cause misleading lockdep splats.

Fix this by only keeping LOCKF_ENABLED_IRQ_ALL bits when we try the
backwards search.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210618170110.3699115-4-boqun.feng@gmail.com
2021-06-22 16:42:07 +02:00
Documentation locking/lockdep,doc: Improve readability of the block matrix 2021-05-31 10:14:54 +02:00
LICENSES
arch locking/atomic: delete !ARCH_ATOMIC remnants 2021-05-26 13:20:52 +02:00
block block-5.13-2021-05-09 2021-05-09 13:25:14 -07:00
certs Kbuild updates for v5.13 (2nd) 2021-05-08 10:00:11 -07:00
crypto
drivers fbmem: fix horribly incorrect placement of __maybe_unused 2021-05-09 14:03:33 -07:00
fs for-5.13-rc1-part2-tag 2021-05-11 09:43:16 -07:00
include seqlock: Remove trailing semicolon in macros 2021-06-08 20:04:10 +02:00
init Merge branch 'akpm' (patches from Andrew) 2021-05-07 00:34:51 -07:00
ipc ipc/sem.c: spelling fix 2021-05-07 00:26:34 -07:00
kernel lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage() 2021-06-22 16:42:07 +02:00
lib locking/lockdep: Reduce LOCKDEP dependency list 2021-05-31 10:14:54 +02:00
mm mm: fix typos in comments 2021-05-07 00:26:35 -07:00
net locking/atomic: net: use linux/atomic.h for xchg & cmpxchg 2021-05-26 13:20:49 +02:00
samples Kbuild updates for v5.13 (2nd) 2021-05-08 10:00:11 -07:00
scripts locking/atomics: atomic-instrumented: simplify ifdeffery 2021-05-26 13:20:52 +02:00
security
sound sound fixes for 5.13-rc1 2021-05-07 11:40:18 -07:00
tools selftests: futex: Add futex compare requeue test 2021-06-22 11:20:16 +02:00
usr
virt kvm: Cap halt polling at kvm->max_halt_poll_ns 2021-05-07 06:06:22 -04:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Networking fixes for 5.13-rc1, including fixes from bpf, can 2021-05-08 08:31:46 -07:00
Makefile Linux 5.13-rc1 2021-05-09 14:17:44 -07:00
README

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.