Message ID | d7e82b374cb7c83d6e18774e23bc4d970c4e8b53.1603728729.git.bertrand.marquis@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen/arm: Warn user on cpu errata 832075 | expand |
On Mon, 26 Oct 2020, Bertrand Marquis wrote: > Define a new Unsecure taint type to be used to signal a system tainted > due to an unsecure configuration or hardware feature/errata. > > Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > xen/common/kernel.c | 4 +++- > xen/include/xen/lib.h | 1 + > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/xen/common/kernel.c b/xen/common/kernel.c > index c3a943f077..7a345ae45e 100644 > --- a/xen/common/kernel.c > +++ b/xen/common/kernel.c > @@ -326,6 +326,7 @@ unsigned int tainted; > * 'E' - An error (e.g. a machine check exceptions) has been injected. > * 'H' - HVM forced emulation prefix is permitted. > * 'M' - Machine had a machine check experience. > + * 'U' - Platform is unsecure (usually due to an errata on the platform). > * > * The string is overwritten by the next call to print_taint(). > */ > @@ -333,7 +334,8 @@ char *print_tainted(char *str) > { > if ( tainted ) > { > - snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c", > + snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c", > + tainted & TAINT_MACHINE_UNSECURE ? 'U' : ' ', > tainted & TAINT_MACHINE_CHECK ? 'M' : ' ', > tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ', > tainted & TAINT_ERROR_INJECT ? 'E' : ' ', > diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h > index 1983bd6b86..a9679c913d 100644 > --- a/xen/include/xen/lib.h > +++ b/xen/include/xen/lib.h > @@ -193,6 +193,7 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); > #define TAINT_MACHINE_CHECK (1u << 1) > #define TAINT_ERROR_INJECT (1u << 2) > #define TAINT_HVM_FEP (1u << 3) > +#define TAINT_MACHINE_UNSECURE (1u << 4) > extern unsigned int tainted; > #define TAINT_STRING_MAX_LEN 20 > extern char *print_tainted(char *str); > -- > 2.17.1 >
diff --git a/xen/common/kernel.c b/xen/common/kernel.c index c3a943f077..7a345ae45e 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -326,6 +326,7 @@ unsigned int tainted; * 'E' - An error (e.g. a machine check exceptions) has been injected. * 'H' - HVM forced emulation prefix is permitted. * 'M' - Machine had a machine check experience. + * 'U' - Platform is unsecure (usually due to an errata on the platform). * * The string is overwritten by the next call to print_taint(). */ @@ -333,7 +334,8 @@ char *print_tainted(char *str) { if ( tainted ) { - snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c", + snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c", + tainted & TAINT_MACHINE_UNSECURE ? 'U' : ' ', tainted & TAINT_MACHINE_CHECK ? 'M' : ' ', tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ', tainted & TAINT_ERROR_INJECT ? 'E' : ' ', diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 1983bd6b86..a9679c913d 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -193,6 +193,7 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); #define TAINT_MACHINE_CHECK (1u << 1) #define TAINT_ERROR_INJECT (1u << 2) #define TAINT_HVM_FEP (1u << 3) +#define TAINT_MACHINE_UNSECURE (1u << 4) extern unsigned int tainted; #define TAINT_STRING_MAX_LEN 20 extern char *print_tainted(char *str);
Define a new Unsecure taint type to be used to signal a system tainted due to an unsecure configuration or hardware feature/errata. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com> --- xen/common/kernel.c | 4 +++- xen/include/xen/lib.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-)