mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2022-04-14 This series contains updates to ice driver only. Maciej adjusts implementation in __ice_alloc_rx_bufs_zc() for when ice_fill_rx_descs() does not return the entire buffer request and fixes a return value for !CONFIG_NET_SWITCHDEV configuration which was preventing VF creation. Wojciech prevents eswitch transmit when VFs are being removed which was causing NULL pointer dereference. Jianglei Nie fixes a memory leak on error path of getting OROM data. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
226c602435
|
|
@ -361,7 +361,8 @@ ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev)
|
|||
np = netdev_priv(netdev);
|
||||
vsi = np->vsi;
|
||||
|
||||
if (ice_is_reset_in_progress(vsi->back->state))
|
||||
if (ice_is_reset_in_progress(vsi->back->state) ||
|
||||
test_bit(ICE_VF_DIS, vsi->back->state))
|
||||
return NETDEV_TX_BUSY;
|
||||
|
||||
repr = ice_netdev_to_repr(netdev);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ static inline void ice_eswitch_update_repr(struct ice_vsi *vsi) { }
|
|||
|
||||
static inline int ice_eswitch_configure(struct ice_pf *pf)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int ice_eswitch_rebuild(struct ice_pf *pf)
|
||||
|
|
|
|||
|
|
@ -641,6 +641,7 @@ ice_get_orom_civd_data(struct ice_hw *hw, enum ice_bank_select bank,
|
|||
status = ice_read_flash_module(hw, bank, ICE_SR_1ST_OROM_BANK_PTR, 0,
|
||||
orom_data, hw->flash.banks.orom_size);
|
||||
if (status) {
|
||||
vfree(orom_data);
|
||||
ice_debug(hw, ICE_DBG_NVM, "Unable to read Option ROM data\n");
|
||||
return status;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -415,8 +415,8 @@ static u16 ice_fill_rx_descs(struct xsk_buff_pool *pool, struct xdp_buff **xdp,
|
|||
*/
|
||||
static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
|
||||
{
|
||||
u32 nb_buffs_extra = 0, nb_buffs = 0;
|
||||
union ice_32b_rx_flex_desc *rx_desc;
|
||||
u32 nb_buffs_extra = 0, nb_buffs;
|
||||
u16 ntu = rx_ring->next_to_use;
|
||||
u16 total_count = count;
|
||||
struct xdp_buff **xdp;
|
||||
|
|
@ -428,6 +428,10 @@ static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
|
|||
nb_buffs_extra = ice_fill_rx_descs(rx_ring->xsk_pool, xdp,
|
||||
rx_desc,
|
||||
rx_ring->count - ntu);
|
||||
if (nb_buffs_extra != rx_ring->count - ntu) {
|
||||
ntu += nb_buffs_extra;
|
||||
goto exit;
|
||||
}
|
||||
rx_desc = ICE_RX_DESC(rx_ring, 0);
|
||||
xdp = ice_xdp_buf(rx_ring, 0);
|
||||
ntu = 0;
|
||||
|
|
@ -441,6 +445,7 @@ static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
|
|||
if (ntu == rx_ring->count)
|
||||
ntu = 0;
|
||||
|
||||
exit:
|
||||
if (rx_ring->next_to_use != ntu)
|
||||
ice_release_rx_desc(rx_ring, ntu);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user