[PATCH] ppc64: ppc_md.progress should not be __init

Paul Mackerras paulus at samba.org
Mon Jun 20 21:48:39 EST 2005


Arnd Bergmann writes:

> I noticed on BPA that ppc_md.progress() is called from some places outside
> of the init call sequence, e.g. the rtas flash code. However, I copied the
> __init annotation from one of the other platform types, which caused the
> kernel to crash upon hitting the freed code segment.
> 
> I have checked that iSeries, pmac and maple all have .progress marked as
> __init and can never incorrectly hit that function after boot, so there
> is no actual breakage in the current source.
> 
> However, I find the behavior rather surprising and suggest removing this
> to have it the same way as it is required on pSeries and BPA.

What I did in the ppc32 code was to clear the ppc_md.progress pointer
when freeing the init memory.  I think that's a simpler and more
reliable fix for this problem.  If the rtas flash code wants to change
the LCD display it could call the pSeries progress routine directly.

Regards,
Paul.



More information about the Linuxppc64-dev mailing list