All of lore.kernel.org
 help / color / mirror / Atom feed
From: Veaceslav Falico <vfalico@redhat.com>
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 <vfalico@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Neil Horman <nhorman@tuxdriver.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v3 3/3] msi: always unregister ->msi_kset within free_msi_irqs()
Date: Tue, 29 Oct 2013 11:30:32 +0100	[thread overview]
Message-ID: <1383042632-7102-4-git-send-email-vfalico@redhat.com> (raw)
In-Reply-To: <1383042632-7102-1-git-send-email-vfalico@redhat.com>

Currently we create and populate ->msi_kset while allocating irqs in
populate_msi_sysfs(), however if it fails and/or we want to free the
entries - we don't always remove it, and we might have problems if we've
failed to allocate irqs and try it again.

To fix that, move the unregister part to free_msi_irqs() and remove already
existing ones. Also, verify if it was actually created - we don't always
call free_msi_irqs() after populate_msi_sysfs().

CC: Bjorn Helgaas <bhelgaas@google.com>
CC: Neil Horman <nhorman@tuxdriver.com>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CC: linux-pci@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
---
 drivers/pci/msi.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 0771508..dafda2b 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -391,6 +391,11 @@ static void free_msi_irqs(struct pci_dev *dev)
 			kfree(entry);
 		}
 	}
+
+	if (dev->msi_kset) {
+		kset_unregister(dev->msi_kset);
+		dev->msi_kset = NULL;
+	}
 }
 
 static struct msi_desc *alloc_msi_entry(struct pci_dev *dev)
@@ -904,8 +909,6 @@ void pci_disable_msi(struct pci_dev *dev)
 
 	pci_msi_shutdown(dev);
 	free_msi_irqs(dev);
-	kset_unregister(dev->msi_kset);
-	dev->msi_kset = NULL;
 }
 EXPORT_SYMBOL(pci_disable_msi);
 
@@ -1002,8 +1005,6 @@ void pci_disable_msix(struct pci_dev *dev)
 
 	pci_msix_shutdown(dev);
 	free_msi_irqs(dev);
-	kset_unregister(dev->msi_kset);
-	dev->msi_kset = NULL;
 }
 EXPORT_SYMBOL(pci_disable_msix);
 
-- 
1.8.4


  parent reply	other threads:[~2013-10-29 10:30 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1383042632-7102-1-git-send-email-vfalico@redhat.com>
2013-10-29 10:30 ` [PATCH v3 1/3] msi: free msi_desc entry only after we've released the kobject Veaceslav Falico
2013-10-29 11:32   ` Neil Horman
2013-10-29 16:34   ` Linus Torvalds
2013-10-29 16:47     ` Veaceslav Falico
2013-10-29 21:49     ` Greg Kroah-Hartman
2013-11-25 23:12   ` Bjorn Helgaas
2013-11-25 23:29     ` Greg Kroah-Hartman
2013-11-26 12:47       ` Neil Horman
2013-10-29 10:30 ` [PATCH v3 2/3] pci: remove redundant pci_dev_get/put() on kobject (un)register Veaceslav Falico
2013-10-29 11:34   ` Neil Horman
2013-10-29 10:30 ` Veaceslav Falico [this message]
2013-10-29 11:45   ` [PATCH v3 3/3] msi: always unregister ->msi_kset within free_msi_irqs() Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1383042632-7102-4-git-send-email-vfalico@redhat.com \
    --to=vfalico@redhat.com \
    --cc=Knut_Petersen@t-online.de \
    --cc=bhelgaas@google.com \
    --cc=fweisbec@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.