[lm-sensors] [PATCH] sensors-detect: Skip "random" I/O port probing on PPC

Christian Krafft krafft at de.ibm.com
Fri Feb 22 11:18:48 CET 2008

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) {
+		if (check_legacy_ioport(i))
+			return -ENXIO;
 		if (__put_user(inb(i),tmp) < 0) 
 			return -EFAULT;  
@@ -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 * 
 			return -EFAULT; 
+		if (check_legacy_ioport(i))
+			return -ENXIO;

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.sig>

More information about the lm-sensors mailing list