Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Tue, 30 Aug 2016 04:54:02 +0000 (00:54 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Aug 2016 04:54:02 +0000 (00:54 -0400)
All three conflicts were cases of simple overlapping
changes.

Signed-off-by: David S. Miller <davem@davemloft.net>
40 files changed:
1  2 
Documentation/networking/dsa/dsa.txt
MAINTAINERS
drivers/infiniband/hw/mlx5/main.c
drivers/net/dsa/bcm_sf2.h
drivers/net/dsa/mv88e6xxx/chip.c
drivers/net/ethernet/atheros/alx/main.c
drivers/net/ethernet/broadcom/bgmac-bcma.c
drivers/net/ethernet/cavium/thunder/nic_reg.h
drivers/net/ethernet/intel/i40e/i40e_client.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/ethernet/qlogic/qed/qed.h
drivers/net/ethernet/qlogic/qede/qede_main.c
drivers/net/ethernet/sfc/ef10.c
drivers/net/tun.c
drivers/net/vmxnet3/vmxnet3_drv.c
include/linux/sysctl.h
include/net/tcp.h
include/uapi/linux/if_tunnel.h
lib/rhashtable.c
net/ipv4/tcp.c
net/ipv4/tcp_ipv4.c
net/ipv4/udp.c
net/ipv4/udplite.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/ipv6/udplite.c
net/l2tp/l2tp_ppp.c
net/sched/sch_generic.c
net/tipc/udp_media.c

Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
index 3bc0a04df107fcdbc1148be7c2dd90716d641a32,625235db644f73bdbbc7a79088e6a15c60d27019..c16ec3a51876aacee21ad81dc714a343afb75ba7
@@@ -158,10 -157,9 +158,10 @@@ static int bgmac_probe(struct bcma_devi
        dev_info(bgmac->dev, "Found PHY addr: %d%s\n", bgmac->phyaddr,
                 bgmac->phyaddr == BGMAC_PHY_NOREGS ? " (NOREGS)" : "");
  
 -      if (!bgmac_is_bcm4707_family(core)) {
 +      if (!bgmac_is_bcm4707_family(core) &&
 +          !(ci->id == BCMA_CHIP_ID_BCM53573 && core->core_unit == 1)) {
                mii_bus = bcma_mdio_mii_register(core, bgmac->phyaddr);
-               if (!IS_ERR(mii_bus)) {
+               if (IS_ERR(mii_bus)) {
                        err = PTR_ERR(mii_bus);
                        goto err;
                }
index 5404b32c9adf136753dc9af4be0b98a2f4a35a7a,618f18436618945b807c5e08f499dc1a4cd689cf..250db0b244b7677107ca1c56df23c23789e80fee
@@@ -560,13 -549,16 +574,17 @@@ void i40e_client_subtask(struct i40e_p
                if (!cdev)
                        continue;
  
-               /* Also up the ref_cnt of no. of instances of this client */
-               atomic_inc(&client->ref_cnt);
-               dev_info(&pf->pdev->dev, "Added instance of Client %s to PF%d bus=0x%02x func=0x%02x\n",
-                        client->name, pf->hw.pf_id,
-                        pf->hw.bus.device, pf->hw.bus.func);
+               if (!existing) {
+                       /* Also up the ref_cnt for no. of instances of this
+                        * client.
+                        */
+                       atomic_inc(&client->ref_cnt);
+                       dev_info(&pf->pdev->dev, "Added instance of Client %s to PF%d bus=0x%02x func=0x%02x\n",
+                                client->name, pf->hw.pf_id,
+                                pf->hw.bus.device, pf->hw.bus.func);
+               }
  
 +              mutex_lock(&i40e_client_instance_mutex);
                /* Send an Open request to the client */
                atomic_inc(&cdev->ref_cnt);
                if (client->ops && client->ops->open)
index fa404142320d84ef0a53109b0b4694df8d035d56,2459c7f3db8d26152724dc7edfd20c12a996ff45..03586ee68fc43fc20fc31faddea542ccc51b2760
@@@ -3227,34 -3211,37 +3210,37 @@@ static void mlx5e_destroy_q_counter(str
  static int mlx5e_create_umr_mkey(struct mlx5e_priv *priv)
  {
        struct mlx5_core_dev *mdev = priv->mdev;
-       u64 npages = priv->profile->max_nch(mdev) * MLX5_CHANNEL_MAX_NUM_MTTS;
 -      struct mlx5_create_mkey_mbox_in *in;
 -      struct mlx5_mkey_seg *mkc;
 -      int inlen = sizeof(*in);
+       u64 npages = MLX5E_REQUIRED_MTTS(priv->profile->max_nch(mdev),
+                                        BIT(MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE_MPW));
 +      int inlen = MLX5_ST_SZ_BYTES(create_mkey_in);
 +      void *mkc;
 +      u32 *in;
        int err;
  
        in = mlx5_vzalloc(inlen);
        if (!in)
                return -ENOMEM;
  
 -      mkc = &in->seg;
 -      mkc->status = MLX5_MKEY_STATUS_FREE;
 -      mkc->flags = MLX5_PERM_UMR_EN |
 -                   MLX5_PERM_LOCAL_READ |
 -                   MLX5_PERM_LOCAL_WRITE |
 -                   MLX5_ACCESS_MODE_MTT;
 +      mkc = MLX5_ADDR_OF(create_mkey_in, in, memory_key_mkey_entry);
  
 -      mkc->qpn_mkey7_0 = cpu_to_be32(0xffffff << 8);
 -      mkc->flags_pd = cpu_to_be32(mdev->mlx5e_res.pdn);
 -      mkc->len = cpu_to_be64(npages << PAGE_SHIFT);
 -      mkc->xlt_oct_size = cpu_to_be32(MLX5_MTT_OCTW(npages));
 -      mkc->log2_page_size = PAGE_SHIFT;
+       npages = min_t(u32, ALIGN(U16_MAX, 4) * 2, npages);
 +      MLX5_SET(mkc, mkc, free, 1);
 +      MLX5_SET(mkc, mkc, umr_en, 1);
 +      MLX5_SET(mkc, mkc, lw, 1);
 +      MLX5_SET(mkc, mkc, lr, 1);
 +      MLX5_SET(mkc, mkc, access_mode, MLX5_MKC_ACCESS_MODE_MTT);
  
 -      err = mlx5_core_create_mkey(mdev, &priv->umr_mkey, in, inlen, NULL,
 -                                  NULL, NULL);
 +      MLX5_SET(mkc, mkc, qpn, 0xffffff);
 +      MLX5_SET(mkc, mkc, pd, mdev->mlx5e_res.pdn);
 +      MLX5_SET64(mkc, mkc, len, npages << PAGE_SHIFT);
 +      MLX5_SET(mkc, mkc, translations_octword_size,
-                mlx5e_get_mtt_octw(npages));
++               MLX5_MTT_OCTW(npages));
 +      MLX5_SET(mkc, mkc, log_page_size, PAGE_SHIFT);
  
 -      kvfree(in);
 +      err = mlx5_core_create_mkey(mdev, &priv->umr_mkey, in, inlen);
  
 +      kvfree(in);
        return err;
  }
  
Simple merge
index 4056219591c9bb2c19d3f240d1ffb8386676ac8a,a6eb6af8cbe8ba40e12719e008b7133ea7d1456b..b4a56e61631a7482ec9a742e6e32b14a7b3c529b
@@@ -727,8 -727,10 +727,11 @@@ static netdev_tx_t qede_start_xmit(stru
  
        if (unlikely(qed_chain_get_elem_left(&txq->tx_pbl)
                      < (MAX_SKB_FRAGS + 1))) {
+               if (skb->xmit_more)
+                       qede_update_tx_producer(txq);
                netif_tx_stop_queue(netdev_txq);
 +              txq->stopped_cnt++;
                DP_VERBOSE(edev, NETIF_MSG_TX_QUEUED,
                           "Stop queue was called\n");
                /* paired memory barrier is in qede_tx_int(), we have to keep
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
diff --cc net/ipv4/udp.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/udp.c
Simple merge
Simple merge
Simple merge
Simple merge
index 245e9a2eac41284a0d911d3bd06b580feaf53492,ae7e14cae0857933c6c140a4382d9ab054ce353f..dd274687a53d4b8c1458863151afea68515c9a69
@@@ -718,20 -396,13 +718,22 @@@ static int tipc_udp_enable(struct net *
        tuncfg.encap_destroy = NULL;
        setup_udp_tunnel_sock(net, ub->ubsock, &tuncfg);
  
 -      err = enable_mcast(ub, remote);
 +      /**
 +       * The bcast media address port is used for all peers and the ip
 +       * is used if it's a multicast address.
 +       */
 +      memcpy(&b->bcast_addr.value, &remote, sizeof(remote));
 +      if (tipc_udp_is_mcast_addr(&remote))
 +              err = enable_mcast(ub, &remote);
 +      else
 +              err = tipc_udp_rcast_add(b, &remote);
        if (err)
                goto err;
 +
        return 0;
  err:
+       if (ub->ubsock)
+               udp_tunnel_sock_release(ub->ubsock);
        kfree(ub);
        return err;
  }