vnic: apply BPF tap before passing packet to hardware
Previously we passed tx packets to hardware via nicvf_tx_mbuf_locked and then to the BPF tap, with a possibly invalid mbuf which would result in a panic. PR: 223600 Discussed with: bz MFC after: 1 week Sponsored by: The FreeBSD Foundation, Packet.net (hardware)
This commit is contained in:
parent
6555da9c5b
commit
2dc620ac83
@ -992,6 +992,9 @@ nicvf_xmit_locked(struct snd_queue *sq)
|
||||
err = 0;
|
||||
|
||||
while ((next = drbr_peek(ifp, sq->br)) != NULL) {
|
||||
/* Send a copy of the frame to the BPF listener */
|
||||
ETHER_BPF_MTAP(ifp, next);
|
||||
|
||||
err = nicvf_tx_mbuf_locked(sq, &next);
|
||||
if (err != 0) {
|
||||
if (next == NULL)
|
||||
@ -1002,8 +1005,6 @@ nicvf_xmit_locked(struct snd_queue *sq)
|
||||
break;
|
||||
}
|
||||
drbr_advance(ifp, sq->br);
|
||||
/* Send a copy of the frame to the BPF listener */
|
||||
ETHER_BPF_MTAP(ifp, next);
|
||||
}
|
||||
return (err);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user