Subject: [RFC PATCH] unlock rtnl mutex in ic_open_devs while waiting

From: Maarten Lankhorst <[email-masked]>
Date: Mon, 05 Jan 2015 14:52:06 +0100

This fixes a deadlock with alx_link_check, which takes the rtnl_mutex in
a work item to check the link.

I have no idea whether alx should be fixed or ipconfig.c,
but this saves 120 seconds off my boot time. ;-)

Signed-off-by: Maarten Lankhorst <[email-masked]>
---
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 7fa18bc7e47f..c8aa15a0cdf4 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -270,7 +270,9 @@ static int __init ic_open_devs(void)
 			if (ic_is_init_dev(dev) && netif_carrier_ok(dev))
 				goto have_carrier;
 
+		rtnl_unlock();
 		msleep(1);
+		rtnl_lock();
 
 		if (time_before(jiffies, next_msg))
 			continue;