Hi all, This series aims to fix the 32-bit access on 64-bit register. Some guest OS such as FreeBSD and Linux (only in the ITS) use 32-bit access and will crash at boot time.
I took the opportunity to go further and optimize the way Xen is storing registers such as GICD_IPRIORITYR, GICD_ITARGETR and GICD_IROUTER. Major changes in v2: - Use the helpers in GICv2 - Optimize the assembly input for vgic_regN_* helpers on arm32 - Add support for sign-extension generically - Store GICD_{IPRIORITYR, ITARGETSR, IROUTER} in a better way For all the changes see in each patch. A branch has been pushed based on the lastest staging: git://xenbits.xen.org/people/julieng/xen-unstable.git branch gicv3-32bit-v1 Sincerely yours, Julien Grall (8): xen/arm: io: remove mmio_check_t typedef xen/arm: io: Extend write/read handler to pass the register in parameter xen/arm: Support sign-extension for every read access xen/arm: vgic: ctlr stores a 32-bit hardware register so use uint32_t xen/arm: vgic: Optimize the way to store GICD_IPRIORITYR in the rank xen/arm: vgic: Optimize the way to store the target vCPU in the rank xen/arm: vgic: Introduce helpers to read/write/clear/set vGIC register ... xen/arm: vgic-v3: Support 32-bit access for 64-bit registers xen/arch/arm/io.c | 42 +++++- xen/arch/arm/vgic-v2.c | 295 +++++++++++++++++++++--------------- xen/arch/arm/vgic-v3.c | 352 +++++++++++++++++++++++++------------------ xen/arch/arm/vgic.c | 72 ++++++++- xen/arch/arm/vuart.c | 16 +- xen/include/asm-arm/domain.h | 2 +- xen/include/asm-arm/mmio.h | 5 +- xen/include/asm-arm/vgic.h | 148 +++++++++++++++--- 8 files changed, 617 insertions(+), 315 deletions(-) -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/