summaryrefslogtreecommitdiffstats
path: root/sys/net/bpf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/bpf.c')
-rw-r--r--sys/net/bpf.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
index 1755ec7..16245c9 100644
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -1454,6 +1454,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
/* FALLSTHROUGH */
default:
+ CURVNET_RESTORE();
return (EINVAL);
}
@@ -1461,6 +1462,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
if (d->bd_sbuf != NULL || d->bd_hbuf != NULL ||
d->bd_fbuf != NULL || d->bd_bif != NULL) {
BPFD_UNLOCK(d);
+ CURVNET_RESTORE();
return (EBUSY);
}
d->bd_bufmode = *(u_int *)addr;
@@ -1468,13 +1470,16 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
break;
case BIOCGETZMAX:
- return (bpf_ioctl_getzmax(td, d, (size_t *)addr));
+ error = bpf_ioctl_getzmax(td, d, (size_t *)addr);
+ break;
case BIOCSETZBUF:
- return (bpf_ioctl_setzbuf(td, d, (struct bpf_zbuf *)addr));
+ error = bpf_ioctl_setzbuf(td, d, (struct bpf_zbuf *)addr);
+ break;
case BIOCROTZBUF:
- return (bpf_ioctl_rotzbuf(td, d, (struct bpf_zbuf *)addr));
+ error = bpf_ioctl_rotzbuf(td, d, (struct bpf_zbuf *)addr);
+ break;
}
CURVNET_RESTORE();
return (error);
OpenPOWER on IntegriCloud