powerpc/smp: Use code patching to restore reset vector
Instead of hardcoding reset vector restore, use patch_instruction() Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Родитель
6c16816b91
Коммит
8a01960fb5
|
@ -86,8 +86,7 @@ smp_86xx_kick_cpu(int nr)
|
||||||
mdelay(1);
|
mdelay(1);
|
||||||
|
|
||||||
/* Restore the exception vector */
|
/* Restore the exception vector */
|
||||||
*vector = save_vector;
|
patch_instruction(vector, save_vector);
|
||||||
flush_icache_range((unsigned long) vector, (unsigned long) vector + 4);
|
|
||||||
|
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
|
|
@ -832,8 +832,7 @@ static int smp_core99_kick_cpu(int nr)
|
||||||
mdelay(1);
|
mdelay(1);
|
||||||
|
|
||||||
/* Restore our exception vector */
|
/* Restore our exception vector */
|
||||||
*vector = save_vector;
|
patch_instruction(vector, save_vector);
|
||||||
flush_icache_range((unsigned long) vector, (unsigned long) vector + 4);
|
|
||||||
|
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
if (ppc_md.progress) ppc_md.progress("smp_core99_kick_cpu done", 0x347);
|
if (ppc_md.progress) ppc_md.progress("smp_core99_kick_cpu done", 0x347);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче