lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250807050350.FyWHwsig@linutronix.de>
Date: Thu, 7 Aug 2025 07:03:50 +0200
From: Nam Cao <namcao@...utronix.de>
To: Ammar Faizi <ammarfaizi2@...weeb.org>
Cc: Lukas Wunner <lukas@...ner.de>, Bjorn Helgaas <helgaas@...nel.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Linux PCI Mailing List <linux-pci@...r.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Rob Herring <robh@...nel.org>,
	Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
	Manivannan Sadhasivam <mani@...nel.org>,
	Krzysztof Wilczynski <kwilczynski@...nel.org>,
	Armando Budianto <sprite@...weeb.org>,
	Alviro Iskandar Setiawan <alviro.iskandar@...weeb.org>,
	gwml@...r.gnuweeb.org
Subject: Re: [GIT PULL v2] PCI changes for v6.17

On Thu, Aug 07, 2025 at 11:54:12AM +0700, Ammar Faizi wrote:
> On Thu, Aug 07, 2025 at 05:51:57AM +0200, Lukas Wunner wrote:
> > Kenneth reports early-stage reboots caused by d7d8ab87e3e
> > ("PCI: vmd: Switch to msi_create_parent_irq_domain()"):
> > 
> > https://lore.kernel.org/all/dfa40e48-8840-4e61-9fda-25cdb3ad81c1@panix.com/
> > 
> > Perhaps you're witnessing the same issue?
> 
> Confirmed, reverting that commit works on my machine. I'll try to
> further diagnose it and report more details.

Does the diff below help?

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index 9bbb0ff4cc15..b679c7f28f51 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -280,10 +280,12 @@ static int vmd_msi_alloc(struct irq_domain *domain, unsigned int virq,
 static void vmd_msi_free(struct irq_domain *domain, unsigned int virq,
 			 unsigned int nr_irqs)
 {
+	struct irq_data *irq_data;
 	struct vmd_irq *vmdirq;
 
 	for (int i = 0; i < nr_irqs; ++i) {
-		vmdirq = irq_get_chip_data(virq + i);
+		irq_data = irq_domain_get_irq_data(domain, virq + i);
+		vmdirq = irq_data->chip_data;
 
 		synchronize_srcu(&vmdirq->irq->srcu);
 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ