Re: 2.6.17-mm5

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

 



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

Brice

-
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