mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-17 16:00:38 -05:00
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/20250721173733.2248057-1-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -638,6 +638,9 @@
|
||||
/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */
|
||||
#define NVM_SUM 0xBABA
|
||||
|
||||
/* Uninitialized ("empty") checksum word value */
|
||||
#define NVM_CHECKSUM_UNINITIALIZED 0xFFFF
|
||||
|
||||
/* PBA (printed board assembly) number words */
|
||||
#define NVM_PBA_OFFSET_0 8
|
||||
#define NVM_PBA_OFFSET_1 9
|
||||
|
||||
@@ -4274,6 +4274,8 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
|
||||
ret_val = e1000e_update_nvm_checksum(hw);
|
||||
if (ret_val)
|
||||
return ret_val;
|
||||
} else if (hw->mac.type == e1000_pch_tgp) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -558,6 +558,12 @@ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
|
||||
checksum += nvm_data;
|
||||
}
|
||||
|
||||
if (hw->mac.type == e1000_pch_tgp &&
|
||||
nvm_data == NVM_CHECKSUM_UNINITIALIZED) {
|
||||
e_dbg("Uninitialized NVM Checksum on TGP platform - ignoring\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (checksum != (u16)NVM_SUM) {
|
||||
e_dbg("NVM Checksum Invalid\n");
|
||||
return -E1000_ERR_NVM;
|
||||
|
||||
@@ -3137,10 +3137,10 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
|
||||
const u8 *addr = al->list[i].addr;
|
||||
|
||||
/* Allow to delete VF primary MAC only if it was not set
|
||||
* administratively by PF or if VF is trusted.
|
||||
* administratively by PF.
|
||||
*/
|
||||
if (ether_addr_equal(addr, vf->default_lan_addr.addr)) {
|
||||
if (i40e_can_vf_change_mac(vf))
|
||||
if (!vf->pf_set_mac)
|
||||
was_unimac_deleted = true;
|
||||
else
|
||||
continue;
|
||||
@@ -5006,7 +5006,7 @@ int i40e_get_vf_stats(struct net_device *netdev, int vf_id,
|
||||
vf_stats->broadcast = stats->rx_broadcast;
|
||||
vf_stats->multicast = stats->rx_multicast;
|
||||
vf_stats->rx_dropped = stats->rx_discards + stats->rx_discards_other;
|
||||
vf_stats->tx_dropped = stats->tx_discards;
|
||||
vf_stats->tx_dropped = stats->tx_errors;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2301,6 +2301,8 @@ enum ice_ddp_state ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf,
|
||||
return ICE_DDP_PKG_ERR;
|
||||
|
||||
buf_copy = devm_kmemdup(ice_hw_to_dev(hw), buf, len, GFP_KERNEL);
|
||||
if (!buf_copy)
|
||||
return ICE_DDP_PKG_ERR;
|
||||
|
||||
state = ice_init_pkg(hw, buf_copy, len);
|
||||
if (!ice_is_init_pkg_successful(state)) {
|
||||
|
||||
Reference in New Issue
Block a user