aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/mf.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-06-30 01:07:09 -0400
committerPaul Mackerras <paulus@samba.org>2005-06-30 01:07:09 -0400
commitbea248fb30c3122ece8c34798527fac431c1d7b0 (patch)
tree9158d7a089312f92abcb6c8d5a8d942d543be24b /arch/ppc64/kernel/mf.c
parentb1bdfbd0a29d6da4dbe42736faac02c43a9afe76 (diff)
[PATCH] ppc64: Remove lpqueue pointer from the paca on iSeries
The iSeries code keeps a pointer to the ItLpQueue in its paca struct. But all these pointers end up pointing to the one place, ie. xItLpQueue. So remove the pointer from the paca struct and just refer to xItLpQueue directly where needed. The only complication is that the spread_lpevents logic was implemented by having a NULL lpqueue pointer in the paca on CPUs that weren't supposed to process events. Instead we just compare the spread_lpevents value to the processor id to get the same behaviour. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64/kernel/mf.c')
-rw-r--r--arch/ppc64/kernel/mf.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ppc64/kernel/mf.c b/arch/ppc64/kernel/mf.c
index d98bebf7042f..d6a297a4feb3 100644
--- a/arch/ppc64/kernel/mf.c
+++ b/arch/ppc64/kernel/mf.c
@@ -802,9 +802,8 @@ int mf_get_boot_rtc(struct rtc_time *tm)
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; 804 extern unsigned long lpevent_count;
805 struct ItLpQueue *lpq = get_paca()->lpqueue_ptr; 805 if (ItLpQueue_isLpIntPending(&xItLpQueue))
806 if (lpq && ItLpQueue_isLpIntPending(lpq)) 806 lpevent_count += ItLpQueue_process(&xItLpQueue, NULL);
807 lpevent_count += ItLpQueue_process(lpq, NULL);
808 } 807 }
809 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); 808 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm);
810} 809}