On Tue, Dec 20, 2016 at 07:33:35PM +0100, Martin Pieuchot wrote: > On 20/12/16(Tue) 18:47, Mike Belopuhov wrote: > > On Tue, Dec 20, 2016 at 17:06 +0100, Martin Pieuchot wrote: > > > > > > You'll need to release the lock before calling ifc->ifc_create in > > > if_clone_create() and do the same dance in if_clone_destroy(). > > > > > > > Indeed. > > > > > But I think that's the way to go. If you can create/destroy > > > pseudo-interface without panicing we're good. > > > > > > > Seems to work here, but it feels wrong. > > I don't think we can do much better, let's go with that we'll refine > later.
And another one. splassert: ip_output: want 1 have 0 Starting stack trace... ip_output(1,0,d09e32c1,d05129ab,d1001000) at ip_output+0x6d ip_output(d9766c00,d9804200,0,0,f5770c10) at ip_output+0x6d igmp_sendpkt(d3e9d800,d3e24640,17,20000e0,d3704560) at igmp_sendpkt+0x119 igmp_leavegroup(d3e24640,d09e29de,d0bbe520,d03cdcb6,0) at igmp_leavegroup+0x65 in_delmulti(d3e24640,d3704560,c0186943,f5770e74,f5770e79) at in_delmulti+0x6a vxlan_multicast_cleanup(d3e8f000,f5770e74,770d4c,d046b999,d3e8f000) at vxlan_multicast_cleanup+0xbd vxlan_clone_destroy(d3e8f000,0,c0186943,d055d8cd,d961d7a0) at vxlan_clone_destroy+0x2a if_clone_destroy(f5770e74,0,d3e8f000,1,d3e8f000) at if_clone_destroy+0x7b ifioctl(d8e6beb0,80206979,f5770e74,d96ffcc0,d96f113c) at ifioctl+0x1ed soo_ioctl(d961ca08,80206979,f5770e74,d96ffcc0,d97b1f64) at soo_ioctl+0x21c sys_ioctl(d96ffcc0,f5770f5c,f5770f7c,0,f5770fa8) at sys_ioctl+0x19f syscall() at syscall+0x250 This time vxlan_multicast_cleanup() expects that it holds the lock. vxlan_clone_destroy() does an splnet(), but ip_output() expects to have the netlock also. bluhm