diff options
Diffstat (limited to 'arch/ppc64/kernel/ItLpQueue.c')
-rw-r--r-- | arch/ppc64/kernel/ItLpQueue.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c index cdea00d7707f..e90dca8bd136 100644 --- a/arch/ppc64/kernel/ItLpQueue.c +++ b/arch/ppc64/kernel/ItLpQueue.c | |||
@@ -69,15 +69,17 @@ struct HvLpEvent * ItLpQueue_getNextLpEvent( struct ItLpQueue * lpQueue ) | |||
69 | return nextLpEvent; | 69 | return nextLpEvent; |
70 | } | 70 | } |
71 | 71 | ||
72 | unsigned long spread_lpevents = 1; | ||
73 | |||
72 | int ItLpQueue_isLpIntPending( struct ItLpQueue * lpQueue ) | 74 | int ItLpQueue_isLpIntPending( struct ItLpQueue * lpQueue ) |
73 | { | 75 | { |
74 | int retval = 0; | 76 | struct HvLpEvent *next_event; |
75 | struct HvLpEvent * nextLpEvent; | 77 | |
76 | if ( lpQueue ) { | 78 | if (smp_processor_id() >= spread_lpevents) |
77 | nextLpEvent = (struct HvLpEvent *)lpQueue->xSlicCurEventPtr; | 79 | return 0; |
78 | retval = nextLpEvent->xFlags.xValid | lpQueue->xPlicOverflowIntPending; | 80 | |
79 | } | 81 | next_event = (struct HvLpEvent *)lpQueue->xSlicCurEventPtr; |
80 | return retval; | 82 | return next_event->xFlags.xValid | lpQueue->xPlicOverflowIntPending; |
81 | } | 83 | } |
82 | 84 | ||
83 | void ItLpQueue_clearValid( struct HvLpEvent * event ) | 85 | void ItLpQueue_clearValid( struct HvLpEvent * event ) |