locking/rwsem: Disable preemption for spinning region
authorYanfei Xu <yanfei.xu@windriver.com>
Wed, 13 Oct 2021 13:41:53 +0000 (21:41 +0800)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 19 Oct 2021 15:27:05 +0000 (17:27 +0200)
commit7cdacc5f52d68a9370f182c844b5b3e6cc975cc1
treea31349ae579c5b8be359cee93360c70cd48f218e
parentbc67f1c454fbc79b148f0b47227929da82f4b026
locking/rwsem: Disable preemption for spinning region

The spinning region rwsem_spin_on_owner() should not be preempted,
however the rwsem_down_write_slowpath() invokes it and don't disable
preemption. Fix it by adding a pair of preempt_disable/enable().

Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
[peterz: Fix CONFIG_RWSEM_SPIN_ON_OWNER=n build]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Waiman Long <longman@redhat.com>
Link: https://lore.kernel.org/r/20211013134154.1085649-3-yanfei.xu@windriver.com
kernel/locking/rwsem.c