aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/ItLpQueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc64/kernel/ItLpQueue.c')
-rw-r--r--arch/ppc64/kernel/ItLpQueue.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c
index d3779346780..61be23ed500 100644
--- a/arch/ppc64/kernel/ItLpQueue.c
+++ b/arch/ppc64/kernel/ItLpQueue.c
@@ -69,7 +69,7 @@ struct HvLpEvent * ItLpQueue_getNextLpEvent( struct ItLpQueue * lpQueue )
69 return nextLpEvent; 69 return nextLpEvent;
70} 70}
71 71
72unsigned long spread_lpevents = NR_CPUS; 72static unsigned long spread_lpevents = NR_CPUS;
73 73
74int ItLpQueue_isLpIntPending( struct ItLpQueue * lpQueue ) 74int ItLpQueue_isLpIntPending( struct ItLpQueue * lpQueue )
75{ 75{
@@ -166,3 +166,23 @@ unsigned ItLpQueue_process( struct ItLpQueue * lpQueue, struct pt_regs *regs )
166 166
167 return numIntsProcessed; 167 return numIntsProcessed;
168} 168}
169
170static int set_spread_lpevents(char *str)
171{
172 unsigned long val = simple_strtoul(str, NULL, 0);
173
174 /*
175 * The parameter is the number of processors to share in processing
176 * lp events.
177 */
178 if (( val > 0) && (val <= NR_CPUS)) {
179 spread_lpevents = val;
180 printk("lpevent processing spread over %ld processors\n", val);
181 } else {
182 printk("invalid spread_lpevents %ld\n", val);
183 }
184
185 return 1;
186}
187__setup("spread_lpevents=", set_spread_lpevents);
188