Index: bpf.c =================================================================== RCS file: /cvs/src/sys/net/bpf.c,v retrieving revision 1.133 diff -u -p -r1.133 bpf.c --- bpf.c 5 Feb 2016 13:17:37 -0000 1.133 +++ bpf.c 9 Feb 2016 10:25:00 -0000 @@ -1143,6 +1143,7 @@ bpf_tap(caddr_t arg, u_char *pkt, u_int size_t slen; struct timeval tv; int drop = 0, gottime = 0; + int s; if (bp == NULL) return (0); @@ -1168,10 +1169,12 @@ bpf_tap(caddr_t arg, u_char *pkt, u_int microtime(&tv); KERNEL_LOCK(); + s = splnet(); if (d->bd_bif != NULL) { bpf_catchpacket(d, pkt, pktlen, slen, bcopy, &tv); } + splx(s); KERNEL_UNLOCK(); if (d->bd_fildrop) @@ -1221,6 +1224,7 @@ _bpf_mtap(caddr_t arg, struct mbuf *m, u struct mbuf *m0; struct timeval tv; int gottime = 0; + int s; if (m == NULL) return; @@ -1258,10 +1262,12 @@ _bpf_mtap(caddr_t arg, struct mbuf *m, u microtime(&tv); KERNEL_LOCK(); + s = splnet(); if (d->bd_bif != NULL) { bpf_catchpacket(d, (u_char *)m, pktlen, slen, cpfn, &tv); } + splx(s); KERNEL_UNLOCK(); if (d->bd_fildrop)