HomeFreeBSD

Call drbr_advance() before leaving TX routine

Description

Call drbr_advance() before leaving TX routine

If drbr_advance() is not called before doing cleanup and packet is
already enqueued for sending (tx_info is holding pointer to mbuf), then
mbuf is cleaned both in drbr_flush() and in cleanup routine, when all
mbufs hold by tx_buffer_info are being released.

This causes panic, because mbuf is released twice.

Submitted by: Michal Krawczyk <mk@semihalf.com>
Obtained from: Semihalf
Sponsored by: Amazon.com Inc.

Details

Provenance
zbbAuthored on
Parents
rS320628: Unmask all IO irqs after driver state is set as running
Branches
Unknown
Tags
Unknown