|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/7] x86/alt: Clean up struct alt_instr and its users
On Mon, Feb 12, 2018 at 11:23:02AM +0000, Andrew Cooper wrote:
> * Rename some fields for consistency and clarity, and use standard types.
> * Don't opencode the use of ALT_{ORIG,REPL}_PTR().
And change u8 etc.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> xen/arch/x86/alternative.c | 24 ++++++++++++------------
> xen/include/asm-x86/alternative.h | 12 ++++++------
> 2 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
> index 5c8b6f6..f8ddab5 100644
> --- a/xen/arch/x86/alternative.c
> +++ b/xen/arch/x86/alternative.c
> @@ -163,8 +163,6 @@ void init_or_livepatch apply_alternatives(const struct
> alt_instr *start,
> const struct alt_instr *end)
> {
> const struct alt_instr *a;
> - u8 *instr, *replacement;
> - u8 insnbuf[MAX_PATCH_LEN];
>
> printk(KERN_INFO "alt table %p -> %p\n", start, end);
>
> @@ -179,23 +177,25 @@ void init_or_livepatch apply_alternatives(const struct
> alt_instr *start,
> */
> for ( a = start; a < end; a++ )
> {
> - instr = (u8 *)&a->instr_offset + a->instr_offset;
> - replacement = (u8 *)&a->repl_offset + a->repl_offset;
> - BUG_ON(a->replacementlen > a->instrlen);
> - BUG_ON(a->instrlen > sizeof(insnbuf));
> + uint8_t *orig = ALT_ORIG_PTR(a);
> + uint8_t *repl = ALT_REPL_PTR(a);
> + uint8_t buf[MAX_PATCH_LEN];
> +
> + BUG_ON(a->repl_len > a->orig_len);
> + BUG_ON(a->orig_len > sizeof(buf));
> BUG_ON(a->cpuid >= NCAPINTS * 32);
> +
> if ( !boot_cpu_has(a->cpuid) )
> continue;
>
> - memcpy(insnbuf, replacement, a->replacementlen);
> + memcpy(buf, repl, a->repl_len);
>
> /* 0xe8/0xe9 are relative branches; fix the offset. */
> - if ( a->replacementlen >= 5 && (*insnbuf & 0xfe) == 0xe8 )
> - *(s32 *)(insnbuf + 1) += replacement - instr;
> + if ( a->repl_len >= 5 && (*buf & 0xfe) == 0xe8 )
> + *(s32 *)(buf + 1) += repl - orig;
Mind changing s32 to int32_t?
In any case:
Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |