Date: Wed, 01 Jul 2015 19:11:51 +0300 From: Nikos Vassiliadis <nvass@gmx.com> To: bugzilla-noreply@freebsd.org, freebsd-net@FreeBSD.org Cc: Kristof Provost <kp@FreeBSD.org> Subject: Re: [Bug 200210] adding vtnet to bridge results to kernel panic Message-ID: <55941147.7040601@gmx.com> In-Reply-To: <bug-200210-2472-8d8NU2b3tN@https.bugs.freebsd.org/bugzilla/> References: <bug-200210-2472@https.bugs.freebsd.org/bugzilla/> <bug-200210-2472-8d8NU2b3tN@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Kristof, Thanks for fixing this! Could you MFC the fix? On 06/13/15 22:39, bugzilla-noreply@freebsd.org wrote: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200210 > > --- Comment #1 from commit-hook@freebsd.org --- > A commit references this bug: > > Author: kp > Date: Sat Jun 13 19:39:22 UTC 2015 > New revision: 284348 > URL: https://svnweb.freebsd.org/changeset/base/284348 > > Log: > Fix panic when adding vtnet interfaces to a bridge > > vtnet interfaces are always in promiscuous mode (at least if the > VIRTIO_NET_F_CTRL_RX feature is not negotiated with the host). if_promisc() > on > a vtnet interface returned ENOTSUP although it has IFF_PROMISC set. This > confused the bridge code. Instead we now accept all enable/disable > promiscuous > commands (and always keep IFF_PROMISC set). > > There are also two issues with the if_bridge error handling. > > If if_promisc() fails it uses bridge_delete_member() to clean up. This tries > to > disable promiscuous mode on the interface. That runs into an assert, because > promiscuous mode was never set in the first place. (That's the panic reported > in > PR 200210.) > We can only unset promiscuous mode if the interface actually is promiscuous. > This goes against the reference counting done by if_promisc(), but only the > first/last if_promic() calls can actually fail, so this is safe. > > A second issue is a double free of bif. It's already freed by > bridge_delete_member(). > > PR: 200210 > Differential Revision: https://reviews.freebsd.org/D2804 > Reviewed by: philip (mentor) > > Changes: > head/sys/dev/virtio/network/if_vtnet.c > head/sys/net/if_bridge.c >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55941147.7040601>