diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c
index a81e49b..a849f67 100644
--- a/arch/ppc64/kernel/ItLpQueue.c
+++ b/arch/ppc64/kernel/ItLpQueue.c
@@ -127,14 +127,14 @@
 	event->xFlags.xValid = 0;
 }
 
-unsigned process_hvlpevents(struct pt_regs *regs)
+void process_hvlpevents(struct pt_regs *regs)
 {
 	unsigned numIntsProcessed = 0;
 	struct HvLpEvent * nextLpEvent;
 
 	/* If we have recursed, just return */
 	if ( !set_inUse() )
-		return 0;
+		return;
 	
 	if (ItLpQueueInProcess == 0)
 		ItLpQueueInProcess = 1;
@@ -144,9 +144,6 @@
 	for (;;) {
 		nextLpEvent = get_next_hvlpevent();
 		if ( nextLpEvent ) {
-			/* Count events to return to caller
-			 * and count processed events in hvlpevent_queue
- 			 */
 			++numIntsProcessed;
 			hvlpevent_queue.xLpIntCount++;
 			/* Call appropriate handler here, passing 
@@ -186,8 +183,6 @@
 	clear_inUse();
 
 	get_paca()->lpevent_count += numIntsProcessed;
-
-	return numIntsProcessed;
 }
 
 static int set_spread_lpevents(char *str)
diff --git a/arch/ppc64/kernel/irq.c b/arch/ppc64/kernel/irq.c
index bd4b035..e79420b 100644
--- a/arch/ppc64/kernel/irq.c
+++ b/arch/ppc64/kernel/irq.c
@@ -66,7 +66,6 @@
 int distribute_irqs = 1;
 int __irq_offset_value;
 int ppc_spurious_interrupts;
-unsigned long lpevent_count;
 u64 ppc64_interrupt_controller;
 
 int show_interrupts(struct seq_file *p, void *v)
@@ -295,7 +294,7 @@
 	}
 #endif /* CONFIG_SMP */
 	if (hvlpevent_is_pending())
-		lpevent_count += process_hvlpevents(regs);
+		process_hvlpevents(regs);
 
 	irq_exit();
 
diff --git a/arch/ppc64/kernel/mf.c b/arch/ppc64/kernel/mf.c
index 609bf1b..ef4a338 100644
--- a/arch/ppc64/kernel/mf.c
+++ b/arch/ppc64/kernel/mf.c
@@ -801,9 +801,8 @@
 		return rc;
 	/* We need to poll here as we are not yet taking interrupts */
 	while (rtc_data.busy) {
-		extern unsigned long lpevent_count;
 		if (hvlpevent_is_pending())
-			lpevent_count += process_hvlpevents(NULL);
+			process_hvlpevents(NULL);
 	}
 	return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm);
 }
diff --git a/arch/ppc64/kernel/time.c b/arch/ppc64/kernel/time.c
index f9c1840..909462e 100644
--- a/arch/ppc64/kernel/time.c
+++ b/arch/ppc64/kernel/time.c
@@ -99,7 +99,6 @@
 struct gettimeofday_struct do_gtod;
 
 extern unsigned long wall_jiffies;
-extern unsigned long lpevent_count;
 extern int smp_tb_synchronized;
 
 extern struct timezone sys_tz;
@@ -368,7 +367,7 @@
 
 #ifdef CONFIG_PPC_ISERIES
 	if (hvlpevent_is_pending())
-		lpevent_count += process_hvlpevents(regs);
+		process_hvlpevents(regs);
 #endif
 
 /* collect purr register values often, for accurate calculations */
diff --git a/include/asm-ppc64/iSeries/ItLpQueue.h b/include/asm-ppc64/iSeries/ItLpQueue.h
index f0f24a3..6ba74c0 100644
--- a/include/asm-ppc64/iSeries/ItLpQueue.h
+++ b/include/asm-ppc64/iSeries/ItLpQueue.h
@@ -77,7 +77,7 @@
 extern struct hvlpevent_queue hvlpevent_queue;
 
 extern int hvlpevent_is_pending(void);
-extern unsigned process_hvlpevents(struct pt_regs *);
+extern void process_hvlpevents(struct pt_regs *);
 extern void setup_hvlpevent_queue(void);
 
 #endif /* _ITLPQUEUE_H */
