Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d12fe87e authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

signal/testing: Don't look for __SI_FAULT in userspace



Fix the debug print statements in these tests where they reference
si_codes and in particular __SI_FAULT.  __SI_FAULT is a kernel
internal value and should never be seen by userspace.

While I am in there also fix si_code_str.  si_codes are an enumeration
there are not a bitmap so == and not & is the apropriate operation to
test for an si_code.

Cc: Dave Hansen <dave.hansen@linux.intel.com>
Fixes: 5f23f6d0 ("x86/pkeys: Add self-tests")
Fixes: e754aedc ("x86/mpx, selftests: Add MPX self test")
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent ea1b75cf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -391,8 +391,7 @@ void handler(int signum, siginfo_t *si, void *vucontext)
		br_count++;
		dprintf1("#BR 0x%jx (total seen: %d)\n", status, br_count);

#define __SI_FAULT      (3 << 16)
#define SEGV_BNDERR     (__SI_FAULT|3)  /* failed address bound checks */
#define SEGV_BNDERR     3  /* failed address bound checks */

		dprintf2("Saw a #BR! status 0x%jx at %016lx br_reason: %jx\n",
				status, ip, br_reason);
+6 −7
Original line number Diff line number Diff line
@@ -212,19 +212,18 @@ void dump_mem(void *dumpme, int len_bytes)
	}
}

#define __SI_FAULT      (3 << 16)
#define SEGV_BNDERR     (__SI_FAULT|3)  /* failed address bound checks */
#define SEGV_PKUERR     (__SI_FAULT|4)
#define SEGV_BNDERR     3  /* failed address bound checks */
#define SEGV_PKUERR     4

static char *si_code_str(int si_code)
{
	if (si_code & SEGV_MAPERR)
	if (si_code == SEGV_MAPERR)
		return "SEGV_MAPERR";
	if (si_code & SEGV_ACCERR)
	if (si_code == SEGV_ACCERR)
		return "SEGV_ACCERR";
	if (si_code & SEGV_BNDERR)
	if (si_code == SEGV_BNDERR)
		return "SEGV_BNDERR";
	if (si_code & SEGV_PKUERR)
	if (si_code == SEGV_PKUERR)
		return "SEGV_PKUERR";
	return "UNKNOWN";
}