diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c
index a4f32cb..4231861 100644
--- a/arch/ppc64/kernel/ItLpQueue.c
+++ b/arch/ppc64/kernel/ItLpQueue.c
@@ -42,35 +42,8 @@
 	"Virtual I/O"
 };
 
-static __inline__ int set_inUse(void)
-{
-	int t;
-	u32 * inUseP = &hvlpevent_queue.xInUseWord;
-
-	__asm__ __volatile__("\n\
-1:	lwarx	%0,0,%2		\n\
-	cmpwi	0,%0,0		\n\
-	li	%0,0		\n\
-	bne-	2f		\n\
-	addi	%0,%0,1		\n\
-	stwcx.	%0,0,%2		\n\
-	bne-	1b		\n\
-2:	eieio"
-	: "=&r" (t), "=m" (hvlpevent_queue.xInUseWord)
-	: "r" (inUseP), "m" (hvlpevent_queue.xInUseWord)
-	: "cc");
-
-	return t;
-}
-
-static __inline__ void clear_inUse(void)
-{
-	hvlpevent_queue.xInUseWord = 0;
-}
-
 /* Array of LpEvent handler functions */
 extern LpEventHandler lpEventHandler[HvLpEvent_Type_NumTypes];
-unsigned long ItLpQueueInProcess = 0;
 
 static struct HvLpEvent * get_next_hvlpevent(void)
 {
@@ -144,14 +117,9 @@
 	struct HvLpEvent * event;
 
 	/* If we have recursed, just return */
-	if ( !set_inUse() )
+	if (!spin_trylock(&hvlpevent_queue.lock))
 		return;
 
-	if (ItLpQueueInProcess == 0)
-		ItLpQueueInProcess = 1;
-	else
-		BUG();
-
 	for (;;) {
 		event = get_next_hvlpevent();
 		if (event) {
@@ -187,9 +155,7 @@
 			break;
 	}
 
-	ItLpQueueInProcess = 0;
-	mb();
-	clear_inUse();
+	spin_unlock(&hvlpevent_queue.lock);
 }
 
 static int set_spread_lpevents(char *str)
