On 27/01/2026 1:20 pm, Jan Beulich wrote:
> The hook is never invoked in that case, and hence needlessly offers an
> extra valid indirect call target. With the hook suppressed, no consumer
> of the three local per-CPU variables exists either, so they're
> suppressed as well.
>
> Signed-off-by: Jan Beulich <[email protected]>
>
> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -90,10 +90,12 @@ struct shadow_paging_mode {
>      int           (*guess_wrmap           )(struct vcpu *v, 
>                                              unsigned long vaddr, mfn_t gmfn);
>      void          (*pagetable_dying       )(paddr_t gpa);
> +#ifdef CONFIG_TRACEBUFFER
>      void          (*trace_emul_write_val  )(const void *ptr, unsigned long 
> vaddr,
>                                              const void *src, unsigned int 
> bytes);
>  #endif
>  #endif
> +#endif

Can we get some comments on these endifs, and ...

> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -4130,7 +4142,9 @@ const struct paging_mode sh_paging_mode
>      .shadow.guess_wrmap            = sh_guess_wrmap,
>  #endif
>      .shadow.pagetable_dying        = sh_pagetable_dying,
> +#ifdef CONFIG_TRACEBUFFER
>      .shadow.trace_emul_write_val   = trace_emulate_write_val,
> +#endif
>  #endif /* CONFIG_HVM */

... this one too.

Otherwise, Reviewed-by: Andrew Cooper <[email protected]>

Reply via email to