Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Sat, 1 Aug 2015 06:52:20 +0000 (23:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 1 Aug 2015 06:52:20 +0000 (23:52 -0700)
Conflicts:
arch/s390/net/bpf_jit_comp.c
drivers/net/ethernet/ti/netcp_ethss.c
net/bridge/br_multicast.c
net/ipv4/ip_fragment.c

All four conflicts were cases of simple overlapping
changes.

Signed-off-by: David S. Miller <davem@davemloft.net>
29 files changed:
1  2 
MAINTAINERS
arch/x86/net/bpf_jit_comp.c
drivers/net/ethernet/cadence/macb.c
drivers/net/ethernet/cadence/macb.h
drivers/net/ethernet/freescale/fec_ptp.c
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/freescale/gianfar.h
drivers/net/ethernet/freescale/gianfar_ethtool.c
drivers/net/ethernet/mellanox/mlx4/en_rx.c
drivers/net/ethernet/mellanox/mlx4/main.c
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
drivers/net/ethernet/ti/netcp_core.c
drivers/net/ethernet/ti/netcp_ethss.c
drivers/net/usb/r8152.c
include/net/act_api.h
include/net/ip_fib.h
include/net/sock.h
net/bridge/br_mdb.c
net/bridge/br_multicast.c
net/bridge/br_netlink.c
net/ipv4/arp.c
net/ipv4/fib_semantics.c
net/ipv4/ip_fragment.c
net/ipv4/route.c
net/ipv6/ndisc.c
net/packet/af_packet.c
net/sched/act_api.c
net/sched/act_bpf.c
net/sched/act_pedit.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index fd238587e0329192047c8ee0f76c66ace97b9430,0b39dcc65b94f0aa571dc22dc0c97afbf4e3d744..0752796fe0ba4443036a94a385ef4d1666cd3adc
@@@ -1441,6 -1424,31 +1440,32 @@@ br_multicast_leave_group(struct net_bri
        if (!mp)
                goto out;
  
 -                      br_mdb_notify(br->dev, port, group, RTM_DELMDB);
+       if (port && (port->flags & BR_MULTICAST_FAST_LEAVE)) {
+               struct net_bridge_port_group __rcu **pp;
+               for (pp = &mp->ports;
+                    (p = mlock_dereference(*pp, br)) != NULL;
+                    pp = &p->next) {
+                       if (p->port != port)
+                               continue;
+                       rcu_assign_pointer(*pp, p->next);
+                       hlist_del_init(&p->mglist);
+                       del_timer(&p->timer);
+                       call_rcu_bh(&p->rcu, br_multicast_free_pg);
++                      br_mdb_notify(br->dev, port, group, RTM_DELMDB,
++                                    p->state);
+                       if (!mp->ports && !mp->mglist &&
+                           netif_running(br->dev))
+                               mod_timer(&mp->timer, jiffies);
+               }
+               goto out;
+       }
+       if (timer_pending(&other_query->timer))
+               goto out;
        if (br->multicast_querier) {
                __br_multicast_send_query(br, port, &mp->addr);
  
Simple merge
diff --cc net/ipv4/arp.c
Simple merge
Simple merge
index f44bccc42494000dffa2abdcfa016d22a9ab322f,921138f6c97c9948a7cf5e2e36b7e3dbfabc6e29..d96722ae89796ef27ec725a695b60fbce4c47fbc
@@@ -586,22 -587,35 +586,22 @@@ static int ip_frag_reasm(struct ipq *qp
                head->len -= clone->len;
                clone->csum = 0;
                clone->ip_summed = head->ip_summed;
-               add_frag_mem_limit(&qp->q, clone->truesize);
+               add_frag_mem_limit(qp->q.net, clone->truesize);
        }
  
 +      skb_shinfo(head)->frag_list = head->next;
        skb_push(head, head->data - skb_network_header(head));
  
 -      sum_truesize = head->truesize;
 -      for (fp = head->next; fp;) {
 -              bool headstolen;
 -              int delta;
 -              struct sk_buff *next = fp->next;
 -
 -              sum_truesize += fp->truesize;
 +      for (fp=head->next; fp; fp = fp->next) {
 +              head->data_len += fp->len;
 +              head->len += fp->len;
                if (head->ip_summed != fp->ip_summed)
                        head->ip_summed = CHECKSUM_NONE;
                else if (head->ip_summed == CHECKSUM_COMPLETE)
                        head->csum = csum_add(head->csum, fp->csum);
 -
 -              if (skb_try_coalesce(head, fp, &headstolen, &delta)) {
 -                      kfree_skb_partial(fp, headstolen);
 -              } else {
 -                      if (!skb_shinfo(head)->frag_list)
 -                              skb_shinfo(head)->frag_list = fp;
 -                      head->data_len += fp->len;
 -                      head->len += fp->len;
 -                      head->truesize += fp->truesize;
 -              }
 -              fp = next;
 +              head->truesize += fp->truesize;
        }
-       sub_frag_mem_limit(&qp->q, head->truesize);
 -      sub_frag_mem_limit(qp->q.net, sum_truesize);
++      sub_frag_mem_limit(qp->q.net, head->truesize);
  
        head->next = NULL;
        head->dev = dev;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge