diff options
Diffstat (limited to 'arch/i386/kernel/alternative.c')
-rw-r--r-- | arch/i386/kernel/alternative.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index dae3ded9041c..c5d037c60950 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -336,11 +336,14 @@ void apply_paravirt(struct paravirt_patch_site *start, | |||
336 | used = paravirt_ops.patch(p->instrtype, p->clobbers, p->instr, | 336 | used = paravirt_ops.patch(p->instrtype, p->clobbers, p->instr, |
337 | p->len); | 337 | p->len); |
338 | 338 | ||
339 | BUG_ON(used > p->len); | ||
340 | |||
339 | /* Pad the rest with nops */ | 341 | /* Pad the rest with nops */ |
340 | nop_out(p->instr + used, p->len - used); | 342 | nop_out(p->instr + used, p->len - used); |
341 | } | 343 | } |
342 | 344 | ||
343 | /* Sync to be conservative, in case we patched following instructions */ | 345 | /* Sync to be conservative, in case we patched following |
346 | * instructions */ | ||
344 | sync_core(); | 347 | sync_core(); |
345 | } | 348 | } |
346 | extern struct paravirt_patch_site __start_parainstructions[], | 349 | extern struct paravirt_patch_site __start_parainstructions[], |