Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Fri, 30 Jun 2017 16:43:08 +0000 (12:43 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Jun 2017 16:43:08 +0000 (12:43 -0400)
A set of overlapping changes in macvlan and the rocker
driver, nothing serious.

Signed-off-by: David S. Miller <davem@davemloft.net>
33 files changed:
1  2 
MAINTAINERS
drivers/net/arcnet/arcnet.c
drivers/net/arcnet/capmode.c
drivers/net/arcnet/com20020-pci.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
drivers/net/ethernet/rocker/rocker_ofdpa.c
drivers/net/ethernet/sfc/ef10.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/macvlan.c
drivers/net/phy/micrel.c
drivers/net/usb/ax88179_178a.c
drivers/net/veth.c
drivers/net/virtio_net.c
drivers/scsi/qedi/qedi_fw.c
drivers/scsi/qedi/qedi_main.c
include/net/xfrm.h
kernel/bpf/verifier.c
net/core/dev.c
net/ipv4/tcp.c
net/ipv6/addrconf.c
net/ipv6/ip6_output.c
net/ipv6/route.c
net/ipv6/sit.c
net/ipv6/udp.c
net/key/af_key.c
net/sched/sch_api.c
net/xfrm/xfrm_device.c
net/xfrm/xfrm_policy.c
net/xfrm/xfrm_user.c
tools/testing/selftests/bpf/test_verifier.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
index 24deb88a37f063fe5c9a8bae87c23f30f05a496f,47f80b83dcf42a47666f05a688a680b7690251cf..2d956cb59d06d33c2f605a988a5884b1c21a1012
@@@ -187,9 -167,9 +188,10 @@@ static int com20020pci_probe(struct pci
                arcnet_outb(0x00, ioaddr, COM20020_REG_W_COMMAND);
                arcnet_inb(ioaddr, COM20020_REG_R_DIAGSTAT);
  
+               SET_NETDEV_DEV(dev, &pdev->dev);
                dev->base_addr = ioaddr;
                dev->dev_addr[0] = node;
 +              dev->sysfs_groups[0] = &com20020_state_group;
                dev->irq = pdev->irq;
                lp->card_name = "PCI COM20020";
                lp->card_flags = ci->flags;
                lp->timeout = timeout;
                lp->hw.owner = THIS_MODULE;
  
 +              lp->backplane = (inb(priv->misc) >> (2 + i)) & 0x1;
 +
 +              if (!strncmp(ci->name, "EAE PLX-PCI FB2", 15))
 +                      lp->backplane = 1;
 +
                /* Get the dev_id from the PLX rotary coder */
                if (!strncmp(ci->name, "EAE PLX-PCI MA1", 15))
-                       dev->dev_id = 0xc;
-               dev->dev_id ^= inb(priv->misc + ci->rotary) >> 4;
+                       dev_id_mask = 0x3;
+               dev->dev_id = (inb(priv->misc + ci->rotary) >> 4) & dev_id_mask;
  
                snprintf(dev->name, sizeof(dev->name), "arc%d-%d", dev->dev_id, i);
  
index 700cc8c6aa5be69c9c6135c0572259434143955e,0744452a0b188190a1da2fe0e14651aad31748de..192cb93e7669be9587d850bc3c5a661d9816af24
@@@ -3299,11 -3331,15 +3299,14 @@@ static int mlxsw_sp_inetaddr_vlan_event
                                        unsigned long event)
  {
        struct net_device *real_dev = vlan_dev_real_dev(vlan_dev);
 -      struct mlxsw_sp *mlxsw_sp = mlxsw_sp_lower_get(vlan_dev);
        u16 vid = vlan_dev_vlan_id(vlan_dev);
  
+       if (netif_is_bridge_port(vlan_dev))
+               return 0;
        if (mlxsw_sp_port_dev_check(real_dev))
 -              return mlxsw_sp_inetaddr_vport_event(vlan_dev, real_dev, event,
 -                                                   vid);
 +              return mlxsw_sp_inetaddr_port_vlan_event(vlan_dev, real_dev,
 +                                                       event, vid);
        else if (netif_is_lag_master(real_dev))
                return __mlxsw_sp_inetaddr_lag_event(vlan_dev, real_dev, event,
                                                     vid);
index bd0e3f157e9e8629eaf0ebe591a475eb9e7b5979,a9ce82d3e9cf4b8875474cd62f02ccbfc322bc20..600e30e8f0be3156b764fdc7c762504cb74bab7a
@@@ -1409,10 -1505,10 +1409,10 @@@ static int ofdpa_port_ipv4_nh(struct of
                *index = entry->index;
                resolved = false;
        } else if (removing) {
-               ofdpa_neigh_del(found);
                *index = found->index;
 -              ofdpa_neigh_del(trans, found);
++              ofdpa_neigh_del(found);
        } else if (updating) {
 -              ofdpa_neigh_update(found, trans, NULL, false);
 +              ofdpa_neigh_update(found, NULL, false);
                resolved = !is_zero_ether_addr(found->eth_dst);
                *index = found->index;
        } else {
Simple merge
Simple merge
index 9ffff0362a11ceff45ad040c95c0b6a931ef44c1,72b801803aa4d450328a5df8c4c782fbb1d5e4cc..0f581ee74fe43b5127e338ecdc1da2139b986692
@@@ -703,8 -743,15 +743,14 @@@ static int macvlan_set_mac_address(stru
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
  
-       if (vlan->mode == MACVLAN_MODE_PASSTHRU)
+       /* If the addresses are the same, this is a no-op */
+       if (ether_addr_equal(dev->dev_addr, addr->sa_data))
+               return 0;
+       if (vlan->mode == MACVLAN_MODE_PASSTHRU) {
+               macvlan_set_addr_change(vlan->port);
 -              dev_set_mac_address(vlan->lowerdev, addr);
 -              return 0;
 +              return dev_set_mac_address(vlan->lowerdev, addr);
+       }
  
        return macvlan_sync_address(dev, addr->sa_data);
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 74ea96ea391b38105750242ad7cb854174764afb,a8a725697bed693e8e77f225eea5dcc7db46dad0..6ea2adcb233b56d9bc3f4d16642ecbbf5556d5d9
@@@ -1016,8 -989,13 +1016,13 @@@ static int check_xadd(struct bpf_verifi
        if (err)
                return err;
  
+       if (is_pointer_value(env, insn->src_reg)) {
+               verbose("R%d leaks addr into mem\n", insn->src_reg);
+               return -EACCES;
+       }
        /* check whether atomic_add can read the memory */
 -      err = check_mem_access(env, insn->dst_reg, insn->off,
 +      err = check_mem_access(env, insn_idx, insn->dst_reg, insn->off,
                               BPF_SIZE(insn->code), BPF_READ, -1);
        if (err)
                return err;
diff --cc net/core/dev.c
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/sit.c
Simple merge
diff --cc net/ipv6/udp.c
Simple merge
Simple merge
Simple merge
index 6d4a60d1bf19f84716c0fe4f9857468dac26cf74,5aba03685d7da54931c9287c071a13403c6edec5..5f7e8bfa0c2dca6d811616aa7002b768d1bb51ae
@@@ -137,8 -138,9 +138,9 @@@ ok
        return true;
  }
  EXPORT_SYMBOL_GPL(xfrm_dev_offload_ok);
+ #endif
  
 -int xfrm_dev_register(struct net_device *dev)
 +static int xfrm_dev_register(struct net_device *dev)
  {
        if ((dev->features & NETIF_F_HW_ESP) && !dev->xfrmdev_ops)
                return NOTIFY_BAD;
Simple merge
Simple merge