Module Name: src Committed By: bouyer Date: Thu May 25 18:21:01 UTC 2017
Modified Files: src/sys/netcan [bouyer-socketcan]: can.c can_var.h if_canloop.c Log Message: Allow can_bpf_mtap() to call bpf_mtap_softint() when needed. To generate a diff of this commit: cvs rdiff -u -r1.1.2.14 -r1.1.2.15 src/sys/netcan/can.c cvs rdiff -u -r1.1.2.8 -r1.1.2.9 src/sys/netcan/can_var.h cvs rdiff -u -r1.1.2.7 -r1.1.2.8 src/sys/netcan/if_canloop.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netcan/can.c diff -u src/sys/netcan/can.c:1.1.2.14 src/sys/netcan/can.c:1.1.2.15 --- src/sys/netcan/can.c:1.1.2.14 Mon May 22 16:11:23 2017 +++ src/sys/netcan/can.c Thu May 25 18:21:00 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: can.c,v 1.1.2.14 2017/05/22 16:11:23 bouyer Exp $ */ +/* $NetBSD: can.c,v 1.1.2.15 2017/05/25 18:21:00 bouyer Exp $ */ /*- * Copyright (c) 2003, 2017 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: can.c,v 1.1.2.14 2017/05/22 16:11:23 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: can.c,v 1.1.2.15 2017/05/25 18:21:00 bouyer Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -416,7 +416,7 @@ canintr(void) } void -can_bpf_mtap(struct ifnet *ifp, struct mbuf *m) +can_bpf_mtap(struct ifnet *ifp, struct mbuf *m, bool do_softint) { /* bpf wants the CAN id in network byte order */ struct can_frame *cf; @@ -425,7 +425,10 @@ can_bpf_mtap(struct ifnet *ifp, struct m cf = mtod(m, struct can_frame *); oid = cf->can_id; cf->can_id = htonl(oid); - bpf_mtap(ifp, m); + if (do_softint) + bpf_mtap_softint(ifp, m); + else + bpf_mtap(ifp, m); cf->can_id = oid; } Index: src/sys/netcan/can_var.h diff -u src/sys/netcan/can_var.h:1.1.2.8 src/sys/netcan/can_var.h:1.1.2.9 --- src/sys/netcan/can_var.h:1.1.2.8 Mon May 22 16:11:23 2017 +++ src/sys/netcan/can_var.h Thu May 25 18:21:00 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: can_var.h,v 1.1.2.8 2017/05/22 16:11:23 bouyer Exp $ */ +/* $NetBSD: can_var.h,v 1.1.2.9 2017/05/25 18:21:00 bouyer Exp $ */ /*- * Copyright (c) 2003, 2017 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ void *can_ctlinput(int, struct sockaddr int can_ctloutput(int, struct socket *, struct sockopt *); void can_init(void); void canintr(void); -void can_bpf_mtap(struct ifnet *, struct mbuf *); +void can_bpf_mtap(struct ifnet *, struct mbuf *, bool); #endif Index: src/sys/netcan/if_canloop.c diff -u src/sys/netcan/if_canloop.c:1.1.2.7 src/sys/netcan/if_canloop.c:1.1.2.8 --- src/sys/netcan/if_canloop.c:1.1.2.7 Mon May 22 16:11:23 2017 +++ src/sys/netcan/if_canloop.c Thu May 25 18:21:00 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_canloop.c,v 1.1.2.7 2017/05/22 16:11:23 bouyer Exp $ */ +/* $NetBSD: if_canloop.c,v 1.1.2.8 2017/05/25 18:21:00 bouyer Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_canloop.c,v 1.1.2.7 2017/05/22 16:11:23 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_canloop.c,v 1.1.2.8 2017/05/25 18:21:00 bouyer Exp $"); #ifdef _KERNEL_OPT #include "opt_can.h" @@ -162,7 +162,7 @@ canloop_ifstart(struct ifnet *ifp) panic("canloop_output: no header mbuf"); m_set_rcvif(m, ifp); if (ifp->if_flags & IFF_LOOPBACK) - can_bpf_mtap(ifp, m); + can_bpf_mtap(ifp, m, 0); pktlen = m->m_pkthdr.len; ifp->if_opackets++;