[POWERPC] Do firmware feature fixups after features are initialised
On pSeries the firmware features are not setup until ppc_md.init_early, so we can't do the firmware feature sections fixups till after this. Currently firmware feature sections is only used on iSeries which inits the firmware features much earlier. This is a bug in waiting on pSeries. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
4cefebb1b4
commit
5a26f6bbb7
1 changed files with 8 additions and 4 deletions
|
@ -350,13 +350,11 @@ void __init setup_system(void)
|
||||||
{
|
{
|
||||||
DBG(" -> setup_system()\n");
|
DBG(" -> setup_system()\n");
|
||||||
|
|
||||||
/* Apply the CPUs-specific and firmware specific fixups to kernel
|
/* Apply CPUs-specific fixups to kernel text (nop out sections
|
||||||
* text (nop out sections not relevant to this CPU or this firmware)
|
* not relevant to this CPU)
|
||||||
*/
|
*/
|
||||||
do_feature_fixups(cur_cpu_spec->cpu_features,
|
do_feature_fixups(cur_cpu_spec->cpu_features,
|
||||||
&__start___ftr_fixup, &__stop___ftr_fixup);
|
&__start___ftr_fixup, &__stop___ftr_fixup);
|
||||||
do_feature_fixups(powerpc_firmware_features,
|
|
||||||
&__start___fw_ftr_fixup, &__stop___fw_ftr_fixup);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unflatten the device-tree passed by prom_init or kexec
|
* Unflatten the device-tree passed by prom_init or kexec
|
||||||
|
@ -394,6 +392,12 @@ void __init setup_system(void)
|
||||||
if (ppc_md.init_early)
|
if (ppc_md.init_early)
|
||||||
ppc_md.init_early();
|
ppc_md.init_early();
|
||||||
|
|
||||||
|
/* Apply firmware specific fixups to kernel text (nop out
|
||||||
|
* sections not relevant to this firmware)
|
||||||
|
*/
|
||||||
|
do_feature_fixups(powerpc_firmware_features,
|
||||||
|
&__start___fw_ftr_fixup, &__stop___fw_ftr_fixup);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We can discover serial ports now since the above did setup the
|
* We can discover serial ports now since the above did setup the
|
||||||
* hash table management for us, thus ioremap works. We do that early
|
* hash table management for us, thus ioremap works. We do that early
|
||||||
|
|
Reference in a new issue