On 06/11/2018 03:29 PM, Ben Hutchings wrote:
On Mon, 2018-05-28 at 12:00 +0200, Greg Kroah-Hartman wrote:
4.4-stable review patch. If anyone has any objections, please let me know.
From: Ross Lagerwall ross.lagerwall@citrix.com
[ Upstream commit f599c64fdf7d9c108e8717fb04bc41c680120da4 ]
[...]
--- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c
[...]
@@ -1839,6 +1824,7 @@ static int talk_to_netback(struct xenbus goto out;
This "goto out" is outside the locked section...
}
- rtnl_lock();
if (info->queues) xennet_destroy_queues(info); @@ -1849,6 +1835,7 @@ static int talk_to_netback(struct xenbus info->queues = NULL; goto out; }
- rtnl_unlock();
/* Create shared ring, alloc event channel -- for each queue */ for (i = 0; i < num_queues; ++i) { @@ -1945,8 +1932,10 @@ abort_transaction_no_dev_fatal: xenbus_transaction_end(xbt, 1); destroy_ring: xennet_disconnect_backend(info);
- rtnl_lock();
xennet_destroy_queues(info); out:
- rtnl_unlock();
...so this will be an unmatched unlock.
You need to add another label below the rtnl_unlock().
Thanks for spotting this. I've sent patches to the list to fix this and another issue with the original patch.
Regards,