3434#define MAX_TILES 16
3535#define RESERVED_BYTES 14
3636
37- #define XFEATURE_XTILECFG 17
38- #define XFEATURE_XTILEDATA 18
39- #define XFEATURE_MASK_XTILECFG (1 << XFEATURE_XTILECFG)
40- #define XFEATURE_MASK_XTILEDATA (1 << XFEATURE_XTILEDATA)
41- #define XFEATURE_MASK_XTILE (XFEATURE_MASK_XTILECFG | XFEATURE_MASK_XTILEDATA)
42-
4337#define XSAVE_HDR_OFFSET 512
4438
4539struct tile_config {
@@ -172,25 +166,25 @@ static void __attribute__((__flatten__)) guest_code(struct tile_config *amx_cfg,
172166 * After XSAVEC, XTILEDATA is cleared in the xstate_bv but is set in
173167 * the xcomp_bv.
174168 */
175- xstate -> header .xstate_bv = XFEATURE_MASK_XTILEDATA ;
176- __xsavec (xstate , XFEATURE_MASK_XTILEDATA );
177- GUEST_ASSERT (!(xstate -> header .xstate_bv & XFEATURE_MASK_XTILEDATA ));
178- GUEST_ASSERT (xstate -> header .xcomp_bv & XFEATURE_MASK_XTILEDATA );
169+ xstate -> header .xstate_bv = XFEATURE_MASK_XTILE_DATA ;
170+ __xsavec (xstate , XFEATURE_MASK_XTILE_DATA );
171+ GUEST_ASSERT (!(xstate -> header .xstate_bv & XFEATURE_MASK_XTILE_DATA ));
172+ GUEST_ASSERT (xstate -> header .xcomp_bv & XFEATURE_MASK_XTILE_DATA );
179173
180174 /* xfd=0x40000, disable amx tiledata */
181- wrmsr (MSR_IA32_XFD , XFEATURE_MASK_XTILEDATA );
175+ wrmsr (MSR_IA32_XFD , XFEATURE_MASK_XTILE_DATA );
182176
183177 /*
184178 * XTILEDATA is cleared in xstate_bv but set in xcomp_bv, this property
185179 * remains the same even when amx tiledata is disabled by IA32_XFD.
186180 */
187- xstate -> header .xstate_bv = XFEATURE_MASK_XTILEDATA ;
188- __xsavec (xstate , XFEATURE_MASK_XTILEDATA );
189- GUEST_ASSERT (!(xstate -> header .xstate_bv & XFEATURE_MASK_XTILEDATA ));
190- GUEST_ASSERT ((xstate -> header .xcomp_bv & XFEATURE_MASK_XTILEDATA ));
181+ xstate -> header .xstate_bv = XFEATURE_MASK_XTILE_DATA ;
182+ __xsavec (xstate , XFEATURE_MASK_XTILE_DATA );
183+ GUEST_ASSERT (!(xstate -> header .xstate_bv & XFEATURE_MASK_XTILE_DATA ));
184+ GUEST_ASSERT ((xstate -> header .xcomp_bv & XFEATURE_MASK_XTILE_DATA ));
191185
192186 GUEST_SYNC (6 );
193- GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILEDATA );
187+ GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILE_DATA );
194188 set_tilecfg (amx_cfg );
195189 __ldtilecfg (amx_cfg );
196190 /* Trigger #NM exception */
@@ -202,14 +196,14 @@ static void __attribute__((__flatten__)) guest_code(struct tile_config *amx_cfg,
202196
203197void guest_nm_handler (struct ex_regs * regs )
204198{
205- /* Check if #NM is triggered by XFEATURE_MASK_XTILEDATA */
199+ /* Check if #NM is triggered by XFEATURE_MASK_XTILE_DATA */
206200 GUEST_SYNC (7 );
207201 GUEST_ASSERT (!(get_cr0 () & X86_CR0_TS ));
208- GUEST_ASSERT (rdmsr (MSR_IA32_XFD_ERR ) == XFEATURE_MASK_XTILEDATA );
209- GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILEDATA );
202+ GUEST_ASSERT (rdmsr (MSR_IA32_XFD_ERR ) == XFEATURE_MASK_XTILE_DATA );
203+ GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILE_DATA );
210204 GUEST_SYNC (8 );
211- GUEST_ASSERT (rdmsr (MSR_IA32_XFD_ERR ) == XFEATURE_MASK_XTILEDATA );
212- GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILEDATA );
205+ GUEST_ASSERT (rdmsr (MSR_IA32_XFD_ERR ) == XFEATURE_MASK_XTILE_DATA );
206+ GUEST_ASSERT (rdmsr (MSR_IA32_XFD ) == XFEATURE_MASK_XTILE_DATA );
213207 /* Clear xfd_err */
214208 wrmsr (MSR_IA32_XFD_ERR , 0 );
215209 /* xfd=0, enable amx */
@@ -233,7 +227,7 @@ int main(int argc, char *argv[])
233227 * Note, all off-by-default features must be enabled before anything
234228 * caches KVM_GET_SUPPORTED_CPUID, e.g. before using kvm_cpu_has().
235229 */
236- vm_xsave_require_permission (XFEATURE_MASK_XTILEDATA );
230+ vm_xsave_require_permission (XFEATURE_MASK_XTILE_DATA );
237231
238232 TEST_REQUIRE (kvm_cpu_has (X86_FEATURE_XFD ));
239233 TEST_REQUIRE (kvm_cpu_has (X86_FEATURE_XSAVE ));
0 commit comments