The branch main has been updated by mhorne:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0a90043e63d3d3fe0b39a05794af5ea0e0e05938

commit 0a90043e63d3d3fe0b39a05794af5ea0e0e05938
Author:     Mitchell Horne <[email protected]>
AuthorDate: 2022-04-14 22:44:39 +0000
Commit:     Mitchell Horne <[email protected]>
CommitDate: 2022-04-15 15:06:05 +0000

    Remove 12.x ABI compat for kernel dump ioctls
    
    This code was marked gone_in(14), so it can now be removed.
    
    The only consumer of this interface is dumpon(8). We do not maintain
    strict backwards compatibility for this utility because a) it
    can't/shouldn't be used from a jail or chroot and b) it is highly
    specific interface unique to FreeBSD. The host's (presumably more
    up-to-date) copy of dumpon(8) should be used to configure kernel dump
    devices.
    
    Reviewed by:    markj, emaste
    MFC after:      never
    Differential Revision:  https://reviews.freebsd.org/D34914
---
 sys/dev/null/null.c                  |  6 ---
 sys/geom/geom_dev.c                  | 21 ---------
 sys/netinet/netdump/netdump.h        | 11 -----
 sys/netinet/netdump/netdump_client.c | 86 ++----------------------------------
 sys/sys/disk.h                       | 13 ------
 5 files changed, 3 insertions(+), 134 deletions(-)

diff --git a/sys/dev/null/null.c b/sys/dev/null/null.c
index 54b648bbf086..9099f274e222 100644
--- a/sys/dev/null/null.c
+++ b/sys/dev/null/null.c
@@ -109,12 +109,6 @@ null_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t 
data __unused,
 
        error = 0;
        switch (cmd) {
-#ifdef COMPAT_FREEBSD12
-       case DIOCSKERNELDUMP_FREEBSD12:
-               if (cmd == DIOCSKERNELDUMP_FREEBSD12)
-                       gone_in(14, "FreeBSD 12.x ABI compat");
-               /* FALLTHROUGH */
-#endif
        case DIOCSKERNELDUMP:
                bzero(&kda, sizeof(kda));
                kda.kda_index = KDA_REMOVE_ALL;
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c
index 574cfa9f0215..7bcab1645c4e 100644
--- a/sys/geom/geom_dev.c
+++ b/sys/geom/geom_dev.c
@@ -531,9 +531,6 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int 
fflag, struct thread
        struct g_provider *pp;
        off_t offset, length, chunk, odd;
        int i, error;
-#ifdef COMPAT_FREEBSD12
-       struct diocskerneldump_arg kda_copy;
-#endif
 
        cp = dev->si_drv2;
        pp = cp->provider;
@@ -570,24 +567,6 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, 
int fflag, struct thread
                if (error == 0 && *(u_int *)data == 0)
                        error = ENOENT;
                break;
-#ifdef COMPAT_FREEBSD12
-       case DIOCSKERNELDUMP_FREEBSD12:
-           {
-               struct diocskerneldump_arg_freebsd12 *kda12;
-
-               gone_in(14, "FreeBSD 12.x ABI compat");
-
-               kda12 = (void *)data;
-               memcpy(&kda_copy, kda12, sizeof(kda_copy));
-               kda_copy.kda_index = (kda12->kda12_enable ?
-                   0 : KDA_REMOVE_ALL);
-
-               explicit_bzero(kda12, sizeof(*kda12));
-               /* Kludge to pass kda_copy to kda in fallthrough. */
-               data = (void *)&kda_copy;
-           }
-           /* FALLTHROUGH */
-#endif
        case DIOCSKERNELDUMP:
            {
                struct diocskerneldump_arg *kda;
diff --git a/sys/netinet/netdump/netdump.h b/sys/netinet/netdump/netdump.h
index aeb44c0b0d21..9ff04be798af 100644
--- a/sys/netinet/netdump/netdump.h
+++ b/sys/netinet/netdump/netdump.h
@@ -57,17 +57,6 @@
 #define        na_seqno        da_seqno
 #endif /* !_KERNEL */
 
-struct netdump_conf_freebsd12 {
-       struct diocskerneldump_arg_freebsd12 ndc12_kda;
-       char            ndc12_iface[IFNAMSIZ];
-       struct in_addr  ndc12_server;
-       struct in_addr  ndc12_client;
-       struct in_addr  ndc12_gateway;
-};
-
-#define        NETDUMPGCONF_FREEBSD12  _IOR('n', 1, struct 
netdump_conf_freebsd12)
-#define        NETDUMPSCONF_FREEBSD12  _IOW('n', 2, struct 
netdump_conf_freebsd12)
-
 #define        _PATH_NETDUMP   "/dev/netdump"
 
 #endif /* _NETINET_NETDUMP_H_ */
diff --git a/sys/netinet/netdump/netdump_client.c 
b/sys/netinet/netdump/netdump_client.c
index 5a1b10316860..b570fed139b9 100644
--- a/sys/netinet/netdump/netdump_client.c
+++ b/sys/netinet/netdump/netdump_client.c
@@ -496,62 +496,16 @@ static int
 netdump_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr,
     int flags __unused, struct thread *td)
 {
-       struct diocskerneldump_arg kda_copy, *conf;
+       struct diocskerneldump_arg *conf;
        struct dumperinfo dumper;
        uint8_t *encryptedkey;
        int error;
-#ifdef COMPAT_FREEBSD12
-       struct diocskerneldump_arg_freebsd12 *kda12;
-       struct netdump_conf_freebsd12 *conf12;
-#endif
 
        conf = NULL;
        error = 0;
        NETDUMP_WLOCK();
 
        switch (cmd) {
-#ifdef COMPAT_FREEBSD12
-               /*
-                * Used by dumpon(8) in 12.x for clearing previous
-                * configuration -- then NETDUMPSCONF_FREEBSD12 is used to
-                * actually configure netdump.
-                */
-       case DIOCSKERNELDUMP_FREEBSD12:
-               gone_in(14, "12.x ABI compatibility");
-
-               kda12 = (void *)addr;
-               if (kda12->kda12_enable) {
-                       error = ENXIO;
-                       break;
-               }
-               if (netdump_enabled())
-                       netdump_unconfigure();
-               break;
-
-       case NETDUMPGCONF_FREEBSD12:
-               gone_in(14, "FreeBSD 12.x ABI compat");
-               conf12 = (void *)addr;
-
-               if (!netdump_enabled()) {
-                       error = ENXIO;
-                       break;
-               }
-               if (nd_conf.ndc_af != AF_INET) {
-                       error = EOPNOTSUPP;
-                       break;
-               }
-
-               if (nd_ifp != NULL)
-                       strlcpy(conf12->ndc12_iface, nd_ifp->if_xname,
-                           sizeof(conf12->ndc12_iface));
-               memcpy(&conf12->ndc12_server, &nd_server,
-                   sizeof(conf12->ndc12_server));
-               memcpy(&conf12->ndc12_client, &nd_client,
-                   sizeof(conf12->ndc12_client));
-               memcpy(&conf12->ndc12_gateway, &nd_gateway,
-                   sizeof(conf12->ndc12_gateway));
-               break;
-#endif
        case DIOCGKERNELDUMP:
                conf = (void *)addr;
                /*
@@ -573,43 +527,10 @@ netdump_ioctl(struct cdev *dev __unused, u_long cmd, 
caddr_t addr,
                conf->kda_af = nd_conf.ndc_af;
                conf = NULL;
                break;
-
-#ifdef COMPAT_FREEBSD12
-       case NETDUMPSCONF_FREEBSD12:
-               gone_in(14, "FreeBSD 12.x ABI compat");
-
-               conf12 = (struct netdump_conf_freebsd12 *)addr;
-
-               _Static_assert(offsetof(struct diocskerneldump_arg, kda_server)
-                   == offsetof(struct netdump_conf_freebsd12, ndc12_server),
-                   "simplifying assumption");
-
-               memset(&kda_copy, 0, sizeof(kda_copy));
-               memcpy(&kda_copy, conf12,
-                   offsetof(struct diocskerneldump_arg, kda_server));
-
-               /* 12.x ABI could only configure IPv4 (INET) netdump. */
-               kda_copy.kda_af = AF_INET;
-               memcpy(&kda_copy.kda_server.in4, &conf12->ndc12_server,
-                   sizeof(struct in_addr));
-               memcpy(&kda_copy.kda_client.in4, &conf12->ndc12_client,
-                   sizeof(struct in_addr));
-               memcpy(&kda_copy.kda_gateway.in4, &conf12->ndc12_gateway,
-                   sizeof(struct in_addr));
-
-               kda_copy.kda_index =
-                   (conf12->ndc12_kda.kda12_enable ? 0 : KDA_REMOVE_ALL);
-
-               conf = &kda_copy;
-               explicit_bzero(conf12, sizeof(*conf12));
-               /* FALLTHROUGH */
-#endif
        case DIOCSKERNELDUMP:
                encryptedkey = NULL;
-               if (cmd == DIOCSKERNELDUMP) {
-                       conf = (void *)addr;
-                       memcpy(&kda_copy, conf, sizeof(kda_copy));
-               }
+               conf = (void *)addr;
+
                /* Netdump only supports IP4 at this time. */
                if (conf->kda_af != AF_INET) {
                        error = EPROTONOSUPPORT;
@@ -669,7 +590,6 @@ netdump_ioctl(struct cdev *dev __unused, u_long cmd, 
caddr_t addr,
                error = ENOTTY;
                break;
        }
-       explicit_bzero(&kda_copy, sizeof(kda_copy));
        if (conf != NULL)
                explicit_bzero(conf, sizeof(*conf));
        NETDUMP_WUNLOCK();
diff --git a/sys/sys/disk.h b/sys/sys/disk.h
index ce79dcad9566..8edcbe97a8f0 100644
--- a/sys/sys/disk.h
+++ b/sys/sys/disk.h
@@ -130,17 +130,6 @@ struct diocgattr_arg {
 
 #define        DIOCZONECMD     _IOWR('d', 143, struct disk_zone_args)
 
-struct diocskerneldump_arg_freebsd12 {
-       uint8_t          kda12_enable;
-       uint8_t          kda12_compression;
-       uint8_t          kda12_encryption;
-       uint8_t          kda12_key[KERNELDUMP_KEY_MAX_SIZE];
-       uint32_t         kda12_encryptedkeysize;
-       uint8_t         *kda12_encryptedkey;
-};
-#define        DIOCSKERNELDUMP_FREEBSD12 \
-       _IOW('d', 144, struct diocskerneldump_arg_freebsd12)
-
 #ifndef WITHOUT_NETDUMP
 #include <net/if.h>
 #include <netinet/in.h>
@@ -184,8 +173,6 @@ struct diocskerneldump_arg {
        union kd_ip      kda_gateway;
        uint8_t          kda_af;
 };
-_Static_assert(__offsetof(struct diocskerneldump_arg, kda_iface) ==
-    sizeof(struct diocskerneldump_arg_freebsd12), "simplifying assumption");
 #define        DIOCSKERNELDUMP _IOW('d', 145, struct diocskerneldump_arg)
        /*
         * Enable/Disable the device for kernel core dumps.

Reply via email to