From 9be9771c875259b9c99414feb3833c5af03baa8b Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Thu, 7 Jan 2021 15:51:18 -0600 Subject: [PATCH] efidev: remove EFIIOC_GET_TABLE ioctl This ioctl would instantly induce a panic, likely since near inception, up until 0861c7d3e048. Lack of previous interest in fixing it combined with the problematic interface (exports a pointer, really a physical address) brings us to the natural conclusion: remove it until a useful consumer forward. If it eventually gets resurrected, the interface should definitely not return in this exact form and likely needs to be reimagined. The associated KPI, efi_get_table, is left intact for the time being. Reviewed by: imp, jrtc27 Also discussed with: brooks, jhb Differential Revision: https://reviews.freebsd.org/D28030 --- sys/dev/efidev/efidev.c | 8 -------- sys/sys/efiio.h | 7 ------- 2 files changed, 15 deletions(-) diff --git a/sys/dev/efidev/efidev.c b/sys/dev/efidev/efidev.c index b585db4f0117..303b10c1d0ba 100644 --- a/sys/dev/efidev/efidev.c +++ b/sys/dev/efidev/efidev.c @@ -53,14 +53,6 @@ efidev_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr, int error; switch (cmd) { - case EFIIOC_GET_TABLE: - { - struct efi_get_table_ioc *egtioc = - (struct efi_get_table_ioc *)addr; - - error = efi_get_table(&egtioc->uuid, &egtioc->ptr); - break; - } case EFIIOC_GET_TIME: { struct efi_tm *tm = (struct efi_tm *)addr; diff --git a/sys/sys/efiio.h b/sys/sys/efiio.h index 87fed9c3afd8..e5a0763536a3 100644 --- a/sys/sys/efiio.h +++ b/sys/sys/efiio.h @@ -32,12 +32,6 @@ #include #include -struct efi_get_table_ioc -{ - struct uuid uuid; /* UUID to look up */ - void *ptr; /* Pointer to table in KVA space */ -}; - struct efi_var_ioc { efi_char *name; /* User pointer to name, in wide chars */ @@ -48,7 +42,6 @@ struct efi_var_ioc size_t datasize; /* Number of *bytes* in the data */ }; -#define EFIIOC_GET_TABLE _IOWR('E', 1, struct efi_get_table_ioc) #define EFIIOC_GET_TIME _IOR('E', 2, struct efi_tm) #define EFIIOC_SET_TIME _IOW('E', 3, struct efi_tm) #define EFIIOC_VAR_GET _IOWR('E', 4, struct efi_var_ioc)