sensors_detect crashes kernel on PowerPC, as it pokes directly to memory.
This patch adds a check_legacy_ioports to read_port and write_port.
It will now return ENXIO, instead of oopsing.

Signed-off-by: Christian Krafft <[EMAIL PROTECTED]>

Index: linux.git/drivers/char/mem.c
===================================================================
--- linux.git.orig/drivers/char/mem.c
+++ linux.git/drivers/char/mem.c
@@ -566,8 +566,13 @@ static ssize_t read_port(struct file * f
        char __user *tmp = buf;
 
        if (!access_ok(VERIFY_WRITE, buf, count))
-               return -EFAULT; 
+               return -EFAULT;
+
        while (count-- > 0 && i < 65536) {
+#ifdef CONFIG_PPC_MERGE
+               if (check_legacy_ioport(i))
+                       return -ENXIO;
+#endif
                if (__put_user(inb(i),tmp) < 0) 
                        return -EFAULT;  
                i++;
@@ -585,6 +590,7 @@ static ssize_t write_port(struct file * 
 
        if (!access_ok(VERIFY_READ,buf,count))
                return -EFAULT;
+
        while (count-- > 0 && i < 65536) {
                char c;
                if (__get_user(c, tmp)) {
@@ -592,6 +598,10 @@ static ssize_t write_port(struct file * 
                                break;
                        return -EFAULT; 
                }
+#ifdef CONFIG_PPC_MERGE
+               if (check_legacy_ioport(i))
+                       return -ENXIO;
+#endif
                outb(c,i);
                i++;
                tmp++;


-- 
Mit freundlichen Gruessen,
kind regards,

Christian Krafft
IBM Systems & Technology Group,
Linux Kernel Development
IT Specialist


Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung:             Herbert Kircher
Sitz der Gesellschaft:          Boeblingen
Registriergericht:              Amtsgericht Stuttgart, HRB 243294

Attachment: signature.asc
Description: PGP signature

Reply via email to