Although most of the NIC drivers are epoch ready,
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
This commit is contained in:
parent
0dfcaa0211
commit
f3303cf1d5
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue