From: Tushar Dave Date: Mon, 1 May 2017 22:11:07 +0000 (-0600) Subject: i40evf: Use le32_to_cpu before evaluating HW desc fields. X-Git-Tag: v4.1.12-106.0.20170720_1900~93 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b3b874be405e6c8cad8739c07a41a93e640c599f;p=users%2Fjedix%2Flinux-maple.git i40evf: Use le32_to_cpu before evaluating HW desc fields. i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like: i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672 Orabug: 25577233 Signed-off-by: Tushar Dave Reviewed-by: Shannon Nelson Signed-off-by: Allen Pais --- diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c index 182d65ffdc9f..08ef1ce89048 100644 --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c @@ -1925,8 +1925,10 @@ static void i40evf_adminq_task(struct work_struct *work) if (ret || !v_msg->v_opcode) break; /* No event to process or error cleaning ARQ */ - i40evf_virtchnl_completion(adapter, v_msg->v_opcode, - v_msg->v_retval, event.msg_buf, + i40evf_virtchnl_completion(adapter, + le32_to_cpu(v_msg->v_opcode), + le32_to_cpu(v_msg->v_retval), + event.msg_buf, event.msg_len); if (pending != 0) memset(event.msg_buf, 0, I40EVF_MAX_AQ_BUF_SIZE);