aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdelkader Boudih <freebsd@seuros.com>2026-06-06 20:08:59 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2026-06-06 20:08:59 +0000
commita620746da173d1583b342b096419297e33d0ed15 (patch)
tree765ec13d872de58bc04d48f2a8968ca6b7105d6c
parent390ae06d4f524a6f32383cbc1bcbdecdb3738bc3 (diff)
fix(fwe): add missing net epoch around ether_input
Wrap the if_input() call in fwe_as_input() with NET_EPOCH_ENTER/EXIT. The network stack requires epoch protection when delivering packets via if_input, and fwe was missing it. Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D57459
-rw-r--r--sys/dev/firewire/if_fwe.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/firewire/if_fwe.c b/sys/dev/firewire/if_fwe.c
index 4f8d0087e9ab..5d7299b4acf8 100644
--- a/sys/dev/firewire/if_fwe.c
+++ b/sys/dev/firewire/if_fwe.c
@@ -548,6 +548,7 @@ fwe_as_input(struct fw_xferq *xferq)
struct fwe_softc *fwe;
struct fw_bulkxfer *sxfer;
struct fw_pkt *fp;
+ struct epoch_tracker et;
#if 0
u_char *c;
#endif
@@ -599,7 +600,9 @@ fwe_as_input(struct fw_xferq *xferq)
c[20], c[21], c[22], c[23]
);
#endif
+ NET_EPOCH_ENTER(et);
if_input(ifp, m);
+ NET_EPOCH_EXIT(et);
if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
}
if (STAILQ_FIRST(&xferq->stfree) != NULL)