mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: ignore writes to GICD_ICACTIVER ... GICD_ICACTIVERN
Injecting a fault to the guest just because it is writing to one of the GICD_ICACTIVER registers, which are part of the GICv2 and GICv3 specs, is harsh. Additionally it causes recent linux kernels to fail to boot on Xen. Ignore writes to GICD_ICACTIVER ... GICD_ICACTIVERN instead, to solve the boot issue and for backportability. However implementing the registers properly might a better long term solution. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
6884e2b727
commit
68778eeaa3
2 files changed
+2
-4
No files matched your search
@@ -494,11 +494,10 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info,
|
||||
return 0;
|
||||
|
||||
case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
|
||||
if ( dabt.size != DABT_WORD ) goto bad_width;
|
||||
printk(XENLOG_G_ERR
|
||||
"%pv: vGICD: unhandled word write %#"PRIregister" to ICACTIVER%d\n",
|
||||
v, r, gicd_reg - GICD_ICACTIVER);
|
||||
return 0;
|
||||
goto write_ignore_32;
|
||||
|
||||
case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
|
||||
{
|
||||
|
||||
@@ -621,11 +621,10 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
|
||||
return 0;
|
||||
|
||||
case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
|
||||
if ( dabt.size != DABT_WORD ) goto bad_width;
|
||||
printk(XENLOG_G_ERR
|
||||
"%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER%d\n",
|
||||
v, name, r, reg - GICD_ICACTIVER);
|
||||
return 0;
|
||||
goto write_ignore_32;
|
||||
|
||||
case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
|
||||
{
|
||||
|
||||