]>
Commit | Line | Data |
---|---|---|
4e407086 | 1 | --- linux-2.4.20-gw3/arch/i386/kernel/ioport.c 2003-05-16 23:42:47.000000000 +0100 |
2 | +++ linux-2.4.20-gw4/arch/i386/kernel/ioport.c 2003-05-16 23:42:49.000000000 +0100 | |
3 | @@ -72,17 +72,18 @@ | |
4 | */ | |
5 | memset(t->io_bitmap,0xff,(IO_BITMAP_SIZE+1)*4); | |
6 | t->ioperm = 1; | |
7 | - /* | |
8 | - * this activates it in the TSS | |
9 | - */ | |
10 | - tss->bitmap = IO_BITMAP_OFFSET; | |
11 | } | |
12 | ||
13 | /* | |
14 | * do it in the per-thread copy and in the TSS ... | |
15 | */ | |
16 | set_bitmap(t->io_bitmap, from, num, !turn_on); | |
17 | - set_bitmap(tss->io_bitmap, from, num, !turn_on); | |
18 | + if (tss->bitmap == IO_BITMAP_OFFSET) { /* already active? */ | |
19 | + set_bitmap(tss->io_bitmap, from, num, !turn_on); | |
20 | + } else { | |
21 | + memcpy(tss->io_bitmap, t->io_bitmap, IO_BITMAP_SIZE); | |
22 | + tss->bitmap = IO_BITMAP_OFFSET; /* Activate it in the TSS */ | |
23 | + } | |
24 | ||
25 | return 0; | |
26 | } |