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

Reply via email to