Hi Jerry, On Mon, 2023-06-05 at 15:45 -0600, Jerry Hoemann wrote: > Correct mask in HPE OEM 216 type 1. Should be byte, not nibble. > > Only display internal version number when bit is set to indicate it is > valid. > > Signed-off-by: Jerry Hoemann <jerry.hoem...@hpe.com> > --- > dmioem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/dmioem.c b/dmioem.c > index 186b250..ef28cce 100644 > --- a/dmioem.c > +++ b/dmioem.c > @@ -379,6 +379,7 @@ static void dmi_hp_216_version(u8 format, u8 *data) > { > const char * const name = "Version Data"; > const char * const reserved = "Reserved"; > + char buf[80] = ""; > int gen; > > gen = dmi_hpegen(dmi_product); > @@ -388,8 +389,9 @@ static void dmi_hp_216_version(u8 format, u8 *data) > pr_attr(name, "No Version Data"); > break; > case 1: > - pr_attr(name, "%c.%d.%d", data[0] & (1 << 7) ? 'B' : 'R', > - data[0] & 0x7, data[1] & 0x7); > + if (data[0] >> 7) > + sprintf(buf, " B.0x%02X", data[0] & 0x7F); > + pr_attr(name, "0x%02X%s", data[1] & 0x7F, buf); > break; > case 2: > pr_attr(name, "%d.%d", data[0] >> 4, data[0] & 0x0f);
As usual, I'm not a big fan of temporary buffers. What about simply having 2 separate pr_attr() calls, one when the internal version must be displayed, and one when not? -- Jean Delvare SUSE L3 Support