Messages in this thread | | | Date | Sat, 1 Jul 2006 10:00:50 -0700 | From | Greg KH <> | Subject | Re: 2.6.17-mm5 |
| |
On Sat, Jul 01, 2006 at 09:06:14AM -0400, Brice Goglin wrote: > Reuben Farrelly wrote: > >> > >> It oopsed here: > >> > >> static > >> int pci_msi_supported(struct pci_dev * dev) > >> { > >> struct pci_dev *pdev; > >> > >> if (!pci_msi_enable || !dev || dev->no_msi) > >> return -1; > >> > >> /* find root complex for our device */ > >> pdev = dev; > >> while (pdev->bus && pdev->bus->self) > >> pdev = pdev->bus->self; > >> > >> /* check its bus flags */ > >> if (pdev->subordinate->bus_flags & PCI_BUS_FLAGS_NO_MSI) > >> return -1; > >> > >> return 0; > >> } > >> > >> pdev->subordinate is NULL. > >> > > > >> You may find that this gets things going again: > >> > >> --- a/drivers/pci/msi.c~a > >> +++ a/drivers/pci/msi.c > >> @@ -913,6 +913,9 @@ int pci_msi_supported(struct pci_dev * d > >> while (pdev->bus && pdev->bus->self) > >> pdev = pdev->bus->self; > >> > >> + if (!pdev->subordinate) > >> + return -1; > >> + > >> /* check its bus flags */ > >> if (pdev->subordinate->bus_flags & PCI_BUS_FLAGS_NO_MSI) > >> return -1; > >> _ > > Yes it does. > > I was not expecting a root chipset without subordinate bus... Maybe we > should store the NO_MSI flags in the device itself instead of in its > subordinate bus (I would have to rework all my patches then).
If that solves this issue, I guess so.
> After all, > we don't inherit bus flags anymore, and I don't see why bus flags would > have been chosen initially except to help flags inheritance. > I am still convinced that checking to root chipset (bus) flags only is a > good idea since the root chipset is where MSI are translated from PCI > messages into DMA (we don't care about MSI support in the bridges > between the chipset and the devices since they only forward PCI messages).
Yes, I agree with that, just be able to handle the above issue too :)
thanks,
greg k-h - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |