Re: [PATCH 3/3] i386: Replace struct Xgt_desc_struct with struct desc_ptr

2007-07-20 Thread Chris Wright
* Rusty Russell ([EMAIL PROTECTED]) wrote:
> Remove i386's Xgt_desc_struct definition and use desc_def.h's desc_ptr.

plus this is needed now


Index: linus-2.6/drivers/lguest/lg.h
===
--- linus-2.6.orig/drivers/lguest/lg.h
+++ linus-2.6/drivers/lguest/lg.h
@@ -91,13 +91,13 @@ struct lguest_ro_state
 {
/* Host information we need to restore when we switch back. */
u32 host_cr3;
-   struct Xgt_desc_struct host_idt_desc;
-   struct Xgt_desc_struct host_gdt_desc;
+   struct desc_ptr host_idt_desc;
+   struct desc_ptr host_gdt_desc;
u32 host_sp;
 
/* Fields which are used when guest is running. */
-   struct Xgt_desc_struct guest_idt_desc;
-   struct Xgt_desc_struct guest_gdt_desc;
+   struct desc_ptr guest_idt_desc;
+   struct desc_ptr guest_gdt_desc;
struct i386_hw_tss guest_tss;
struct desc_struct guest_idt[IDT_ENTRIES];
struct desc_struct guest_gdt[GDT_ENTRIES];
Index: linus-2.6/arch/i386/xen/enlighten.c
===
--- linus-2.6.orig/arch/i386/xen/enlighten.c
+++ linus-2.6/arch/i386/xen/enlighten.c
@@ -301,7 +301,7 @@ static void xen_set_ldt(const void *addr
xen_mc_issue(PARAVIRT_LAZY_CPU);
 }
 
-static void xen_load_gdt(const struct Xgt_desc_struct *dtr)
+static void xen_load_gdt(const struct desc_ptr *dtr)
 {
unsigned long *frames;
unsigned long va = dtr->address;
@@ -401,7 +401,7 @@ static int cvt_gate_to_trap(int vector, 
 }
 
 /* Locations of each CPU's IDT */
-static DEFINE_PER_CPU(struct Xgt_desc_struct, idt_desc);
+static DEFINE_PER_CPU(struct desc_ptr, idt_desc);
 
 /* Set an IDT entry.  If the entry is part of the current IDT, then
also update Xen. */
@@ -433,7 +433,7 @@ static void xen_write_idt_entry(struct d
preempt_enable();
 }
 
-static void xen_convert_trap_info(const struct Xgt_desc_struct *desc,
+static void xen_convert_trap_info(const struct desc_ptr *desc,
  struct trap_info *traps)
 {
unsigned in, out, count;
@@ -452,7 +452,7 @@ static void xen_convert_trap_info(const 
 
 void xen_copy_trap_info(struct trap_info *traps)
 {
-   const struct Xgt_desc_struct *desc = &__get_cpu_var(idt_desc);
+   const struct desc_ptr *desc = &__get_cpu_var(idt_desc);
 
xen_convert_trap_info(desc, traps);
 }
@@ -460,7 +460,7 @@ void xen_copy_trap_info(struct trap_info
 /* Load a new IDT into Xen.  In principle this can be per-CPU, so we
hold a spinlock to protect the static traps[] array (static because
it avoids allocation, and saves stack space). */
-static void xen_load_idt(const struct Xgt_desc_struct *desc)
+static void xen_load_idt(const struct desc_ptr *desc)
 {
static DEFINE_SPINLOCK(lock);
static struct trap_info traps[257];
Index: linus-2.6/drivers/lguest/lguest.c
===
--- linus-2.6.orig/drivers/lguest/lguest.c
+++ linus-2.6/drivers/lguest/lguest.c
@@ -167,7 +167,7 @@ static void lguest_write_idt_entry(struc
hcall(LHCALL_LOAD_IDT_ENTRY, entrynum, low, high);
 }
 
-static void lguest_load_idt(const struct Xgt_desc_struct *desc)
+static void lguest_load_idt(const struct desc_ptr *desc)
 {
unsigned int i;
struct desc_struct *idt = (void *)desc->address;
@@ -176,7 +176,7 @@ static void lguest_load_idt(const struct
hcall(LHCALL_LOAD_IDT_ENTRY, i, idt[i].raw32.a, idt[i].raw32.b);
 }
 
-static void lguest_load_gdt(const struct Xgt_desc_struct *desc)
+static void lguest_load_gdt(const struct desc_ptr *desc)
 {
BUG_ON((desc->size+1)/8 != GDT_ENTRIES);
hcall(LHCALL_LOAD_GDT, __pa(desc->address), GDT_ENTRIES, 0);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/3] i386: Replace struct Xgt_desc_struct with struct desc_ptr

2007-07-20 Thread Chris Wright
* Rusty Russell ([EMAIL PROTECTED]) wrote:
 Remove i386's Xgt_desc_struct definition and use desc_def.h's desc_ptr.

plus this is needed now


Index: linus-2.6/drivers/lguest/lg.h
===
--- linus-2.6.orig/drivers/lguest/lg.h
+++ linus-2.6/drivers/lguest/lg.h
@@ -91,13 +91,13 @@ struct lguest_ro_state
 {
/* Host information we need to restore when we switch back. */
u32 host_cr3;
-   struct Xgt_desc_struct host_idt_desc;
-   struct Xgt_desc_struct host_gdt_desc;
+   struct desc_ptr host_idt_desc;
+   struct desc_ptr host_gdt_desc;
u32 host_sp;
 
/* Fields which are used when guest is running. */
-   struct Xgt_desc_struct guest_idt_desc;
-   struct Xgt_desc_struct guest_gdt_desc;
+   struct desc_ptr guest_idt_desc;
+   struct desc_ptr guest_gdt_desc;
struct i386_hw_tss guest_tss;
struct desc_struct guest_idt[IDT_ENTRIES];
struct desc_struct guest_gdt[GDT_ENTRIES];
Index: linus-2.6/arch/i386/xen/enlighten.c
===
--- linus-2.6.orig/arch/i386/xen/enlighten.c
+++ linus-2.6/arch/i386/xen/enlighten.c
@@ -301,7 +301,7 @@ static void xen_set_ldt(const void *addr
xen_mc_issue(PARAVIRT_LAZY_CPU);
 }
 
-static void xen_load_gdt(const struct Xgt_desc_struct *dtr)
+static void xen_load_gdt(const struct desc_ptr *dtr)
 {
unsigned long *frames;
unsigned long va = dtr-address;
@@ -401,7 +401,7 @@ static int cvt_gate_to_trap(int vector, 
 }
 
 /* Locations of each CPU's IDT */
-static DEFINE_PER_CPU(struct Xgt_desc_struct, idt_desc);
+static DEFINE_PER_CPU(struct desc_ptr, idt_desc);
 
 /* Set an IDT entry.  If the entry is part of the current IDT, then
also update Xen. */
@@ -433,7 +433,7 @@ static void xen_write_idt_entry(struct d
preempt_enable();
 }
 
-static void xen_convert_trap_info(const struct Xgt_desc_struct *desc,
+static void xen_convert_trap_info(const struct desc_ptr *desc,
  struct trap_info *traps)
 {
unsigned in, out, count;
@@ -452,7 +452,7 @@ static void xen_convert_trap_info(const 
 
 void xen_copy_trap_info(struct trap_info *traps)
 {
-   const struct Xgt_desc_struct *desc = __get_cpu_var(idt_desc);
+   const struct desc_ptr *desc = __get_cpu_var(idt_desc);
 
xen_convert_trap_info(desc, traps);
 }
@@ -460,7 +460,7 @@ void xen_copy_trap_info(struct trap_info
 /* Load a new IDT into Xen.  In principle this can be per-CPU, so we
hold a spinlock to protect the static traps[] array (static because
it avoids allocation, and saves stack space). */
-static void xen_load_idt(const struct Xgt_desc_struct *desc)
+static void xen_load_idt(const struct desc_ptr *desc)
 {
static DEFINE_SPINLOCK(lock);
static struct trap_info traps[257];
Index: linus-2.6/drivers/lguest/lguest.c
===
--- linus-2.6.orig/drivers/lguest/lguest.c
+++ linus-2.6/drivers/lguest/lguest.c
@@ -167,7 +167,7 @@ static void lguest_write_idt_entry(struc
hcall(LHCALL_LOAD_IDT_ENTRY, entrynum, low, high);
 }
 
-static void lguest_load_idt(const struct Xgt_desc_struct *desc)
+static void lguest_load_idt(const struct desc_ptr *desc)
 {
unsigned int i;
struct desc_struct *idt = (void *)desc-address;
@@ -176,7 +176,7 @@ static void lguest_load_idt(const struct
hcall(LHCALL_LOAD_IDT_ENTRY, i, idt[i].raw32.a, idt[i].raw32.b);
 }
 
-static void lguest_load_gdt(const struct Xgt_desc_struct *desc)
+static void lguest_load_gdt(const struct desc_ptr *desc)
 {
BUG_ON((desc-size+1)/8 != GDT_ENTRIES);
hcall(LHCALL_LOAD_GDT, __pa(desc-address), GDT_ENTRIES, 0);
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/3] i386: Replace struct Xgt_desc_struct with struct desc_ptr

2007-07-18 Thread Rusty Russell
Remove i386's Xgt_desc_struct definition and use desc_def.h's desc_ptr.

The offsets in asm-offsets.c do not seem to be used anywhere, so I
simply removed them.

Signed-off-by: Rusty Russell <[EMAIL PROTECTED]>

diff -r 0b03f449c0b3 arch/i386/kernel/asm-offsets.c
--- a/arch/i386/kernel/asm-offsets.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/asm-offsets.cWed Jul 18 16:55:36 2007 +1000
@@ -61,11 +61,6 @@ void foo(void)
OFFSET(TI_sysenter_return, thread_info, sysenter_return);
BLANK();
 
-   OFFSET(GDS_size, Xgt_desc_struct, size);
-   OFFSET(GDS_address, Xgt_desc_struct, address);
-   OFFSET(GDS_pad, Xgt_desc_struct, pad);
-   BLANK();
-
OFFSET(PT_EBX, pt_regs, ebx);
OFFSET(PT_ECX, pt_regs, ecx);
OFFSET(PT_EDX, pt_regs, edx);
diff -r 0b03f449c0b3 arch/i386/kernel/cpu/common.c
--- a/arch/i386/kernel/cpu/common.c Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/cpu/common.c Wed Jul 18 16:56:08 2007 +1000
@@ -642,7 +642,7 @@ struct pt_regs * __devinit idle_regs(str
  * it's on the real one. */
 void switch_to_new_gdt(void)
 {
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id());
gdt_descr.size = GDT_SIZE - 1;
diff -r 0b03f449c0b3 arch/i386/kernel/doublefault.c
--- a/arch/i386/kernel/doublefault.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/doublefault.cWed Jul 18 16:56:34 2007 +1000
@@ -17,7 +17,7 @@ static unsigned long doublefault_stack[D
 
 static void doublefault_fn(void)
 {
-   struct Xgt_desc_struct gdt_desc = {0, 0};
+   struct desc_ptr gdt_desc = {0, 0};
unsigned long gdt, tss;
 
store_gdt(_desc);
diff -r 0b03f449c0b3 arch/i386/kernel/efi.c
--- a/arch/i386/kernel/efi.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/efi.cWed Jul 18 16:56:43 2007 +1000
@@ -69,7 +69,7 @@ static void efi_call_phys_prelog(void) _
 {
unsigned long cr4;
unsigned long temp;
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
spin_lock(_rt_lock);
local_irq_save(efi_rt_eflags);
@@ -111,7 +111,7 @@ static void efi_call_phys_epilog(void) _
 static void efi_call_phys_epilog(void) __releases(efi_rt_lock)
 {
unsigned long cr4;
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
gdt_descr.size = GDT_SIZE - 1;
diff -r 0b03f449c0b3 arch/i386/kernel/machine_kexec.c
--- a/arch/i386/kernel/machine_kexec.c  Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/machine_kexec.c  Wed Jul 18 16:56:54 2007 +1000
@@ -31,7 +31,7 @@ static u32 kexec_pte1[1024] PAGE_ALIGNED
 
 static void set_idt(void *newidt, __u16 limit)
 {
-   struct Xgt_desc_struct curidt;
+   struct desc_ptr curidt;
 
/* ia32 supports unaliged loads & stores */
curidt.size= limit;
@@ -43,7 +43,7 @@ static void set_idt(void *newidt, __u16 
 
 static void set_gdt(void *newgdt, __u16 limit)
 {
-   struct Xgt_desc_struct curgdt;
+   struct desc_ptr curgdt;
 
/* ia32 supports unaligned loads & stores */
curgdt.size= limit;
diff -r 0b03f449c0b3 arch/i386/kernel/reboot.c
--- a/arch/i386/kernel/reboot.c Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/reboot.c Wed Jul 18 16:56:59 2007 +1000
@@ -155,7 +155,7 @@ real_mode_gdt_entries [3] =
0x92000100ULL   /* 16-bit real-mode 64k data at 0x0100 */
 };
 
-static struct Xgt_desc_struct
+static struct desc_ptr
 real_mode_gdt = { sizeof (real_mode_gdt_entries) - 1, 
(long)real_mode_gdt_entries },
 real_mode_idt = { 0x3ff, 0 },
 no_idt = { 0, 0 };
diff -r 0b03f449c0b3 drivers/kvm/svm.c
--- a/drivers/kvm/svm.c Wed Jul 18 16:34:04 2007 +1000
+++ b/drivers/kvm/svm.c Wed Jul 18 17:10:13 2007 +1000
@@ -290,11 +290,7 @@ static void svm_hardware_enable(void *ga
 
struct svm_cpu_data *svm_data;
uint64_t efer;
-#ifdef CONFIG_X86_64
struct desc_ptr gdt_descr;
-#else
-   struct Xgt_desc_struct gdt_descr;
-#endif
struct desc_struct *gdt;
int me = raw_smp_processor_id();
 
diff -r 0b03f449c0b3 include/asm-i386/desc.h
--- a/include/asm-i386/desc.h   Wed Jul 18 16:34:04 2007 +1000
+++ b/include/asm-i386/desc.h   Wed Jul 18 16:47:34 2007 +1000
@@ -12,12 +12,6 @@
 
 #include 
 
-struct Xgt_desc_struct {
-   unsigned short size;
-   unsigned long address __attribute__((packed));
-   unsigned short pad;
-} __attribute__ ((packed));
-
 struct gdt_page
 {
struct desc_struct gdt[GDT_ENTRIES];
@@ -29,7 +23,7 @@ static inline struct desc_struct *get_cp
return per_cpu(gdt_page, cpu).gdt;
 }
 
-extern struct Xgt_desc_struct idt_descr;
+extern struct desc_ptr idt_descr;
 extern struct desc_struct idt_table[];
 extern void set_intr_gate(unsigned int irq, void * addr);
 
@@ -107,22 +101,22 @@ static inline void 

[PATCH 3/3] i386: Replace struct Xgt_desc_struct with struct desc_ptr

2007-07-18 Thread Rusty Russell
Remove i386's Xgt_desc_struct definition and use desc_def.h's desc_ptr.

The offsets in asm-offsets.c do not seem to be used anywhere, so I
simply removed them.

Signed-off-by: Rusty Russell [EMAIL PROTECTED]

diff -r 0b03f449c0b3 arch/i386/kernel/asm-offsets.c
--- a/arch/i386/kernel/asm-offsets.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/asm-offsets.cWed Jul 18 16:55:36 2007 +1000
@@ -61,11 +61,6 @@ void foo(void)
OFFSET(TI_sysenter_return, thread_info, sysenter_return);
BLANK();
 
-   OFFSET(GDS_size, Xgt_desc_struct, size);
-   OFFSET(GDS_address, Xgt_desc_struct, address);
-   OFFSET(GDS_pad, Xgt_desc_struct, pad);
-   BLANK();
-
OFFSET(PT_EBX, pt_regs, ebx);
OFFSET(PT_ECX, pt_regs, ecx);
OFFSET(PT_EDX, pt_regs, edx);
diff -r 0b03f449c0b3 arch/i386/kernel/cpu/common.c
--- a/arch/i386/kernel/cpu/common.c Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/cpu/common.c Wed Jul 18 16:56:08 2007 +1000
@@ -642,7 +642,7 @@ struct pt_regs * __devinit idle_regs(str
  * it's on the real one. */
 void switch_to_new_gdt(void)
 {
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id());
gdt_descr.size = GDT_SIZE - 1;
diff -r 0b03f449c0b3 arch/i386/kernel/doublefault.c
--- a/arch/i386/kernel/doublefault.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/doublefault.cWed Jul 18 16:56:34 2007 +1000
@@ -17,7 +17,7 @@ static unsigned long doublefault_stack[D
 
 static void doublefault_fn(void)
 {
-   struct Xgt_desc_struct gdt_desc = {0, 0};
+   struct desc_ptr gdt_desc = {0, 0};
unsigned long gdt, tss;
 
store_gdt(gdt_desc);
diff -r 0b03f449c0b3 arch/i386/kernel/efi.c
--- a/arch/i386/kernel/efi.cWed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/efi.cWed Jul 18 16:56:43 2007 +1000
@@ -69,7 +69,7 @@ static void efi_call_phys_prelog(void) _
 {
unsigned long cr4;
unsigned long temp;
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
spin_lock(efi_rt_lock);
local_irq_save(efi_rt_eflags);
@@ -111,7 +111,7 @@ static void efi_call_phys_epilog(void) _
 static void efi_call_phys_epilog(void) __releases(efi_rt_lock)
 {
unsigned long cr4;
-   struct Xgt_desc_struct gdt_descr;
+   struct desc_ptr gdt_descr;
 
gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
gdt_descr.size = GDT_SIZE - 1;
diff -r 0b03f449c0b3 arch/i386/kernel/machine_kexec.c
--- a/arch/i386/kernel/machine_kexec.c  Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/machine_kexec.c  Wed Jul 18 16:56:54 2007 +1000
@@ -31,7 +31,7 @@ static u32 kexec_pte1[1024] PAGE_ALIGNED
 
 static void set_idt(void *newidt, __u16 limit)
 {
-   struct Xgt_desc_struct curidt;
+   struct desc_ptr curidt;
 
/* ia32 supports unaliged loads  stores */
curidt.size= limit;
@@ -43,7 +43,7 @@ static void set_idt(void *newidt, __u16 
 
 static void set_gdt(void *newgdt, __u16 limit)
 {
-   struct Xgt_desc_struct curgdt;
+   struct desc_ptr curgdt;
 
/* ia32 supports unaligned loads  stores */
curgdt.size= limit;
diff -r 0b03f449c0b3 arch/i386/kernel/reboot.c
--- a/arch/i386/kernel/reboot.c Wed Jul 18 16:34:04 2007 +1000
+++ b/arch/i386/kernel/reboot.c Wed Jul 18 16:56:59 2007 +1000
@@ -155,7 +155,7 @@ real_mode_gdt_entries [3] =
0x92000100ULL   /* 16-bit real-mode 64k data at 0x0100 */
 };
 
-static struct Xgt_desc_struct
+static struct desc_ptr
 real_mode_gdt = { sizeof (real_mode_gdt_entries) - 1, 
(long)real_mode_gdt_entries },
 real_mode_idt = { 0x3ff, 0 },
 no_idt = { 0, 0 };
diff -r 0b03f449c0b3 drivers/kvm/svm.c
--- a/drivers/kvm/svm.c Wed Jul 18 16:34:04 2007 +1000
+++ b/drivers/kvm/svm.c Wed Jul 18 17:10:13 2007 +1000
@@ -290,11 +290,7 @@ static void svm_hardware_enable(void *ga
 
struct svm_cpu_data *svm_data;
uint64_t efer;
-#ifdef CONFIG_X86_64
struct desc_ptr gdt_descr;
-#else
-   struct Xgt_desc_struct gdt_descr;
-#endif
struct desc_struct *gdt;
int me = raw_smp_processor_id();
 
diff -r 0b03f449c0b3 include/asm-i386/desc.h
--- a/include/asm-i386/desc.h   Wed Jul 18 16:34:04 2007 +1000
+++ b/include/asm-i386/desc.h   Wed Jul 18 16:47:34 2007 +1000
@@ -12,12 +12,6 @@
 
 #include asm/mmu.h
 
-struct Xgt_desc_struct {
-   unsigned short size;
-   unsigned long address __attribute__((packed));
-   unsigned short pad;
-} __attribute__ ((packed));
-
 struct gdt_page
 {
struct desc_struct gdt[GDT_ENTRIES];
@@ -29,7 +23,7 @@ static inline struct desc_struct *get_cp
return per_cpu(gdt_page, cpu).gdt;
 }
 
-extern struct Xgt_desc_struct idt_descr;
+extern struct desc_ptr idt_descr;
 extern struct desc_struct idt_table[];
 extern void set_intr_gate(unsigned int irq, void * addr);
 
@@ -107,22 +101,22 @@ static