From: Stewart Hildebrand Date: Fri, 18 Apr 2025 18:58:36 +0000 (-0400) Subject: xen/arm: check read handler behavior X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;ds=sidebyside;p=xen.git xen/arm: check read handler behavior We expect mmio read handlers to leave the bits above the access size zeroed. Add an ASSERT to check this aspect of read handler behavior. Suggested-by: Roger Pau Monné Signed-off-by: Stewart Hildebrand Acked-by: Julien Grall --- diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c index 653428e16c..5a4b0e8f25 100644 --- a/xen/arch/arm/io.c +++ b/xen/arch/arm/io.c @@ -37,6 +37,8 @@ static enum io_state handle_read(const struct mmio_handler *handler, if ( !handler->ops->read(v, info, &r, handler->priv) ) return IO_ABORT; + ASSERT((r & ~GENMASK((1U << info->dabt.size) * 8 - 1, 0)) == 0); + r = sign_extend(dabt, r); set_user_reg(regs, dabt.reg, r);