printk(XENLOG_G_ERR
"%pv: vGICR: unhandled read r%d offset %#08x\n",
v, dabt.reg, gicr_reg);
- return 0;
+ goto read_as_zero;
}
bad_width:
printk(XENLOG_G_ERR "%pv vGICR: bad read width %d r%d offset %#08x\n",
*r = 0;
return 1;
+read_as_zero:
+ *r = 0;
+ return 1;
+
read_impl_defined:
printk(XENLOG_G_DEBUG
"%pv: vGICR: RAZ on implementation defined register offset %#08x\n",
default:
printk(XENLOG_G_ERR "%pv: vGICR: unhandled write r%d offset %#08x\n",
v, dabt.reg, gicr_reg);
- return 0;
+ goto write_ignore;
}
bad_width:
printk(XENLOG_G_ERR
if ( dabt.size != DABT_WORD ) goto bad_width;
return 1;
+write_ignore:
+ return 1;
+
write_impl_defined:
printk(XENLOG_G_DEBUG
"%pv: vGICR: WI on implementation defined register offset %#08x\n",
printk(XENLOG_G_ERR
"%pv: vGICR: SGI: unhandled read r%d offset %#08x\n",
v, dabt.reg, gicr_reg);
- return 0;
+ goto read_as_zero;
}
bad_width:
printk(XENLOG_G_ERR "%pv: vGICR: SGI: bad read width %d r%d offset %#08x\n",
printk(XENLOG_G_ERR
"%pv: vGICR: SGI: unhandled write r%d offset %#08x\n",
v, dabt.reg, gicr_reg);
- return 0;
+ goto write_ignore;
}
bad_width:
write_ignore_32:
if ( dabt.size != DABT_WORD ) goto bad_width;
return 1;
+
+write_ignore:
+ return 1;
}
static struct vcpu *get_vcpu_from_rdist(struct domain *d,
default:
printk(XENLOG_G_ERR "%pv: vGICD: unhandled read r%d offset %#08x\n",
v, dabt.reg, gicd_reg);
- return 0;
+ goto read_as_zero;
}
bad_width:
printk(XENLOG_G_ERR
"%pv: vGICD: unhandled write r%d=%"PRIregister" offset %#08x\n",
v, dabt.reg, r, gicd_reg);
- return 0;
+ goto write_ignore;
}
bad_width: