From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754531Ab3J2KbM (ORCPT ); Tue, 29 Oct 2013 06:31:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44580 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751339Ab3J2Kay (ORCPT ); Tue, 29 Oct 2013 06:30:54 -0400 From: Veaceslav Falico To: linux-pci@vger.kernel.org Cc: torvalds@linux-foundation.org, tglx@linutronix.de, yinghai@kernel.org, Knut_Petersen@t-online.de, mingo@kernel.org, paulmck@linux.vnet.ibm.com, fweisbec@gmail.com, linux-kernel@vger.kernel.org, Veaceslav Falico , Bjorn Helgaas , Neil Horman , Greg Kroah-Hartman Subject: [PATCH v3 2/3] pci: remove redundant pci_dev_get/put() on kobject (un)register Date: Tue, 29 Oct 2013 11:30:31 +0100 Message-Id: <1383042632-7102-3-git-send-email-vfalico@redhat.com> In-Reply-To: <1383042632-7102-1-git-send-email-vfalico@redhat.com> References: <1383042632-7102-1-git-send-email-vfalico@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently we're pci_dev_get/put()-ing pci device on every kobject creation/removal. It's useless per se - the kobject is part of the device itself, so it should be removed when there are no users of the pdev, and is not a user of it. CC: Bjorn Helgaas CC: Neil Horman CC: Greg Kroah-Hartman CC: linux-pci@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Veaceslav Falico --- drivers/pci/msi.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 5d70f49..0771508 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -511,7 +511,6 @@ static void msi_kobj_release(struct kobject *kobj) { struct msi_desc *entry = to_msi_desc(kobj); - pci_dev_put(entry->dev); kfree(entry); } @@ -534,13 +533,10 @@ static int populate_msi_sysfs(struct pci_dev *pdev) list_for_each_entry(entry, &pdev->msi_list, list) { kobj = &entry->kobj; kobj->kset = pdev->msi_kset; - pci_dev_get(pdev); ret = kobject_init_and_add(kobj, &msi_irq_ktype, NULL, "%u", entry->irq); - if (ret) { - pci_dev_put(pdev); + if (ret) return ret; - } } return 0; -- 1.8.4