]>
Commit | Line | Data |
---|---|---|
321d628a FG |
1 | From 6c80693ba5d8d09e509a5613aa6e51b59a28585c Mon Sep 17 00:00:00 2001 |
2 | From: Randy Dunlap <rdunlap@infradead.org> | |
3 | Date: Mon, 11 Dec 2017 10:38:36 -0800 | |
e4cdf2a5 | 4 | Subject: [PATCH 134/241] x86/decoder: Fix and update the opcodes map |
321d628a FG |
5 | MIME-Version: 1.0 |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | CVE-2017-5754 | |
10 | ||
11 | Update x86-opcode-map.txt based on the October 2017 Intel SDM publication. | |
12 | Fix INVPID to INVVPID. | |
13 | Add UD0 and UD1 instruction opcodes. | |
14 | ||
15 | Also sync the objtool and perf tooling copies of this file. | |
16 | ||
17 | Signed-off-by: Randy Dunlap <rdunlap@infradead.org> | |
18 | Acked-by: Masami Hiramatsu <mhiramat@kernel.org> | |
19 | Cc: Josh Poimboeuf <jpoimboe@redhat.com> | |
20 | Cc: Linus Torvalds <torvalds@linux-foundation.org> | |
21 | Cc: Masami Hiramatsu <masami.hiramatsu@gmail.com> | |
22 | Cc: Peter Zijlstra <peterz@infradead.org> | |
23 | Cc: Thomas Gleixner <tglx@linutronix.de> | |
24 | Link: http://lkml.kernel.org/r/aac062d7-c0f6-96e3-5c92-ed299e2bd3da@infradead.org | |
25 | Signed-off-by: Ingo Molnar <mingo@kernel.org> | |
26 | (cherry picked from commit f5395545058cd388da5d99bda3dedd2a2fe56dbc) | |
27 | Signed-off-by: Andy Whitcroft <apw@canonical.com> | |
28 | Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> | |
29 | (cherry picked from commit f88b977dde8156d6c4514114baa0eed05dd48e41) | |
30 | Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> | |
31 | --- | |
32 | arch/x86/lib/x86-opcode-map.txt | 13 +++++++++++-- | |
33 | tools/objtool/arch/x86/lib/x86-opcode-map.txt | 15 ++++++++++++--- | |
34 | tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | 15 ++++++++++++--- | |
35 | 3 files changed, 35 insertions(+), 8 deletions(-) | |
36 | ||
37 | diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt | |
38 | index 12e377184ee4..aa2270dc9e87 100644 | |
39 | --- a/arch/x86/lib/x86-opcode-map.txt | |
40 | +++ b/arch/x86/lib/x86-opcode-map.txt | |
41 | @@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |
42 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | |
43 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | |
44 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | |
45 | -ff: | |
46 | +ff: UD0 | |
47 | EndTable | |
48 | ||
49 | Table: 3-byte opcode 1 (0x0f 0x38) | |
50 | @@ -717,7 +717,7 @@ AVXcode: 2 | |
51 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | |
52 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | |
53 | 80: INVEPT Gy,Mdq (66) | |
54 | -81: INVPID Gy,Mdq (66) | |
55 | +81: INVVPID Gy,Mdq (66) | |
56 | 82: INVPCID Gy,Mdq (66) | |
57 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | |
58 | 88: vexpandps/d Vpd,Wpd (66),(ev) | |
59 | @@ -970,6 +970,15 @@ GrpTable: Grp9 | |
60 | EndTable | |
61 | ||
62 | GrpTable: Grp10 | |
63 | +# all are UD1 | |
64 | +0: UD1 | |
65 | +1: UD1 | |
66 | +2: UD1 | |
67 | +3: UD1 | |
68 | +4: UD1 | |
69 | +5: UD1 | |
70 | +6: UD1 | |
71 | +7: UD1 | |
72 | EndTable | |
73 | ||
74 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | |
75 | diff --git a/tools/objtool/arch/x86/lib/x86-opcode-map.txt b/tools/objtool/arch/x86/lib/x86-opcode-map.txt | |
76 | index 12e377184ee4..e0b85930dd77 100644 | |
77 | --- a/tools/objtool/arch/x86/lib/x86-opcode-map.txt | |
78 | +++ b/tools/objtool/arch/x86/lib/x86-opcode-map.txt | |
79 | @@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |
80 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | |
81 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | |
82 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | |
83 | -ff: | |
84 | +ff: UD0 | |
85 | EndTable | |
86 | ||
87 | Table: 3-byte opcode 1 (0x0f 0x38) | |
88 | @@ -717,7 +717,7 @@ AVXcode: 2 | |
89 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | |
90 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | |
91 | 80: INVEPT Gy,Mdq (66) | |
92 | -81: INVPID Gy,Mdq (66) | |
93 | +81: INVVPID Gy,Mdq (66) | |
94 | 82: INVPCID Gy,Mdq (66) | |
95 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | |
96 | 88: vexpandps/d Vpd,Wpd (66),(ev) | |
97 | @@ -896,7 +896,7 @@ EndTable | |
98 | ||
99 | GrpTable: Grp3_1 | |
100 | 0: TEST Eb,Ib | |
101 | -1: | |
102 | +1: TEST Eb,Ib | |
103 | 2: NOT Eb | |
104 | 3: NEG Eb | |
105 | 4: MUL AL,Eb | |
106 | @@ -970,6 +970,15 @@ GrpTable: Grp9 | |
107 | EndTable | |
108 | ||
109 | GrpTable: Grp10 | |
110 | +# all are UD1 | |
111 | +0: UD1 | |
112 | +1: UD1 | |
113 | +2: UD1 | |
114 | +3: UD1 | |
115 | +4: UD1 | |
116 | +5: UD1 | |
117 | +6: UD1 | |
118 | +7: UD1 | |
119 | EndTable | |
120 | ||
121 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | |
122 | diff --git a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | |
123 | index 12e377184ee4..e0b85930dd77 100644 | |
124 | --- a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | |
125 | +++ b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | |
126 | @@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |
127 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | |
128 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | |
129 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | |
130 | -ff: | |
131 | +ff: UD0 | |
132 | EndTable | |
133 | ||
134 | Table: 3-byte opcode 1 (0x0f 0x38) | |
135 | @@ -717,7 +717,7 @@ AVXcode: 2 | |
136 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | |
137 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | |
138 | 80: INVEPT Gy,Mdq (66) | |
139 | -81: INVPID Gy,Mdq (66) | |
140 | +81: INVVPID Gy,Mdq (66) | |
141 | 82: INVPCID Gy,Mdq (66) | |
142 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | |
143 | 88: vexpandps/d Vpd,Wpd (66),(ev) | |
144 | @@ -896,7 +896,7 @@ EndTable | |
145 | ||
146 | GrpTable: Grp3_1 | |
147 | 0: TEST Eb,Ib | |
148 | -1: | |
149 | +1: TEST Eb,Ib | |
150 | 2: NOT Eb | |
151 | 3: NEG Eb | |
152 | 4: MUL AL,Eb | |
153 | @@ -970,6 +970,15 @@ GrpTable: Grp9 | |
154 | EndTable | |
155 | ||
156 | GrpTable: Grp10 | |
157 | +# all are UD1 | |
158 | +0: UD1 | |
159 | +1: UD1 | |
160 | +2: UD1 | |
161 | +3: UD1 | |
162 | +4: UD1 | |
163 | +5: UD1 | |
164 | +6: UD1 | |
165 | +7: UD1 | |
166 | EndTable | |
167 | ||
168 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | |
169 | -- | |
170 | 2.14.2 | |
171 |