Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Sep 2021 00:48:11 GMT
From:      Kevin Bowling <kbowling@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 6d034e061a96 - stable/12 - ixgbe: check host interface return status
Message-ID:  <202109140048.18E0mBXf045192@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by kbowling (ports committer):

URL: https://cgit.FreeBSD.org/src/commit/?id=6d034e061a965f28426981af1314da48d25af06b

commit 6d034e061a965f28426981af1314da48d25af06b
Author:     Guinan Sun <guinanx.sun@intel.com>
AuthorDate: 2020-07-09 08:00:44 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2021-09-14 00:43:31 +0000

    ixgbe: check host interface return status
    
    Writing to read-only fields returns a non-OK Return Status
    for shadow RAM write command for X550.
    This information was previously discarded.
    
    Signed-off-by: Stanislaw Grzeszczak <stanislaw.a.grzeszczak@intel.com>
    Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
    Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
    
    Approved by:    imp
    Obtained from:  DPDK (db18e37090a3b9af47d6a6886248520f6b220bf9)
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D31621
    
    (cherry picked from commit c1a56b6f5ffd6f3180a654d058c1783ccb808e8b)
---
 sys/dev/ixgbe/ixgbe_x550.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/sys/dev/ixgbe/ixgbe_x550.c b/sys/dev/ixgbe/ixgbe_x550.c
index 02db10b61673..7b120f841d85 100644
--- a/sys/dev/ixgbe/ixgbe_x550.c
+++ b/sys/dev/ixgbe/ixgbe_x550.c
@@ -3259,7 +3259,18 @@ s32 ixgbe_write_ee_hostif_data_X550(struct ixgbe_hw *hw, u16 offset,
 
 	status = ixgbe_host_interface_command(hw, (u32 *)&buffer,
 					      sizeof(buffer),
-					      IXGBE_HI_COMMAND_TIMEOUT, FALSE);
+					      IXGBE_HI_COMMAND_TIMEOUT, TRUE);
+	if (status != IXGBE_SUCCESS) {
+		DEBUGOUT2("for offset %04x failed with status %d\n",
+				  offset, status);
+		return status;
+	}
+
+	if (buffer.hdr.rsp.buf_lenh_status != FW_CEM_RESP_STATUS_SUCCESS) {
+		DEBUGOUT2("for offset %04x host interface return status %02x\n",
+				  offset, buffer.hdr.rsp.buf_lenh_status);
+		return IXGBE_ERR_HOST_INTERFACE_COMMAND;
+	}
 
 	return status;
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202109140048.18E0mBXf045192>