|
|
@@ -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)
|