blob: 0e50885b43927dca2ecf044c6002246692afed0f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
Index: sys/amd64/amd64/machdep.c
===================================================================
RCS file: /home/ncvs/src/sys/amd64/amd64/machdep.c,v
retrieving revision 1.633
diff -u -p -r1.633 machdep.c
--- sys/amd64/amd64/machdep.c 4 Apr 2005 21:53:52 -0000 1.633
+++ sys/amd64/amd64/machdep.c 6 Apr 2005 00:35:05 -0000
@@ -1251,6 +1251,9 @@ hammer_time(u_int64_t modulep, u_int64_t
/* doublefault stack space, runs on ist1 */
common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)];
+ /* Set the IO permission bitmap (empty due to tss seg limit) */
+ common_tss[0].tss_iobase = sizeof(struct amd64tss);
+
gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
ltr(gsel_tss);
Index: sys/amd64/amd64/mp_machdep.c
===================================================================
RCS file: /home/ncvs/src/sys/amd64/amd64/mp_machdep.c,v
retrieving revision 1.251
diff -u -p -r1.251 mp_machdep.c
--- sys/amd64/amd64/mp_machdep.c 4 Apr 2005 21:53:52 -0000 1.251
+++ sys/amd64/amd64/mp_machdep.c 6 Apr 2005 00:35:05 -0000
@@ -379,6 +379,7 @@ init_secondary(void)
/* Init tss */
common_tss[cpu] = common_tss[0];
common_tss[cpu].tss_rsp0 = 0; /* not used until after switch */
+ common_tss[cpu].tss_iobase = sizeof(struct amd64tss);
gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu];
ssdtosyssd(&gdt_segs[GPROC0_SEL],
Index: sys/amd64/include/tss.h
===================================================================
RCS file: /home/ncvs/src/sys/amd64/include/tss.h,v
retrieving revision 1.16
diff -u -p -r1.16 tss.h
--- sys/amd64/include/tss.h 5 Apr 2004 21:25:51 -0000 1.16
+++ sys/amd64/include/tss.h 6 Apr 2005 00:35:05 -0000
@@ -50,7 +50,6 @@ struct amd64tss {
u_int64_t tss_rsp2 __packed; /* kernel stack pointer ring 2 */
u_int32_t tss_rsvd1;
u_int32_t tss_rsvd2;
- u_int32_t tss_rsvd3;
u_int64_t tss_ist1 __packed; /* Interrupt stack table 1 */
u_int64_t tss_ist2 __packed; /* Interrupt stack table 2 */
u_int64_t tss_ist3 __packed; /* Interrupt stack table 3 */
|