svn commit: r357010 - in head/sys: dev/altera/atse dev/beri/virtio/network dev/dpaa dev/hyperv/netvsc dev/if_ndis dev/ntb/if_ntb dev/sbni dev/xen/netback mips/nlm/dev/net net

Gleb Smirnoff glebius at FreeBSD.org
Thu Jan 23 01:41:12 UTC 2020


Author: glebius
Date: Thu Jan 23 01:41:09 2020
New Revision: 357010
URL: https://svnweb.freebsd.org/changeset/base/357010

Log:
  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.

Modified:
  head/sys/dev/altera/atse/if_atse.c
  head/sys/dev/beri/virtio/network/if_vtbe.c
  head/sys/dev/dpaa/if_dtsec.c
  head/sys/dev/hyperv/netvsc/if_hn.c
  head/sys/dev/if_ndis/if_ndis.c
  head/sys/dev/ntb/if_ntb/if_ntb.c
  head/sys/dev/sbni/if_sbni.c
  head/sys/dev/xen/netback/netback.c
  head/sys/mips/nlm/dev/net/xlpge.c
  head/sys/net/if.h

Modified: head/sys/dev/altera/atse/if_atse.c
==============================================================================
--- head/sys/dev/altera/atse/if_atse.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/altera/atse/if_atse.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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;

Modified: head/sys/dev/beri/virtio/network/if_vtbe.c
==============================================================================
--- head/sys/dev/beri/virtio/network/if_vtbe.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/beri/virtio/network/if_vtbe.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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;

Modified: head/sys/dev/dpaa/if_dtsec.c
==============================================================================
--- head/sys/dev/dpaa/if_dtsec.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/dpaa/if_dtsec.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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;

Modified: head/sys/dev/hyperv/netvsc/if_hn.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/if_hn.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/hyperv/netvsc/if_hn.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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

Modified: head/sys/dev/if_ndis/if_ndis.c
==============================================================================
--- head/sys/dev/if_ndis/if_ndis.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/if_ndis/if_ndis.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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;

Modified: head/sys/dev/ntb/if_ntb/if_ntb.c
==============================================================================
--- head/sys/dev/ntb/if_ntb/if_ntb.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/ntb/if_ntb/if_ntb.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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);

Modified: head/sys/dev/sbni/if_sbni.c
==============================================================================
--- head/sys/dev/sbni/if_sbni.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/sbni/if_sbni.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -243,7 +243,8 @@ sbni_attach(struct sbni_softc *sc, int unit, struct sb
 	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);

Modified: head/sys/dev/xen/netback/netback.c
==============================================================================
--- head/sys/dev/xen/netback/netback.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/dev/xen/netback/netback.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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);

Modified: head/sys/mips/nlm/dev/net/xlpge.c
==============================================================================
--- head/sys/mips/nlm/dev/net/xlpge.c	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/mips/nlm/dev/net/xlpge.c	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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;

Modified: head/sys/net/if.h
==============================================================================
--- head/sys/net/if.h	Thu Jan 23 01:38:51 2020	(r357009)
+++ head/sys/net/if.h	Thu Jan 23 01:41:09 2020	(r357010)
@@ -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 */


More information about the svn-src-all mailing list