From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 52320CA5FCE for ; Mon, 5 Oct 2026 01:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Content-Transfer-Encoding:Content-Type:References:In-Reply-To:Cc:To:Subject: From:MIME-Version:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=YMRdMPBRQIrUX61rqc5mlDXTRBhO1/an+eTx2/A0kFU=; b=I6+nU2o7mXapdyDramKlxataEs eIif9m1lB53eTKh5VdBhkI63qLh+zew8OxLalckTIHRCzUuhxMLRIZ3VBq6Pqoe7Bw01qZykJxZ2k wWWKbO6Jy4e5qRpbGPB6PyT45maOrJBIh6ZjF46A12Kh8i2hrMioHnCw3TgPtCRaUxXRJJdrm0Fpl V7pb34pMtUY9OOhJd4sIdPQlIhaQGqBkv2xQpr12QqYkDxqH/TIlMwo6hDnmFpj6ILYzsOQl8v/Us q80A3bOh3ObzljhiywE9QMHvDu4vYG13S/ySRZTX0dp6GYZYFzyMbF6jmtNhvPDr8hB4fHCtF3yNC CZfOXztg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDXiK-0000000FaFz-45WK; Mon, 05 Oct 2026 01:42:00 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDXiJ-0000000FaFf-28l1; Mon, 05 Oct 2026 01:41:59 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id DCC9E60515; Mon, 5 Oct 2026 01:41:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD56B1F000FF; Mon, 5 Oct 2026 01:41:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791164516; bh=YMRdMPBRQIrUX61rqc5mlDXTRBhO1/an+eTx2/A0kFU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=IDVHcEngx0Tjvw7z0pduHY8+I+Ev0IaX397LvhXDxAmF4HfroZIl3RbZ6k2LC/PJn O8yt4kiShPFUmXnha4+IZDdmEG8sxUz8GV2AnI6Zo8OVrFybxPy5yrZ82ofe2hP/UX xLo1IP7YNu2xFLTO+bqRKmdGkp/tMP8QTvfIQ+miXFC3h2QMUIiPscf3JFQc+k2o2x 5ULUmqCOLNZG9KfWvGAuQ9AyEdyUc1eSkcSg1CE9UBja0th+4/rgT6rQ3dro0fP6Jp J4EOTbl5fMsKg5XDUUqSQCIfdqTk4zhB+92r17tELBDIB/vl2POaseI1dWmY5+WF2I kp5/nP/1fYMHw== From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC] genirq/kexec: Do not take the bus lock of an interrupt chip on the crash path To: "Thomas Gleixner" , "Igor Velkov" Cc: "Will Deacon" , "Marc Zyngier" , "Radu Rendec" , "Baoquan He" , "Heiko Stuebner" , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, "Eliav Farber" , kexec@lists.infradead.org, "Catalin Marinas" , "Mark Rutland" In-Reply-To: <20261005-kexec-irq-bus-lock-v1-1-09f6b5323460@iav.lv> References: <20261005-kexec-irq-bus-lock-v1-1-09f6b5323460@iav.lv> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 05 Oct 2026 01:41:55 +0000 Message-Id: <20261005014155.BD56B1F000FF@smtp.kernel.org> X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] irq/kexec: incomplete slow bus check allows hang via irq_bus_syn= c_unlock -- commit a12343156827b9035af6e3982ac65b3437921502 Author: Igor Velkov genirq/kexec: Do not take the bus lock of an interrupt chip on the crash pa= th machine_kexec_mask_interrupts() calls irq_set_irqchip_state() for every started interrupt. That function takes the bus lock of the interrupt chip and syncs the chip when it drops the lock. On the crash path interrupts are off and the other CPUs are stopped, so a chip that needs its bus for the sync never returns. > diff --git a/kernel/irq/kexec.c b/kernel/irq/kexec.c > index 1a3deffe6b5b6..c6c745cc76a25 100644 > --- a/kernel/irq/kexec.c > +++ b/kernel/irq/kexec.c > @@ -20,7 +20,11 @@ void machine_kexec_mask_interrupts(void) > if (!chip || !irqd_is_started(&desc->irq_data)) > continue; > =20 > - if (IS_ENABLED(CONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD)) { > + /* > + * irq_set_irqchip_state() takes the bus lock, and a chip that > + * has one may sleep or talk to its bus when the lock is dropped. > + */ > + if (IS_ENABLED(CONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD) && !chip->ir= q_bus_lock) { [Severity: Medium] Does this check comprehensively protect against slow bus chips? If an irqchip implements irq_bus_sync_unlock but omits irq_bus_lock, this condition evaluates to true and irq_set_irqchip_state() is called. Since irq_set_irqchip_state() ultimately unlocks the descriptor via __irq_put_desc_unlock(), it unconditionally invokes the sync callback: kernel/irq/irqdesc.c:__irq_put_desc_unlock() { ... if (bus) chip_bus_sync_unlock(desc); ... } Executing the sync callback on the crash path without interrupts could hang= the system, defeating the purpose of this patch. Other places in the subsystem check for both callbacks to identify slow bus locking/syncing, for instance: kernel/irq/manage.c:irq_supports_nmi() { ... if (d->chip->irq_bus_lock || d->chip->irq_bus_sync_unlock) return false; ... } Should this check also ensure !chip->irq_bus_sync_unlock? > /* > * First try to remove the active state from an interrupt which is fo= rwarded > * to a VM. If the interrupt is not forwarded, try to EOI the interru= pt. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261005-kexec-irq-= bus-lock-v1-1-09f6b5323460@iav.lv?part=3D1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4426FCA5FF1 for ; Mon, 5 Oct 2026 01:42:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=b+LZ3qdRoZWB4rSXvOp5D/kFI/Z372pJZbL1R+8mJ6U=; b=07DU1+qNLakNE1 0N4zk/1EyVdMwltLempE7eOzIWbls023a2nGAvm4YbQ9y4bbhH+nOiy60pcsFXzahOkRkNxP1UmHe u+5LWvnT6TxFfI8dcAVuBm1hY7ow1bFNacwsIr26Pxtfhk1v7ierdDyGPTMguFOAozMwG862sidVB 53RRPdJtGO2NLlrpihwowAJPrt4SFWxXyNFr+QaCsRoVB3Q7iqfTa/GkXNTpBHmKlvUkdwMQe7uBS 7pE61ObqTAUUoCOJU+fpfSnEBXcVD3ZZo0VE2KlFn3SV7CyDJFYaNobuNQc54rgLiIqTOSKpBnwwS mCTTu5AYKzpeFfLeoSUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDXiL-0000000FaG8-0eVw; Mon, 05 Oct 2026 01:42:01 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDXiJ-0000000FaFf-28l1; Mon, 05 Oct 2026 01:41:59 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id DCC9E60515; Mon, 5 Oct 2026 01:41:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD56B1F000FF; Mon, 5 Oct 2026 01:41:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791164516; bh=YMRdMPBRQIrUX61rqc5mlDXTRBhO1/an+eTx2/A0kFU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=IDVHcEngx0Tjvw7z0pduHY8+I+Ev0IaX397LvhXDxAmF4HfroZIl3RbZ6k2LC/PJn O8yt4kiShPFUmXnha4+IZDdmEG8sxUz8GV2AnI6Zo8OVrFybxPy5yrZ82ofe2hP/UX xLo1IP7YNu2xFLTO+bqRKmdGkp/tMP8QTvfIQ+miXFC3h2QMUIiPscf3JFQc+k2o2x 5ULUmqCOLNZG9KfWvGAuQ9AyEdyUc1eSkcSg1CE9UBja0th+4/rgT6rQ3dro0fP6Jp J4EOTbl5fMsKg5XDUUqSQCIfdqTk4zhB+92r17tELBDIB/vl2POaseI1dWmY5+WF2I kp5/nP/1fYMHw== From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC] genirq/kexec: Do not take the bus lock of an interrupt chip on the crash path To: "Thomas Gleixner" , "Igor Velkov" Cc: "Will Deacon" , "Marc Zyngier" , "Radu Rendec" , "Baoquan He" , "Heiko Stuebner" , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, "Eliav Farber" , kexec@lists.infradead.org, "Catalin Marinas" , "Mark Rutland" In-Reply-To: <20261005-kexec-irq-bus-lock-v1-1-09f6b5323460@iav.lv> References: <20261005-kexec-irq-bus-lock-v1-1-09f6b5323460@iav.lv> Date: Mon, 05 Oct 2026 01:41:55 +0000 Message-Id: <20261005014155.BD56B1F000FF@smtp.kernel.org> X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gaXJxL2tleGVjOiBp bmNvbXBsZXRlIHNsb3cgYnVzIGNoZWNrIGFsbG93cyBoYW5nIHZpYSBpcnFfYnVzX3N5bmNfdW5s b2NrCi0tCgpjb21taXQgYTEyMzQzMTU2ODI3YjkwMzVhZjZlMzk4MmFjNjViMzQzNzkyMTUwMgpB dXRob3I6IElnb3IgVmVsa292IDxpYXZAaWF2Lmx2PgoKZ2VuaXJxL2tleGVjOiBEbyBub3QgdGFr ZSB0aGUgYnVzIGxvY2sgb2YgYW4gaW50ZXJydXB0IGNoaXAgb24gdGhlIGNyYXNoIHBhdGgKCm1h Y2hpbmVfa2V4ZWNfbWFza19pbnRlcnJ1cHRzKCkgY2FsbHMgaXJxX3NldF9pcnFjaGlwX3N0YXRl KCkgZm9yIGV2ZXJ5CnN0YXJ0ZWQgaW50ZXJydXB0LiBUaGF0IGZ1bmN0aW9uIHRha2VzIHRoZSBi dXMgbG9jayBvZiB0aGUgaW50ZXJydXB0CmNoaXAgYW5kIHN5bmNzIHRoZSBjaGlwIHdoZW4gaXQg ZHJvcHMgdGhlIGxvY2suIE9uIHRoZSBjcmFzaCBwYXRoCmludGVycnVwdHMgYXJlIG9mZiBhbmQg dGhlIG90aGVyIENQVXMgYXJlIHN0b3BwZWQsIHNvIGEgY2hpcCB0aGF0IG5lZWRzCml0cyBidXMg Zm9yIHRoZSBzeW5jIG5ldmVyIHJldHVybnMuCgo+IGRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL2tl eGVjLmMgYi9rZXJuZWwvaXJxL2tleGVjLmMKPiBpbmRleCAxYTNkZWZmZTZiNWI2Li5jNmM3NDVj Yzc2YTI1IDEwMDY0NAo+IC0tLSBhL2tlcm5lbC9pcnEva2V4ZWMuYwo+ICsrKyBiL2tlcm5lbC9p cnEva2V4ZWMuYwo+IEBAIC0yMCw3ICsyMCwxMSBAQCB2b2lkIG1hY2hpbmVfa2V4ZWNfbWFza19p bnRlcnJ1cHRzKHZvaWQpCj4gIAkJaWYgKCFjaGlwIHx8ICFpcnFkX2lzX3N0YXJ0ZWQoJmRlc2Mt PmlycV9kYXRhKSkKPiAgCQkJY29udGludWU7Cj4gIAo+IC0JCWlmIChJU19FTkFCTEVEKENPTkZJ R19HRU5FUklDX0lSUV9LRVhFQ19DTEVBUl9WTV9GT1JXQVJEKSkgewo+ICsJCS8qCj4gKwkJICog aXJxX3NldF9pcnFjaGlwX3N0YXRlKCkgdGFrZXMgdGhlIGJ1cyBsb2NrLCBhbmQgYSBjaGlwIHRo YXQKPiArCQkgKiBoYXMgb25lIG1heSBzbGVlcCBvciB0YWxrIHRvIGl0cyBidXMgd2hlbiB0aGUg bG9jayBpcyBkcm9wcGVkLgo+ICsJCSAqLwo+ICsJCWlmIChJU19FTkFCTEVEKENPTkZJR19HRU5F UklDX0lSUV9LRVhFQ19DTEVBUl9WTV9GT1JXQVJEKSAmJiAhY2hpcC0+aXJxX2J1c19sb2NrKSB7 CgpbU2V2ZXJpdHk6IE1lZGl1bV0KRG9lcyB0aGlzIGNoZWNrIGNvbXByZWhlbnNpdmVseSBwcm90 ZWN0IGFnYWluc3Qgc2xvdyBidXMgY2hpcHM/CgpJZiBhbiBpcnFjaGlwIGltcGxlbWVudHMgaXJx X2J1c19zeW5jX3VubG9jayBidXQgb21pdHMgaXJxX2J1c19sb2NrLCB0aGlzCmNvbmRpdGlvbiBl dmFsdWF0ZXMgdG8gdHJ1ZSBhbmQgaXJxX3NldF9pcnFjaGlwX3N0YXRlKCkgaXMgY2FsbGVkLgpT aW5jZSBpcnFfc2V0X2lycWNoaXBfc3RhdGUoKSB1bHRpbWF0ZWx5IHVubG9ja3MgdGhlIGRlc2Ny aXB0b3IgdmlhCl9faXJxX3B1dF9kZXNjX3VubG9jaygpLCBpdCB1bmNvbmRpdGlvbmFsbHkgaW52 b2tlcyB0aGUgc3luYyBjYWxsYmFjazoKCmtlcm5lbC9pcnEvaXJxZGVzYy5jOl9faXJxX3B1dF9k ZXNjX3VubG9jaygpIHsKICAgIC4uLgogICAgaWYgKGJ1cykKICAgICAgICBjaGlwX2J1c19zeW5j X3VubG9jayhkZXNjKTsKICAgIC4uLgp9CgpFeGVjdXRpbmcgdGhlIHN5bmMgY2FsbGJhY2sgb24g dGhlIGNyYXNoIHBhdGggd2l0aG91dCBpbnRlcnJ1cHRzIGNvdWxkIGhhbmcgdGhlCnN5c3RlbSwg ZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIHRoaXMgcGF0Y2guCgpPdGhlciBwbGFjZXMgaW4gdGhl IHN1YnN5c3RlbSBjaGVjayBmb3IgYm90aCBjYWxsYmFja3MgdG8gaWRlbnRpZnkgc2xvdyBidXMK bG9ja2luZy9zeW5jaW5nLCBmb3IgaW5zdGFuY2U6CgprZXJuZWwvaXJxL21hbmFnZS5jOmlycV9z dXBwb3J0c19ubWkoKSB7CiAgICAuLi4KICAgIGlmIChkLT5jaGlwLT5pcnFfYnVzX2xvY2sgfHwg ZC0+Y2hpcC0+aXJxX2J1c19zeW5jX3VubG9jaykKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAu Li4KfQoKU2hvdWxkIHRoaXMgY2hlY2sgYWxzbyBlbnN1cmUgIWNoaXAtPmlycV9idXNfc3luY191 bmxvY2s/Cgo+ICAJCQkvKgo+ICAJCQkgKiBGaXJzdCB0cnkgdG8gcmVtb3ZlIHRoZSBhY3RpdmUg c3RhdGUgZnJvbSBhbiBpbnRlcnJ1cHQgd2hpY2ggaXMgZm9yd2FyZGVkCj4gIAkJCSAqIHRvIGEg Vk0uIElmIHRoZSBpbnRlcnJ1cHQgaXMgbm90IGZvcndhcmRlZCwgdHJ5IHRvIEVPSSB0aGUgaW50 ZXJydXB0LgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9w YXRjaHNldC8yMDI2MTAwNS1rZXhlYy1pcnEtYnVzLWxvY2stdjEtMS0wOWY2YjUzMjM0NjBAaWF2 Lmx2P3BhcnQ9MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yb2NrY2hpcAo=