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...