>>> On 02.05.17 at 20:05, <andrew.coop...@citrix.com> wrote:
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -645,6 +645,14 @@ void load_system_tables(void)
>       tss->ist[IST_DF  - 1] = stack_top + IST_DF  * PAGE_SIZE;
>       tss->ist[IST_NMI - 1] = stack_top + IST_NMI * PAGE_SIZE;
>  
> +     /* Poision all other stack pointers to prevent their accidental use. */
> +     tss->rsp1   = 0x8600111111111111ul;
> +     tss->rsp2   = 0x8600222222222222ul;
> +     tss->ist[3] = 0x8600444444444444ul;
> +     tss->ist[4] = 0x8600555555555555ul;
> +     tss->ist[5] = 0x8600666666666666ul;
> +     tss->ist[6] = 0x8600777777777777ul;

I think the ->ist[] part of this should be a loop from IST_MAX + 1
to 7 instead of the above, as what you have now doesn't easily
cope with IST indexes being added/removed.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to