[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 4/4] xen/drivers/char: fix exynos4210 IRQ registration failure propagation
- To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Oleksii Moisieiev <Oleksii_Moisieiev@xxxxxxxx>
- Date: Thu, 9 Apr 2026 13:50:27 +0000
- Accept-language: en-US
- 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=jHTUPc+0Yn1eQpeQBKN/rncMUFe7rtRQF5uHYfz3Cvs=; b=g05rZbdPBwmdNTxDpkV+mmWjgMo15ZxhtG9sSjDMyt6+5nFz2GSqcEoDKIMr5jHkDY0iMzgDX8aWyVnjKGsl5iWI2zfzxThWxvJVmTar+2OJw2bdPjTtGDuM1ugFwzbuZwl9eODC9r3H7fHvfi7KHKHH1KIMRSczaCbZ++ChpjuvqBdDfnt6+FikjpxBgAmlekt2N1gM/XDIxhBWxCf5HM3nSJANlFhOJ1F2JCruytoYu3d2l689pHZnQf0tVbLinHKRCM4gpRZJc+/Ir7sTAkp2UOvtre99Y6e39R8FxSPeA6OpKHuMIWjcupx2mfDi8AtHyqXMkG9zQDyl0RBB+g==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BcKRM+P9oMVXFy3WKaA1/GSsutKdusNeW7iAL6lnL8YOw1GBGINqhf0MSo3ZE9rzAt4ivtra/DITzWXqtN99CctI0qQZZOlahBckEFtf05XCuAbughxibt8EULXrxmMtW3dOFTKEzetv7yMyCy8/LQrEIF3IJvdZhCgSRBNz5nBkcZTtuqKfA1ZGIIyxqYMy7xV7xo6tcUatHKZ4771bWh2WxP+UZvrnX7oThb1MBhHX0fbHiaPnwYtTwY9y013vY/uADvz732bs8imGRe1VwF0lWSW24LZSfrsJHTF/KgO5FBOmYLjzaa5FWFeWVfyhVWjK8ccKd7DjBVsKpJdtEg==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
- Cc: Bertrand Marquis <bertrand.marquis@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Oleksii Moisieiev <Oleksii_Moisieiev@xxxxxxxx>
- Delivery-date: Thu, 09 Apr 2026 13:50:41 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Thread-index: AQHcyCfSPi7W/0ovn0ufnBNUSA+61g==
- Thread-topic: [PATCH v2 4/4] xen/drivers/char: fix exynos4210 IRQ registration failure propagation
In exynos4210_uart_init_postirq(), when setup_irq() returns an error
the failure was only logged via dprintk() and execution continued,
unconditionally clearing UINTM and setting UMCON_INT_EN. This enabled
receive and transmit interrupt lines with no handler registered. On
platforms where the GIC receives these asserted lines, the result is
either repeated spurious-interrupt warnings or an unhandled interrupt
fault.
Add an early return in the setup_irq() error branch so that the
interrupt-enable writes to UINTM and UMCON are skipped when IRQ
registration fails.
Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@xxxxxxxx>
---
xen/drivers/char/exynos4210-uart.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/xen/drivers/char/exynos4210-uart.c
b/xen/drivers/char/exynos4210-uart.c
index 58901df554..2e5860ea2b 100644
--- a/xen/drivers/char/exynos4210-uart.c
+++ b/xen/drivers/char/exynos4210-uart.c
@@ -199,8 +199,12 @@ static void __init exynos4210_uart_init_postirq(struct
serial_port *port)
uart->irqaction.dev_id = port;
if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
+ {
dprintk(XENLOG_ERR, "Failed to allocated exynos4210_uart IRQ %d\n",
uart->irq);
+ /* Don't enable interrupts if irq setup was failed */
+ return;
+ }
/* Unmask interrupts */
exynos4210_write(uart, UINTM, ~UINTM_ALLI);
--
2.43.0
|