Commit 
cc34acd577f1 ("docs: net: document new locking reality")
introduced netif_ vs dev_ function semantics: the former expects locked
netdev, the latter takes care of the locking. We don't strictly
follow this semantics on either side, but there are more dev_xxx handlers
now that don't fit. Rename them to netif_xxx where appropriate.
netif_pre_changeaddr_notify is used only by ipvlan/bond, so move it into
NETDEV_INTERNAL namespace.
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250717172333.1288349-4-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
        slave_dbg(bond_dev, slave_dev, "bond_dev=%p slave_dev=%p slave_dev->addr_len=%d\n",
                  bond_dev, slave_dev, slave_dev->addr_len);
-       err = dev_pre_changeaddr_notify(bond_dev, slave_dev->dev_addr, NULL);
+       err = netif_pre_changeaddr_notify(bond_dev, slave_dev->dev_addr, NULL);
        if (err)
                return err;
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION(DRV_DESCRIPTION);
 MODULE_AUTHOR("Thomas Davis, tadavis@lbl.gov and many others");
+MODULE_IMPORT_NS("NETDEV_INTERNAL");
 
        case NETDEV_PRE_CHANGEADDR:
                prechaddr_info = ptr;
                list_for_each_entry(ipvlan, &port->ipvlans, pnode) {
-                       err = dev_pre_changeaddr_notify(ipvlan->dev,
-                                                   prechaddr_info->dev_addr,
-                                                   extack);
+                       err = netif_pre_changeaddr_notify(ipvlan->dev,
+                                                         prechaddr_info->dev_addr,
+                                                         extack);
                        if (err)
                                return notifier_from_errno(err);
                }
 MODULE_AUTHOR("Mahesh Bandewar <maheshb@google.com>");
 MODULE_DESCRIPTION("Driver for L3 (IPv6/IPv4) based VLANs");
 MODULE_ALIAS_RTNL_LINK("ipvlan");
+MODULE_IMPORT_NS("NETDEV_INTERNAL");
 
 int __dev_set_mtu(struct net_device *, int);
 int netif_set_mtu(struct net_device *dev, int new_mtu);
 int dev_set_mtu(struct net_device *, int);
-int dev_pre_changeaddr_notify(struct net_device *dev, const char *addr,
-                             struct netlink_ext_ack *extack);
+int netif_pre_changeaddr_notify(struct net_device *dev, const char *addr,
+                               struct netlink_ext_ack *extack);
 int netif_set_mac_address(struct net_device *dev, struct sockaddr_storage *ss,
                          struct netlink_ext_ack *extack);
 int dev_set_mac_address(struct net_device *dev, struct sockaddr_storage *ss,
 
                if (br->dev->addr_assign_type == NET_ADDR_SET)
                        break;
                prechaddr_info = ptr;
-               err = dev_pre_changeaddr_notify(br->dev,
-                                               prechaddr_info->dev_addr,
-                                               extack);
+               err = netif_pre_changeaddr_notify(br->dev,
+                                                 prechaddr_info->dev_addr,
+                                                 extack);
                if (err)
                        return notifier_from_errno(err);
                break;
 MODULE_VERSION(BR_VERSION);
 MODULE_ALIAS_RTNL_LINK("bridge");
 MODULE_DESCRIPTION("Ethernet bridge driver");
+MODULE_IMPORT_NS("NETDEV_INTERNAL");
 
                /* Ask for permission to use this MAC address now, even if we
                 * don't end up choosing it below.
                 */
-               err = dev_pre_changeaddr_notify(br->dev, dev->dev_addr, extack);
+               err = netif_pre_changeaddr_notify(br->dev, dev->dev_addr,
+                                                 extack);
                if (err)
                        goto err6;
        }
 
 }
 
 /**
- *     dev_pre_changeaddr_notify - Call NETDEV_PRE_CHANGEADDR.
- *     @dev: device
- *     @addr: new address
- *     @extack: netlink extended ack
+ * netif_pre_changeaddr_notify() - Call NETDEV_PRE_CHANGEADDR.
+ * @dev: device
+ * @addr: new address
+ * @extack: netlink extended ack
+ *
+ * Return: 0 on success, -errno on failure.
  */
-int dev_pre_changeaddr_notify(struct net_device *dev, const char *addr,
-                             struct netlink_ext_ack *extack)
+int netif_pre_changeaddr_notify(struct net_device *dev, const char *addr,
+                               struct netlink_ext_ack *extack)
 {
        struct netdev_notifier_pre_changeaddr_info info = {
                .info.dev = dev,
        rc = call_netdevice_notifiers_info(NETDEV_PRE_CHANGEADDR, &info.info);
        return notifier_to_errno(rc);
 }
-EXPORT_SYMBOL(dev_pre_changeaddr_notify);
+EXPORT_SYMBOL_NS_GPL(netif_pre_changeaddr_notify, "NETDEV_INTERNAL");
 
 int netif_set_mac_address(struct net_device *dev, struct sockaddr_storage *ss,
                          struct netlink_ext_ack *extack)
                return -EINVAL;
        if (!netif_device_present(dev))
                return -ENODEV;
-       err = dev_pre_changeaddr_notify(dev, ss->__data, extack);
+       err = netif_pre_changeaddr_notify(dev, ss->__data, extack);
        if (err)
                return err;
        if (memcmp(dev->dev_addr, ss->__data, dev->addr_len)) {
 
 
        ASSERT_RTNL();
 
-       err = dev_pre_changeaddr_notify(dev, addr, NULL);
+       err = netif_pre_changeaddr_notify(dev, addr, NULL);
        if (err)
                return err;
        err = __hw_addr_add(&dev->dev_addrs, addr, dev->addr_len, addr_type);