
From: Mikael Pettersson <mikpe@csd.uu.se>

This patch fixes a critical SMP bug in the perfctr inheritance fix I sent
yesterday.  I added a spinlock to the perfctr state, but forgot to
initialise it, which results in a hard hang on SMP the first time someone
tries to program their perfctrs.  It works on UP, which is why I didn't
detect it before :-(

Signed-off-by: Mikael Pettersson <mikpe@csd.uu.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/perfctr/virtual.c |    1 +
 1 files changed, 1 insertion(+)

diff -puN drivers/perfctr/virtual.c~perfctr-smp-hang-fix drivers/perfctr/virtual.c
--- 25/drivers/perfctr/virtual.c~perfctr-smp-hang-fix	2004-08-15 12:44:44.654253336 -0700
+++ 25-akpm/drivers/perfctr/virtual.c	2004-08-15 12:44:44.659252576 -0700
@@ -156,6 +156,7 @@ static struct vperfctr *get_empty_vperfc
 		atomic_set(&perfctr->count, 1);
 		vperfctr_init_bad_cpus_allowed(perfctr);
 		spin_lock_init(&perfctr->owner_lock);
+		spin_lock_init(&perfctr->children_lock);
 	}
 	return perfctr;
 }
_
