Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Sat, 23 Jul 2016 23:31:37 +0000 (19:31 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 24 Jul 2016 04:53:32 +0000 (00:53 -0400)
Just several instances of overlapping changes.

Signed-off-by: David S. Miller <davem@davemloft.net>
43 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/agere/et131x.c
drivers/net/ethernet/aurora/nb8800.c
drivers/net/ethernet/broadcom/bgmac.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
drivers/net/ethernet/ethoc.c
drivers/net/ethernet/ezchip/nps_enet.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/en_rx.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlxsw/reg.h
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/ppp/ppp_generic.c
drivers/net/usb/r8152.c
include/linux/filter.h
include/linux/netdevice.h
include/net/netfilter/nf_conntrack.h
include/net/switchdev.h
kernel/events/core.c
net/8021q/vlan_dev.c
net/batman-adv/bridge_loop_avoidance.c
net/batman-adv/distributed-arp-table.c
net/batman-adv/originator.c
net/batman-adv/routing.c
net/batman-adv/send.c
net/batman-adv/types.h
net/core/filter.c
net/ipv4/tcp_input.c
net/ipv6/udp.c
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_tables_api.c
net/netfilter/nft_meta.c
net/packet/af_packet.c
net/sched/sch_htb.c
net/tipc/bearer.c
net/tipc/bearer.h
net/tipc/link.c
net/tipc/node.c
net/wireless/nl80211.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index f32e272c83ddcebe1e7e633d5a8846d6c38d2ed1,44cf16d01f4275501870e3711fa27e5d8ec43a0e..bdda17d2ea0f9b9e6d8efd37f2637ef22b873cc3
@@@ -1722,32 -1730,28 +1729,35 @@@ static int mlx4_en_set_channels(struct 
            !channel->tx_count || !channel->rx_count)
                return -EINVAL;
  
 +      if (channel->tx_count * MLX4_EN_NUM_UP <= priv->xdp_ring_num) {
 +              en_err(priv, "Minimum %d tx channels required with XDP on\n",
 +                     priv->xdp_ring_num / MLX4_EN_NUM_UP + 1);
 +              return -EINVAL;
 +      }
 +
+       tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+       if (!tmp)
+               return -ENOMEM;
        mutex_lock(&mdev->state_lock);
+       memcpy(&new_prof, priv->prof, sizeof(struct mlx4_en_port_profile));
+       new_prof.num_tx_rings_p_up = channel->tx_count;
+       new_prof.tx_ring_num = channel->tx_count * MLX4_EN_NUM_UP;
+       new_prof.rx_ring_num = channel->rx_count;
+       err = mlx4_en_try_alloc_resources(priv, tmp, &new_prof);
+       if (err)
+               goto out;
        if (priv->port_up) {
                port_up = 1;
                mlx4_en_stop_port(dev, 1);
        }
  
-       mlx4_en_free_resources(priv);
-       priv->num_tx_rings_p_up = channel->tx_count;
-       priv->tx_ring_num = channel->tx_count * MLX4_EN_NUM_UP;
-       priv->rx_ring_num = channel->rx_count;
-       err = mlx4_en_alloc_resources(priv);
-       if (err) {
-               en_err(priv, "Failed reallocating port resources\n");
-               goto out;
-       }
+       mlx4_en_safe_replace_resources(priv, tmp);
  
 -      netif_set_real_num_tx_queues(dev, priv->tx_ring_num);
 +      netif_set_real_num_tx_queues(dev, priv->tx_ring_num -
 +                                                      priv->xdp_ring_num);
        netif_set_real_num_rx_queues(dev, priv->rx_ring_num);
  
        if (dev->num_tc)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 3a10d87b4b76594566b2378c1aa620e0018d71ba,010397650fa5b7c2c4e4912dc680440dbaf7e21d..6191159484df98f490bb70296cd53d55e76a1b74
@@@ -435,11 -424,31 +435,11 @@@ int batadv_send_skb_via_gw(struct batad
        struct batadv_orig_node *orig_node;
  
        orig_node = batadv_gw_get_selected_orig(bat_priv);
-       return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0,
-                                      orig_node, vid);
+       return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST_4ADDR,
+                                      BATADV_P_DATA, orig_node, vid);
  }
  
 -void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)
 -{
 -      struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
 -
 -      if ((hard_iface->if_status == BATADV_IF_NOT_IN_USE) ||
 -          (hard_iface->if_status == BATADV_IF_TO_BE_REMOVED))
 -              return;
 -
 -      /* the interface gets activated here to avoid race conditions between
 -       * the moment of activating the interface in
 -       * hardif_activate_interface() where the originator mac is set and
 -       * outdated packets (especially uninitialized mac addresses) in the
 -       * packet queue
 -       */
 -      if (hard_iface->if_status == BATADV_IF_TO_BE_ACTIVATED)
 -              hard_iface->if_status = BATADV_IF_ACTIVE;
 -
 -      bat_priv->bat_algo_ops->bat_ogm_schedule(hard_iface);
 -}
 -
 -static void batadv_forw_packet_free(struct batadv_forw_packet *forw_packet)
 +void batadv_forw_packet_free(struct batadv_forw_packet *forw_packet)
  {
        kfree_skb(forw_packet->skb);
        if (forw_packet->if_incoming)
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/udp.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 91982d9784b31b7275eb444ea72983e971f9873c,052f84d6cc236176b64adbd2c2c3c7f38b18cb43..53dbfa187870a5dd0db69ab3108d7bc31d77caa2
@@@ -1113,22 -1136,18 +1113,24 @@@ static in
  htb_dump_class_stats(struct Qdisc *sch, unsigned long arg, struct gnet_dump *d)
  {
        struct htb_class *cl = (struct htb_class *)arg;
 +      struct gnet_stats_queue qs = {
 +              .drops = cl->drops,
 +      };
        __u32 qlen = 0;
  
 -      if (!cl->level && cl->un.leaf.q)
 +      if (!cl->level && cl->un.leaf.q) {
                qlen = cl->un.leaf.q->q.qlen;
-       cl->xstats.tokens = PSCHED_NS2TICKS(cl->tokens);
-       cl->xstats.ctokens = PSCHED_NS2TICKS(cl->ctokens);
 +              qs.backlog = cl->un.leaf.q->qstats.backlog;
 +      }
+       cl->xstats.tokens = clamp_t(s64, PSCHED_NS2TICKS(cl->tokens),
+                                   INT_MIN, INT_MAX);
+       cl->xstats.ctokens = clamp_t(s64, PSCHED_NS2TICKS(cl->ctokens),
+                                    INT_MIN, INT_MAX);
  
 -      if (gnet_stats_copy_basic(d, NULL, &cl->bstats) < 0 ||
 +      if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch),
 +                                d, NULL, &cl->bstats) < 0 ||
            gnet_stats_copy_rate_est(d, NULL, &cl->rate_est) < 0 ||
 -          gnet_stats_copy_queue(d, NULL, &cl->qstats, qlen) < 0)
 +          gnet_stats_copy_queue(d, NULL, &qs, qlen) < 0)
                return -1;
  
        return gnet_stats_copy_app(d, &cl->xstats, sizeof(cl->xstats));
Simple merge
Simple merge
diff --cc net/tipc/link.c
Simple merge
diff --cc net/tipc/node.c
Simple merge
Simple merge