The following commit has been merged into the x86/iopl branch of tip: Commit-ID: 5487da6bf0775d996352442b89a8defbd671b4ae Gitweb: https://git.kernel.org/tip/5487da6bf0775d996352442b89a8defbd671b4ae Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx> AuthorDate: Wed, 13 Nov 2019 21:42:47 +01:00 Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx> CommitterDate: Thu, 14 Nov 2019 20:15:02 +01:00 x86/ioperm: Avoid bitmap allocation if no permissions are set If ioperm() is invoked the first time and the @turn_on argument is 0, then there is no point to allocate a bitmap just to clear permissions which are not set. Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> Link: https://lkml.kernel.org/r/20191113210104.404509322@xxxxxxxxxxxxx --- arch/x86/kernel/ioport.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c index ca6aa1e..80fa36b 100644 --- a/arch/x86/kernel/ioport.c +++ b/arch/x86/kernel/ioport.c @@ -36,6 +36,9 @@ long ksys_ioperm(unsigned long from, unsigned long num, int turn_on) */ bitmap = t->io_bitmap_ptr; if (!bitmap) { + /* No point to allocate a bitmap just to clear permissions */ + if (!turn_on) + return 0; bitmap = kmalloc(IO_BITMAP_BYTES, GFP_KERNEL); if (!bitmap) return -ENOMEM;