[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 08/16] x86/shstk: Create shadow stacks
On 04/05/2020 15:55, Jan Beulich wrote: >> + /* Poision unused entries. */ >> + for ( i = IST_MAX; >> + i < ARRAY_SIZE(this_cpu(tss_page).ist_ssp); ++i ) >> + ist_ssp[i] = 0x8600111111111111ul; > IST_MAX == IST_DF, so you're overwriting one token here. And failing to poison entry 0. This was a bad rearrangement when tidying the series up. Unfortunately, testing the #DF path isn't terribly easy. >> --- a/xen/include/asm-x86/processor.h >> +++ b/xen/include/asm-x86/processor.h >> @@ -434,7 +434,8 @@ struct __packed tss64 { >> uint16_t :16, bitmap; >> }; >> struct tss_page { >> - struct tss64 __aligned(PAGE_SIZE) tss; >> + uint64_t __aligned(PAGE_SIZE) ist_ssp[8]; >> + struct tss64 tss; >> }; > Just curious - any particular reason you put this ahead of the TSS? Yes. Reduced chance of interacting with a buggy IO bitmap offset. Furthermore, we could do away most of the IO emulation quirking, and the #GP path overhead, if we actually constructed a real IO bitmap for dom0. That would require using the 8k following the TSS. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |