diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-05-01 22:59:25 +0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-05-01 23:09:53 +0400 |
commit | f9a196b8dceba3c1e5fe885b81e45043ad7c60fc (patch) | |
tree | 737d05ec2e46c16f191a919ebc2545911425c420 /arch/x86 | |
parent | 2f65dd475c6a8a997145ea83cc3d2d5e6dc55af1 (diff) | |
download | linux-f9a196b8dceba3c1e5fe885b81e45043ad7c60fc.tar.xz |
x86: initialize io_bitmap_base on 32bit
commit db949bba3c7cf2e664ac12e237c6d4c914f0c69d (x86-32: use non-lazy
io bitmap context switching) broke ioperm for 32bit because it removed
the lazy initialization of io_bitmap_base and did not set it to the
real bitmap offset.
[ Impact: fix non-working sys_ioperm() on 32-bit kernels ]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index c4f667896c28..c1caefc82e62 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -1203,6 +1203,8 @@ void __cpuinit cpu_init(void) load_TR_desc(); load_LDT(&init_mm.context); + t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap); + #ifdef CONFIG_DOUBLEFAULT /* Set up doublefault TSS pointer in the GDT */ __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); |