mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-02 08:42:48 +00:00
Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that
supposedly may call into ether_input() without network epoch. They all need to be reviewed before 13.0-RELEASE. Some may need be fixed. The flag is not planned to be used in the kernel for a long time.
This commit is contained in:
parent
af614b8e04
commit
0921628ddc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=357010
@ -1381,7 +1381,8 @@ atse_attach(device_t dev)
|
||||
}
|
||||
ifp->if_softc = sc;
|
||||
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH;
|
||||
ifp->if_ioctl = atse_ioctl;
|
||||
ifp->if_transmit = atse_transmit;
|
||||
ifp->if_qflush = atse_qflush;
|
||||
|
@ -613,7 +613,7 @@ vtbe_attach(device_t dev)
|
||||
ifp->if_softc = sc;
|
||||
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
|
||||
ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX |
|
||||
IFF_MULTICAST | IFF_PROMISC);
|
||||
IFF_MULTICAST | IFF_PROMISC | IFF_NEEDSEPOCH);
|
||||
ifp->if_capabilities = IFCAP_VLAN_MTU;
|
||||
ifp->if_capenable = ifp->if_capabilities;
|
||||
ifp->if_start = vtbe_txstart;
|
||||
|
@ -688,7 +688,7 @@ dtsec_attach(device_t dev)
|
||||
|
||||
ifp->if_softc = sc;
|
||||
ifp->if_mtu = ETHERMTU; /* TODO: Configure */
|
||||
ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST;
|
||||
ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_NEEDSEPOCH;
|
||||
ifp->if_init = dtsec_if_init;
|
||||
ifp->if_start = dtsec_if_start;
|
||||
ifp->if_ioctl = dtsec_if_ioctl;
|
||||
|
@ -2362,7 +2362,8 @@ hn_attach(device_t dev)
|
||||
*/
|
||||
|
||||
ifp->if_baudrate = IF_Gbps(10);
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH;
|
||||
ifp->if_ioctl = hn_ioctl;
|
||||
ifp->if_init = hn_init;
|
||||
#ifdef HN_IFSTART_SUPPORT
|
||||
|
@ -967,7 +967,8 @@ ndis_ifattach(struct ndis_softc *sc)
|
||||
|
||||
if_initname(ifp, device_get_name(sc->ndis_dev),
|
||||
device_get_unit(sc->ndis_dev));
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH;
|
||||
ifp->if_ioctl = ndis_ifioctl;
|
||||
ifp->if_start = ndis_ifstart;
|
||||
ifp->if_init = ndis_init;
|
||||
|
@ -172,7 +172,8 @@ ntb_net_attach(device_t dev)
|
||||
|
||||
if_setinitfn(ifp, ntb_net_init);
|
||||
if_setsoftc(ifp, sc);
|
||||
if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
|
||||
if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH);
|
||||
if_setioctlfn(ifp, ntb_ioctl);
|
||||
if_settransmitfn(ifp, ntb_transmit);
|
||||
if_setqflushfn(ifp, ntb_qflush);
|
||||
|
@ -243,7 +243,8 @@ sbni_attach(struct sbni_softc *sc, int unit, struct sbni_flags flags)
|
||||
ifp->if_baudrate =
|
||||
(csr0 & 0x01 ? 500000 : 2000000) / (1 << flags.rate);
|
||||
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH;
|
||||
|
||||
mtx_init(&sc->lock, ifp->if_xname, MTX_NETWORK_LOCK, MTX_DEF);
|
||||
callout_init_mtx(&sc->wch, &sc->lock, 0);
|
||||
|
@ -780,7 +780,7 @@ xnb_connect_comms(struct xnb_softc *xnb)
|
||||
xnb->evtchn,
|
||||
/*filter*/NULL,
|
||||
xnb_intr, /*arg*/xnb,
|
||||
INTR_TYPE_BIO | INTR_MPSAFE,
|
||||
INTR_TYPE_NET | INTR_MPSAFE,
|
||||
&xnb->xen_intr_handle);
|
||||
if (error != 0) {
|
||||
(void)xnb_disconnect(xnb);
|
||||
|
@ -1052,7 +1052,8 @@ nlm_xlpge_ifinit(struct nlm_xlpge_softc *sc)
|
||||
}
|
||||
ifp->if_softc = sc;
|
||||
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
|
||||
IFF_NEEDSEPOCH;
|
||||
sc->if_flags = ifp->if_flags;
|
||||
/*ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_VLAN_HWTAGGING;*/
|
||||
ifp->if_capabilities = 0;
|
||||
|
@ -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 */
|
||||
/* 0x20 was IFF_SMART */
|
||||
#define IFF_NEEDSEPOCH 0x20 /* (i) calls if_input w/o 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 */
|
||||
|
Loading…
Reference in New Issue
Block a user