Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f912696a authored by Bart Oldeman's avatar Bart Oldeman Committed by Linus Torvalds
Browse files

[PATCH] reset tss->io_bitmap_owner in sys_ioperm()



my patch "x86: initialise tss->io_bitmap_owner to something" (commit ID
d5cd4aad) introduced a problem with a
program (DOSEMU) that called ioperm after already doing some port i/o.

The problem is that a process switch return causes tss->io_bitmap_base
to be set to IO_BITMAP_OFFSET so that the fault (that *really* sets the
io bitmap) never triggers.

This fixes that regression.

Signed-off-by: default avatarBart Oldeman <bartoldeman@users.sourceforge.net>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 88dcb6c4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -108,8 +108,11 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
	/*
	 * Sets the lazy trigger so that the next I/O operation will
	 * reload the correct bitmap.
	 * Reset the owner so that a process switch will not set
	 * tss->io_bitmap_base to IO_BITMAP_OFFSET.
	 */
	tss->io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
	tss->io_bitmap_owner = NULL;

	put_cpu();