diff options
author | Mike Turquette <mturquette@linaro.org> | 2014-02-24 23:07:53 -0800 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-02-24 23:07:53 -0800 |
commit | ad077ceb8a90c7ef1fc15758ed3811448181ee80 (patch) | |
tree | dc090e24bb82c41c3785e539b9e60df6c48abfaf /drivers/pci/msi.c | |
parent | c05ab9a0cc8e2b958bb2db2f8f1d200e568a75d4 (diff) | |
parent | 10b7cdc0084c27a312e59e80420c6aac70c64753 (diff) |
Merge branch 'clk-fixes' into clk-next
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r-- | drivers/pci/msi.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 7a0fec6ce571..955ab7990c5b 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -545,9 +545,15 @@ static int populate_msi_sysfs(struct pci_dev *pdev) return -ENOMEM; list_for_each_entry(entry, &pdev->msi_list, list) { char *name = kmalloc(20, GFP_KERNEL); + if (!name) + goto error_attrs; + msi_dev_attr = kzalloc(sizeof(*msi_dev_attr), GFP_KERNEL); - if (!msi_dev_attr) + if (!msi_dev_attr) { + kfree(name); goto error_attrs; + } + sprintf(name, "%d", entry->irq); sysfs_attr_init(&msi_dev_attr->attr); msi_dev_attr->attr.name = name; @@ -589,6 +595,7 @@ error_attrs: ++count; msi_attr = msi_attrs[count]; } + kfree(msi_attrs); return ret; } @@ -959,7 +966,6 @@ EXPORT_SYMBOL(pci_disable_msi); /** * pci_msix_vec_count - return the number of device's MSI-X table entries * @dev: pointer to the pci_dev data structure of MSI-X device function - * This function returns the number of device's MSI-X table entries and * therefore the number of MSI-X vectors device is capable of sending. * It returns a negative errno if the device is not capable of sending MSI-X |