search for: save_desc_40

Displaying 14 results from an estimated 14 matches for "save_desc_40".

2007 Apr 18
1
[PATCH 7/21] i386 Losing fs gs to bios
...2.6.14-zach-work.orig/include/asm-i386/desc.h 2005-11-04 16:54:51.000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/desc.h 2005-11-05 00:28:10.000000000 -0800 @@ -158,6 +158,32 @@ static inline unsigned long get_desc_bas return base; } +struct bios_segment_save { + struct desc_struct save_desc_40; + struct desc_struct *gdt; + unsigned short saved_fs; + unsigned short saved_gs; +}; + +static inline void prepare_bios_segments(struct bios_segment_save *save_area) +{ + int cpu = get_cpu(); + struct desc_struct *gdt = get_cpu_gdt_table(cpu); + save_area->gdt = gdt; + savesegment(fs, save_area...
2007 Apr 18
1
[PATCH 7/21] i386 Losing fs gs to bios
...2.6.14-zach-work.orig/include/asm-i386/desc.h 2005-11-04 16:54:51.000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/desc.h 2005-11-05 00:28:10.000000000 -0800 @@ -158,6 +158,32 @@ static inline unsigned long get_desc_bas return base; } +struct bios_segment_save { + struct desc_struct save_desc_40; + struct desc_struct *gdt; + unsigned short saved_fs; + unsigned short saved_gs; +}; + +static inline void prepare_bios_segments(struct bios_segment_save *save_area) +{ + int cpu = get_cpu(); + struct desc_struct *gdt = get_cpu_gdt_table(cpu); + save_area->gdt = gdt; + savesegment(fs, save_area...
2007 Apr 18
0
[PATCH 7/12] gdt-accessor
...=================================================================== --- linux-2.6.13.orig/arch/i386/kernel/apm.c 2005-08-08 17:09:57.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/apm.c 2005-08-08 17:16:07.000000000 -0700 @@ -597,12 +597,14 @@ cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[desc_number(0x40)]; + gdt[desc_number(0x40)] = bad_bios...
2007 Apr 18
0
[PATCH 7/12] gdt-accessor
...=================================================================== --- linux-2.6.13.orig/arch/i386/kernel/apm.c 2005-08-08 17:09:57.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/apm.c 2005-08-08 17:16:07.000000000 -0700 @@ -597,12 +597,14 @@ cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[desc_number(0x40)]; + gdt[desc_number(0x40)] = bad_bios...
2007 Apr 18
1
[PATCH 2/3] Gdt_accessor
...================== --- linux-2.6.14-rc1.orig/arch/i386/kernel/apm.c 2005-09-20 14:49:10.000000000 -0700 +++ linux-2.6.14-rc1/arch/i386/kernel/apm.c 2005-09-20 14:53:14.000000000 -0700 @@ -597,12 +597,14 @@ static u8 apm_bios_call(u32 func, u32 eb cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[0x40 / 8]; + gdt[0x40 / 8] = bad_bios_desc; local_s...
2007 Apr 18
1
[PATCH 2/3] Gdt_accessor
...================== --- linux-2.6.14-rc1.orig/arch/i386/kernel/apm.c 2005-09-20 14:49:10.000000000 -0700 +++ linux-2.6.14-rc1/arch/i386/kernel/apm.c 2005-09-20 14:53:14.000000000 -0700 @@ -597,12 +597,14 @@ static u8 apm_bios_call(u32 func, u32 eb cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[0x40 / 8]; + gdt[0x40 / 8] = bad_bios_desc; local_s...
2007 Apr 18
2
[PATCH 8/14] i386 / Add a per cpu gdt accessor
...=================================================================== --- linux-2.6.13.orig/arch/i386/kernel/apm.c 2005-08-09 20:17:21.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/apm.c 2005-08-10 20:41:52.000000000 -0700 @@ -597,12 +597,14 @@ cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[segment_index(0x40)]; + gdt[segment_index(0x40)] = bad_...
2007 Apr 18
2
[PATCH 8/14] i386 / Add a per cpu gdt accessor
...=================================================================== --- linux-2.6.13.orig/arch/i386/kernel/apm.c 2005-08-09 20:17:21.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/apm.c 2005-08-10 20:41:52.000000000 -0700 @@ -597,12 +597,14 @@ cpumask_t cpus; int cpu; struct desc_struct save_desc_40; + struct desc_struct *gdt; cpus = apm_save_cpus(); cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table, cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table, cpu)[0x40 / 8] = bad_bios_desc; + gdt = get_cpu_gdt_table(cpu); + save_desc_40 = gdt[segment_index(0x40)]; + gdt[segment_index(0x40)] = bad_...
2007 Apr 18
0
[PATCH 1/3] Gdt page isolation fix
...me) >> 3], (u32)(address)); \ +set_limit(get_cpu_gdt_table(cpu)[(selname) >> 3], size); \ } while(0) static struct desc_struct bad_bios_desc = { 0, 0x00409200 }; @@ -115,8 +115,8 @@ static inline u16 call_pnp_bios(u16 func return PNP_FUNCTION_NOT_SUPPORTED; cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table,cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table,cpu)[0x40 / 8] = bad_bios_desc; + save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8]; + get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc; /* On some boxes IRQ's during PnP BIOS calls are deadly. */ spin_lock_irqsave(&pnp_bi...
2007 Apr 18
0
[PATCH 1/3] Gdt page isolation fix
...me) >> 3], (u32)(address)); \ +set_limit(get_cpu_gdt_table(cpu)[(selname) >> 3], size); \ } while(0) static struct desc_struct bad_bios_desc = { 0, 0x00409200 }; @@ -115,8 +115,8 @@ static inline u16 call_pnp_bios(u16 func return PNP_FUNCTION_NOT_SUPPORTED; cpu = get_cpu(); - save_desc_40 = per_cpu(cpu_gdt_table,cpu)[0x40 / 8]; - per_cpu(cpu_gdt_table,cpu)[0x40 / 8] = bad_bios_desc; + save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8]; + get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc; /* On some boxes IRQ's during PnP BIOS calls are deadly. */ spin_lock_irqsave(&pnp_bi...
2007 Apr 18
2
[PATCH 4/21] i386 Broken bios common
...er_list; static DEFINE_SPINLOCK(user_list_lock); -static struct desc_struct bad_bios_desc = { 0, 0x00409200 }; static char driver_version[] = "1.16ac"; /* no spaces */ @@ -593,7 +592,7 @@ static u8 apm_bios_call(u32 func, u32 eb cpu = get_cpu(); gdt = get_cpu_gdt_table(cpu); save_desc_40 = gdt[0x40 / 8]; - gdt[0x40 / 8] = bad_bios_desc; + gdt[0x40 / 8] = gdt[GDT_ENTRY_BAD_BIOS_CACHE]; local_save_flags(flags); APM_DO_CLI; @@ -637,7 +636,7 @@ static u8 apm_bios_call_simple(u32 func, cpu = get_cpu(); gdt = get_cpu_gdt_table(cpu); save_desc_40 = gdt[0x40 / 8]; - gdt[0x40 /...
2007 Apr 18
2
[PATCH 4/21] i386 Broken bios common
...er_list; static DEFINE_SPINLOCK(user_list_lock); -static struct desc_struct bad_bios_desc = { 0, 0x00409200 }; static char driver_version[] = "1.16ac"; /* no spaces */ @@ -593,7 +592,7 @@ static u8 apm_bios_call(u32 func, u32 eb cpu = get_cpu(); gdt = get_cpu_gdt_table(cpu); save_desc_40 = gdt[0x40 / 8]; - gdt[0x40 / 8] = bad_bios_desc; + gdt[0x40 / 8] = gdt[GDT_ENTRY_BAD_BIOS_CACHE]; local_save_flags(flags); APM_DO_CLI; @@ -637,7 +636,7 @@ static u8 apm_bios_call_simple(u32 func, cpu = get_cpu(); gdt = get_cpu_gdt_table(cpu); save_desc_40 = gdt[0x40 / 8]; - gdt[0x40 /...
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
...+{ + struct desc_struct *gdt = get_cpu_gdt_table(cpu); + + /* Forced zero-length segments to 1-byte access at unmapped page zero */ + set_base(gdt[gdt_entry], size > 0 ? (u32)base : 0); + set_limit(gdt[gdt_entry], size > 0 ? size - 1 : 0); +} + struct bios_segment_save { struct desc_struct save_desc_40; struct desc_struct *gdt; Index: linux-2.6.14-zach-work/include/asm-i386/system.h =================================================================== --- linux-2.6.14-zach-work.orig/include/asm-i386/system.h 2005-11-04 17:18:05.000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/system.h...
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
...+{ + struct desc_struct *gdt = get_cpu_gdt_table(cpu); + + /* Forced zero-length segments to 1-byte access at unmapped page zero */ + set_base(gdt[gdt_entry], size > 0 ? (u32)base : 0); + set_limit(gdt[gdt_entry], size > 0 ? size - 1 : 0); +} + struct bios_segment_save { struct desc_struct save_desc_40; struct desc_struct *gdt; Index: linux-2.6.14-zach-work/include/asm-i386/system.h =================================================================== --- linux-2.6.14-zach-work.orig/include/asm-i386/system.h 2005-11-04 17:18:05.000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/system.h...