Re: Panic / wedge from bridging tap and vlan

[email protected] (Michael van Elst)
Newsgroups gmane.os.netbsd.devel.kernel
Organization Serpens User Group
Message-ID <[email protected]>
[email protected] ("Jean-Yves Migeon (NetBSD)") writes:

>[373.4828972] bridge_input() at netbsd:bridge_input+0x9f1

That's acquiring the global locks (kernel + softnet) in vlan(4):

                        if (_ifp != NULL) {
                                m->m_flags &= ~M_PROMISC;
                                ACQUIRE_GLOBAL_LOCKS();
                                ether_input(_ifp, m);
                                RELEASE_GLOBAL_LOCKS();

>[373.4928971] vlan_input() at netbsd:vlan_input+0x143
>[373.5828969] ether_input() at netbsd:ether_input+0x4c2

>[373.5828969] bridge_input() at netbsd:bridge_input+0xa10

That's the same location calling into ether_input (after
having acquired the locks).

The locking loop happens, because vlan(4) injects the
(vlan-header stripped) packet back into the interface
where it again is intercepted by bridge_input.

I don't know why bridge(4) needs to take a lock here by itself.
Ideally the locks would be taken once for the whole input
processing.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.