Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Wed, 4 May 2016 04:52:29 +0000 (00:52 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 May 2016 04:52:29 +0000 (00:52 -0400)
Conflicts:
net/ipv4/ip_gre.c

Minor conflicts between tunnel bug fixes in net and
ipv6 tunnel cleanups in net-next.

Signed-off-by: David S. Miller <davem@davemloft.net>
29 files changed:
1  2 
MAINTAINERS
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/nes/nes_nic.c
drivers/net/dsa/mv88e6xxx.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/cadence/macb.c
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/ti/cpsw.c
drivers/net/wireless/intel/iwlwifi/iwl-8000.c
drivers/net/wireless/intel/iwlwifi/iwl-drv.c
drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c
drivers/net/wireless/intel/iwlwifi/mvm/fw.c
drivers/net/wireless/intel/iwlwifi/pcie/drv.c
include/linux/bpf.h
include/linux/mlx5/device.h
include/linux/net.h
include/linux/netdevice.h
include/net/vxlan.h
kernel/bpf/verifier.c
kernel/events/core.c
net/core/dev.c
net/ipv4/inet_hashtables.c
net/ipv4/ip_gre.c
net/ipv6/ila/ila_lwt.c
net/mac80211/iface.c
net/sched/sch_netem.c
net/tipc/node.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
index eec3200ade4a5f8fa1a126c812fa01926b648510,a63551d0a18a4b63a5ea385a46fabef39b0d36a8..cb07d95e3dd9d6fb97fdbb58bcf44e3d2ae256ea
@@@ -438,9 -439,9 +438,9 @@@ static int macb_mii_init(struct macb *b
        bp->mii_bus->read = &macb_mdio_read;
        bp->mii_bus->write = &macb_mdio_write;
        snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
 -              bp->pdev->name, bp->pdev->id);
 +               bp->pdev->name, bp->pdev->id);
        bp->mii_bus->priv = bp;
-       bp->mii_bus->parent = &bp->dev->dev;
+       bp->mii_bus->parent = &bp->pdev->dev;
        pdata = dev_get_platdata(&bp->pdev->dev);
  
        dev_set_drvdata(&bp->dev->dev, bp->mii_bus);
index 4ccfc1ac62c5146a3d820446b215f7c1c3145ee3,d4dfc5ce516a41daf2f668aa3015c37ff4b73853..7dfb73aa8e4172677be7da46d08196ec5d621f57
@@@ -1691,11 -1503,8 +1690,11 @@@ int mlx5e_open_locked(struct net_devic
        mlx5e_redirect_rqts(priv);
        mlx5e_update_carrier(priv);
        mlx5e_timestamp_init(priv);
 +#ifdef CONFIG_RFS_ACCEL
 +      priv->netdev->rx_cpu_rmap = priv->mdev->rmap;
 +#endif
  
-       schedule_delayed_work(&priv->update_stats_work, 0);
+       queue_delayed_work(priv->wq, &priv->update_stats_work, 0);
  
        return 0;
  
@@@ -3027,14 -2579,11 +3030,14 @@@ static void *mlx5e_create_netdev(struc
                goto err_tc_cleanup;
        }
  
 -      if (mlx5e_vxlan_allowed(mdev))
 +      if (mlx5e_vxlan_allowed(mdev)) {
 +              rtnl_lock();
                vxlan_get_rx_port(netdev);
 +              rtnl_unlock();
 +      }
  
        mlx5e_enable_async_events(priv);
-       schedule_work(&priv->set_rx_mode_work);
+       queue_work(priv->wq, &priv->set_rx_mode_work);
  
        return priv;
  
Simple merge
index cbb5947b3fab1fc651d78c0cb95f0c5661b43368,6938cd37be57c6e48ae9efc4d559b58845fd705c..e25171f9b407545d0d052ed3978f4574034fd768
@@@ -601,15 -525,9 +601,16 @@@ void iwl_mvm_fw_error_dump(struct iwl_m
        if (sram2_len)
                file_len += sizeof(*dump_data) + sizeof(*dump_mem) + sram2_len;
  
 +      /* Make room for MEM segments */
 +      for (i = 0; i < ARRAY_SIZE(mvm->fw->dbg_mem_tlv); i++) {
 +              if (fw_dbg_mem[i])
 +                      file_len += sizeof(*dump_data) + sizeof(*dump_mem) +
 +                              le32_to_cpu(fw_dbg_mem[i]->len);
 +      }
 +
        /* Make room for fw's virtual image pages, if it exists */
-       if (mvm->fw->img[mvm->cur_ucode].paging_mem_size)
+       if (mvm->fw->img[mvm->cur_ucode].paging_mem_size &&
+           mvm->fw_paging_db[0].fw_paging_block)
                file_len += mvm->num_of_paging_blk *
                        (sizeof(*dump_data) +
                         sizeof(struct iwl_fw_error_dump_paging) +
index 41c6dd5b9cccc88dd5f9371445ea8db8278ca175,79d7cd7d461e49afda911356928b253f3c0ab794..de42066fa49b6d07cf8ce84400317f981e7adc25
@@@ -479,16 -479,24 +479,26 @@@ static const struct pci_device_id iwl_h
        {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)},
  
  /* 9000 Series */
 +      {IWL_PCI_DEVICE(0x9DF0, 0x0A10, iwl9560_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9560_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x2A10, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x2010, iwl5165_2ac_cfg)},
 -      {IWL_PCI_DEVICE(0x9DF0, 0x0A10, iwl9260_2ac_cfg)},
 -      {IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9260_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x2526, 0x1420, iwl5165_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x2526, 0x0010, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0000, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0310, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0510, iwl5165_2ac_cfg)},
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 56f18068b52b6523f902f3f29cf695d44a7e41bc,c5c17a62f509f67385cfb9a587e702646cc19b80..63554b6d4e25c2381c5fd1c0f647cd5c4bb65e38
@@@ -964,26 -953,12 +975,30 @@@ static int check_map_func_compatibility
        }
  
        return 0;
+ error:
+       verbose("cannot pass map_type %d into func %d\n",
+               map->map_type, func_id);
+       return -EINVAL;
  }
  
 +static int check_raw_mode(const struct bpf_func_proto *fn)
 +{
 +      int count = 0;
 +
 +      if (fn->arg1_type == ARG_PTR_TO_RAW_STACK)
 +              count++;
 +      if (fn->arg2_type == ARG_PTR_TO_RAW_STACK)
 +              count++;
 +      if (fn->arg3_type == ARG_PTR_TO_RAW_STACK)
 +              count++;
 +      if (fn->arg4_type == ARG_PTR_TO_RAW_STACK)
 +              count++;
 +      if (fn->arg5_type == ARG_PTR_TO_RAW_STACK)
 +              count++;
 +
 +      return count > 1 ? -EINVAL : 0;
 +}
 +
  static int check_call(struct verifier_env *env, int func_id)
  {
        struct verifier_state *state = &env->cur_state;
Simple merge
diff --cc net/core/dev.c
Simple merge
index 3177211ab6512a5d23ed5720e488e948b21aec11,0d9e9d7bb029373e37e4de6ed4003397d41f82cd..77c20a489218c9cf1865f397b83f43bc58457dc6
@@@ -438,10 -470,12 +438,11 @@@ static int inet_reuseport_add_sock(stru
                                                     const struct sock *sk2,
                                                     bool match_wildcard))
  {
+       struct inet_bind_bucket *tb = inet_csk(sk)->icsk_bind_hash;
        struct sock *sk2;
 -      struct hlist_nulls_node *node;
        kuid_t uid = sock_i_uid(sk);
  
 -      sk_nulls_for_each_rcu(sk2, node, &ilb->head) {
 +      sk_for_each_rcu(sk2, &ilb->head) {
                if (sk2 != sk &&
                    sk2->sk_family == sk->sk_family &&
                    ipv6_only_sock(sk2) == ipv6_only_sock(sk) &&
index 2480d79b0e379d1930c67c0f30134fd4b1b1441b,205a2b8a5a84579c909a62fd4aafdd19fe64aa54..b99213c46aacb421df43982f861c6a372b305f1b
@@@ -414,12 -574,15 +415,12 @@@ static void gre_fb_xmit(struct sk_buff 
        }
  
        /* Push Tunnel header. */
 -      skb = gre_handle_offloads(skb, !!(tun_info->key.tun_flags & TUNNEL_CSUM));
 -      if (IS_ERR(skb)) {
 -              skb = NULL;
 +      if (gre_handle_offloads(skb, !!(tun_info->key.tun_flags & TUNNEL_CSUM)))
                goto err_free_rt;
 -      }
  
        flags = tun_info->key.tun_flags & (TUNNEL_CSUM | TUNNEL_KEY);
-       gre_build_header(skb, tunnel_hlen, flags, htons(ETH_P_TEB),
 -      build_header(skb, tunnel_hlen, flags, proto,
 -                   tunnel_id_to_key(tun_info->key.tun_id), 0);
++      gre_build_header(skb, tunnel_hlen, flags, proto,
 +                       tunnel_id_to_key(tun_info->key.tun_id), 0);
  
        df = key->tun_flags & TUNNEL_DONT_FRAGMENT ?  htons(IP_DF) : 0;
  
Simple merge
Simple merge
Simple merge
diff --cc net/tipc/node.c
Simple merge