Cross-merge networking fixes after downstream PR.
Conflicts:
include/net/inet_sock.h
  
f866fbc842de ("ipv4: fix data-races around inet->inet_id")
  
c274af224269 ("inet: introduce inet->inet_flags")
https://lore.kernel.org/all/
679ddff6-db6e-4ff6-b177-
574e90d0103d@tessares.net/
Adjacent changes:
drivers/net/bonding/bond_alb.c
  
e74216b8def3 ("bonding: fix macvlan over alb bond support")
  
f11e5bd159b0 ("bonding: support balance-alb with openvswitch")
drivers/net/ethernet/broadcom/bgmac.c
  
d6499f0b7c7c ("net: bgmac: Return PTR_ERR() for fixed_phy_register()")
  
23a14488ea58 ("net: bgmac: Fix return value check for fixed_phy_register()")
drivers/net/ethernet/broadcom/genet/bcmmii.c
  
32bbe64a1386 ("net: bcmgenet: Fix return value check for fixed_phy_register()")
  
acf50d1adbf4 ("net: bcmgenet: Return PTR_ERR() for fixed_phy_register()")
net/sctp/socket.c
  
f866fbc842de ("ipv4: fix data-races around inet->inet_id")
  
b09bde5c3554 ("inet: move inet->mc_loop to inet->inet_frags")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
        int err;
  
        phy_dev = fixed_phy_register(PHY_POLL, &fphy_status, NULL);
-       if (!phy_dev || IS_ERR(phy_dev)) {
+       if (IS_ERR(phy_dev)) {
                dev_err(bgmac->dev, "Failed to register fixed PHY device\n");
 -              return -ENODEV;
 +              return PTR_ERR(phy_dev);
        }
  
        err = phy_connect_direct(bgmac->net_dev, phy_dev, bgmac_adjust_link,
 
                };
  
                phydev = fixed_phy_register(PHY_POLL, &fphy_status, NULL);
-               if (!phydev || IS_ERR(phydev)) {
+               if (IS_ERR(phydev)) {
                        dev_err(kdev, "failed to register fixed PHY device\n");
 -                      return -ENODEV;
 +                      return PTR_ERR(phydev);
                }
  
                /* Make sure we initialize MoCA PHYs with a link down */
 
  #define inet_dport            sk.__sk_common.skc_dport
  #define inet_num              sk.__sk_common.skc_num
  
 +      unsigned long           inet_flags;
        __be32                  inet_saddr;
        __s16                   uc_ttl;
 -      __u16                   cmsg_flags;
 +      __be16                  inet_sport;
        struct ip_options_rcu __rcu     *inet_opt;
-       __u16                   inet_id;
+       atomic_t                inet_id;
 -      __be16                  inet_sport;
  
        __u8                    tos;
        __u8                    min_ttl;
 
  
  static int batadv_interface_change_mtu(struct net_device *dev, int new_mtu)
  {
+       struct batadv_priv *bat_priv = netdev_priv(dev);
+ 
        /* check ranges */
 -      if (new_mtu < 68 || new_mtu > batadv_hardif_min_mtu(dev))
 +      if (new_mtu < ETH_MIN_MTU || new_mtu > batadv_hardif_min_mtu(dev))
                return -EINVAL;
  
        dev->mtu = new_mtu;
 
        newinet->inet_rcv_saddr = inet->inet_rcv_saddr;
        newinet->inet_dport = htons(asoc->peer.port);
        newinet->pmtudisc = inet->pmtudisc;
-       newinet->inet_id = get_random_u16();
+       atomic_set(&newinet->inet_id, get_random_u16());
  
        newinet->uc_ttl = inet->uc_ttl;
 -      newinet->mc_loop = 1;
 +      inet_set_bit(MC_LOOP, newsk);
        newinet->mc_ttl = 1;
        newinet->mc_index = 0;
        newinet->mc_list = NULL;