[newlib 17/65] Although most of the NIC drivers are epoch ready,
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Jul 7 11:58:24 UTC 2022
From: Gleb Smirnoff <glebius at FreeBSD.org>
due to peer pressure switch over to opt-in instead of opt-out for epoch.
Instead of IFF_NEEDSEPOCH, provide IFF_KNOWSEPOCH. If driver marks
itself with IFF_KNOWSEPOCH, then ether_input() would not enter epoch
when processing its packets.
Now this will create recursive entrance in epoch in >90% network
drivers, but will guarantee safeness of the transition.
Mark several tested drivers as IFF_KNOWSEPOCH.
Reviewed by: hselasky, jeff, bz, gallatin
Differential Revision: https://reviews.freebsd.org/D23674
---
newlib/libc/sys/rtems/include/net/if.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/newlib/libc/sys/rtems/include/net/if.h b/newlib/libc/sys/rtems/include/net/if.h
index 2c1ecdf32..78b1654dc 100644
--- a/newlib/libc/sys/rtems/include/net/if.h
+++ b/newlib/libc/sys/rtems/include/net/if.h
@@ -144,7 +144,7 @@ struct if_data {
#define IFF_DEBUG 0x4 /* (n) turn on debugging */
#define IFF_LOOPBACK 0x8 /* (i) is a loopback net */
#define IFF_POINTOPOINT 0x10 /* (i) is a point-to-point link */
-#define IFF_NEEDSEPOCH 0x20 /* (i) calls if_input w/o epoch */
+#define IFF_KNOWSEPOCH 0x20 /* (i) calls if_input in net epoch */
#define IFF_DRV_RUNNING 0x40 /* (d) resources allocated */
#define IFF_NOARP 0x80 /* (n) no address resolution protocol */
#define IFF_PROMISC 0x100 /* (n) receive all packets */
@@ -178,7 +178,7 @@ struct if_data {
#define IFF_CANTCHANGE \
(IFF_BROADCAST|IFF_POINTOPOINT|IFF_DRV_RUNNING|IFF_DRV_OACTIVE|\
IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_PROMISC|\
- IFF_DYING|IFF_CANTCONFIG)
+ IFF_DYING|IFF_CANTCONFIG|IFF_KNOWSEPOCH)
/*
* Values for if_link_state.
--
2.35.3
More information about the devel
mailing list