From a6a67e5e9cedbc5318b737f0c18690c1f134b13a Mon Sep 17 00:00:00 2001 From: Puwen Date: Thu, 10 Mar 2016 15:29:36 +0800 Subject: [PATCH] ID:427 - The first two bytes of dumped raw SDR data is wrong. When we dumped the raw SDR data, the first Record ID will overwrite by 0x0000 --- lib/ipmi_sdr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c index 3bebbb7..502e547 100644 --- a/lib/ipmi_sdr.c +++ b/lib/ipmi_sdr.c @@ -867,7 +867,15 @@ ipmi_sdr_get_header(struct ipmi_intf *intf, struct ipmi_sdr_iterator *itr) * completion code CBh = "Requested Sensor, data, or record * not present" */ - if (sdr_rs.id != itr->next) { + /***************************************************************** + * Need to add one conditional statement for First Record ID 0x0000 + * IPMI v2.0 Spec, Section 33.12 + * If ‘Record ID’ is specified as 0000h, this command returns + * the Record Header for the ‘first’ SDR in the repository. + * Therefore the Record ID will not equal + ******************************************************************/ + if ((itr->next != 0x0000) && + (sdr_rs.id != itr->next)) { lprintf(LOG_DEBUG, "SDR record id mismatch: 0x%04x", sdr_rs.id); sdr_rs.id = itr->next; }