[TUN]: Fix RTNL-locking in tun/tap driver
Current tun/tap driver sets also net device's hw address when asked to change character device's hw address. This is a good idea, but it misses RTLN-locking, resulting following error message in 2.6.25-rc3's inetdev_event() function: RTNL: assertion failed at net/ipv4/devinet.c (1050) Attached patch fixes this problem. Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
459eea7410
commit
401023710d
|
@ -663,7 +663,11 @@ static int tun_chr_ioctl(struct inode *inode, struct file *file,
|
|||
case SIOCSIFHWADDR:
|
||||
{
|
||||
/* try to set the actual net device's hw address */
|
||||
int ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr);
|
||||
int ret;
|
||||
|
||||
rtnl_lock();
|
||||
ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr);
|
||||
rtnl_unlock();
|
||||
|
||||
if (ret == 0) {
|
||||
/** Set the character device's hardware address. This is used when
|
||||
|
|
Loading…
Reference in New Issue