dev.c (dc9d87581d464e7b7d38853d6904b70b6c920d99) | dev.c (3b23a32a63219f51a5298bc55a65ecee866e79d0) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * NET3 Protocol independent device support routines. 4 * 5 * Derived from the non IP parts of dev.c 1.0.19 6 * Authors: Ross Biro 7 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 8 * Mark Evans, <evansmp@uhura.aston.ac.uk> --- 8923 unchanged lines hidden (view full) --- 8932 return err; 8933 dev->addr_assign_type = NET_ADDR_SET; 8934 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); 8935 add_device_randomness(dev->dev_addr, dev->addr_len); 8936 return 0; 8937} 8938EXPORT_SYMBOL(dev_set_mac_address); 8939 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * NET3 Protocol independent device support routines. 4 * 5 * Derived from the non IP parts of dev.c 1.0.19 6 * Authors: Ross Biro 7 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 8 * Mark Evans, <evansmp@uhura.aston.ac.uk> --- 8923 unchanged lines hidden (view full) --- 8932 return err; 8933 dev->addr_assign_type = NET_ADDR_SET; 8934 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); 8935 add_device_randomness(dev->dev_addr, dev->addr_len); 8936 return 0; 8937} 8938EXPORT_SYMBOL(dev_set_mac_address); 8939 |
8940static DECLARE_RWSEM(dev_addr_sem); 8941 8942int dev_set_mac_address_user(struct net_device *dev, struct sockaddr *sa, 8943 struct netlink_ext_ack *extack) 8944{ 8945 int ret; 8946 8947 down_write(&dev_addr_sem); 8948 ret = dev_set_mac_address(dev, sa, extack); 8949 up_write(&dev_addr_sem); 8950 return ret; 8951} 8952EXPORT_SYMBOL(dev_set_mac_address_user); 8953 8954int dev_get_mac_address(struct sockaddr *sa, struct net *net, char *dev_name) 8955{ 8956 size_t size = sizeof(sa->sa_data); 8957 struct net_device *dev; 8958 int ret = 0; 8959 8960 down_read(&dev_addr_sem); 8961 rcu_read_lock(); 8962 8963 dev = dev_get_by_name_rcu(net, dev_name); 8964 if (!dev) { 8965 ret = -ENODEV; 8966 goto unlock; 8967 } 8968 if (!dev->addr_len) 8969 memset(sa->sa_data, 0, size); 8970 else 8971 memcpy(sa->sa_data, dev->dev_addr, 8972 min_t(size_t, size, dev->addr_len)); 8973 sa->sa_family = dev->type; 8974 8975unlock: 8976 rcu_read_unlock(); 8977 up_read(&dev_addr_sem); 8978 return ret; 8979} 8980EXPORT_SYMBOL(dev_get_mac_address); 8981 |
|
8940/** 8941 * dev_change_carrier - Change device carrier 8942 * @dev: device 8943 * @new_carrier: new value 8944 * 8945 * Change device carrier 8946 */ 8947int dev_change_carrier(struct net_device *dev, bool new_carrier) --- 2548 unchanged lines hidden --- | 8982/** 8983 * dev_change_carrier - Change device carrier 8984 * @dev: device 8985 * @new_carrier: new value 8986 * 8987 * Change device carrier 8988 */ 8989int dev_change_carrier(struct net_device *dev, bool new_carrier) --- 2548 unchanged lines hidden --- |