diff options
author | Ross Lagerwall <ross.lagerwall@citrix.com> | 2018-06-21 09:00:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-06-21 18:54:54 -0400 |
commit | cb257783c2927b73614b20f915a91ff78aa6f3e8 (patch) | |
tree | d6dbad27461e6d9e9ea045580fcacf4df4488df8 | |
parent | 44a5cd436ec067c9a62988aca3331ac6eee5268d (diff) |
xen-netfront: Fix mismatched rtnl_unlock
Fixes: f599c64fdf7d ("xen-netfront: Fix race between device setup and open")
Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/xen-netfront.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 922ce0abf5cf..ee4cb6cfde1e 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c | |||
@@ -1810,7 +1810,7 @@ static int talk_to_netback(struct xenbus_device *dev, | |||
1810 | err = xen_net_read_mac(dev, info->netdev->dev_addr); | 1810 | err = xen_net_read_mac(dev, info->netdev->dev_addr); |
1811 | if (err) { | 1811 | if (err) { |
1812 | xenbus_dev_fatal(dev, err, "parsing %s/mac", dev->nodename); | 1812 | xenbus_dev_fatal(dev, err, "parsing %s/mac", dev->nodename); |
1813 | goto out; | 1813 | goto out_unlocked; |
1814 | } | 1814 | } |
1815 | 1815 | ||
1816 | rtnl_lock(); | 1816 | rtnl_lock(); |
@@ -1925,6 +1925,7 @@ abort_transaction_no_dev_fatal: | |||
1925 | xennet_destroy_queues(info); | 1925 | xennet_destroy_queues(info); |
1926 | out: | 1926 | out: |
1927 | rtnl_unlock(); | 1927 | rtnl_unlock(); |
1928 | out_unlocked: | ||
1928 | device_unregister(&dev->dev); | 1929 | device_unregister(&dev->dev); |
1929 | return err; | 1930 | return err; |
1930 | } | 1931 | } |