Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Fri, 19 Oct 2018 18:03:06 +0000 (11:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Oct 2018 18:03:06 +0000 (11:03 -0700)
net/sched/cls_api.c has overlapping changes to a call to
nlmsg_parse(), one (from 'net') added rtm_tca_policy instead of NULL
to the 5th argument, and another (from 'net-next') added cb->extack
instead of NULL to the 6th argument.

net/ipv4/ipmr_base.c is a case of a bug fix in 'net' being done to
code which moved (to mr_table_dump)) in 'net-next'.  Thanks to David
Ahern for the heads up.

Signed-off-by: David S. Miller <davem@davemloft.net>
30 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/broadcom/genet/bcmmii.c
drivers/net/ethernet/freescale/fec_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h
drivers/net/ethernet/mellanox/mlx5/core/wq.c
drivers/net/ethernet/mscc/ocelot.c
drivers/net/ethernet/netronome/nfp/flower/action.c
drivers/net/ethernet/realtek/r8169.c
drivers/net/geneve.c
drivers/net/virtio_net.c
drivers/net/vxlan.c
include/linux/mlx5/driver.h
include/net/ip6_fib.h
kernel/bpf/xskmap.c
net/core/ethtool.c
net/ipv4/ipmr_base.c
net/ipv6/mcast.c
net/ipv6/route.c
net/ipv6/udp.c
net/rxrpc/call_accept.c
net/rxrpc/output.c
net/rxrpc/peer_event.c
net/sched/cls_api.c
net/sched/sch_api.c
net/sctp/socket.c
net/socket.c
net/xdp/xsk.c
net/xfrm/xfrm_interface.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1024,9 -1028,18 +1024,17 @@@ static inline void *mlx5_frag_buf_get_w
        ix  += fbc->strides_offset;
        frag = ix >> fbc->log_frag_strides;
  
 -      return fbc->frag_buf.frags[frag].buf +
 -              ((fbc->frag_sz_m1 & ix) << fbc->log_stride);
 +      return fbc->frags[frag].buf + ((fbc->frag_sz_m1 & ix) << fbc->log_stride);
  }
  
+ static inline u32
+ mlx5_frag_buf_get_idx_last_contig_stride(struct mlx5_frag_buf_ctrl *fbc, u32 ix)
+ {
+       u32 last_frag_stride_idx = (ix + fbc->strides_offset) | fbc->frag_sz_m1;
+       return min_t(u32, last_frag_stride_idx - fbc->strides_offset, fbc->sz_m1);
+ }
  int mlx5_cmd_init(struct mlx5_core_dev *dev);
  void mlx5_cmd_cleanup(struct mlx5_core_dev *dev);
  void mlx5_cmd_use_events(struct mlx5_core_dev *dev);
Simple merge
Simple merge
Simple merge
@@@ -268,83 -268,6 +268,81 @@@ int mr_fill_mroute(struct mr_table *mrt
  }
  EXPORT_SYMBOL(mr_fill_mroute);
  
-       e = 0;
-       s_e = 0;
 +static bool mr_mfc_uses_dev(const struct mr_table *mrt,
 +                          const struct mr_mfc *c,
 +                          const struct net_device *dev)
 +{
 +      int ct;
 +
 +      for (ct = c->mfc_un.res.minvif; ct < c->mfc_un.res.maxvif; ct++) {
 +              if (VIF_EXISTS(mrt, ct) && c->mfc_un.res.ttls[ct] < 255) {
 +                      const struct vif_device *vif;
 +
 +                      vif = &mrt->vif_table[ct];
 +                      if (vif->dev == dev)
 +                              return true;
 +              }
 +      }
 +      return false;
 +}
 +
 +int mr_table_dump(struct mr_table *mrt, struct sk_buff *skb,
 +                struct netlink_callback *cb,
 +                int (*fill)(struct mr_table *mrt, struct sk_buff *skb,
 +                            u32 portid, u32 seq, struct mr_mfc *c,
 +                            int cmd, int flags),
 +                spinlock_t *lock, struct fib_dump_filter *filter)
 +{
 +      unsigned int e = 0, s_e = cb->args[1];
 +      unsigned int flags = NLM_F_MULTI;
 +      struct mr_mfc *mfc;
 +      int err;
 +
 +      if (filter->filter_set)
 +              flags |= NLM_F_DUMP_FILTERED;
 +
 +      list_for_each_entry_rcu(mfc, &mrt->mfc_cache_list, list) {
 +              if (e < s_e)
 +                      goto next_entry;
 +              if (filter->dev &&
 +                  !mr_mfc_uses_dev(mrt, mfc, filter->dev))
 +                      goto next_entry;
 +
 +              err = fill(mrt, skb, NETLINK_CB(cb->skb).portid,
 +                         cb->nlh->nlmsg_seq, mfc, RTM_NEWROUTE, flags);
 +              if (err < 0)
 +                      goto out;
 +next_entry:
 +              e++;
 +      }
 +
 +      spin_lock_bh(lock);
 +      list_for_each_entry(mfc, &mrt->mfc_unres_queue, list) {
 +              if (e < s_e)
 +                      goto next_entry2;
 +              if (filter->dev &&
 +                  !mr_mfc_uses_dev(mrt, mfc, filter->dev))
 +                      goto next_entry2;
 +
 +              err = fill(mrt, skb, NETLINK_CB(cb->skb).portid,
 +                         cb->nlh->nlmsg_seq, mfc, RTM_NEWROUTE, flags);
 +              if (err < 0) {
 +                      spin_unlock_bh(lock);
 +                      goto out;
 +              }
 +next_entry2:
 +              e++;
 +      }
 +      spin_unlock_bh(lock);
 +      err = 0;
 +      e = 0;
 +
 +out:
 +      cb->args[1] = e;
 +      return err;
 +}
 +EXPORT_SYMBOL(mr_table_dump);
 +
  int mr_rtm_dumproute(struct sk_buff *skb, struct netlink_callback *cb,
                     struct mr_table *(*iter)(struct net *net,
                                              struct mr_table *mrt),
Simple merge
Simple merge
diff --cc net/ipv6/udp.c
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -2055,8 -1951,8 +2057,8 @@@ static int tc_dump_chain(struct sk_buf
        if (nlmsg_len(cb->nlh) < sizeof(*tcm))
                return skb->len;
  
-       err = nlmsg_parse(cb->nlh, sizeof(*tcm), tca, TCA_MAX, NULL,
+       err = nlmsg_parse(cb->nlh, sizeof(*tcm), tca, TCA_MAX, rtm_tca_policy,
 -                        NULL);
 +                        cb->extack);
        if (err)
                return err;
  
Simple merge
Simple merge
diff --cc net/socket.c
Simple merge
diff --cc net/xdp/xsk.c
Simple merge
Simple merge