[LTP] [PATCH v1] Fixes: #776, tst_taint prints human readable error messages instead of numerical codes
Petr Vorel
pvorel@suse.cz
Tue Jan 18 14:00:21 CET 2022
Hi Martin, Kushal,
...
> > +const char *tst_strtaint(int err)
> > +{
> > + static const struct pair taint_pairs[] = {
> > + STRPAIR(TST_TAINT_A, "TAINT_A(ACPI table overridden)")
> > + STRPAIR(TST_TAINT_B, "TAINT_B(Bad page reference)")
> > + STRPAIR(TST_TAINT_C, "TAINT_C(Staging driver loaded)")
> > + STRPAIR(TST_TAINT_D, "TAINT_D(OOPS/BUG)")
> > + STRPAIR(TST_TAINT_E, "TAINT_E(Unsigned module loaded)")
> > + STRPAIR(TST_TAINT_F, "TAINT_F(Module force loaded)")
> > + STRPAIR(TST_TAINT_G, "TAINT_G(Propriety module loaded)")
> > + STRPAIR(TST_TAINT_I, "TAINT_I(Workaround BIOS/FW bug)")
> > + STRPAIR(TST_TAINT_K, "TAINT_K(Live patched)")
> > + STRPAIR(TST_TAINT_L, "TAINT_L(Soft lock up occured)")
> > + STRPAIR(TST_TAINT_M, "TAINT_M(Machine check exception)")
> > + STRPAIR(TST_TAINT_O, "TAINT_O(Out of tree module loaded)")
> > + STRPAIR(TST_TAINT_R, "TAINT_R(Module force unloaded)")
> > + STRPAIR(TST_TAINT_S, "TAINT_S(Running on out of spec system)")
> > + STRPAIR(TST_TAINT_T, "TAINT_T(Built with struct randomization)")
> > + STRPAIR(TST_TAINT_U, "TAINT_U(User request)")
> > + STRPAIR(TST_TAINT_W, "TAINT_W(Warning)")
> > + STRPAIR(TST_TAINT_X, "TAINT_X(Auxilary)")
> > + };
> > +
> > + PAIR_LOOKUP(taint_pairs, err);
> This is not the correct approach. You've constructed an array with
> 131,073 items to store a total of 18 strings. And the value passed in
> the "err" parameter is a bitmask which can hold multiple taint flags.
> What you should do is this:
> const char *taint_strings[] = {
> "G (Propriety module loaded)",
> "F (Module force loaded)",
> "S (Running on out of spec system)",
> "R (Module force unloaded)",
> ...
> "X (Auxilary)",
> "T (Built with struct randomization)"
> };
> Then loop from 0 to ARRAY_SIZE(taint_strings) and print taint_strings[i]
> if (err & (1 << i)) != 0
Martin thanks a lot for correcting me. Kushal, I'm sorry for wrong advice,
please follow Martin's suggestion in v3.
Kind regards,
Petr
More information about the ltp
mailing list