From: Gleb Smirnoff <gleb...@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

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to