From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BF7731618C; Sat, 12 Sep 2026 13:49:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789220969; cv=none; b=YOL72Dq3owdtSjQ1d54lrHh3T/ubdQEIJ2ZAwvDH81Wh/vpNKoFbIP6No1bXHo4L0xFQltFw2O1d8rWhpCaZWeP7KNLU+NL6OleZq+qco4nvqN3b4mVI9AmAbaRAIVYhfNqYN16omjDNvtbT4AU30ygnrBXuLJVIK6hzLU6MKyU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789220969; c=relaxed/simple; bh=M6tksezyrdGVbEa9FFMNuicxQwVWim30q3xACcfZcsE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FBDtHRlDMo55oXKet4WZIvtrg09kLO5YwrSQ/+NWjuZf5Q64boBa4/E2C9mHtZqEHp406QhkdrpSHECDmrvx6bpoLuI4eKO1/S0gYHuao5CKjmUIM3vtt2lMW3Kqb0a1fCKH9dw1fu3dL6lrXwuh8j2lz93FGtPBBXZd4G8H2Yo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=sjJ++9JJ; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="sjJ++9JJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 51C231F000FF; Sat, 12 Sep 2026 13:49:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1789220968; bh=EVanotL3ENXK8aDlsjpjE4xljngJo8uf/GyehNsTQ1E=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=sjJ++9JJ0ZqrOLXviFG+8YY/kCbtcZT9DRq9awCLhsAzzLY4DB/CcPFOrGkEYbbGi g0oyszs7odsu8nBLWavKpPWRzJPRjB2fxY1DrpnXXA3p13x4n76Y4QXH/KYqQSgMk4 L2yTqhnMJaBr+/OChD8A8LI3Ud6hPp4Qyu06c1eM= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Long Li , Thomas Gleixner , Aditya Garg , Shradha Gupta , Naman Jain , Michael Kelley , Wei Liu , Sasha Levin Subject: [PATCH 6.6 0286/1424] PCI: hv: Set irq_retrigger callback for the Hyper-V PCI MSI irqchip Date: Sat, 12 Sep 2026 08:45:18 +0200 Message-ID: <20260912065613.686647688@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260912065607.279695368@linuxfoundation.org> References: <20260912065607.279695368@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Naman Jain [ Upstream commit 86bdd16e8f390d51bae9e77a4bc4164ca2f580fe ] The Hyper-V vPCI MSI irqchip never installs an irq_retrigger() callback. On CPU hot-unplug fixup_irqs() migrates the interrupts which are affine to the outgoing CPU to a new target. If an interrupt still has its pending bit set in the outgoing CPU's IRR at that point, fixup_irqs() resends it on the new target through the irqchip's irq_retrigger() callback. As the Hyper-V PCI/MSI chip does not provide that callback, the pending interrupt is silently dropped, which can result in lost interrupts, stalls and "No irq handler for vector" messages during CPU hotplug. Install irq_chip_retrigger_hierarchy() as the irq_retrigger() callback for the Hyper-V PCI/MSI irqchip, so that a pending interrupt is resent on its new target CPU via the parent x86 vector domain. Fixes: 4daace0d8ce85 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs") Cc: stable@vger.kernel.org Suggested-by: Long Li Suggested-by: Thomas Gleixner Reviewed-by: Aditya Garg Reviewed-by: Shradha Gupta Signed-off-by: Naman Jain Reviewed-by: Michael Kelley Signed-off-by: Wei Liu Signed-off-by: Sasha Levin --- drivers/pci/controller/pci-hyperv.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c index e379ed9b5d2eb..94ee9d19a48bc 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -2058,6 +2058,7 @@ static struct irq_chip hv_msi_irq_chip = { .name = "Hyper-V PCIe MSI", .irq_compose_msi_msg = hv_compose_msi_msg, .irq_set_affinity = irq_chip_set_affinity_parent, + .irq_retrigger = irq_chip_retrigger_hierarchy, #ifdef CONFIG_X86 .irq_ack = irq_chip_ack_parent, #elif defined(CONFIG_ARM64) -- 2.53.0