Message ID | 1472491142-13783-2-git-send-email-jonathan.derrick@intel.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Mon, Aug 29, 2016 at 11:19:02AM -0600, Jon Derrick wrote: > Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> Nice simplification, looks good. Reviewed-by: Keith Busch <keith.busch@intel.com> > diff --git a/arch/x86/pci/vmd.c b/arch/x86/pci/vmd.c > index 514b446..4c0eac7 100644 > --- a/arch/x86/pci/vmd.c > +++ b/arch/x86/pci/vmd.c > @@ -78,7 +78,6 @@ struct vmd_dev { > char __iomem *cfgbar; > > int msix_count; > - struct msix_entry *msix_entries; > struct vmd_irq_list *irqs; > > struct pci_sysdata sysdata; > @@ -679,16 +678,8 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id) > if (vmd->msix_count < 0) > return -ENODEV; > > - vmd->msix_entries = devm_kcalloc(&dev->dev, vmd->msix_count, > - sizeof(*vmd->msix_entries), > - GFP_KERNEL); > - if (!vmd->msix_entries) > - return -ENOMEM; > - for (i = 0; i < vmd->msix_count; i++) > - vmd->msix_entries[i].entry = i; > - > - vmd->msix_count = pci_enable_msix_range(vmd->dev, vmd->msix_entries, 1, > - vmd->msix_count); > + vmd->msix_count = pci_alloc_irq_vectors(dev, 1, vmd->msix_count, > + PCI_IRQ_MSIX | PCI_IRQ_AFFINITY); > if (vmd->msix_count < 0) > return vmd->msix_count; > > @@ -699,7 +690,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id) > > for (i = 0; i < vmd->msix_count; i++) { > INIT_LIST_HEAD(&vmd->irqs[i].irq_list); > - vmd->irqs[i].vmd_vector = vmd->msix_entries[i].vector; > + vmd->irqs[i].vmd_vector = pci_irq_vector(dev, i); > vmd->irqs[i].index = i; > > err = devm_request_irq(&dev->dev, vmd->irqs[i].vmd_vector, > -- -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/pci/vmd.c b/arch/x86/pci/vmd.c index 514b446..4c0eac7 100644 --- a/arch/x86/pci/vmd.c +++ b/arch/x86/pci/vmd.c @@ -78,7 +78,6 @@ struct vmd_dev { char __iomem *cfgbar; int msix_count; - struct msix_entry *msix_entries; struct vmd_irq_list *irqs; struct pci_sysdata sysdata; @@ -679,16 +678,8 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id) if (vmd->msix_count < 0) return -ENODEV; - vmd->msix_entries = devm_kcalloc(&dev->dev, vmd->msix_count, - sizeof(*vmd->msix_entries), - GFP_KERNEL); - if (!vmd->msix_entries) - return -ENOMEM; - for (i = 0; i < vmd->msix_count; i++) - vmd->msix_entries[i].entry = i; - - vmd->msix_count = pci_enable_msix_range(vmd->dev, vmd->msix_entries, 1, - vmd->msix_count); + vmd->msix_count = pci_alloc_irq_vectors(dev, 1, vmd->msix_count, + PCI_IRQ_MSIX | PCI_IRQ_AFFINITY); if (vmd->msix_count < 0) return vmd->msix_count; @@ -699,7 +690,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id) for (i = 0; i < vmd->msix_count; i++) { INIT_LIST_HEAD(&vmd->irqs[i].irq_list); - vmd->irqs[i].vmd_vector = vmd->msix_entries[i].vector; + vmd->irqs[i].vmd_vector = pci_irq_vector(dev, i); vmd->irqs[i].index = i; err = devm_request_irq(&dev->dev, vmd->irqs[i].vmd_vector,
Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> --- arch/x86/pci/vmd.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-)