lkml.org 
[lkml]   [2023]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net 3/7] net: hns3: fix byte order conversion issue in hclge_dbg_fd_tcam_read()
    Date
    From: Hao Chen <chenhao418@huawei.com>

    req1->tcam_data is defined as "u8 tcam_data[8]", and we convert it as
    (u32 *) without considerring byte order conversion,
    it may result in printing wrong data for tcam_data.

    Convert tcam_data to (__le32 *) first to fix it.

    Fixes: b5a0b70d77b9 ("net: hns3: refactor dump fd tcam of debugfs")
    Signed-off-by: Hao Chen <chenhao418@huawei.com>
    Signed-off-by: Jijie Shao <shaojijie@huawei.com>
    ---
    .../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
    index f01a7a9ee02c..ff3f8f424ad9 100644
    --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
    +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
    @@ -1519,7 +1519,7 @@ static int hclge_dbg_fd_tcam_read(struct hclge_dev *hdev, bool sel_x,
    struct hclge_desc desc[3];
    int pos = 0;
    int ret, i;
    - u32 *req;
    + __le32 *req;

    hclge_cmd_setup_basic_desc(&desc[0], HCLGE_OPC_FD_TCAM_OP, true);
    desc[0].flag |= cpu_to_le16(HCLGE_COMM_CMD_FLAG_NEXT);
    @@ -1544,22 +1544,22 @@ static int hclge_dbg_fd_tcam_read(struct hclge_dev *hdev, bool sel_x,
    tcam_msg.loc);

    /* tcam_data0 ~ tcam_data1 */
    - req = (u32 *)req1->tcam_data;
    + req = (__le32 *)req1->tcam_data;
    for (i = 0; i < 2; i++)
    pos += scnprintf(tcam_buf + pos, HCLGE_DBG_TCAM_BUF_SIZE - pos,
    - "%08x\n", *req++);
    + "%08x\n", le32_to_cpu(*req++));

    /* tcam_data2 ~ tcam_data7 */
    - req = (u32 *)req2->tcam_data;
    + req = (__le32 *)req2->tcam_data;
    for (i = 0; i < 6; i++)
    pos += scnprintf(tcam_buf + pos, HCLGE_DBG_TCAM_BUF_SIZE - pos,
    - "%08x\n", *req++);
    + "%08x\n", le32_to_cpu(*req++));

    /* tcam_data8 ~ tcam_data12 */
    - req = (u32 *)req3->tcam_data;
    + req = (__le32 *)req3->tcam_data;
    for (i = 0; i < 5; i++)
    pos += scnprintf(tcam_buf + pos, HCLGE_DBG_TCAM_BUF_SIZE - pos,
    - "%08x\n", *req++);
    + "%08x\n", le32_to_cpu(*req++));

    return ret;
    }
    --
    2.30.0
    \
     
     \ /
      Last update: 2023-09-06 09:24    [W:3.436 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site