diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2005-06-30 01:07:09 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-06-30 01:07:09 -0400 |
commit | bea248fb30c3122ece8c34798527fac431c1d7b0 (patch) | |
tree | 9158d7a089312f92abcb6c8d5a8d942d543be24b /arch/ppc64/kernel/iSeries_setup.c | |
parent | b1bdfbd0a29d6da4dbe42736faac02c43a9afe76 (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.c | 6 |
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 | ||
856 | static int set_spread_lpevents(char *str) | 856 | static 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); |