linux-xiaomi-chiron/include
Sebastian Andrzej Siewior bf11b9a8e9 shmem: use raw_spinlock_t for ->stat_lock
Each CPU has SHMEM_INO_BATCH inodes available in `->ino_batch' which is
per-CPU.  Access here is serialized by disabling preemption.  If the pool
is empty, it gets reloaded from `->next_ino'.  Access here is serialized
by ->stat_lock which is a spinlock_t and can not be acquired with disabled
preemption.

One way around it would make per-CPU ino_batch struct containing the inode
number a local_lock_t.

Another solution is to promote ->stat_lock to a raw_spinlock_t.  The
critical sections are short.  The mpol_put() must be moved outside of the
critical section to avoid invoking the destructor with disabled
preemption.

Link: https://lkml.kernel.org/r/20210806142916.jdwkb5bx62q5fwfo@linutronix.de
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-09-03 09:58:11 -07:00
..
acpi ACPI: fix NULL pointer dereference 2021-07-24 15:25:54 -07:00
asm-generic vmlinux.lds.h: Handle clang's module.{c,d}tor sections 2021-08-11 12:19:58 -07:00
clocksource clocksource/drivers/timer-ti-dm: Save and restore timer TIOCP_CFG 2021-06-15 14:14:14 +02:00
crypto crypto: scatterwalk - Remove obsolete PageSlab check 2021-06-28 11:28:08 +08:00
drm drm: Return -ENOTTY for non-drm ioctls 2021-07-20 15:57:43 +02:00
dt-bindings dt-bindings: clock: r9a07g044-cpg: Update clock/reset definitions 2021-07-12 10:52:03 +02:00
keys
kunit linux-kselftest-kunit-fixes-5.14-rc1 2021-07-02 12:58:26 -07:00
kvm KVM: arm64: vgic: Implement SW-driven deactivation 2021-06-01 10:46:00 +01:00
linux shmem: use raw_spinlock_t for ->stat_lock 2021-09-03 09:58:11 -07:00
math-emu math-emu: Fix fall-through warning 2021-07-13 13:57:44 -05:00
media media: Fix Media Controller API config checks 2021-06-24 14:26:00 +02:00
memory memory: renesas-rpc-if: correct whitespace 2021-06-03 13:12:37 +02:00
misc
net ipv6: correct comments about fib6_node sernum 2021-08-24 09:59:01 +01:00
pcmcia
ras
rdma IB/core: Shuffle locks in ib_port_data to save memory 2021-06-21 20:49:32 -03:00
scsi SCSI misc on 20210702 2021-07-02 15:14:36 -07:00
soc Memory controller drivers for v5.14 - Tegra SoC, late fixes 2021-07-16 22:51:01 +02:00
sound ASoC: Fixes for v5.14 2021-07-21 19:48:09 +02:00
target scsi: target: core: Add configurable IEEE Company ID attribute 2021-05-15 14:14:28 -04:00
trace mmflags.h: add missing __GFP_ZEROTAGS and __GFP_SKIP_KASAN_POISON names 2021-08-20 11:31:42 -07:00
uapi Revert "media: dvb header files: move some headers to staging" 2021-08-23 09:49:09 -07:00
vdso
video gpu: ipu-v3: Add Rec.709 limited range support to DP 2021-05-10 17:20:29 +02:00
xen xen: sync include/xen/interface/io/ring.h with Xen's newest version 2021-07-05 09:49:45 +02:00