Re: 2.6.17-mm5

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

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux