OSDN Git Service

irqchip/gic: Take lock when updating irq type
authorAniruddha Banerjee <aniruddhab@nvidia.com>
Wed, 28 Mar 2018 13:42:00 +0000 (19:12 +0530)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 29 Mar 2018 10:47:50 +0000 (11:47 +0100)
commitaa08192a254d362a4d5317647a81de6996961aef
tree4078cc6883332ae0fda2dca708cd5ace43a4a354
parentd01d327406d9c36e066181240ac078b636871de8
irqchip/gic: Take lock when updating irq type

Most MMIO GIC register accesses use a 1-hot bit scheme that
avoids requiring any form of locking. This isn't true for the
GICD_ICFGRn registers, which require a RMW sequence.

Unfortunately, we seem to be missing a lock for these particular
accesses, which could result in a race condition if changing the
trigger type on any two interrupts within the same set of 16
interrupts (and thus controlled by the same CFGR register).

Introduce a private lock in the GIC common comde for this
particular case, making it cover both GIC implementations
in one go.

Cc: stable@vger.kernel.org
Signed-off-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
[maz: updated changelog]
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-common.c