From patchwork Wed Mar 2 10:14:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?C=C3=A9dric_Le_Goater?= X-Patchwork-Id: 8479841 Return-Path: X-Original-To: patchwork-qemu-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 6C9C99F2F0 for ; Wed, 2 Mar 2016 10:17:47 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3D255202AE for ; Wed, 2 Mar 2016 10:17:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 885C02035D for ; Wed, 2 Mar 2016 10:17:41 +0000 (UTC) Received: from localhost ([::1]:55284 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ab3qe-00037L-Rt for patchwork-qemu-devel@patchwork.kernel.org; Wed, 02 Mar 2016 05:17:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50061) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ab3oW-0008B9-Sx for qemu-devel@nongnu.org; Wed, 02 Mar 2016 05:15:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ab3oR-0005rE-VO for qemu-devel@nongnu.org; Wed, 02 Mar 2016 05:15:28 -0500 Received: from e06smtp08.uk.ibm.com ([195.75.94.104]:52924) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ab3oR-0005qk-Gx for qemu-devel@nongnu.org; Wed, 02 Mar 2016 05:15:23 -0500 Received: from localhost by e06smtp08.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 2 Mar 2016 10:15:22 -0000 Received: from d06dlp03.portsmouth.uk.ibm.com (9.149.20.15) by e06smtp08.uk.ibm.com (192.168.101.138) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 2 Mar 2016 10:15:15 -0000 X-IBM-Helo: d06dlp03.portsmouth.uk.ibm.com X-IBM-MailFrom: clg@fr.ibm.com X-IBM-RcptTo: qemu-devel@nongnu.org Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id B5B7C1B0806B for ; Wed, 2 Mar 2016 10:15:37 +0000 (GMT) Received: from d06av10.portsmouth.uk.ibm.com (d06av10.portsmouth.uk.ibm.com [9.149.37.251]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u22AFEYd60162252 for ; Wed, 2 Mar 2016 10:15:15 GMT Received: from d06av10.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av10.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u229FDvg009816 for ; Wed, 2 Mar 2016 02:15:14 -0700 Received: from hermes.ibm.com (icon-9-164-129-170.megacenter.de.ibm.com [9.164.129.170]) by d06av10.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id u229F7ux009126; Wed, 2 Mar 2016 02:15:12 -0700 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: Corey Minyard Date: Wed, 2 Mar 2016 11:14:52 +0100 Message-Id: <1456913698-11452-5-git-send-email-clg@fr.ibm.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1456913698-11452-1-git-send-email-clg@fr.ibm.com> References: <1456913698-11452-1-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16030210-0033-0000-0000-00000606FE0B X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 195.75.94.104 Cc: Marcel Apfelbaum , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , qemu-devel@nongnu.org, "Michael S. Tsirkin" Subject: [Qemu-devel] [PATCH v2 04/10] ipmi: add rsp_buffer_set_error() helper X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The third byte in the response buffer of an IPMI command holds the error code. In many IPMI command handlers, this byte is updated directly. This patch adds a helper routine to clarify why this byte is being used. Signed-off-by: Cédric Le Goater Acked-by: Corey Minyard --- hw/ipmi/ipmi_bmc_sim.c | 115 ++++++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 55 deletions(-) diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 72166a7da291..2626aff06c60 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -271,11 +271,16 @@ struct rsp_buffer { #define RSP_BUFFER_INITIALIZER { { 0 }, 0, MAX_IPMI_MSG_SIZE } +static inline void rsp_buffer_set_error(struct rsp_buffer *rsp, uint8_t byte) +{ + rsp->buffer[2] = byte; +} + /* Add a byte to the response. */ static inline void rsp_buffer_push(struct rsp_buffer *rsp, uint8_t byte) { if (rsp->len >= rsp->max_len) { - rsp->buffer[2] = IPMI_CC_REQUEST_DATA_TRUNCATED; + rsp_buffer_set_error(rsp, IPMI_CC_REQUEST_DATA_TRUNCATED); return; } rsp->buffer[rsp->len++] = byte; @@ -285,7 +290,7 @@ static inline void rsp_buffer_pushmore(struct rsp_buffer *rsp, uint8_t *bytes, unsigned int n) { if (rsp->len + n >= rsp->max_len) { - rsp->buffer[2] = IPMI_CC_REQUEST_DATA_TRUNCATED; + rsp_buffer_set_error(rsp, IPMI_CC_REQUEST_DATA_TRUNCATED); return; } @@ -599,7 +604,7 @@ static void ipmi_sim_handle_command(IPMIBmc *b, /* Set up the response, set the low bit of NETFN. */ /* Note that max_rsp_len must be at least 3 */ if (rsp.max_len < 3) { - rsp.buffer[2] = IPMI_CC_REQUEST_DATA_TRUNCATED; + rsp_buffer_set_error(&rsp, IPMI_CC_REQUEST_DATA_TRUNCATED); goto out; } @@ -609,17 +614,17 @@ static void ipmi_sim_handle_command(IPMIBmc *b, /* If it's too short or it was truncated, return an error. */ if (cmd_len < 2) { - rsp.buffer[2] = IPMI_CC_REQUEST_DATA_LENGTH_INVALID; + rsp_buffer_set_error(&rsp, IPMI_CC_REQUEST_DATA_LENGTH_INVALID); goto out; } if (cmd_len > max_cmd_len) { - rsp.buffer[2] = IPMI_CC_REQUEST_DATA_TRUNCATED; + rsp_buffer_set_error(&rsp, IPMI_CC_REQUEST_DATA_TRUNCATED); goto out; } if ((cmd[0] & 0x03) != 0) { /* Only have stuff on LUN 0 */ - rsp.buffer[2] = IPMI_CC_COMMAND_INVALID_FOR_LUN; + rsp_buffer_set_error(&rsp, IPMI_CC_COMMAND_INVALID_FOR_LUN); goto out; } @@ -629,12 +634,12 @@ static void ipmi_sim_handle_command(IPMIBmc *b, if ((netfn & 1) || !ibs->netfns[netfn / 2] || (cmd[1] >= ibs->netfns[netfn / 2]->cmd_nums) || (!ibs->netfns[netfn / 2]->cmd_handlers[cmd[1]].cmd_handler)) { - rsp.buffer[2] = IPMI_CC_INVALID_CMD; + rsp_buffer_set_error(&rsp, IPMI_CC_INVALID_CMD); goto out; } if (cmd_len < ibs->netfns[netfn / 2]->cmd_handlers[cmd[1]].cmd_len_min) { - rsp.buffer[2] = IPMI_CC_REQUEST_DATA_LENGTH_INVALID; + rsp_buffer_set_error(&rsp, IPMI_CC_REQUEST_DATA_LENGTH_INVALID); goto out; } @@ -745,26 +750,26 @@ static void chassis_control(IPMIBmcSim *ibs, switch (cmd[2] & 0xf) { case 0: /* power down */ - rsp->buffer[2] = k->do_hw_op(s, IPMI_POWEROFF_CHASSIS, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_POWEROFF_CHASSIS, 0)); break; case 1: /* power up */ - rsp->buffer[2] = k->do_hw_op(s, IPMI_POWERON_CHASSIS, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_POWERON_CHASSIS, 0)); break; case 2: /* power cycle */ - rsp->buffer[2] = k->do_hw_op(s, IPMI_POWERCYCLE_CHASSIS, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_POWERCYCLE_CHASSIS, 0)); break; case 3: /* hard reset */ - rsp->buffer[2] = k->do_hw_op(s, IPMI_RESET_CHASSIS, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_RESET_CHASSIS, 0)); break; case 4: /* pulse diagnostic interrupt */ - rsp->buffer[2] = k->do_hw_op(s, IPMI_PULSE_DIAG_IRQ, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_PULSE_DIAG_IRQ, 0)); break; case 5: /* soft shutdown via ACPI by overtemp emulation */ - rsp->buffer[2] = k->do_hw_op(s, - IPMI_SHUTDOWN_VIA_ACPI_OVERTEMP, 0); + rsp_buffer_set_error(rsp, k->do_hw_op(s, + IPMI_SHUTDOWN_VIA_ACPI_OVERTEMP, 0)); break; default: - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } } @@ -903,7 +908,7 @@ static void read_evt_msg_buf(IPMIBmcSim *ibs, unsigned int i; if (!(ibs->msg_flags & IPMI_BMC_MSG_FLAG_EVT_BUF_FULL)) { - rsp->buffer[2] = 0x80; + rsp_buffer_set_error(rsp, 0x80); return; } for (i = 0; i < 16; i++) { @@ -921,7 +926,7 @@ static void get_msg(IPMIBmcSim *ibs, qemu_mutex_lock(&ibs->lock); if (QTAILQ_EMPTY(&ibs->rcvbufs)) { - rsp->buffer[2] = 0x80; /* Queue empty */ + rsp_buffer_set_error(rsp, 0x80); /* Queue empty */ goto out; } rsp_buffer_push(rsp, 0); /* Channel 0 */ @@ -965,18 +970,18 @@ static void send_msg(IPMIBmcSim *ibs, if (cmd[2] != 0) { /* We only handle channel 0 with no options */ - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } if (cmd_len < 10) { - rsp->buffer[2] = IPMI_CC_REQUEST_DATA_LENGTH_INVALID; + rsp_buffer_set_error(rsp, IPMI_CC_REQUEST_DATA_LENGTH_INVALID); return; } if (cmd[3] != 0x40) { /* We only emulate a MC at address 0x40. */ - rsp->buffer[2] = 0x83; /* NAK on write */ + rsp_buffer_set_error(rsp, 0x83); /* NAK on write */ return; } @@ -1065,7 +1070,7 @@ static void reset_watchdog_timer(IPMIBmcSim *ibs, struct rsp_buffer *rsp) { if (!ibs->watchdog_initialized) { - rsp->buffer[2] = 0x80; + rsp_buffer_set_error(rsp, 0x80); return; } do_watchdog_reset(ibs); @@ -1081,7 +1086,7 @@ static void set_watchdog_timer(IPMIBmcSim *ibs, val = cmd[2] & 0x7; /* Validate use */ if (val == 0 || val > 5) { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } val = cmd[3] & 0x7; /* Validate action */ @@ -1090,22 +1095,22 @@ static void set_watchdog_timer(IPMIBmcSim *ibs, break; case IPMI_BMC_WATCHDOG_ACTION_RESET: - rsp->buffer[2] = k->do_hw_op(s, IPMI_RESET_CHASSIS, 1); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_RESET_CHASSIS, 1)); break; case IPMI_BMC_WATCHDOG_ACTION_POWER_DOWN: - rsp->buffer[2] = k->do_hw_op(s, IPMI_POWEROFF_CHASSIS, 1); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_POWEROFF_CHASSIS, 1)); break; case IPMI_BMC_WATCHDOG_ACTION_POWER_CYCLE: - rsp->buffer[2] = k->do_hw_op(s, IPMI_POWERCYCLE_CHASSIS, 1); + rsp_buffer_set_error(rsp, k->do_hw_op(s, IPMI_POWERCYCLE_CHASSIS, 1)); break; default: - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); } if (rsp->buffer[2]) { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } @@ -1118,14 +1123,14 @@ static void set_watchdog_timer(IPMIBmcSim *ibs, case IPMI_BMC_WATCHDOG_PRE_NMI: if (!k->do_hw_op(s, IPMI_SEND_NMI, 1)) { /* NMI not supported. */ - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } break; default: /* We don't support PRE_SMI */ - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } @@ -1201,7 +1206,7 @@ static void get_sdr(IPMIBmcSim *ibs, if (cmd[6]) { if ((cmd[2] | (cmd[3] << 8)) != ibs->sdr.reservation) { - rsp->buffer[2] = IPMI_CC_INVALID_RESERVATION; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_RESERVATION); return; } } @@ -1209,14 +1214,14 @@ static void get_sdr(IPMIBmcSim *ibs, pos = 0; if (sdr_find_entry(&ibs->sdr, cmd[4] | (cmd[5] << 8), &pos, &nextrec)) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sdrh = (struct ipmi_sdr_header *) &ibs->sdr.sdr[pos]; if (cmd[6] > ipmi_sdr_length(sdrh)) { - rsp->buffer[2] = IPMI_CC_PARM_OUT_OF_RANGE; + rsp_buffer_set_error(rsp, IPMI_CC_PARM_OUT_OF_RANGE); return; } @@ -1228,7 +1233,7 @@ static void get_sdr(IPMIBmcSim *ibs, } if ((cmd[7] + rsp->len) > rsp->max_len) { - rsp->buffer[2] = IPMI_CC_CANNOT_RETURN_REQ_NUM_BYTES; + rsp_buffer_set_error(rsp, IPMI_CC_CANNOT_RETURN_REQ_NUM_BYTES); return; } @@ -1243,7 +1248,7 @@ static void add_sdr(IPMIBmcSim *ibs, struct ipmi_sdr_header *sdrh = (struct ipmi_sdr_header *) cmd + 2; if (sdr_add_entry(ibs, sdrh, cmd_len - 2, &recid)) { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } rsp_buffer_push(rsp, recid & 0xff); @@ -1255,12 +1260,12 @@ static void clear_sdr_rep(IPMIBmcSim *ibs, struct rsp_buffer *rsp) { if ((cmd[2] | (cmd[3] << 8)) != ibs->sdr.reservation) { - rsp->buffer[2] = IPMI_CC_INVALID_RESERVATION; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_RESERVATION); return; } if (cmd[4] != 'C' || cmd[5] != 'L' || cmd[6] != 'R') { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } if (cmd[7] == 0xaa) { @@ -1272,7 +1277,7 @@ static void clear_sdr_rep(IPMIBmcSim *ibs, } else if (cmd[7] == 0) { rsp_buffer_push(rsp, 1); /* Erasure complete */ } else { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } } @@ -1315,22 +1320,22 @@ static void get_sel_entry(IPMIBmcSim *ibs, if (cmd[6]) { if ((cmd[2] | (cmd[3] << 8)) != ibs->sel.reservation) { - rsp->buffer[2] = IPMI_CC_INVALID_RESERVATION; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_RESERVATION); return; } } if (ibs->sel.next_free == 0) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } if (cmd[6] > 15) { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } if (cmd[7] == 0xff) { cmd[7] = 16; } else if ((cmd[7] + cmd[6]) > 16) { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } else { cmd[7] += cmd[6]; @@ -1340,7 +1345,7 @@ static void get_sel_entry(IPMIBmcSim *ibs, if (val == 0xffff) { val = ibs->sel.next_free - 1; } else if (val >= ibs->sel.next_free) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } if ((val + 1) == ibs->sel.next_free) { @@ -1360,7 +1365,7 @@ static void add_sel_entry(IPMIBmcSim *ibs, struct rsp_buffer *rsp) { if (sel_add_event(ibs, cmd + 2)) { - rsp->buffer[2] = IPMI_CC_OUT_OF_SPACE; + rsp_buffer_set_error(rsp, IPMI_CC_OUT_OF_SPACE); return; } /* sel_add_event fills in the record number. */ @@ -1373,12 +1378,12 @@ static void clear_sel(IPMIBmcSim *ibs, struct rsp_buffer *rsp) { if ((cmd[2] | (cmd[3] << 8)) != ibs->sel.reservation) { - rsp->buffer[2] = IPMI_CC_INVALID_RESERVATION; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_RESERVATION); return; } if (cmd[4] != 'C' || cmd[5] != 'L' || cmd[6] != 'R') { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } if (cmd[7] == 0xaa) { @@ -1390,7 +1395,7 @@ static void clear_sel(IPMIBmcSim *ibs, } else if (cmd[7] == 0) { rsp_buffer_push(rsp, 1); /* Erasure complete */ } else { - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } } @@ -1430,7 +1435,7 @@ static void set_sensor_evt_enable(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1466,7 +1471,7 @@ static void set_sensor_evt_enable(IPMIBmcSim *ibs, } break; case 3: - rsp->buffer[2] = IPMI_CC_INVALID_DATA_FIELD; + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } IPMI_SENSOR_SET_RET_STATUS(sens, cmd[3]); @@ -1480,7 +1485,7 @@ static void get_sensor_evt_enable(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1499,7 +1504,7 @@ static void rearm_sensor_evts(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1519,7 +1524,7 @@ static void get_sensor_evt_status(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1539,7 +1544,7 @@ static void get_sensor_reading(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1560,7 +1565,7 @@ static void set_sensor_type(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2]; @@ -1577,7 +1582,7 @@ static void get_sensor_type(IPMIBmcSim *ibs, if ((cmd[2] >= MAX_SENSORS) || !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { - rsp->buffer[2] = IPMI_CC_REQ_ENTRY_NOT_PRESENT; + rsp_buffer_set_error(rsp, IPMI_CC_REQ_ENTRY_NOT_PRESENT); return; } sens = ibs->sensors + cmd[2];