Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/freescale/fec_main.c drivers/net/ethernet/renesas/sh_eth.c net/ipv4/gre.c The GRE conflict is between a bug fix (kfree_skb --> kfree_skb_list) and the splitting of the gre.c code into seperate files. The FEC conflict was two sets of changes adding ethtool support code in an "!CONFIG_M5272" CPP protected block. Finally the sh_eth.c conflict was between one commit add bits set in the .eesr_err_check mask whilst another commit removed the .tx_error_check member and assignments. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -799,6 +799,40 @@ struct net_device *dev_get_by_index(struct net *net, int ifindex)
|
||||
}
|
||||
EXPORT_SYMBOL(dev_get_by_index);
|
||||
|
||||
/**
|
||||
* netdev_get_name - get a netdevice name, knowing its ifindex.
|
||||
* @net: network namespace
|
||||
* @name: a pointer to the buffer where the name will be stored.
|
||||
* @ifindex: the ifindex of the interface to get the name from.
|
||||
*
|
||||
* The use of raw_seqcount_begin() and cond_resched() before
|
||||
* retrying is required as we want to give the writers a chance
|
||||
* to complete when CONFIG_PREEMPT is not set.
|
||||
*/
|
||||
int netdev_get_name(struct net *net, char *name, int ifindex)
|
||||
{
|
||||
struct net_device *dev;
|
||||
unsigned int seq;
|
||||
|
||||
retry:
|
||||
seq = raw_seqcount_begin(&devnet_rename_seq);
|
||||
rcu_read_lock();
|
||||
dev = dev_get_by_index_rcu(net, ifindex);
|
||||
if (!dev) {
|
||||
rcu_read_unlock();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
strcpy(name, dev->name);
|
||||
rcu_read_unlock();
|
||||
if (read_seqcount_retry(&devnet_rename_seq, seq)) {
|
||||
cond_resched();
|
||||
goto retry;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dev_getbyhwaddr_rcu - find a device by its hardware address
|
||||
* @net: the applicable net namespace
|
||||
|
Reference in New Issue
Block a user