From: ebied...@xmission.com (Eric W. Biederman) Date: Fri, 08 May 2015 21:05:33 -0500
> Right now the situtation for allocating kernel sockets is a mess. > - sock_create_kern does not take a namespace parameter. > - kernel sockets must not reference count a network namespace and keep > it alive or else we will have a reference counting loop. > - The way we avoid the reference counting loop with sk_change_net > and sk_release_kernel are major hacks. > > This patchset addresses this mess by fixing sock_create_kern to do > everything necessary to create a kernel socket. None of the current > users of kernel sockets need the network namespace reference counted. > Either kernel sockets are network namespace aware (and using the current > hacks) or kernel sockets are limited to the initial network namespace > in which case it does not matter. > > This patchset starts by addressing tun which should be using normal > userspace sockets like macvtap. > > Then sock_create_kern is fixed to take a network namespace. > Then the in kernel status of sockets are passed through to sk_alloc. > Then sk_alloc is fixed to not reference count the network namespace > of kernel sockets. > Then the callers of sock_create_kern are fixed up to stop using hacks. > Then netlink which uses it's own flavor of sock_create_kern is fixed. > > Finally the hacks that are sk_change_net and sk_release_kernel are removed. > > When it is all done the code is easier to follow, easier to use, easier > to maintain and shorter by about 70 lines. > > Reported-by: Ying Xue <ying....@windriver.com> Looks good, applied to net-next, thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html