aboutsummaryrefslogtreecommitdiff
path: root/website/static/security/patches/SA-05:03/amd64.patch
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 */