|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/7] x86/traps: Drop 32bit fields out of tss_struct
The backlink field doesn't exist in a 64bit TSS, and union for esp{0..2} is of
no practical use. Specify everything with stdint types, and empty bitfields
for reserved values.
No functional change.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
---
xen/arch/x86/traps.c | 2 +-
xen/include/asm-x86/processor.h | 23 +++++++++++------------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ca0a04a..1c90177 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -461,7 +461,7 @@ void show_stack_overflow(unsigned int cpu, const struct
cpu_user_regs *regs)
printk("Valid stack range: %p-%p, sp=%p, tss.esp0=%p\n",
(void *)esp_top, (void *)esp_bottom, (void *)esp,
- (void *)per_cpu(init_tss, cpu).esp0);
+ (void *)per_cpu(init_tss, cpu).rsp0);
/*
* Trigger overflow trace if %esp is anywhere within the guard page, or
diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
index 73dd3ab..f244e10 100644
--- a/xen/include/asm-x86/processor.h
+++ b/xen/include/asm-x86/processor.h
@@ -428,19 +428,18 @@ static always_inline void __mwait(unsigned long eax,
unsigned long ecx)
#define IOBMP_INVALID_OFFSET 0x8000
struct __packed __cacheline_aligned tss_struct {
- unsigned short back_link,__blh;
- union { u64 rsp0, esp0; };
- union { u64 rsp1, esp1; };
- union { u64 rsp2, esp2; };
- u64 reserved1;
- u64 ist[7]; /* Interrupt Stack Table is 1-based so tss->ist[0]
- * corresponds to an IST value of 1 in an Interrupt
- * Descriptor */
- u64 reserved2;
- u16 reserved3;
- u16 bitmap;
+ uint32_t :32;
+ uint64_t rsp0, rsp1, rsp2;
+ uint64_t :64;
+ /*
+ * Interrupt Stack Table is 1-based so tss->ist[0] corresponds to an IST
+ * value of 1 in an Interrupt Descriptor.
+ */
+ uint64_t ist[7];
+ uint64_t :64;
+ uint16_t :16, bitmap;
/* Pads the TSS to be cacheline-aligned (total size is 0x80). */
- u8 __cacheline_filler[24];
+ uint8_t __cacheline_filler[24];
};
#define IST_NONE 0UL
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |