aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/netdump
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2019-04-20 16:07:29 +0000
committerConrad Meyer <cem@FreeBSD.org>2019-04-20 16:07:29 +0000
commit60ade167fd5d4b09ab2c9ed4e9bf60c484fa4edc (patch)
treedf6084d25adc2db72f00acbca3c3120c9bc3f5e9 /sys/netinet/netdump
parentff9be73ee339da0a737b4933685b0de2e2dc2d47 (diff)
downloadsrc-60ade167fd5d4b09ab2c9ed4e9bf60c484fa4edc.tar.gz
src-60ade167fd5d4b09ab2c9ed4e9bf60c484fa4edc.zip
netdump: Fix 11 compatibility DIOCSKERNELDUMP ioctl
The logic was present for the 11 version of the DIOCSKERNELDUMP ioctl, but had not been updated for the 12 ABI. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D19980
Notes
Notes: svn path=/head/; revision=346448
Diffstat (limited to 'sys/netinet/netdump')
-rw-r--r--sys/netinet/netdump/netdump_client.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/netinet/netdump/netdump_client.c b/sys/netinet/netdump/netdump_client.c
index 007792c0d0f0..5ed2b12e6697 100644
--- a/sys/netinet/netdump/netdump_client.c
+++ b/sys/netinet/netdump/netdump_client.c
@@ -1144,13 +1144,25 @@ netdump_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr,
error = 0;
switch (cmd) {
- case DIOCSKERNELDUMP:
+#ifdef COMPAT_FREEBSD11
+ case DIOCSKERNELDUMP_FREEBSD11:
u = *(u_int *)addr;
if (u != 0) {
error = ENXIO;
break;
}
-
+ if (nd_enabled) {
+ nd_enabled = 0;
+ netdump_mbuf_drain();
+ }
+ break;
+#endif
+ case DIOCSKERNELDUMP:
+ kda = (void *)addr;
+ if (kda->kda_enable != 0) {
+ error = ENXIO;
+ break;
+ }
if (nd_enabled) {
nd_enabled = 0;
netdump_mbuf_drain();