diff options
author | Stefan Hajnoczi <stefanha@gmail.com> | 2013-01-20 20:17:22 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-01-21 14:07:44 -0500 |
commit | fa0879e37b59e8e3f130a30a9e6fa515717c5bdd (patch) | |
tree | 04a7a3b6464b582a86d8193692a1588bf7049e53 /include/linux/etherdevice.h | |
parent | 40cbfc37075a2ae2ed6c769cb0e9193819511f0a (diff) |
net: split eth_mac_addr for better error handling
When we set mac address, software mac address in system and hardware mac
address all need to be updated. Current eth_mac_addr() doesn't allow
callers to implement error handling nicely.
This patch split eth_mac_addr() to prepare part and real commit part,
then we can prepare first, and try to change hardware address, then do
the real commit if hardware address is set successfully.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/etherdevice.h')
-rw-r--r-- | include/linux/etherdevice.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 1a43e1b4f7ad..c623861964e4 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h | |||
@@ -40,6 +40,8 @@ extern int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh, | |||
40 | extern void eth_header_cache_update(struct hh_cache *hh, | 40 | extern void eth_header_cache_update(struct hh_cache *hh, |
41 | const struct net_device *dev, | 41 | const struct net_device *dev, |
42 | const unsigned char *haddr); | 42 | const unsigned char *haddr); |
43 | extern int eth_prepare_mac_addr_change(struct net_device *dev, void *p); | ||
44 | extern void eth_commit_mac_addr_change(struct net_device *dev, void *p); | ||
43 | extern int eth_mac_addr(struct net_device *dev, void *p); | 45 | extern int eth_mac_addr(struct net_device *dev, void *p); |
44 | extern int eth_change_mtu(struct net_device *dev, int new_mtu); | 46 | extern int eth_change_mtu(struct net_device *dev, int new_mtu); |
45 | extern int eth_validate_addr(struct net_device *dev); | 47 | extern int eth_validate_addr(struct net_device *dev); |