|
@@ -338,10 +338,15 @@ done:
|
|
|
|
|
|
static void __init_or_module optimize_nops(struct alt_instr *a, u8 *instr)
|
|
static void __init_or_module optimize_nops(struct alt_instr *a, u8 *instr)
|
|
{
|
|
{
|
|
|
|
+ unsigned long flags;
|
|
|
|
+
|
|
if (instr[0] != 0x90)
|
|
if (instr[0] != 0x90)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ local_irq_save(flags);
|
|
add_nops(instr + (a->instrlen - a->padlen), a->padlen);
|
|
add_nops(instr + (a->instrlen - a->padlen), a->padlen);
|
|
|
|
+ sync_core();
|
|
|
|
+ local_irq_restore(flags);
|
|
|
|
|
|
DUMP_BYTES(instr, a->instrlen, "%p: [%d:%d) optimized NOPs: ",
|
|
DUMP_BYTES(instr, a->instrlen, "%p: [%d:%d) optimized NOPs: ",
|
|
instr, a->instrlen - a->padlen, a->padlen);
|
|
instr, a->instrlen - a->padlen, a->padlen);
|