From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756816AbbIYOwj (ORCPT ); Fri, 25 Sep 2015 10:52:39 -0400 Received: from smtp.citrix.com ([66.165.176.89]:18767 "EHLO SMTP.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756359AbbIYOwe (ORCPT ); Fri, 25 Sep 2015 10:52:34 -0400 X-IronPort-AV: E=Sophos;i="5.17,587,1437436800"; d="scan'208";a="302441430" From: Julien Grall To: CC: , , , , "Julien Grall" Subject: [PATCH v1 0/8] xen/arm: vgic: Support 32-bit access for 64-bit register Date: Fri, 25 Sep 2015 15:50:59 +0100 Message-ID: <1443192667-16112-1-git-send-email-julien.grall@citrix.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-DLP: MIA2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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