netdev
[Top] [All Lists]

[PATCH 2.6.11-rc3 1/5]: net/core: move set MAC into separate function

To: bonding-devel@xxxxxxxxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
Subject: [PATCH 2.6.11-rc3 1/5]: net/core: move set MAC into separate function
From: Jay Vosburgh <fubar@xxxxxxxxxx>
Date: Fri, 11 Feb 2005 01:15:50 -0800
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
        This moves the SIOCSIFHWADDR code from dev_ifsioc() into a
separate new function, dev_set_mac_address().  This provides a single
entry point for all callers performing MAC address changes.

Signed-off-by: Jay Vosburgh <fubar@xxxxxxxxxx>


Index: linux-2611-rc3/net/core/dev.c
===================================================================
RCS file: /sda7/CVS/linux-2611-rc3/linux-2611-rc3/net/core/dev.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -u -r1.1.1.1 -r1.2
--- linux-2611-rc3/net/core/dev.c       11 Feb 2005 04:50:49 -0000      1.1.1.1
+++ linux-2611-rc3/net/core/dev.c       11 Feb 2005 05:54:32 -0000      1.2
@@ -2299,6 +2299,21 @@
        return err;
 }
 
+int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)
+{
+       int err;
+
+       if (!dev->set_mac_address)
+               return -EOPNOTSUPP;
+       if (sa->sa_family != dev->type)
+               return -EINVAL;
+       if (!netif_device_present(dev))
+               return -ENODEV;
+       err = dev->set_mac_address(dev, sa);
+       if (!err)
+               notifier_call_chain(&netdev_chain, NETDEV_CHANGEADDR, dev);
+       return err;
+}
 
 /*
  *     Perform the SIOCxIFxxx calls.
@@ -2345,17 +2360,7 @@
                        return 0;
 
                case SIOCSIFHWADDR:
-                       if (!dev->set_mac_address)
-                               return -EOPNOTSUPP;
-                       if (ifr->ifr_hwaddr.sa_family != dev->type)
-                               return -EINVAL;
-                       if (!netif_device_present(dev))
-                               return -ENODEV;
-                       err = dev->set_mac_address(dev, &ifr->ifr_hwaddr);
-                       if (!err)
-                               notifier_call_chain(&netdev_chain,
-                                                   NETDEV_CHANGEADDR, dev);
-                       return err;
+                       return dev_set_mac_address(dev, &ifr->ifr_hwaddr);
 
                case SIOCSIFHWBROADCAST:
                        if (ifr->ifr_hwaddr.sa_family != dev->type)
@@ -3322,6 +3327,7 @@
 EXPORT_SYMBOL(dev_set_promiscuity);
 EXPORT_SYMBOL(dev_change_flags);
 EXPORT_SYMBOL(dev_set_mtu);
+EXPORT_SYMBOL(dev_set_mac_address);
 EXPORT_SYMBOL(free_netdev);
 EXPORT_SYMBOL(netdev_boot_setup_check);
 EXPORT_SYMBOL(netdev_set_master);
Index: linux-2611-rc3/include/linux/netdevice.h
===================================================================
RCS file: /sda7/CVS/linux-2611-rc3/linux-2611-rc3/include/linux/netdevice.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -u -r1.1.1.1 -r1.2
--- linux-2611-rc3/include/linux/netdevice.h    11 Feb 2005 04:51:23 -0000      
1.1.1.1
+++ linux-2611-rc3/include/linux/netdevice.h    11 Feb 2005 05:54:25 -0000      
1.2
@@ -678,6 +678,8 @@
 extern int             dev_change_flags(struct net_device *, unsigned);
 extern int             dev_change_name(struct net_device *, char *);
 extern int             dev_set_mtu(struct net_device *, int);
+extern int             dev_set_mac_address(struct net_device *,
+                                           struct sockaddr *);
 extern void            dev_queue_xmit_nit(struct sk_buff *skb, struct 
net_device *dev);
 
 extern void            dev_init(void);

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 2.6.11-rc3 1/5]: net/core: move set MAC into separate function, Jay Vosburgh <=