aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/netmap/netmap_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/netmap/netmap_generic.c')
-rw-r--r--sys/dev/netmap/netmap_generic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/netmap/netmap_generic.c b/sys/dev/netmap/netmap_generic.c
index aea1b61096260..30f83a920825d 100644
--- a/sys/dev/netmap/netmap_generic.c
+++ b/sys/dev/netmap/netmap_generic.c
@@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h> /* sockaddrs */
#include <sys/selinfo.h>
#include <net/if.h>
+#include <net/if_types.h>
#include <net/if_var.h>
#include <machine/bus.h> /* bus_dmamap_* in netmap_kern.h */
@@ -1198,6 +1199,13 @@ generic_netmap_attach(struct ifnet *ifp)
int retval;
u_int num_tx_desc, num_rx_desc;
+#ifdef __FreeBSD__
+ if (ifp->if_type == IFT_LOOP) {
+ D("if_loop is not supported by %s", __func__);
+ return EINVAL;
+ }
+#endif
+
num_tx_desc = num_rx_desc = netmap_generic_ringsize; /* starting point */
nm_os_generic_find_num_desc(ifp, &num_tx_desc, &num_rx_desc); /* ignore errors */