The else-if branch and else branch set mac_ok to true similarly,
so combine the two into single else branch.
Aslo add comments to explain the two conditions, which
from Michael Chan and Vasundhara Volam.
Signed-off-by: YueHaibing <[email protected]>
---
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
index a649108..f560845 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
@@ -956,9 +956,13 @@ static int bnxt_vf_validate_set_mac(struct bnxt *bp, struct bnxt_vf_info *vf)
} else if (is_valid_ether_addr(vf->vf_mac_addr)) {
if (ether_addr_equal((const u8 *)req->l2_addr, vf->vf_mac_addr))
mac_ok = true;
- } else if (bp->hwrm_spec_code < 0x10202) {
- mac_ok = true;
} else {
+ /* There are two cases:
+ * 1.If firmware spec < 0x10202,VF MAC address is not forwarded
+ * to the PF and so it doesn't have to match
+ * 2.Allow VF to modify it's own MAC when PF has not assigned a
+ * valid MAC address and firmware spec >= 0x10202
+ */
mac_ok = true;
}
if (mac_ok)
--
2.7.0
On Wed, Jul 25, 2018 at 4:44 PM, YueHaibing <[email protected]> wrote:
>
> The else-if branch and else branch set mac_ok to true similarly,
> so combine the two into single else branch.
>
> Aslo add comments to explain the two conditions, which
> from Michael Chan and Vasundhara Volam.
>
> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
> index a649108..f560845 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
> @@ -956,9 +956,13 @@ static int bnxt_vf_validate_set_mac(struct bnxt *bp, struct bnxt_vf_info *vf)
> } else if (is_valid_ether_addr(vf->vf_mac_addr)) {
> if (ether_addr_equal((const u8 *)req->l2_addr, vf->vf_mac_addr))
> mac_ok = true;
> - } else if (bp->hwrm_spec_code < 0x10202) {
> - mac_ok = true;
> } else {
> + /* There are two cases:
> + * 1.If firmware spec < 0x10202,VF MAC address is not forwarded
> + * to the PF and so it doesn't have to match
> + * 2.Allow VF to modify it's own MAC when PF has not assigned a
> + * valid MAC address and firmware spec >= 0x10202
> + */
No, this is not correct either. You are not covering both conditions.
else part with cover if (!is_valid_ether_addr(vf->vf_mac_addr))
before.
> mac_ok = true;
> }
> if (mac_ok)
> --
> 2.7.0
>
>
On Thu, Jul 26, 2018 at 8:24 PM, Vasundhara Volam
<[email protected]> wrote:
> On Wed, Jul 25, 2018 at 4:44 PM, YueHaibing <[email protected]> wrote:
>>
>> The else-if branch and else branch set mac_ok to true similarly,
>> so combine the two into single else branch.
>>
>> Aslo add comments to explain the two conditions, which
>> from Michael Chan and Vasundhara Volam.
>>
>> Signed-off-by: YueHaibing <[email protected]>
>> ---
>> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
>> index a649108..f560845 100644
>> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
>> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
>> @@ -956,9 +956,13 @@ static int bnxt_vf_validate_set_mac(struct bnxt *bp, struct bnxt_vf_info *vf)
>> } else if (is_valid_ether_addr(vf->vf_mac_addr)) {
>> if (ether_addr_equal((const u8 *)req->l2_addr, vf->vf_mac_addr))
>> mac_ok = true;
>> - } else if (bp->hwrm_spec_code < 0x10202) {
>> - mac_ok = true;
>> } else {
>> + /* There are two cases:
>> + * 1.If firmware spec < 0x10202,VF MAC address is not forwarded
>> + * to the PF and so it doesn't have to match
>> + * 2.Allow VF to modify it's own MAC when PF has not assigned a
>> + * valid MAC address and firmware spec >= 0x10202
>> + */
> No, this is not correct either. You are not covering both conditions.
> else part with cover if (!is_valid_ether_addr(vf->vf_mac_addr))
> before.
My apologies, I was thinking one more condition was required.
Patch seems fine.
>> mac_ok = true;
>> }
>> if (mac_ok)
>> --
>> 2.7.0
>>
>>
On Wed, Jul 25, 2018 at 4:14 AM, YueHaibing <[email protected]> wrote:
> The else-if branch and else branch set mac_ok to true similarly,
> so combine the two into single else branch.
>
> Aslo add comments to explain the two conditions, which
> from Michael Chan and Vasundhara Volam.
>
> Signed-off-by: YueHaibing <[email protected]>
Acked-by: Michael Chan <[email protected]>
Thanks.