From 10af92d1750fc37566876bcc7c95be7159e3277a Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Mon, 16 Feb 2015 14:50:53 +0000 Subject: [PATCH] xen/arm: vgic-v2: GICD_I{S, C}PENDR* are only word-accessible Signed-off-by: Julien Grall Acked-by: Ian Campbell --- xen/arch/arm/vgic-v2.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 42c64119e3..1f52aebda3 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -95,7 +95,7 @@ static int vgic_v2_distr_mmio_read(struct vcpu *v, mmio_info_t *info) return 1; case GICD_ISPENDR ... GICD_ISPENDRN: - if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD ) goto bad_width; + if ( dabt.size != DABT_WORD ) goto bad_width; rank = vgic_rank_offset(v, 1, gicd_reg - GICD_ISPENDR, DABT_WORD); if ( rank == NULL) goto read_as_zero; vgic_lock_rank(v, rank, flags); @@ -104,8 +104,8 @@ static int vgic_v2_distr_mmio_read(struct vcpu *v, mmio_info_t *info) return 1; case GICD_ICPENDR ... GICD_ICPENDRN: - if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD ) goto bad_width; - rank = vgic_rank_offset(v, 1, gicd_reg - GICD_ICPENDR, DABT_WORD); + if ( dabt.size != DABT_WORD ) goto bad_width; + rank = vgic_rank_offset(v, 0, gicd_reg - GICD_ICPENDR, DABT_WORD); if ( rank == NULL) goto read_as_zero; vgic_lock_rank(v, rank, flags); *r = vgic_byte_read(rank->ipend, dabt.sign, gicd_reg); @@ -334,17 +334,17 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info) return 1; case GICD_ISPENDR ... GICD_ISPENDRN: - if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD ) goto bad_width; + if ( dabt.size != DABT_WORD ) goto bad_width; printk(XENLOG_G_ERR - "%pv: vGICD: unhandled %s write %#"PRIregister" to ISPENDR%d\n", - v, dabt.size ? "word" : "byte", *r, gicd_reg - GICD_ISPENDR); + "%pv: vGICD: unhandled word write %#"PRIregister" to ISPENDR%d\n", + v, *r, gicd_reg - GICD_ISPENDR); return 0; case GICD_ICPENDR ... GICD_ICPENDRN: - if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD ) goto bad_width; + if ( dabt.size != DABT_WORD ) goto bad_width; printk(XENLOG_G_ERR - "%pv: vGICD: unhandled %s write %#"PRIregister" to ICPENDR%d\n", - v, dabt.size ? "word" : "byte", *r, gicd_reg - GICD_ICPENDR); + "%pv: vGICD: unhandled word write %#"PRIregister" to ICPENDR%d\n", + v, *r, gicd_reg - GICD_ICPENDR); return 0; case GICD_ISACTIVER ... GICD_ISACTIVERN: -- 2.39.5