Skip to content

Commit 71c33df

Browse files
committed
Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2025-07-21 (i40e, ice, e1000e) For i40e: Dennis Chen adjusts reporting of VF Tx dropped to a more appropriate field. Jamie Bainbridge fixes a check which can cause a PF set VF MAC address to be lost. For ice: Haoxiang Li adds an error check in DDP load to prevent NULL pointer dereference. For e1000e: Jacek Kowalski adds workarounds for issues surrounding Tiger Lake platforms with uninitialized NVMs. * '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue: e1000e: ignore uninitialized checksum word on tgp e1000e: disregard NVM checksum on tgp when valid checksum bit is not set ice: Fix a null pointer dereference in ice_copy_and_init_pkg() i40e: When removing VF MAC filters, only check PF-set MAC i40e: report VF tx_dropped with tx_errors instead of tx_discards ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents cf074ec + 6111491 commit 71c33df

File tree

5 files changed

+16
-3
lines changed

5 files changed

+16
-3
lines changed

drivers/net/ethernet/intel/e1000e/defines.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,9 @@
638638
/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */
639639
#define NVM_SUM 0xBABA
640640

641+
/* Uninitialized ("empty") checksum word value */
642+
#define NVM_CHECKSUM_UNINITIALIZED 0xFFFF
643+
641644
/* PBA (printed board assembly) number words */
642645
#define NVM_PBA_OFFSET_0 8
643646
#define NVM_PBA_OFFSET_1 9

drivers/net/ethernet/intel/e1000e/ich8lan.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4274,6 +4274,8 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
42744274
ret_val = e1000e_update_nvm_checksum(hw);
42754275
if (ret_val)
42764276
return ret_val;
4277+
} else if (hw->mac.type == e1000_pch_tgp) {
4278+
return 0;
42774279
}
42784280
}
42794281

drivers/net/ethernet/intel/e1000e/nvm.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,12 @@ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
558558
checksum += nvm_data;
559559
}
560560

561+
if (hw->mac.type == e1000_pch_tgp &&
562+
nvm_data == NVM_CHECKSUM_UNINITIALIZED) {
563+
e_dbg("Uninitialized NVM Checksum on TGP platform - ignoring\n");
564+
return 0;
565+
}
566+
561567
if (checksum != (u16)NVM_SUM) {
562568
e_dbg("NVM Checksum Invalid\n");
563569
return -E1000_ERR_NVM;

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3137,10 +3137,10 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
31373137
const u8 *addr = al->list[i].addr;
31383138

31393139
/* Allow to delete VF primary MAC only if it was not set
3140-
* administratively by PF or if VF is trusted.
3140+
* administratively by PF.
31413141
*/
31423142
if (ether_addr_equal(addr, vf->default_lan_addr.addr)) {
3143-
if (i40e_can_vf_change_mac(vf))
3143+
if (!vf->pf_set_mac)
31443144
was_unimac_deleted = true;
31453145
else
31463146
continue;
@@ -5006,7 +5006,7 @@ int i40e_get_vf_stats(struct net_device *netdev, int vf_id,
50065006
vf_stats->broadcast = stats->rx_broadcast;
50075007
vf_stats->multicast = stats->rx_multicast;
50085008
vf_stats->rx_dropped = stats->rx_discards + stats->rx_discards_other;
5009-
vf_stats->tx_dropped = stats->tx_discards;
5009+
vf_stats->tx_dropped = stats->tx_errors;
50105010

50115011
return 0;
50125012
}

drivers/net/ethernet/intel/ice/ice_ddp.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2301,6 +2301,8 @@ enum ice_ddp_state ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf,
23012301
return ICE_DDP_PKG_ERR;
23022302

23032303
buf_copy = devm_kmemdup(ice_hw_to_dev(hw), buf, len, GFP_KERNEL);
2304+
if (!buf_copy)
2305+
return ICE_DDP_PKG_ERR;
23042306

23052307
state = ice_init_pkg(hw, buf_copy, len);
23062308
if (!ice_is_init_pkg_successful(state)) {

0 commit comments

Comments
 (0)