On 2021/4/26 20:50, Ferruh Yigit wrote:
> On 4/26/2021 1:41 PM, fengchengwen wrote:
>>
>>
>> On 2021/4/26 20:26, Ferruh Yigit wrote:
>>> On 4/22/2021 2:55 AM, Min Hu (Connor) wrote:
>>>> From: Chengwen Feng <fengcheng...@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: sta...@dpdk.org
>>>>
>>>> Signed-off-by: Chengwen Feng <fengcheng...@huawei.com>
>>>> Signed-off-by: Min Hu (Connor) <humi...@huawei.com>
>>>> ---
>>>> drivers/net/hns3/hns3_mbx.c | 5 +++--
>>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
>>>> index ba04ac9..0550c9a 100644
>>>> --- a/drivers/net/hns3/hns3_mbx.c
>>>> +++ b/drivers/net/hns3/hns3_mbx.c
>>>> @@ -346,12 +346,13 @@ 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)
>>>> +hns3pf_handle_link_change_event(struct hns3_hw *hw, void *data)
>>>
>>> Why not s/struct hns3_mbx_pf_to_vf_cmd/struct hns3_mbx_vf_to_pf_cmd/ but
>>> change
>>> to parameter to "void *", wouldn't it reduce the type check?
>>>
>>
>> Only this message needs to be converted using hns3_mbx_vf_to_pf_cmd.
>> All other messages are processed using hns3_mbx_pf_to_vf_cmd.
>> So here we simplifying fix it.
>>
>
> There is a single caller of the function, which send parameter as "struct
> hns3_mbx_pf_to_vf_cmd *req", so what is the point of making the parameter as
> "void *" and inside the function cast it to "struct hns3_mbx_vf_to_pf_cmd
> *req =
> data;"?
> Instead of defining parameter as "struct hns3_mbx_pf_to_vf_cmd *req".
>
We'll keep the original API interface and add comments in v2, thanks
>> Beside we will refactor hns3_mbx module in later version because the
>> PF and VF process logic is mixed.
>>
>
> OK
>
>> thanks
>>
>>>> {
>>>> #define LINK_STATUS_OFFSET 1
>>>> #define LINK_FAIL_CODE_OFFSET 2
>>>>
>>>> + struct hns3_mbx_vf_to_pf_cmd *req = data;
>>>> +
>>>> if (!req->msg[LINK_STATUS_OFFSET])
>>>> hns3_link_fail_parse(hw, req->msg[LINK_FAIL_CODE_OFFSET]);
>>>>
>>>>
>>>
>>>
>>> .
>>>
>>
>
>
> .
>