]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Fri, 15 Feb 2019 20:38:38 +0000 (12:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Feb 2019 20:38:38 +0000 (12:38 -0800)
The netfilter conflicts were rather simple overlapping
changes.

However, the cls_tcindex.c stuff was a bit more complex.

On the 'net' side, Cong is fixing several races and memory
leaks.  Whilst on the 'net-next' side we have Vlad adding
the rtnl-ness support.

What I've decided to do, in order to resolve this, is revert the
conversion over to using a workqueue that Cong did, bringing us back
to pure RCU.  I did it this way because I believe that either Cong's
races don't apply with have Vlad did things, or Cong will have to
implement the race fix slightly differently.

Signed-off-by: David S. Miller <davem@davemloft.net>
29 files changed:
1  2 
Documentation/admin-guide/kernel-parameters.txt
MAINTAINERS
drivers/net/Kconfig
drivers/net/dsa/bcm_sf2.c
drivers/net/dsa/mv88e6xxx/chip.c
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/realtek/r8169.c
drivers/net/ethernet/sfc/ef10.c
drivers/net/phy/phy.c
drivers/net/phy/phylink.c
drivers/net/phy/sfp.c
drivers/net/vxlan.c
include/linux/phy.h
include/net/sock.h
net/batman-adv/soft-interface.c
net/core/sock.c
net/ipv4/netfilter/nf_nat_l3proto_ipv4.c
net/ipv4/route.c
net/ipv6/addrconf.c
net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
net/mac80211/agg-tx.c
net/netfilter/ipvs/ip_vs_core.c
net/sched/cls_tcindex.c
net/sched/sch_generic.c
net/smc/smc_cdc.c
net/smc/smc_cdc.h
net/tipc/link.c
net/wireless/nl80211.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 177a330d84e5994632abb55570ed714454db4d31,127fcc9c37781564d72978ad0626e5d4c19cf740..bf1070c2a53b4c726441b960071314a20cdeba92
@@@ -673,16 -673,7 +673,9 @@@ phy_lookup_setting(int speed, int duple
                   bool exact);
  size_t phy_speeds(unsigned int *speeds, size_t size,
                  unsigned long *mask);
 +void of_set_phy_supported(struct phy_device *phydev);
 +void of_set_phy_eee_broken(struct phy_device *phydev);
  
- static inline bool __phy_is_started(struct phy_device *phydev)
- {
-       WARN_ON(!mutex_is_locked(&phydev->lock));
-       return phydev->state >= PHY_UP;
- }
  /**
   * phy_is_started - Convenience function to check whether PHY is started
   * @phydev: The phy_device struct
Simple merge
index 5cb4a2f53a2f8180551c88c53adf94d6db212288,ffc83bebfe4038df24c5b8cce093c32a302dac18..2e367230376b932f61fde553c85c2c46e7095111
@@@ -226,15 -225,14 +226,17 @@@ static netdev_tx_t batadv_interface_tx(
        skb_reset_mac_header(skb);
        ethhdr = eth_hdr(skb);
  
 -      switch (ntohs(ethhdr->h_proto)) {
 +      proto = ethhdr->h_proto;
 +
 +      switch (ntohs(proto)) {
        case ETH_P_8021Q:
+               if (!pskb_may_pull(skb, sizeof(*vhdr)))
+                       goto dropped;
                vhdr = vlan_eth_hdr(skb);
 +              proto = vhdr->h_vlan_encapsulated_proto;
  
                /* drop batman-in-batman packets to prevent loops */
 -              if (vhdr->h_vlan_encapsulated_proto != htons(ETH_P_BATMAN)) {
 +              if (proto != htons(ETH_P_BATMAN)) {
                        network_offset += VLAN_HLEN;
                        break;
                }
diff --cc net/core/sock.c
Simple merge
index e26165af45cbf77da695051bf0d0c93009791115,fa2ba7c500e41139ca03641cf33ec4e2a16764a9..4b07eb8a9b185160ec58c8b377d7c4d52264cb05
@@@ -214,7 -214,8 +214,8 @@@ int nf_nat_icmp_reply_translation(struc
        }
  
        /* Change outer to look like the reply to an incoming packet */
 -      nf_ct_invert_tuplepr(&target, &ct->tuplehash[!dir].tuple);
 +      nf_ct_invert_tuple(&target, &ct->tuplehash[!dir].tuple);
+       target.dst.protonum = IPPROTO_ICMP;
        if (!nf_nat_ipv4_manip_pkt(skb, 0, &target, manip))
                return 0;
  
Simple merge
Simple merge
index 9c914db44bec751c72211ab6dd8a81b4b1fc0339,7a41ee3c11b4d076c91c57095472b6a48b4112ba..f0ec31933c15a5f985ebe30fb6a1b52c8e25437f
@@@ -225,7 -225,8 +225,8 @@@ int nf_nat_icmpv6_reply_translation(str
                                                     skb->len - hdrlen, 0));
        }
  
 -      nf_ct_invert_tuplepr(&target, &ct->tuplehash[!dir].tuple);
 +      nf_ct_invert_tuple(&target, &ct->tuplehash[!dir].tuple);
+       target.dst.protonum = IPPROTO_ICMPV6;
        if (!nf_nat_ipv6_manip_pkt(skb, 0, &target, manip))
                return 0;
  
Simple merge
Simple merge
Simple merge
Simple merge
index 28bbdb04bc35d09b50c9a18b76c5e7326048b550,fb07ad8d69a62a7789c6651b50fb939c8ccf8d83..d0b0f4c865b4082454d9085642f9b730ee3ef375
@@@ -101,14 -101,10 +101,12 @@@ int smc_cdc_msg_send(struct smc_connect
  
        conn->tx_cdc_seq++;
        conn->local_tx_ctrl.seqno = conn->tx_cdc_seq;
-       smc_host_msg_to_cdc((struct smc_cdc_msg *)wr_buf,
-                           &conn->local_tx_ctrl, conn);
-       smc_curs_copy(&cfed, &((struct smc_host_cdc_msg *)wr_buf)->cons, conn);
+       smc_host_msg_to_cdc((struct smc_cdc_msg *)wr_buf, conn, &cfed);
        rc = smc_wr_tx_send(link, (struct smc_wr_tx_pend_priv *)pend);
 -      if (!rc)
 +      if (!rc) {
                smc_curs_copy(&conn->rx_curs_confirmed, &cfed, conn);
 +              conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0;
 +      }
  
        return rc;
  }
Simple merge
diff --cc net/tipc/link.c
Simple merge
Simple merge