arm/arm64: KVM: Fix unaligned access bug on gicv2 access
authorChristoffer Dall <christoffer.dall@linaro.org>
Mon, 22 Sep 2014 20:10:36 +0000 (22:10 +0200)
committerChristoffer Dall <christoffer.dall@linaro.org>
Mon, 22 Sep 2014 21:05:56 +0000 (23:05 +0200)
commit1f2bb4acc125edc2c06db3ad3e8c699bc075ad52
treeea414717822d6eab576c3c8cd7aed692fabfa1ba
parent05e0127f9e362b36aa35f17b1a3d52bca9322a3a
arm/arm64: KVM: Fix unaligned access bug on gicv2 access

We were using an atomic bitop on the vgic_v2.vgic_elrsr field which was
not aligned to the natural size on 64-bit platforms.  This bug showed up
after QEMU correctly identifies the pl011 line as being level-triggered,
and not edge-triggered.

These data structures are protected by a spinlock so simply use a
non-atomic version of the accessor instead.

Tested-by: Joel Schopp <joel.schopp@amd.com>
Reported-by: Riku Voipio <riku.voipio@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
virt/kvm/arm/vgic-v2.c