Commit 009ff27a authored by Seth Forshee's avatar Seth Forshee Committed by Khalid Elmously

Revert "x86: Lock down IO port access when module security is enabled"

BugLink: https://bugs.launchpad.net/bugs/1884159

This reverts commit cc223b88 to backport
an updated version.
Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
Acked-by: default avatarStefan Bader <stefan.bader@canonical.com>
Acked-by: default avatarAndrea Righi <andrea.righi@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent ef2d73dc
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/thread_info.h> #include <linux/thread_info.h>
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/bitmap.h> #include <linux/bitmap.h>
#include <linux/module.h>
#include <asm/syscalls.h> #include <asm/syscalls.h>
/* /*
...@@ -29,7 +28,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) ...@@ -29,7 +28,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
return -EINVAL; return -EINVAL;
if (turn_on && (!capable(CAP_SYS_RAWIO) || secure_modules())) if (turn_on && !capable(CAP_SYS_RAWIO))
return -EPERM; return -EPERM;
/* /*
...@@ -109,7 +108,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level) ...@@ -109,7 +108,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
return -EINVAL; return -EINVAL;
/* Trying to gain more privileges? */ /* Trying to gain more privileges? */
if (level > old) { if (level > old) {
if (!capable(CAP_SYS_RAWIO) || secure_modules()) if (!capable(CAP_SYS_RAWIO))
return -EPERM; return -EPERM;
} }
regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <linux/export.h> #include <linux/export.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/uio.h> #include <linux/uio.h>
#include <linux/module.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
...@@ -622,9 +621,6 @@ static ssize_t write_port(struct file *file, const char __user *buf, ...@@ -622,9 +621,6 @@ static ssize_t write_port(struct file *file, const char __user *buf,
unsigned long i = *ppos; unsigned long i = *ppos;
const char __user *tmp = buf; const char __user *tmp = buf;
if (secure_modules())
return -EPERM;
if (!access_ok(VERIFY_READ, buf, count)) if (!access_ok(VERIFY_READ, buf, count))
return -EFAULT; return -EFAULT;
while (count-- > 0 && i < 65536) { while (count-- > 0 && i < 65536) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment