Re: Commit d7d8ab87e3e ("PCI: vmd: Switch to msi_create_parent_irq_domain()") causes early-stage reboots on my Dell XPS-9320

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 07, 2025 at 06:39:13AM +0200, Nam Cao wrote:
> Kenneth Crudup <kenny@xxxxxxxxx> writes:
> 
> > I'm running Linus' master (as of today, cca7a0aae8958c9b1).
> >
> > If I revert the named commit, I can boot OK. Unfortunately there's no 
> > real output before the machine reboots, to help identify the problem.
> >
> > I have a(n enabled) VMD in my Alderlake machine:
> >
> > [    0.141952] [      T1] smpboot: CPU0: 12th Gen Intel(R) Core(TM) 
> > i7-1280P (family: 0x6, model: 0x9a, stepping: 0x3)
> >
> > If there's something else I can try, let me know.
> 
> Thanks for the report. It is unfortunate that there is no output to work
> with :(
> 
> Let me stare at the commit again..

Another person reported problem with this commit, and that was resolved
with the diff below.

Does it fix your case too?

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);
 




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux