]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: PPC: Book 3S: XICS: Don't lock twice when checking for resend
authorLi Zhong <zhong@linux.vnet.ibm.com>
Fri, 11 Nov 2016 04:57:36 +0000 (12:57 +0800)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 26 Jan 2017 23:27:21 +0000 (10:27 +1100)
commite0bc6ba735cb29e2895f3ebf928a44d09e4993a5
tree88a95b3fe1edda599b48c4a4fb6c14b54133e5fe
parentbb4265d23f5c007970e5ac3f23bc06214ab0c97b
KVM: PPC: Book 3S: XICS: Don't lock twice when checking for resend

This patch improves the code that takes lock twice to check the resend flag
and do the actual resending, by checking the resend flag locklessly, and
add a boolean parameter check_resend to icp_[rm_]deliver_irq(), so the
resend flag can be checked in the lock when doing the delivery.

We need make sure when we clear the ics's bit in the icp's resend_map, we
don't miss the resend flag of the irqs that set the bit. It could be
ordered through the barrier in test_and_clear_bit(), and a newly added
wmb between setting irq's resend flag, and icp's resend_map.

Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/kvm/book3s_hv_rm_xics.c
arch/powerpc/kvm/book3s_xics.c