Skip to content

Commit 5c0ba4f

Browse files
committed
PCI/MSI: Use __free() for affinity masks
Let cleanup handle the freeing of the affinity mask. That prepares for switching the MSI descriptor locking to a guard(). No functional change. Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Bjorn Helgaas <[email protected]> Link: https://lore.kernel.org/all/[email protected]
1 parent b0c44a5 commit 5c0ba4f

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

drivers/pci/msi/msi.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,6 @@ static int msi_verify_entries(struct pci_dev *dev)
350350
static int msi_capability_init(struct pci_dev *dev, int nvec,
351351
struct irq_affinity *affd)
352352
{
353-
struct irq_affinity_desc *masks = NULL;
354353
struct msi_desc *entry, desc;
355354
int ret;
356355

@@ -361,8 +360,8 @@ static int msi_capability_init(struct pci_dev *dev, int nvec,
361360
/* Disable MSI during setup in the hardware to erase stale state */
362361
pci_msi_set_enable(dev, 0);
363362

364-
if (affd)
365-
masks = irq_create_affinity_masks(nvec, affd);
363+
struct irq_affinity_desc *masks __free(kfree) =
364+
affd ? irq_create_affinity_masks(nvec, affd) : NULL;
366365

367366
msi_lock_descs(&dev->dev);
368367
ret = msi_setup_msi_desc(dev, nvec, masks);
@@ -402,7 +401,6 @@ static int msi_capability_init(struct pci_dev *dev, int nvec,
402401
pci_free_msi_irqs(dev);
403402
unlock:
404403
msi_unlock_descs(&dev->dev);
405-
kfree(masks);
406404
return ret;
407405
}
408406

@@ -661,12 +659,10 @@ static void msix_mask_all(void __iomem *base, int tsize)
661659
static int msix_setup_interrupts(struct pci_dev *dev, struct msix_entry *entries,
662660
int nvec, struct irq_affinity *affd)
663661
{
664-
struct irq_affinity_desc *masks = NULL;
662+
struct irq_affinity_desc *masks __free(kfree) =
663+
affd ? irq_create_affinity_masks(nvec, affd) : NULL;
665664
int ret;
666665

667-
if (affd)
668-
masks = irq_create_affinity_masks(nvec, affd);
669-
670666
msi_lock_descs(&dev->dev);
671667
ret = msix_setup_msi_descs(dev, entries, nvec, masks);
672668
if (ret)
@@ -688,7 +684,6 @@ static int msix_setup_interrupts(struct pci_dev *dev, struct msix_entry *entries
688684
pci_free_msi_irqs(dev);
689685
out_unlock:
690686
msi_unlock_descs(&dev->dev);
691-
kfree(masks);
692687
return ret;
693688
}
694689

0 commit comments

Comments
 (0)