[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] PCI: Add guard to avoid mapping a invalid msix base address
On 01/28/2015 01:13 PM, Bjorn Helgaas wrote: diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index fd60806..c3e7dfc 100644 --- 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; Thanks, this looks better. There's similar code in xen_initdom_setup_msi_irqs() that looks like it might require a similar fix. Right, I think it does.One question: do we need to check flags for IORESOURCE_DISABLED as well? Currently IORESOURCE_DISABLED and IORESOURCE_UNSET are set together for PCI so it probably doesn't matter right now but if this changes we won't want to use BAR that's disabled, will we? -boris _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |