Loading Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 SUBLEVEL = 41 SUBLEVEL = 42 EXTRAVERSION = NAME = Petit Gorille Loading drivers/net/bonding/bond_alb.c +9 −6 Original line number Diff line number Diff line Loading @@ -450,7 +450,7 @@ static void rlb_update_client(struct rlb_client_info *client_info) { int i; if (!client_info->slave) if (!client_info->slave || !is_valid_ether_addr(client_info->mac_dst)) return; for (i = 0; i < RLB_ARP_BURST_SIZE; i++) { Loading Loading @@ -943,6 +943,10 @@ static void alb_send_lp_vid(struct slave *slave, u8 mac_addr[], skb->priority = TC_PRIO_CONTROL; skb->dev = slave->dev; netdev_dbg(slave->bond->dev, "Send learning packet: dev %s mac %pM vlan %d\n", slave->dev->name, mac_addr, vid); if (vid) __vlan_hwaccel_put_tag(skb, vlan_proto, vid); Loading @@ -965,14 +969,13 @@ static int alb_upper_dev_walk(struct net_device *upper, void *_data) u8 *mac_addr = data->mac_addr; struct bond_vlan_tag *tags; if (is_vlan_dev(upper) && vlan_get_encap_level(upper) == 0) { if (strict_match && ether_addr_equal_64bits(mac_addr, upper->dev_addr)) { if (is_vlan_dev(upper) && bond->nest_level == vlan_get_encap_level(upper) - 1) { if (upper->addr_assign_type == NET_ADDR_STOLEN) { alb_send_lp_vid(slave, mac_addr, vlan_dev_vlan_proto(upper), vlan_dev_vlan_id(upper)); } else if (!strict_match) { } else { alb_send_lp_vid(slave, upper->dev_addr, vlan_dev_vlan_proto(upper), vlan_dev_vlan_id(upper)); Loading drivers/net/bonding/bond_main.c +2 −0 Original line number Diff line number Diff line Loading @@ -1734,6 +1734,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) if (bond_mode_uses_xmit_hash(bond)) bond_update_slave_arr(bond, NULL); bond->nest_level = dev_get_nest_level(bond_dev); netdev_info(bond_dev, "Enslaving %s as %s interface with %s link\n", slave_dev->name, bond_is_active_slave(new_slave) ? "an active" : "a backup", Loading drivers/net/ethernet/broadcom/tg3.c +5 −4 Original line number Diff line number Diff line Loading @@ -8723,14 +8723,15 @@ static void tg3_free_consistent(struct tg3 *tp) tg3_mem_rx_release(tp); tg3_mem_tx_release(tp); /* Protect tg3_get_stats64() from reading freed tp->hw_stats. */ tg3_full_lock(tp, 0); /* tp->hw_stats can be referenced safely: * 1. under rtnl_lock * 2. or under tp->lock if TG3_FLAG_INIT_COMPLETE is set. */ if (tp->hw_stats) { dma_free_coherent(&tp->pdev->dev, sizeof(struct tg3_hw_stats), tp->hw_stats, tp->stats_mapping); tp->hw_stats = NULL; } tg3_full_unlock(tp); } /* Loading Loading @@ -14167,7 +14168,7 @@ static void tg3_get_stats64(struct net_device *dev, struct tg3 *tp = netdev_priv(dev); spin_lock_bh(&tp->lock); if (!tp->hw_stats) { if (!tp->hw_stats || !tg3_flag(tp, INIT_COMPLETE)) { *stats = tp->net_stats_prev; spin_unlock_bh(&tp->lock); return; Loading drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +16 −0 Original line number Diff line number Diff line Loading @@ -1013,6 +1013,22 @@ static int mlx4_en_set_coalesce(struct net_device *dev, if (!coal->tx_max_coalesced_frames_irq) return -EINVAL; if (coal->tx_coalesce_usecs > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs_low > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs_high > MLX4_EN_MAX_COAL_TIME) { netdev_info(dev, "%s: maximum coalesce time supported is %d usecs\n", __func__, MLX4_EN_MAX_COAL_TIME); return -ERANGE; } if (coal->tx_max_coalesced_frames > MLX4_EN_MAX_COAL_PKTS || coal->rx_max_coalesced_frames > MLX4_EN_MAX_COAL_PKTS) { netdev_info(dev, "%s: maximum coalesced frames supported is %d\n", __func__, MLX4_EN_MAX_COAL_PKTS); return -ERANGE; } priv->rx_frames = (coal->rx_max_coalesced_frames == MLX4_EN_AUTO_CONF) ? MLX4_EN_RX_COAL_TARGET : Loading Loading
Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 SUBLEVEL = 41 SUBLEVEL = 42 EXTRAVERSION = NAME = Petit Gorille Loading
drivers/net/bonding/bond_alb.c +9 −6 Original line number Diff line number Diff line Loading @@ -450,7 +450,7 @@ static void rlb_update_client(struct rlb_client_info *client_info) { int i; if (!client_info->slave) if (!client_info->slave || !is_valid_ether_addr(client_info->mac_dst)) return; for (i = 0; i < RLB_ARP_BURST_SIZE; i++) { Loading Loading @@ -943,6 +943,10 @@ static void alb_send_lp_vid(struct slave *slave, u8 mac_addr[], skb->priority = TC_PRIO_CONTROL; skb->dev = slave->dev; netdev_dbg(slave->bond->dev, "Send learning packet: dev %s mac %pM vlan %d\n", slave->dev->name, mac_addr, vid); if (vid) __vlan_hwaccel_put_tag(skb, vlan_proto, vid); Loading @@ -965,14 +969,13 @@ static int alb_upper_dev_walk(struct net_device *upper, void *_data) u8 *mac_addr = data->mac_addr; struct bond_vlan_tag *tags; if (is_vlan_dev(upper) && vlan_get_encap_level(upper) == 0) { if (strict_match && ether_addr_equal_64bits(mac_addr, upper->dev_addr)) { if (is_vlan_dev(upper) && bond->nest_level == vlan_get_encap_level(upper) - 1) { if (upper->addr_assign_type == NET_ADDR_STOLEN) { alb_send_lp_vid(slave, mac_addr, vlan_dev_vlan_proto(upper), vlan_dev_vlan_id(upper)); } else if (!strict_match) { } else { alb_send_lp_vid(slave, upper->dev_addr, vlan_dev_vlan_proto(upper), vlan_dev_vlan_id(upper)); Loading
drivers/net/bonding/bond_main.c +2 −0 Original line number Diff line number Diff line Loading @@ -1734,6 +1734,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) if (bond_mode_uses_xmit_hash(bond)) bond_update_slave_arr(bond, NULL); bond->nest_level = dev_get_nest_level(bond_dev); netdev_info(bond_dev, "Enslaving %s as %s interface with %s link\n", slave_dev->name, bond_is_active_slave(new_slave) ? "an active" : "a backup", Loading
drivers/net/ethernet/broadcom/tg3.c +5 −4 Original line number Diff line number Diff line Loading @@ -8723,14 +8723,15 @@ static void tg3_free_consistent(struct tg3 *tp) tg3_mem_rx_release(tp); tg3_mem_tx_release(tp); /* Protect tg3_get_stats64() from reading freed tp->hw_stats. */ tg3_full_lock(tp, 0); /* tp->hw_stats can be referenced safely: * 1. under rtnl_lock * 2. or under tp->lock if TG3_FLAG_INIT_COMPLETE is set. */ if (tp->hw_stats) { dma_free_coherent(&tp->pdev->dev, sizeof(struct tg3_hw_stats), tp->hw_stats, tp->stats_mapping); tp->hw_stats = NULL; } tg3_full_unlock(tp); } /* Loading Loading @@ -14167,7 +14168,7 @@ static void tg3_get_stats64(struct net_device *dev, struct tg3 *tp = netdev_priv(dev); spin_lock_bh(&tp->lock); if (!tp->hw_stats) { if (!tp->hw_stats || !tg3_flag(tp, INIT_COMPLETE)) { *stats = tp->net_stats_prev; spin_unlock_bh(&tp->lock); return; Loading
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +16 −0 Original line number Diff line number Diff line Loading @@ -1013,6 +1013,22 @@ static int mlx4_en_set_coalesce(struct net_device *dev, if (!coal->tx_max_coalesced_frames_irq) return -EINVAL; if (coal->tx_coalesce_usecs > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs_low > MLX4_EN_MAX_COAL_TIME || coal->rx_coalesce_usecs_high > MLX4_EN_MAX_COAL_TIME) { netdev_info(dev, "%s: maximum coalesce time supported is %d usecs\n", __func__, MLX4_EN_MAX_COAL_TIME); return -ERANGE; } if (coal->tx_max_coalesced_frames > MLX4_EN_MAX_COAL_PKTS || coal->rx_max_coalesced_frames > MLX4_EN_MAX_COAL_PKTS) { netdev_info(dev, "%s: maximum coalesced frames supported is %d\n", __func__, MLX4_EN_MAX_COAL_PKTS); return -ERANGE; } priv->rx_frames = (coal->rx_max_coalesced_frames == MLX4_EN_AUTO_CONF) ? MLX4_EN_RX_COAL_TARGET : Loading