diff options
Diffstat (limited to 'arch/x86/kernel/ioport_32.c')
-rw-r--r-- | arch/x86/kernel/ioport_32.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kernel/ioport_32.c b/arch/x86/kernel/ioport_32.c index c281ffa18259..9295e01ff49c 100644 --- a/arch/x86/kernel/ioport_32.c +++ b/arch/x86/kernel/ioport_32.c | |||
@@ -100,7 +100,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) | |||
100 | * beyond the 0x3ff range: to get the full 65536 ports bitmapped | 100 | * beyond the 0x3ff range: to get the full 65536 ports bitmapped |
101 | * you'd need 8kB of bitmaps/process, which is a bit excessive. | 101 | * you'd need 8kB of bitmaps/process, which is a bit excessive. |
102 | * | 102 | * |
103 | * Here we just change the eflags value on the stack: we allow | 103 | * Here we just change the flags value on the stack: we allow |
104 | * only the super-user to do it. This depends on the stack-layout | 104 | * only the super-user to do it. This depends on the stack-layout |
105 | * on system-call entry - see also fork() and the signal handling | 105 | * on system-call entry - see also fork() and the signal handling |
106 | * code. | 106 | * code. |
@@ -109,8 +109,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) | |||
109 | asmlinkage long sys_iopl(unsigned long regsp) | 109 | asmlinkage long sys_iopl(unsigned long regsp) |
110 | { | 110 | { |
111 | volatile struct pt_regs *regs = (struct pt_regs *)®sp; | 111 | volatile struct pt_regs *regs = (struct pt_regs *)®sp; |
112 | unsigned int level = regs->ebx; | 112 | unsigned int level = regs->bx; |
113 | unsigned int old = (regs->eflags >> 12) & 3; | 113 | unsigned int old = (regs->flags >> 12) & 3; |
114 | struct thread_struct *t = ¤t->thread; | 114 | struct thread_struct *t = ¤t->thread; |
115 | 115 | ||
116 | if (level > 3) | 116 | if (level > 3) |
@@ -122,7 +122,7 @@ asmlinkage long sys_iopl(unsigned long regsp) | |||
122 | } | 122 | } |
123 | 123 | ||
124 | t->iopl = level << 12; | 124 | t->iopl = level << 12; |
125 | regs->eflags = (regs->eflags & ~X86_EFLAGS_IOPL) | t->iopl; | 125 | regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | t->iopl; |
126 | set_iopl_mask(t->iopl); | 126 | set_iopl_mask(t->iopl); |
127 | 127 | ||
128 | return 0; | 128 | return 0; |