irqchip/gic-v4.1: Use readx_poll_timeout_atomic() to fix sleep in atomic
authorZenghui Yu <yuzenghui@huawei.com>
Fri, 5 Jun 2020 05:23:45 +0000 (13:23 +0800)
committerMarc Zyngier <maz@kernel.org>
Sun, 21 Jun 2020 14:13:11 +0000 (15:13 +0100)
commit31dbb6b1d025506b3b8b8b74e9b697df47b9f696
tree671fe65d9fb684d300d3f44324e9a6b67c65ffa0
parenta23df9a4bd326fb4c7f160b72b0e0560b989ac29
irqchip/gic-v4.1: Use readx_poll_timeout_atomic() to fix sleep in atomic

readx_poll_timeout() can sleep if @sleep_us is specified by the caller,
and is therefore unsafe to be used inside the atomic context, which is
this case when we use it to poll the GICR_VPENDBASER.Dirty bit in
irq_set_vcpu_affinity() callback.

Let's convert to its atomic version instead which helps to get the v4.1
board back to life!

Fixes: 96806229ca03 ("irqchip/gic-v4.1: Add support for VPENDBASER's Dirty+Valid signaling")
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200605052345.1494-1-yuzenghui@huawei.com
drivers/irqchip/irq-gic-v3-its.c