[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/1] dmioem: HPE OEM Record 237 Firmware change
From: |
Jerry Hoemann |
Subject: |
[PATCH 1/1] dmioem: HPE OEM Record 237 Firmware change |
Date: |
Fri, 17 Mar 2023 16:19:56 -0600 |
HPE OEM record type 237 offset 0x09 field was changed from a single
byte STRING to a two byte WORD representing date.
Decode both forms of the record based upon record size.
Fixes: cdab638dabb7 ("dmioem: Decode HPE OEM Record 237")
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmioem.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dmioem.c b/dmioem.c
index dc4b857..fd6c191 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -1094,7 +1094,8 @@ static int dmi_decode_hp(const struct dmi_header *h)
* 0x06 | Manufacture|STRING | DIMM Manufacturer
* 0x07 | Part Number|STRING | DIMM Manufacturer's
Part Number
* 0x08 | Serial Num |STRING | DIMM Vendor Serial
Number
- * 0x09 | Spare Part |STRING | DIMM Spare Part Number
+ * 0x09 | Spare Part |STRING | DIMM Spare Part Number
--OR--
+ * 0x09 | Man Date | WORD | DIM Manufacture Date
YYWW in BCD
*/
if (gen < G9) return 0;
pr_handle_name("%s DIMM Vendor Information", company);
@@ -1106,7 +1107,11 @@ static int dmi_decode_hp(const struct dmi_header *h)
if (h->length < 0x09) break;
pr_attr("DIMM Vendor Serial Number", "%s",
dmi_string(h, data[0x08]));
if (h->length < 0x0A) break;
- pr_attr("DIMM Spare Part Number", "%s", dmi_string(h,
data[0x09]));
+ if (h->length == 0x0A)
+ pr_attr("DIMM Spare Part Number", "%s",
dmi_string(h, data[0x09]));
+ if (h->length < 0x0B) break;
+ if (WORD(data + 0x09))
+ pr_attr("DIMM Manufacture Date", "20%02x Week
%2x", data[0x09], data[0x0a]);
break;
case 238:
--
2.39.2