[v2] net/hns3: fix parse link fails code fail

Message ID 1619444548-24977-1-git-send-email-humin29@huawei.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series [v2] net/hns3: fix parse link fails code fail |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed
ci/iol-intel-Functional success Functional Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

humin (Q) April 26, 2021, 1:42 p.m. UTC
  From: Chengwen Feng <fengchengwen@huawei.com>

The link fails code should be parsed using the structure
hns3_mbx_vf_to_pf_cmd, else it will parse fail.

Fixes: 109e4dd1bd7a ("net/hns3: get link state change through mailbox")
Cc: stable@dpdk.org

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
v2:
* kept original API interface.
---
 drivers/net/hns3/hns3_mbx.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
  

Comments

Ferruh Yigit April 27, 2021, 11:11 a.m. UTC | #1
On 4/26/2021 2:42 PM, Min Hu (Connor) wrote:
> From: Chengwen Feng <fengchengwen@huawei.com>
> 
> The link fails code should be parsed using the structure
> hns3_mbx_vf_to_pf_cmd, else it will parse fail.
> 
> Fixes: 109e4dd1bd7a ("net/hns3: get link state change through mailbox")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> ---
> v2:
> * kept original API interface.
> ---
>  drivers/net/hns3/hns3_mbx.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
> index eb202dd..755298f 100644
> --- a/drivers/net/hns3/hns3_mbx.c
> +++ b/drivers/net/hns3/hns3_mbx.c
> @@ -346,12 +346,20 @@ hns3_link_fail_parse(struct hns3_hw *hw, uint8_t link_fail_code)
>  }
>  
>  static void
> +
>  hns3pf_handle_link_change_event(struct hns3_hw *hw,
> -			      struct hns3_mbx_pf_to_vf_cmd *req)
> +				struct hns3_mbx_pf_to_vf_cmd *cmd)
>  {
>  #define LINK_STATUS_OFFSET     1
>  #define LINK_FAIL_CODE_OFFSET  2
>  
> +	/*
> +	 * This message is reported by the firmware and is reported in
> +	 * 'struct hns3_mbx_vf_to_pf_cmd' format. Therefore, we should cast
> +	 * the cmd to 'struct hns3_mbx_vf_to_pf_cmd' first.
> +	 */
> +	struct hns3_mbx_vf_to_pf_cmd *req = (struct hns3_mbx_vf_to_pf_cmd *)cmd;
> +

Hi Connor,

I guess I am missing something obvious, why not get the parameter as 'struct
hns3_mbx_vf_to_pf_cmd' at first place?
  
humin (Q) April 27, 2021, 12:31 p.m. UTC | #2
在 2021/4/27 19:11, Ferruh Yigit 写道:
> On 4/26/2021 2:42 PM, Min Hu (Connor) wrote:
>> From: Chengwen Feng <fengchengwen@huawei.com>
>>
>> The link fails code should be parsed using the structure
>> hns3_mbx_vf_to_pf_cmd, else it will parse fail.
>>
>> Fixes: 109e4dd1bd7a ("net/hns3: get link state change through mailbox")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
>> ---
>> v2:
>> * kept original API interface.
>> ---
>>   drivers/net/hns3/hns3_mbx.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
>> index eb202dd..755298f 100644
>> --- a/drivers/net/hns3/hns3_mbx.c
>> +++ b/drivers/net/hns3/hns3_mbx.c
>> @@ -346,12 +346,20 @@ hns3_link_fail_parse(struct hns3_hw *hw, uint8_t link_fail_code)
>>   }
>>   
>>   static void
>> +
>>   hns3pf_handle_link_change_event(struct hns3_hw *hw,
>> -			      struct hns3_mbx_pf_to_vf_cmd *req)
>> +				struct hns3_mbx_pf_to_vf_cmd *cmd)
>>   {
>>   #define LINK_STATUS_OFFSET     1
>>   #define LINK_FAIL_CODE_OFFSET  2
>>   
>> +	/*
>> +	 * This message is reported by the firmware and is reported in
>> +	 * 'struct hns3_mbx_vf_to_pf_cmd' format. Therefore, we should cast
>> +	 * the cmd to 'struct hns3_mbx_vf_to_pf_cmd' first.
>> +	 */
>> +	struct hns3_mbx_vf_to_pf_cmd *req = (struct hns3_mbx_vf_to_pf_cmd *)cmd;
>> +
> 
> Hi Connor,
> 
> I guess I am missing something obvious, why not get the parameter as 'struct
> hns3_mbx_vf_to_pf_cmd' at first place?
> .
Hi, fixed in v3, thanks.
>
  

Patch

diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index eb202dd..755298f 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -346,12 +346,20 @@  hns3_link_fail_parse(struct hns3_hw *hw, uint8_t link_fail_code)
 }
 
 static void
+
 hns3pf_handle_link_change_event(struct hns3_hw *hw,
-			      struct hns3_mbx_pf_to_vf_cmd *req)
+				struct hns3_mbx_pf_to_vf_cmd *cmd)
 {
 #define LINK_STATUS_OFFSET     1
 #define LINK_FAIL_CODE_OFFSET  2
 
+	/*
+	 * This message is reported by the firmware and is reported in
+	 * 'struct hns3_mbx_vf_to_pf_cmd' format. Therefore, we should cast
+	 * the cmd to 'struct hns3_mbx_vf_to_pf_cmd' first.
+	 */
+	struct hns3_mbx_vf_to_pf_cmd *req = (struct hns3_mbx_vf_to_pf_cmd *)cmd;
+
 	if (!req->msg[LINK_STATUS_OFFSET])
 		hns3_link_fail_parse(hw, req->msg[LINK_FAIL_CODE_OFFSET]);