[PATCH] powerpc: fixup lwsync at runtime

Kumar Gala galak at kernel.crashing.org
Thu Jul 3 01:57:11 EST 2008


On Jul 2, 2008, at 4:34 AM, Michael Ellerman wrote:

> On Tue, 2008-07-01 at 09:48 -0500, Kumar Gala wrote:
>> On Jul 1, 2008, at 1:29 AM, Michael Ellerman wrote:
>
>>>> diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/
>>>> setup_32.c
>>>> index 9e83add..0109e7f 100644
>>>> --- a/arch/powerpc/kernel/setup_32.c
>>>> +++ b/arch/powerpc/kernel/setup_32.c
>>>> @@ -101,6 +101,10 @@ unsigned long __init early_init(unsigned long
>>>> dt_ptr)
>>>> 			  PTRRELOC(&__start___ftr_fixup),
>>>> 			  PTRRELOC(&__stop___ftr_fixup));
>>>>
>>>> +	do_lwsync_fixups(spec->cpu_features,
>>>> +			 PTRRELOC(&__start___lwsync_fixup),
>>>> +			 PTRRELOC(&__stop___lwsync_fixup));
>>>> +
>>>
>>> This could be changed to use cur_cpu_spec->cpu_features, and then  
>>> all
>>> the call sites would be passing that, which would mean
>>> do_lwsync_fixups() could just check cur_cpu_spec->cpu_features
>>> directly.
>>
>> cur_cpu_spec and spec at this point arent the same thing.
>
> Aren't they? I must be missing something:

There is an issue with how ppc32 classic gets here and relocation.  If  
I change the call to:

         do_lwsync_fixups(cur_cpu_spec->cpu_features,
                          PTRRELOC(&__start___lwsync_fixup),
                          PTRRELOC(&__stop___lwsync_fixup));

I can't boot on a 6xx based machine anymore.

- k



More information about the Linuxppc-dev mailing list