From c0cafdedf4c03c8b23a8a76ce750d9b0ca2b7f27 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Tue, 3 Jan 2012 10:29:54 -0500 Subject: [PATCH] --- yaml --- r: 283391 b: refs/heads/master c: 424eb391596a38ddf422bee1617e4b9dea60126f h: refs/heads/master i: 283389: f0b05a23709c718d34ed8815370aaf6c035c2585 283387: 6e0d1b18ff0f716d54183a4d1e772579585f263d 283383: 62afd7a604d9340f17f83a4dfa18ee5b735a5879 283375: 230ebeba7eb9803d9ef87b47b2222de5bde5de23 283359: 8d2a3a619d2fb9dde981f0d11a252aa64581aa03 283327: 2968018584252b19a6604c5c8fe959fb810c9148 283263: 86cd68d0ef8dfa4b98693fd8f6f7f4e16e9fd426 283135: 563fc3a3cb5b0ec2e991a7f4a06d10b976340cb1 v: v3 --- [refs] | 2 +- trunk/drivers/pci/msi.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 6c2a736b73bd..3282e3024d0b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d56641c7723c92487fb4bbcd995ad74169e2329b +refs/heads/master: 424eb391596a38ddf422bee1617e4b9dea60126f diff --git a/trunk/drivers/pci/msi.c b/trunk/drivers/pci/msi.c index 337e16ab4a92..82de95ec2ea0 100644 --- a/trunk/drivers/pci/msi.c +++ b/trunk/drivers/pci/msi.c @@ -323,8 +323,18 @@ static void free_msi_irqs(struct pci_dev *dev) if (list_is_last(&entry->list, &dev->msi_list)) iounmap(entry->mask_base); } - kobject_del(&entry->kobj); - kobject_put(&entry->kobj); + + /* + * Its possible that we get into this path + * When populate_msi_sysfs fails, which means the entries + * were not registered with sysfs. In that case don't + * unregister them. + */ + if (entry->kobj.parent) { + kobject_del(&entry->kobj); + kobject_put(&entry->kobj); + } + list_del(&entry->list); kfree(entry); }