All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tpm_tis: fix tis_lock with respect to RCU
@ 2012-02-29  9:29 Jiri Kosina
       [not found] ` <4F4E529B.2010905@linux.vnet.ibm.com>
  2012-03-05 12:53 ` Rajiv Andrade
  0 siblings, 2 replies; 4+ messages in thread
From: Jiri Kosina @ 2012-02-29  9:29 UTC (permalink / raw)
  To: Stefan Berger, Rajiv Andrade; +Cc: linux-kernel, Andrew Morton, tpmdd-devel

cleanup_tis() -> tpm_remove_hardware() -> syncrhonize_rcu() is being 
called in an atomic context (tis_lock spinlock held), which is not 
allowed. Convert tis_lock to mutex.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
 drivers/char/tpm/tpm_tis.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index e1712a5..9a9300a 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -78,7 +78,7 @@ enum tis_defaults {
 #define	TPM_RID(l)			(0x0F04 | ((l) << 12))
 
 static LIST_HEAD(tis_chips);
-static DEFINE_SPINLOCK(tis_lock);
+static DEFINE_MUTEX(tis_lock);
 
 #if defined(CONFIG_PNP) && defined(CONFIG_ACPI)
 static int is_itpm(struct pnp_dev *dev)
@@ -691,9 +691,9 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
 	}
 
 	INIT_LIST_HEAD(&chip->vendor.list);
-	spin_lock(&tis_lock);
+	mutex_lock(&tis_lock);
 	list_add(&chip->vendor.list, &tis_chips);
-	spin_unlock(&tis_lock);
+	mutex_unlock(&tis_lock);
 
 
 	return 0;
@@ -857,7 +857,7 @@ static void __exit cleanup_tis(void)
 {
 	struct tpm_vendor_specific *i, *j;
 	struct tpm_chip *chip;
-	spin_lock(&tis_lock);
+	mutex_lock(&tis_lock);
 	list_for_each_entry_safe(i, j, &tis_chips, list) {
 		chip = to_tpm_chip(i);
 		tpm_remove_hardware(chip->dev);
@@ -873,7 +873,7 @@ static void __exit cleanup_tis(void)
 		iounmap(i->iobase);
 		list_del(&i->list);
 	}
-	spin_unlock(&tis_lock);
+	mutex_unlock(&tis_lock);
 #ifdef CONFIG_PNP
 	if (!force) {
 		pnp_unregister_driver(&tis_pnp_driver);
-- 
1.7.8.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] tpm_tis: fix tis_lock with respect to RCU
       [not found] ` <4F4E529B.2010905@linux.vnet.ibm.com>
@ 2012-03-03 22:41   ` Jiri Kosina
  0 siblings, 0 replies; 4+ messages in thread
From: Jiri Kosina @ 2012-03-03 22:41 UTC (permalink / raw)
  To: Stefan Berger; +Cc: Rajiv Andrade, linux-kernel, Andrew Morton, tpmdd-devel

On Wed, 29 Feb 2012, Stefan Berger wrote:

> > cleanup_tis() ->  tpm_remove_hardware() ->  syncrhonize_rcu() is being
> > called in an atomic context (tis_lock spinlock held), which is not
> > allowed. Convert tis_lock to mutex.
> > 
> > Signed-off-by: Jiri Kosina<jkosina@suse.cz>
> Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com>

Thanks. Doesn't seem to have been picked up for -next yet. Which tree is 
this going through?

As a last resort, I can take it through trivial, but I guess for example 
Andrew's tree would be better.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tpm_tis: fix tis_lock with respect to RCU
  2012-02-29  9:29 [PATCH] tpm_tis: fix tis_lock with respect to RCU Jiri Kosina
       [not found] ` <4F4E529B.2010905@linux.vnet.ibm.com>
@ 2012-03-05 12:53 ` Rajiv Andrade
  2012-03-05 13:05   ` Jiri Kosina
  1 sibling, 1 reply; 4+ messages in thread
From: Rajiv Andrade @ 2012-03-05 12:53 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Stefan Berger, linux-kernel, Andrew Morton, tpmdd-devel

On Wed, 29 Feb 2012, Jiri Kosina wrote:

> cleanup_tis() -> tpm_remove_hardware() -> syncrhonize_rcu() is being 
> called in an atomic context (tis_lock spinlock held), which is not 
> allowed. Convert tis_lock to mutex.
> 
> Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Acked-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tpm_tis: fix tis_lock with respect to RCU
  2012-03-05 12:53 ` Rajiv Andrade
@ 2012-03-05 13:05   ` Jiri Kosina
  0 siblings, 0 replies; 4+ messages in thread
From: Jiri Kosina @ 2012-03-05 13:05 UTC (permalink / raw)
  To: Rajiv Andrade; +Cc: Stefan Berger, linux-kernel, Andrew Morton, tpmdd-devel

On Mon, 5 Mar 2012, Rajiv Andrade wrote:

> > cleanup_tis() -> tpm_remove_hardware() -> syncrhonize_rcu() is being 
> > called in an atomic context (tis_lock spinlock held), which is not 
> > allowed. Convert tis_lock to mutex.
> > 
> > Signed-off-by: Jiri Kosina <jkosina@suse.cz>
> 
> Acked-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>

Okay, thanks. I am taking this through trivial.git then.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-03-05 13:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-29  9:29 [PATCH] tpm_tis: fix tis_lock with respect to RCU Jiri Kosina
     [not found] ` <4F4E529B.2010905@linux.vnet.ibm.com>
2012-03-03 22:41   ` Jiri Kosina
2012-03-05 12:53 ` Rajiv Andrade
2012-03-05 13:05   ` Jiri Kosina

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.