Hi Ben, regarding your problem with poking into PCI ranges: As arnd mentioned, we could check, wether there is a mapping for that address and if so, allow the access. That could be done in check_legacy_ioport, although the name looks a bit misleading. What do you think ? On Fri, 22 Feb 2008 18:21:23 +1100 Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote: > > Christian, can you re-send me that patch ? > > Ben. Sure, patch was as trivial as this: 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 <krafft at de.ibm.com> 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20080222/ed5d0d43/attachment.bin