diff options
Diffstat (limited to '0005-LINUX-5.9-Remove-HAVE_UNLOCKED_IOCTL-COMPAT_IOCTL.patch')
-rw-r--r-- | 0005-LINUX-5.9-Remove-HAVE_UNLOCKED_IOCTL-COMPAT_IOCTL.patch | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/0005-LINUX-5.9-Remove-HAVE_UNLOCKED_IOCTL-COMPAT_IOCTL.patch b/0005-LINUX-5.9-Remove-HAVE_UNLOCKED_IOCTL-COMPAT_IOCTL.patch new file mode 100644 index 000000000000..476ca39b7ff5 --- /dev/null +++ b/0005-LINUX-5.9-Remove-HAVE_UNLOCKED_IOCTL-COMPAT_IOCTL.patch @@ -0,0 +1,169 @@ +From e7f32efde6b4cf8c4a69768826c9fa2509bb98a2 Mon Sep 17 00:00:00 2001 +From: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri, 21 Aug 2020 10:37:51 -0600 +Subject: [PATCH 5/5] LINUX 5.9: Remove HAVE_UNLOCKED_IOCTL/COMPAT_IOCTL + +Linux-5.9-rc1 commit 'fs: remove the HAVE_UNLOCKED_IOCTL and +HAVE_COMPAT_IOCTL defines' (4e24566a) removed the two referenced macros +from the kernel. + +The support for unlocked_ioctl and compat_ioctl were introduced in +Linux 2.6.11. + +Remove references to HAVE_UNLOCKED_IOCTL and HAVE_COMPAT_IOCTL using +the assumption that they were always defined. + +Notes: + +With this change, building against kernels 2.6.10 and older will fail. +RHEL4 (EOL in March 2017) used a 2.6.9 kernel. RHEL5 uses a 2.6.18 +kernel. + +In linux-2.6.33-rc1 the commit messages for "staging: comedi: +Remove check for HAVE_UNLOCKED_IOCTL" (00a1855c) and "Staging: comedi: +remove check for HAVE_COMPAT_IOCTL" (5d7ae225) both state that all new +kernels have support for unlocked_ioctl/compat_ioctl so the checks can +be removed along with removing support for older kernels. + +Reviewed-on: https://gerrit.openafs.org/14300 +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +Tested-by: Benjamin Kaduk <kaduk@mit.edu> +(cherry picked from commit 13a49aaf0d5c43bce08135edaabb65587e1a8031) + +Change-Id: I6dc5ae5b32031641f4a021a31630390a91d834fe +Reviewed-on: https://gerrit.openafs.org/14315 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> +--- + src/afs/LINUX/osi_ioctl.c | 25 ++----------------------- + src/afs/LINUX/osi_vnodeops.c | 14 -------------- + 2 files changed, 2 insertions(+), 37 deletions(-) + +diff --git a/src/afs/LINUX/osi_ioctl.c b/src/afs/LINUX/osi_ioctl.c +index 1646a1518..9ba076a1b 100644 +--- a/src/afs/LINUX/osi_ioctl.c ++++ b/src/afs/LINUX/osi_ioctl.c +@@ -25,10 +25,6 @@ + #include <asm/ia32_unistd.h> + #endif + +-#if defined(AFS_SPARC64_LINUX26_ENV) && defined(NEED_IOCTL32) && !defined(HAVE_COMPAT_IOCTL) +-#include <linux/ioctl32.h> +-#endif +- + #include <linux/slab.h> + #include <linux/init.h> + #include <linux/sched.h> +@@ -37,9 +33,6 @@ + #include "osi_compat.h" + + extern struct proc_dir_entry *openafs_procfs; +-#if defined(NEED_IOCTL32) && !defined(HAVE_COMPAT_IOCTL) +-static int ioctl32_done; +-#endif + + extern asmlinkage long + afs_syscall(long syscall, long parm1, long parm2, long parm3, long parm4); +@@ -85,12 +78,11 @@ afs_ioctl(struct inode *inode, struct file *file, unsigned int cmd, + } + } + +-#if defined(HAVE_UNLOCKED_IOCTL) || defined(HAVE_COMPAT_IOCTL) + static long afs_unlocked_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) { + return afs_ioctl(FILE_INODE(file), file, cmd, arg); + } +-#endif ++ + #if defined(HAVE_LINUX_STRUCT_PROC_OPS) + static struct proc_ops afs_syscall_ops = { + .proc_ioctl = afs_unlocked_ioctl, +@@ -100,16 +92,11 @@ static struct proc_ops afs_syscall_ops = { + }; + #else + static struct file_operations afs_syscall_ops = { +-# ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = afs_unlocked_ioctl, +-# else +- .ioctl = afs_ioctl, +-# endif +-# ifdef HAVE_COMPAT_IOCTL + .compat_ioctl = afs_unlocked_ioctl, +-# endif + }; + #endif /* HAVE_LINUX_STRUCT_PROC_OPS */ ++ + void + osi_ioctl_init(void) + { +@@ -121,18 +108,10 @@ osi_ioctl_init(void) + entry->owner = THIS_MODULE; + #endif + +-#if defined(NEED_IOCTL32) && !defined(HAVE_COMPAT_IOCTL) +- if (register_ioctl32_conversion(VIOC_SYSCALL32, NULL) == 0) +- ioctl32_done = 1; +-#endif + } + + void + osi_ioctl_clean(void) + { + remove_proc_entry(PROC_SYSCALL_NAME, openafs_procfs); +-#if defined(NEED_IOCTL32) && !defined(HAVE_COMPAT_IOCTL) +- if (ioctl32_done) +- unregister_ioctl32_conversion(VIOC_SYSCALL32); +-#endif + } +diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c +index 36a4f685e..ba4f1e6af 100644 +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -589,13 +589,11 @@ out1: + extern int afs_xioctl(struct inode *ip, struct file *fp, unsigned int com, + unsigned long arg); + +-#if defined(HAVE_UNLOCKED_IOCTL) || defined(HAVE_COMPAT_IOCTL) + static long afs_unlocked_xioctl(struct file *fp, unsigned int com, + unsigned long arg) { + return afs_xioctl(FILE_INODE(fp), fp, com, arg); + + } +-#endif + + + static int +@@ -891,14 +889,8 @@ struct file_operations afs_dir_fops = { + #else + .readdir = afs_linux_readdir, + #endif +-#ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = afs_unlocked_xioctl, +-#else +- .ioctl = afs_xioctl, +-#endif +-#ifdef HAVE_COMPAT_IOCTL + .compat_ioctl = afs_unlocked_xioctl, +-#endif + .open = afs_linux_open, + .release = afs_linux_release, + .llseek = default_llseek, +@@ -926,14 +918,8 @@ struct file_operations afs_file_fops = { + .read = afs_linux_read, + .write = afs_linux_write, + #endif +-#ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = afs_unlocked_xioctl, +-#else +- .ioctl = afs_xioctl, +-#endif +-#ifdef HAVE_COMPAT_IOCTL + .compat_ioctl = afs_unlocked_xioctl, +-#endif + .mmap = afs_linux_mmap, + .open = afs_linux_open, + .flush = afs_linux_flush, +-- +2.28.0 + |