diff options
| -rw-r--r-- | vm.c | 4 | 
1 files changed, 3 insertions, 1 deletions
@@ -168,7 +168,9 @@ switchuvm(struct proc *p)    cpu->gdt[SEG_TSS].s = 0;    cpu->ts.ss0 = SEG_KDATA << 3;    cpu->ts.esp0 = (uint)proc->kstack + KSTACKSIZE; -  cpu->ts.iomb = (ushort) 0xFFFF;  // forbid I/O instructions from user space +  // setting IOPL=0 in eflags *and* iomb beyond the tss segment limit +  // forbids I/O instructions (e.g., inb and outb) from user space +  cpu->ts.iomb = (ushort) 0xFFFF;    ltr(SEG_TSS << 3);    if(p->pgdir == 0)      panic("switchuvm: no pgdir");  | 
