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

Re: [Xen-devel] [PATCH v3] PCI: Add guard to avoid mapping a invalid msix base address



On Thu, Jan 29, 2015 at 7:15 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>> On 29.01.15 at 04:54, <wangyijing@xxxxxxxxxx> wrote:
>> --- a/drivers/pci/msi.c
>> +++ b/drivers/pci/msi.c
>> @@ -694,11 +694,16 @@ static void __iomem *msix_map_region(struct pci_dev 
>> *dev, unsigned nr_entries)
>>  {
>>       resource_size_t phys_addr;
>>       u32 table_offset;
>> +     unsigned long flags;
>>       u8 bir;
>>
>>       pci_read_config_dword(dev, dev->msix_cap + PCI_MSIX_TABLE,
>>                             &table_offset);
>>       bir = (u8)(table_offset & PCI_MSIX_TABLE_BIR);
>> +     flags = pci_resource_flags(dev, bir);
>> +     if (!flags || (flags & IORESOURCE_UNSET))
>> +             return NULL;
>
> Mind explaining what relevance the checking of flags against zero has
> (also in the Xen counterpart)? The patch description says nothing in
> this regard...

It's buried in there:

>                                        reset_resource()        
> -->res->start/end/flags = 0

If we fail to assign resources to a BAR, in some cases we set
res->flags = 0.  There are other cases where we set IORESOURCE_UNSET,
and that's the direction I want to go for all situations where we
don't assign resources.  But right now, we have a mix where flags is
zero in some cases (including the one Zhang found), and has
IORESOURCE_UNSET in others.

I'll try to wordsmith this in the changelog when I apply this.

Bjorn

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.