git: 9be9771c8752 - main - efidev: remove EFIIOC_GET_TABLE ioctl

Kyle Evans kevans at FreeBSD.org
Fri Jan 8 16:43:22 UTC 2021


The branch main has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=9be9771c875259b9c99414feb3833c5af03baa8b

commit 9be9771c875259b9c99414feb3833c5af03baa8b
Author:     Kyle Evans <kevans at FreeBSD.org>
AuthorDate: 2021-01-07 21:51:18 +0000
Commit:     Kyle Evans <kevans at FreeBSD.org>
CommitDate: 2021-01-08 16:41:50 +0000

    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 <sys/uuid.h>
 #include <sys/efi.h>
 
-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)


More information about the dev-commits-src-all mailing list