aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/iSeries_setup.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/iSeries_setup.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/iSeries_setup.c')
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/ppc64/kernel/iSeries_setup.c b/arch/ppc64/kernel/iSeries_setup.c
index 86966ce76b58..2049b6dbafc7 100644
--- a/arch/ppc64/kernel/iSeries_setup.c
+++ b/arch/ppc64/kernel/iSeries_setup.c
@@ -855,17 +855,15 @@ late_initcall(iSeries_src_init);
855 855
856static int set_spread_lpevents(char *str) 856static int set_spread_lpevents(char *str)
857{ 857{
858 unsigned long i;
859 unsigned long val = simple_strtoul(str, NULL, 0); 858 unsigned long val = simple_strtoul(str, NULL, 0);
859 extern unsigned long spread_lpevents;
860 860
861 /* 861 /*
862 * The parameter is the number of processors to share in processing 862 * The parameter is the number of processors to share in processing
863 * lp events. 863 * lp events.
864 */ 864 */
865 if (( val > 0) && (val <= NR_CPUS)) { 865 if (( val > 0) && (val <= NR_CPUS)) {
866 for (i = 1; i < val; ++i) 866 spread_lpevents = val;
867 paca[i].lpqueue_ptr = paca[0].lpqueue_ptr;
868
869 printk("lpevent processing spread over %ld processors\n", val); 867 printk("lpevent processing spread over %ld processors\n", val);
870 } else { 868 } else {
871 printk("invalid spread_lpevents %ld\n", val); 869 printk("invalid spread_lpevents %ld\n", val);