aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/ppc64/kernel/ItLpQueue.c9
-rw-r--r--arch/ppc64/kernel/irq.c3
-rw-r--r--arch/ppc64/kernel/mf.c3
-rw-r--r--arch/ppc64/kernel/time.c3
-rw-r--r--include/asm-ppc64/iSeries/ItLpQueue.h2
5 files changed, 6 insertions, 14 deletions
diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c
index a81e49b91af0..a849f6775ad6 100644
--- a/arch/ppc64/kernel/ItLpQueue.c
+++ b/arch/ppc64/kernel/ItLpQueue.c
@@ -127,14 +127,14 @@ static void hvlpevent_clear_valid( struct HvLpEvent * event )
127 event->xFlags.xValid = 0; 127 event->xFlags.xValid = 0;
128} 128}
129 129
130unsigned process_hvlpevents(struct pt_regs *regs) 130void process_hvlpevents(struct pt_regs *regs)
131{ 131{
132 unsigned numIntsProcessed = 0; 132 unsigned numIntsProcessed = 0;
133 struct HvLpEvent * nextLpEvent; 133 struct HvLpEvent * nextLpEvent;
134 134
135 /* If we have recursed, just return */ 135 /* If we have recursed, just return */
136 if ( !set_inUse() ) 136 if ( !set_inUse() )
137 return 0; 137 return;
138 138
139 if (ItLpQueueInProcess == 0) 139 if (ItLpQueueInProcess == 0)
140 ItLpQueueInProcess = 1; 140 ItLpQueueInProcess = 1;
@@ -144,9 +144,6 @@ unsigned process_hvlpevents(struct pt_regs *regs)
144 for (;;) { 144 for (;;) {
145 nextLpEvent = get_next_hvlpevent(); 145 nextLpEvent = get_next_hvlpevent();
146 if ( nextLpEvent ) { 146 if ( nextLpEvent ) {
147 /* Count events to return to caller
148 * and count processed events in hvlpevent_queue
149 */
150 ++numIntsProcessed; 147 ++numIntsProcessed;
151 hvlpevent_queue.xLpIntCount++; 148 hvlpevent_queue.xLpIntCount++;
152 /* Call appropriate handler here, passing 149 /* Call appropriate handler here, passing
@@ -186,8 +183,6 @@ unsigned process_hvlpevents(struct pt_regs *regs)
186 clear_inUse(); 183 clear_inUse();
187 184
188 get_paca()->lpevent_count += numIntsProcessed; 185 get_paca()->lpevent_count += numIntsProcessed;
189
190 return numIntsProcessed;
191} 186}
192 187
193static int set_spread_lpevents(char *str) 188static int set_spread_lpevents(char *str)
diff --git a/arch/ppc64/kernel/irq.c b/arch/ppc64/kernel/irq.c
index bd4b035af622..e79420bb72a5 100644
--- a/arch/ppc64/kernel/irq.c
+++ b/arch/ppc64/kernel/irq.c
@@ -66,7 +66,6 @@ EXPORT_SYMBOL(irq_desc);
66int distribute_irqs = 1; 66int distribute_irqs = 1;
67int __irq_offset_value; 67int __irq_offset_value;
68int ppc_spurious_interrupts; 68int ppc_spurious_interrupts;
69unsigned long lpevent_count;
70u64 ppc64_interrupt_controller; 69u64 ppc64_interrupt_controller;
71 70
72int show_interrupts(struct seq_file *p, void *v) 71int show_interrupts(struct seq_file *p, void *v)
@@ -295,7 +294,7 @@ void do_IRQ(struct pt_regs *regs)
295 } 294 }
296#endif /* CONFIG_SMP */ 295#endif /* CONFIG_SMP */
297 if (hvlpevent_is_pending()) 296 if (hvlpevent_is_pending())
298 lpevent_count += process_hvlpevents(regs); 297 process_hvlpevents(regs);
299 298
300 irq_exit(); 299 irq_exit();
301 300
diff --git a/arch/ppc64/kernel/mf.c b/arch/ppc64/kernel/mf.c
index 609bf1bda7b8..ef4a338ebd01 100644
--- a/arch/ppc64/kernel/mf.c
+++ b/arch/ppc64/kernel/mf.c
@@ -801,9 +801,8 @@ int mf_get_boot_rtc(struct rtc_time *tm)
801 return rc; 801 return rc;
802 /* We need to poll here as we are not yet taking interrupts */ 802 /* We need to poll here as we are not yet taking interrupts */
803 while (rtc_data.busy) { 803 while (rtc_data.busy) {
804 extern unsigned long lpevent_count;
805 if (hvlpevent_is_pending()) 804 if (hvlpevent_is_pending())
806 lpevent_count += process_hvlpevents(NULL); 805 process_hvlpevents(NULL);
807 } 806 }
808 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); 807 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm);
809} 808}
diff --git a/arch/ppc64/kernel/time.c b/arch/ppc64/kernel/time.c
index f9c18400ebf5..909462e1adea 100644
--- a/arch/ppc64/kernel/time.c
+++ b/arch/ppc64/kernel/time.c
@@ -99,7 +99,6 @@ unsigned long tb_to_ns_shift;
99struct gettimeofday_struct do_gtod; 99struct gettimeofday_struct do_gtod;
100 100
101extern unsigned long wall_jiffies; 101extern unsigned long wall_jiffies;
102extern unsigned long lpevent_count;
103extern int smp_tb_synchronized; 102extern int smp_tb_synchronized;
104 103
105extern struct timezone sys_tz; 104extern struct timezone sys_tz;
@@ -368,7 +367,7 @@ int timer_interrupt(struct pt_regs * regs)
368 367
369#ifdef CONFIG_PPC_ISERIES 368#ifdef CONFIG_PPC_ISERIES
370 if (hvlpevent_is_pending()) 369 if (hvlpevent_is_pending())
371 lpevent_count += process_hvlpevents(regs); 370 process_hvlpevents(regs);
372#endif 371#endif
373 372
374/* collect purr register values often, for accurate calculations */ 373/* 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 f0f24a39ff6d..6ba74c0d910b 100644
--- a/include/asm-ppc64/iSeries/ItLpQueue.h
+++ b/include/asm-ppc64/iSeries/ItLpQueue.h
@@ -77,7 +77,7 @@ struct hvlpevent_queue {
77extern struct hvlpevent_queue hvlpevent_queue; 77extern struct hvlpevent_queue hvlpevent_queue;
78 78
79extern int hvlpevent_is_pending(void); 79extern int hvlpevent_is_pending(void);
80extern unsigned process_hvlpevents(struct pt_regs *); 80extern void process_hvlpevents(struct pt_regs *);
81extern void setup_hvlpevent_queue(void); 81extern void setup_hvlpevent_queue(void);
82 82
83#endif /* _ITLPQUEUE_H */ 83#endif /* _ITLPQUEUE_H */