mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 23:29:46 +00:00
selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test
Update the arch_prctl test to check the permission bitmap whether the requested feature is added as expected or not. Every non-dynamic feature that is enabled is permitted already for use. TILECFG is not dynamic feature. Ensure the bit is always on from ARCH_GET_XCOMP_PERM. Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20220129173647.27981-3-chang.seok.bae@intel.com
This commit is contained in:
parent
063452fd94
commit
20df737561
@ -368,9 +368,16 @@ static void req_xtiledata_perm(void)
|
||||
|
||||
static void validate_req_xcomp_perm(enum expected_result exp)
|
||||
{
|
||||
unsigned long bitmask;
|
||||
unsigned long bitmask, expected_bitmask;
|
||||
long rc;
|
||||
|
||||
rc = syscall(SYS_arch_prctl, ARCH_GET_XCOMP_PERM, &bitmask);
|
||||
if (rc) {
|
||||
fatal_error("prctl(ARCH_GET_XCOMP_PERM) error: %ld", rc);
|
||||
} else if (!(bitmask & XFEATURE_MASK_XTILECFG)) {
|
||||
fatal_error("ARCH_GET_XCOMP_PERM returns XFEATURE_XTILECFG off.");
|
||||
}
|
||||
|
||||
rc = syscall(SYS_arch_prctl, ARCH_REQ_XCOMP_PERM, XFEATURE_XTILEDATA);
|
||||
if (exp == FAIL_EXPECTED) {
|
||||
if (rc) {
|
||||
@ -383,10 +390,15 @@ static void validate_req_xcomp_perm(enum expected_result exp)
|
||||
fatal_error("ARCH_REQ_XCOMP_PERM saw unexpected failure.\n");
|
||||
}
|
||||
|
||||
expected_bitmask = bitmask | XFEATURE_MASK_XTILEDATA;
|
||||
|
||||
rc = syscall(SYS_arch_prctl, ARCH_GET_XCOMP_PERM, &bitmask);
|
||||
if (rc) {
|
||||
fatal_error("prctl(ARCH_GET_XCOMP_PERM) error: %ld", rc);
|
||||
} else if (bitmask & XFEATURE_MASK_XTILE) {
|
||||
} else if (bitmask != expected_bitmask) {
|
||||
fatal_error("ARCH_REQ_XCOMP_PERM set a wrong bitmask: %lx, expected: %lx.\n",
|
||||
bitmask, expected_bitmask);
|
||||
} else {
|
||||
printf("\tARCH_REQ_XCOMP_PERM is successful.\n");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user