Subject: [PATCH 0/7] IPv4/IPv6 unregistration deadlock fixes

From: [email-masked] (Eric W. Biederman)
Date: Wed, 13 May 2009 19:53:40 -0700

A while ago it was noticed that unregistering network devices could cause
deadlocks if virtual files that take the rtnl_lock were accessed at the
wrong time.

After looking at the different possibilities the only way to solve it
cleanly without some kind of busy loop appears to be reducing the scope
of the rtnl lock.

I have not tackled the hard fix yet but I have tested our current work
around and it does not succeed in restarting the system call and
instead leaks -ERESTARNOSYS to userspace, because we do not have a
signal pending.

Further the current work around misses several interesting places
in the network stack where the deadlock can occur.

I have addressed the problems by making a common helper function
and patching all of the places I could find that had this problem.

Eric