Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Thu, 5 Feb 2015 22:33:28 +0000 (14:33 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Feb 2015 22:33:28 +0000 (14:33 -0800)
Conflicts:
drivers/net/vxlan.c
drivers/vhost/net.c
include/linux/if_vlan.h
net/core/dev.c

The net/core/dev.c conflict was the overlap of one commit marking an
existing function static whilst another was adding a new function.

In the include/linux/if_vlan.h case, the type used for a local
variable was changed in 'net', whereas the function got rewritten
to fix a stacked vlan bug in 'net-next'.

In drivers/vhost/net.c, Al Viro's iov_iter conversions in 'net-next'
overlapped with an endainness fix for VHOST 1.0 in 'net'.

In drivers/net/vxlan.c, vxlan_find_vni() added a 'flags' parameter
in 'net-next' whereas in 'net' there was a bug fix to pass in the
correct network namespace pointer in calls to this function.

Signed-off-by: David S. Miller <davem@davemloft.net>
36 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/amd/Kconfig
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
drivers/net/ethernet/intel/igbvf/netdev.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
drivers/net/ethernet/mellanox/mlx4/mlx4.h
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
drivers/net/ethernet/qlogic/qlge/qlge_main.c
drivers/net/ethernet/sun/sunvnet.c
drivers/net/hyperv/netvsc.c
drivers/net/macvtap.c
drivers/net/tun.c
drivers/net/virtio_net.c
drivers/net/vxlan.c
drivers/net/xen-netback/netback.c
drivers/vhost/net.c
include/linux/if_vlan.h
include/linux/mlx4/device.h
include/net/ip.h
include/net/ipv6.h
include/net/netns/ipv4.h
include/net/tcp.h
net/core/dev.c
net/core/rtnetlink.c
net/ipv4/ip_output.c
net/ipv4/route.c
net/ipv4/tcp_cong.c
net/ipv4/tcp_ipv4.c
net/ipv6/ip6_gre.c
net/ipv6/ip6_output.c
net/ipv6/sit.c
net/netfilter/nf_tables_api.c
net/netlink/af_netlink.c
net/sched/sch_fq.c

diff --cc MAINTAINERS
Simple merge
Simple merge
index ad2b4897b392cf52037c3df1ea6b2738b879cd51,edea13b0ee85277a2ca6b66ddba50f928efc6afe..ebf9d4a42fdde33a2cd977fd6892f96ffec9b51b
@@@ -2234,13 -2237,12 +2237,13 @@@ static netdev_tx_t igbvf_xmit_frame_rin
                return NETDEV_TX_BUSY;
        }
  
 -      if (vlan_tx_tag_present(skb)) {
 +      if (skb_vlan_tag_present(skb)) {
                tx_flags |= IGBVF_TX_FLAGS_VLAN;
 -              tx_flags |= (vlan_tx_tag_get(skb) << IGBVF_TX_FLAGS_VLAN_SHIFT);
 +              tx_flags |= (skb_vlan_tag_get(skb) <<
 +                           IGBVF_TX_FLAGS_VLAN_SHIFT);
        }
  
-       if (skb->protocol == htons(ETH_P_IP))
+       if (protocol == htons(ETH_P_IP))
                tx_flags |= IGBVF_TX_FLAGS_IPV4;
  
        first = tx_ring->next_to_use;
index 803f17653da71b0e5a3dfb0502f0ff9c5b6e6ee9,210691c89b6cbfdb3b7ac000cb75013e1890545f..1409d0cd6143e8554524c8377a018ccb1c3edba1
@@@ -242,9 -234,9 +242,10 @@@ do {                                                                      
  
  extern int mlx4_log_num_mgm_entry_size;
  extern int log_mtts_per_seg;
 +extern int mlx4_internal_err_reset;
  
- #define MLX4_MAX_NUM_SLAVES   (MLX4_MAX_NUM_PF + MLX4_MAX_NUM_VF)
+ #define MLX4_MAX_NUM_SLAVES   (min(MLX4_MAX_NUM_PF + MLX4_MAX_NUM_VF, \
+                                    MLX4_MFUNC_MAX))
  #define ALL_SLAVES 0xff
  
  struct mlx4_bitmap {
Simple merge
Simple merge
Simple merge
Simple merge
index 9bd71d53c5e06f2b19bb1fe80cd5903610af534e,059fdf1bf5eed9ff91c728c2a471f03791b5877c..110a2cf67244c8946a295c09d7c63b3297f0f0d3
@@@ -1762,11 -1751,11 +1755,13 @@@ static int virtnet_probe(struct virtio_
                        dev->hw_features |= NETIF_F_TSO6;
                if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_ECN))
                        dev->hw_features |= NETIF_F_TSO_ECN;
+               if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO))
+                       dev->hw_features |= NETIF_F_UFO;
  
 +              dev->features |= NETIF_F_GSO_ROBUST;
 +
                if (gso)
-                       dev->features |= dev->hw_features & NETIF_F_ALL_TSO;
+                       dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
                /* (!csum && gso) case will be fixed by register_netdev() */
        }
        if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
index d08072c10aa919bc2a34617908daf28f0539576a,a8c755dcab1417a27f8939096a23ded65a6af65d..e6ed3e66964d6dbc7952831d3bebd949df66d70b
@@@ -2750,19 -2557,8 +2750,19 @@@ static int vxlan_newlink(struct net *sr
            nla_get_u8(data[IFLA_VXLAN_UDP_ZERO_CSUM6_RX]))
                vxlan->flags |= VXLAN_F_UDP_ZERO_CSUM6_RX;
  
-       if (vxlan_find_vni(net, vni, use_ipv6 ? AF_INET6 : AF_INET,
 +      if (data[IFLA_VXLAN_REMCSUM_TX] &&
 +          nla_get_u8(data[IFLA_VXLAN_REMCSUM_TX]))
 +              vxlan->flags |= VXLAN_F_REMCSUM_TX;
 +
 +      if (data[IFLA_VXLAN_REMCSUM_RX] &&
 +          nla_get_u8(data[IFLA_VXLAN_REMCSUM_RX]))
 +              vxlan->flags |= VXLAN_F_REMCSUM_RX;
 +
 +      if (data[IFLA_VXLAN_GBP])
 +              vxlan->flags |= VXLAN_F_GBP;
 +
 -                         vxlan->dst_port)) {
+       if (vxlan_find_vni(src_net, vni, use_ipv6 ? AF_INET6 : AF_INET,
 +                         vxlan->dst_port, vxlan->flags)) {
                pr_info("duplicate VNI %u\n", vni);
                return -EEXIST;
        }
Simple merge
index e022cc40303d69cd2664cab909157672cd58f744,9484d5652ca5a23e051c54b1b0544ce8868f3876..8dccca9013ed3fae55f1a716f85e1785f277a3f4
@@@ -614,11 -649,13 +614,11 @@@ static void handle_rx(struct vhost_net 
                               vq->iov->iov_base);
                        break;
                }
-               /* Supply (or replace) ->num_buffers if VIRTIO_NET_F_MRG_RXBUF
-                * TODO: Should check and handle checksum.
-                */
+               /* TODO: Should check and handle checksum. */
+               hdr.num_buffers = cpu_to_vhost16(vq, headcount);
                if (likely(mergeable) &&
-                   copy_to_iter(&headcount, 2, &fixup) != 2) {
 -                  memcpy_toiovecend(nvq->hdr, (void *)&hdr.num_buffers,
 -                                    offsetof(typeof(hdr), num_buffers),
 -                                    sizeof hdr.num_buffers)) {
++                  copy_to_iter(&hdr.num_buffers, 2, &fixup) != 2) {
                        vq_err(vq, "Failed num_buffers write");
                        vhost_discard_vq_desc(vq, headcount);
                        break;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/core/dev.c
index ede0b161b115c10cda6c2e65d307d3c91cc44d5d,7fe82929f5094ee37a49dccd9df3a3e2b63a64c7..a3a96ffc67f484277c964a05c71aba4eee1c4a81
@@@ -5355,27 -5294,7 +5326,27 @@@ void netdev_upper_dev_unlink(struct net
  }
  EXPORT_SYMBOL(netdev_upper_dev_unlink);
  
- void netdev_adjacent_add_links(struct net_device *dev)
 +/**
 + * netdev_bonding_info_change - Dispatch event about slave change
 + * @dev: device
 + * @netdev_bonding_info: info to dispatch
 + *
 + * Send NETDEV_BONDING_INFO to netdev notifiers with info.
 + * The caller must hold the RTNL lock.
 + */
 +void netdev_bonding_info_change(struct net_device *dev,
 +                              struct netdev_bonding_info *bonding_info)
 +{
 +      struct netdev_notifier_bonding_info     info;
 +
 +      memcpy(&info.bonding_info, bonding_info,
 +             sizeof(struct netdev_bonding_info));
 +      call_netdevice_notifiers_info(NETDEV_BONDING_INFO, dev,
 +                                    &info.info);
 +}
 +EXPORT_SYMBOL(netdev_bonding_info_change);
 +
+ static void netdev_adjacent_add_links(struct net_device *dev)
  {
        struct netdev_adjacent *iter;
  
index 4cd5e350d129713552e7c2ccb7582d32e6b94fc3,446cbaf811857171c96a01e3529a790b77cf0b8f..5dad4f782f03f8556e0ed184158657f902cb119c
@@@ -2933,10 -2881,23 +2933,13 @@@ static int rtnl_bridge_notify(struct ne
                goto errout;
        }
  
 -      if ((!flags || (flags & BRIDGE_FLAGS_MASTER)) &&
 -          br_dev && br_dev->netdev_ops->ndo_bridge_getlink) {
 -              err = br_dev->netdev_ops->ndo_bridge_getlink(skb, 0, 0, dev, 0);
 -              if (err < 0)
 -                      goto errout;
 -      }
 -
 -      if ((flags & BRIDGE_FLAGS_SELF) &&
 -          dev->netdev_ops->ndo_bridge_getlink) {
 -              err = dev->netdev_ops->ndo_bridge_getlink(skb, 0, 0, dev, 0);
 -              if (err < 0)
 -                      goto errout;
 -      }
 +      err = dev->netdev_ops->ndo_bridge_getlink(skb, 0, 0, dev, 0);
 +      if (err < 0)
 +              goto errout;
  
+       if (!skb->len)
+               goto errout;
        rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
        return 0;
  errout:
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/sit.c
Simple merge
Simple merge
Simple merge
Simple merge