From 9a5e22b64266c19b2b01c47a6728be42a8195e52 Mon Sep 17 00:00:00 2001 From: Stewart Hildebrand Date: Fri, 18 Apr 2025 14:58:36 -0400 Subject: [PATCH] xen/arm: check read handler behavior MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- xen/arch/arm/io.c | 2 ++ 1 file changed, 2 insertions(+) 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); -- 2.39.5