[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2] gic: Replace BUG() with ASSERT_UNREACHABLE() in LPI paths
- To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>
- Date: Tue, 16 Dec 2025 08:22:50 +0000
- Accept-language: en-US, uk-UA, ru-RU
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ex/UrxMpgu7R1i1jcVvwwCh0n4O5CLU0y5hO4NKliXU=; b=L9nwKS7Y6W9jyWA/Bx825p0AFo3JvtiHl5NhNYQ/4WWsNtClECUCYtBF1H28Sh/lk/DIXp6mveGjmNZB9WLSG7+k762ufhoG9bX+fqIF/SzLs4AUwrxy/OGcJBsOnxEtEXBTAmTfpXYKZLp5jkCwz4T7VeeLa584vDK72+6vW0sXBQEIRtc4N4I9ZKNzc9pz5a21l7NoxD3mufHdCKKfq69oiHay1xTnm38AHGmioeivg/7bJ4SjP9US2pL41czXAC4RnqvhnjM5nwA7wfH/hswWmvgt11q90EL2RvAM62Ex7Rv5nSBIIXocXDJ9MSedYLHjIfpo9hIZ1PFSA9gtPQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PPrx3SmYCoWqrdsfMTh/RvXObrc+qMDlT1SIioxlqOwUgCUWXNxinm/XnvG+LyVjSmzQpxeBKnSYG88QrjjQBI0MVkyL6B3o57WAL2LiULGdE9eFbSky97/YxX8Z+q/d+G58dcbvF7uz2Xk6Rf437HjgBCQBhyJi5SuBOTTleK2Cy4zmoOLtu2yNiOfsKusZhHz8JsNUMTI21vE16FZofKPhju/Kk2t2QP9k9xG9OlSJGSWQjcdMLcNBVjIK3Jy7CQ4/sanj8gG4r83xfGVlBtrB9abO1i0LgVWicmZUDkPZsh5V3QwHcCm6XytujcKZ9qSvAHjKK9MAmKig2BTZvg==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
- Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
- Delivery-date: Tue, 16 Dec 2025 08:23:10 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Thread-index: AQHcbmUrcEwVn+26xE+Vc6oA3vTwfQ==
- Thread-topic: [PATCH v2] gic: Replace BUG() with ASSERT_UNREACHABLE() in LPI paths
MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
The GIC LPI driver callbacks violate this due to the use of the BUG()
macro, which causes the function to never return.
Swap BUG() for ASSERT_UNREACHABLE() to satisfy the rule without needing
an additional deviation.
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@xxxxxxxx>
---
Changes in v2:
- replace the BUG with ASSERT_UNRECHEABLE
- drop SAF-based deviation
Link to v1:
https://patchew.org/Xen/b26772df8733dbd1ce6ea14a6e8b73f278db3a3d.1759174857.git.dmytro._5Fprokopchuk1@xxxxxxxx/
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2215606139
---
xen/arch/arm/gic-v2.c | 2 +-
xen/arch/arm/include/asm/gic_v3_its.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index b23e72a3d0..db8bc310ab 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1308,7 +1308,7 @@ static int __init gicv2_init(void)
static void gicv2_do_LPI(unsigned int lpi)
{
/* No LPIs in a GICv2 */
- BUG();
+ ASSERT_UNREACHABLE();
}
static const struct gic_hw_operations gicv2_ops = {
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h
b/xen/arch/arm/include/asm/gic_v3_its.h
index fc5a84892c..09c1538b75 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -232,7 +232,7 @@ static inline unsigned int vgic_v3_its_count(const struct
domain *d)
static inline void gicv3_do_LPI(unsigned int lpi)
{
/* We don't enable LPIs without an ITS. */
- BUG();
+ ASSERT_UNREACHABLE();
}
static inline int gicv3_lpi_init_rdist(void __iomem * rdist_base)
--
2.43.0
|