public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali@linux-fr.org>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Pavel Machek <pavel@ucw.cz>, Chuck Ebbert <cebbert@redhat.com>,
	Rudolf Marek <r.marek@assembler.cz>,
	linux-acpi@vger.kernel.org,
	linux-kernel <linux-kernel@vger.kernel.org>,
	lm-sensors@lm-sensors.org
Subject: Re: [lm-sensors] Could the k8temp driver be interfering with ACPI?
Date: Tue, 6 Mar 2007 22:28:47 +0100	[thread overview]
Message-ID: <20070306222847.85b4aff4.khali@linux-fr.org> (raw)
In-Reply-To: <20070302214643.GA10774@srcf.ucam.org>

Hi Matthew,

On Fri, 2 Mar 2007 21:46:43 +0000, Matthew Garrett wrote:
> On Fri, Mar 02, 2007 at 10:41:55PM +0100, Jean Delvare wrote:
> 
> > I like the patch, after adding some casts to the printf args it
> > compiles fine. However you print warnings each time a resource has been
> > reserved... without checking if it hasn't been reserved by ACPI itself!
> > My machine looks like this:
> 
> Oops! I'll look into fixing that. Thanks, that's an excellent point...

Here is what I have come up with, by mixing your patch with Rudolf
Marek's one. Again this is only a reporting patch, but now it only
reports real unreserved accesses. I plan to use it for debugging
purposes.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
---
 drivers/acpi/osl.c |   72 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

--- linux-2.6.21-rc2.orig/drivers/acpi/osl.c	2007-03-06 20:59:00.000000000 +0100
+++ linux-2.6.21-rc2/drivers/acpi/osl.c	2007-03-06 21:33:13.000000000 +0100
@@ -35,6 +35,7 @@
 #include <linux/kmod.h>
 #include <linux/delay.h>
 #include <linux/workqueue.h>
+#include <linux/ioport.h>
 #include <linux/nmi.h>
 #include <linux/acpi.h>
 #include <acpi/acpi.h>
@@ -370,6 +371,7 @@ u64 acpi_os_get_timer(void)
 acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)
 {
 	u32 dummy;
+	struct resource *conflict, res;
 
 	if (!value)
 		value = &dummy;
@@ -388,6 +390,23 @@ acpi_status acpi_os_read_port(acpi_io_ad
 		BUG();
 	}
 
+	res.flags = IORESOURCE_IO;
+	res.name = "_ACPI Access";
+	res.start = port;
+	res.end = port + width/8 - 1;
+
+	conflict = ____request_resource(&ioport_resource, &res);
+	while (conflict && conflict->child)
+		conflict = ____request_resource(conflict, &res);
+
+	if (conflict && strncmp(conflict->name, "ACPI ", 5)) {
+		printk (KERN_INFO "ACPI read from allocated ioport %lx, value %lx, width %d\n",
+			(unsigned long)port, (unsigned long)(*value), (int)width);
+	}
+
+	if (conflict == NULL)
+		release_resource(&res);
+
 	return AE_OK;
 }
 
@@ -395,6 +414,25 @@ EXPORT_SYMBOL(acpi_os_read_port);
 
 acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)
 {
+	struct resource *conflict, res;
+
+	res.flags = IORESOURCE_IO;
+	res.name = "_ACPI Access";
+	res.start = port;
+	res.end = port + width/8 - 1;
+
+	conflict = ____request_resource(&ioport_resource, &res);
+	while (conflict && conflict->child)
+		conflict = ____request_resource(conflict, &res);
+
+	if (conflict && strncmp(conflict->name, "ACPI ", 5)) {
+		printk (KERN_INFO "ACPI write to allocated ioport %lx, value %lx, width %d\n",
+			(unsigned long)port, (unsigned long)(value), (int)width);
+	}
+
+	if (conflict == NULL)
+		release_resource(&res);
+
 	switch (width) {
 	case 8:
 		outb(value, port);
@@ -419,6 +457,7 @@ acpi_os_read_memory(acpi_physical_addres
 {
 	u32 dummy;
 	void __iomem *virt_addr;
+	struct resource *conflict, res;
 
 	virt_addr = ioremap(phys_addr, width);
 	if (!value)
@@ -440,6 +479,22 @@ acpi_os_read_memory(acpi_physical_addres
 
 	iounmap(virt_addr);
 
+	res.flags = IORESOURCE_MEM;
+	res.name = "_ACPI Access";
+	res.start = phys_addr;
+	res.end = phys_addr + width/8 - 1;
+
+	conflict = ____request_resource(&iomem_resource, &res);
+	while (conflict && conflict->child)
+		conflict = ____request_resource(conflict, &res);
+
+	if (conflict && strncmp(conflict->name, "ACPI ", 5))
+		pr_info("ACPI read from allocated iomem %lx, value %lx, width %d\n",
+			(unsigned long)phys_addr, (unsigned long)(*value), (int)width);
+
+	if (conflict == NULL)
+		release_resource(&res);
+
 	return AE_OK;
 }
 
@@ -447,6 +502,23 @@ acpi_status
 acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width)
 {
 	void __iomem *virt_addr;
+	struct resource *conflict, res;
+
+	res.flags = IORESOURCE_MEM;
+	res.name = "_ACPI Access";
+	res.start = phys_addr;
+	res.end = phys_addr + width/8 - 1;
+
+	conflict = ____request_resource(&iomem_resource, &res);
+	while (conflict && conflict->child)
+		conflict = ____request_resource(conflict, &res);
+
+	if (conflict && strncmp(conflict->name, "ACPI ", 5))
+		pr_info("ACPI write to allocated iomem %lx, value %lx, width %d\n",
+			(unsigned long)phys_addr, (unsigned long)value, (int)width);
+
+	if (conflict == NULL)
+		release_resource(&res);
 
 	virt_addr = ioremap(phys_addr, width);
 


-- 
Jean Delvare

  reply	other threads:[~2007-03-06 21:29 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-16 17:31 Could the k8temp driver be interfering with ACPI? Chuck Ebbert
2007-02-16 17:57 ` Len Brown
2007-02-16 18:14   ` Chuck Ebbert
2007-02-16 19:59 ` Andi Kleen
2007-02-16 19:31   ` Chuck Ebbert
2007-02-18 17:32     ` [lm-sensors] " Jean Delvare
2007-02-18 23:22       ` Andi Kleen
2007-02-17 10:49 ` Rudolf Marek
2007-02-17 18:14   ` Chuck Ebbert
2007-02-18 17:38     ` Jean Delvare
2007-02-20 15:18       ` Matthew Garrett
2007-02-20 15:33         ` Luca Tettamanti
2007-02-21 14:59           ` Jean Delvare
2007-02-21 15:07         ` Jean Delvare
2007-02-28 21:38       ` Pavel Machek
2007-03-01 14:26         ` Jean Delvare
2007-03-01 17:48           ` Dave Jones
2007-03-02 11:27             ` Jean Delvare
2007-03-02 11:31               ` Pavel Machek
2007-03-02 13:37                 ` Jean Delvare
2007-03-02 13:47                   ` Henrique de Moraes Holschuh
2007-03-02 13:57                   ` Pavel Machek
2007-03-03  6:44                     ` Jean Delvare
2007-03-02 11:40           ` Pavel Machek
2007-03-02 11:47             ` Matthew Garrett
2007-03-02 13:58               ` Pavel Machek
2007-03-02 21:00                 ` Jean Delvare
2007-03-02 21:22                   ` Henrique de Moraes Holschuh
2007-04-01 15:39                   ` Pavel Machek
2007-04-02 15:48                     ` Jean Delvare
2007-04-02 19:22                       ` Dave Jones
2007-04-03  5:49                         ` Jean Delvare
2007-04-02 20:55                       ` Moore, Robert
2007-04-03  7:21                         ` Jean Delvare
2007-04-04 21:35                           ` Moore, Robert
2007-03-02 14:10               ` [lm-sensors] " Jean Delvare
2007-03-02 14:18                 ` Matthew Garrett
2007-03-02 21:04                   ` Jean Delvare
2007-03-02 21:12                     ` Matthew Garrett
2007-03-03  9:53                       ` Jean Delvare
2007-03-03 15:47                         ` David Hubbard
2007-03-03 15:50                           ` Matthew Garrett
2007-03-03 17:08                             ` Rudolf Marek
2007-03-04 17:29                               ` Rudolf Marek
2007-03-05 21:16                                 ` Jean Delvare
2007-03-05 21:35                                   ` David Hubbard
2007-03-06 15:10                                     ` Jean Delvare
2007-03-04 10:54                           ` Jean Delvare
2007-03-05 22:25                         ` Pavel Machek
2007-03-06  7:55                           ` Benny Amorsen
2007-03-06 15:26                           ` Jean Delvare
2007-03-06 20:07                             ` Stefan Monnier
2007-03-06 21:20                             ` Pavel Machek
2007-03-06 21:25                               ` Moore, Robert
2007-03-18 19:36                         ` richardvoigt
2007-03-19  7:08                           ` Jean Delvare
2007-03-02 22:07                     ` Moore, Robert
2007-03-09  7:18                       ` Pavel Machek
2007-03-09 10:24                         ` Jean Delvare
2007-03-09 10:39                           ` Alexey Starikovskiy
2007-03-09 11:21                             ` Pavel Machek
2007-03-09 17:23                             ` Jean Delvare
2007-03-09 17:35                               ` Alexey Starikovskiy
2007-03-09 21:03                                 ` Moore, Robert
2007-03-09 20:56                         ` Moore, Robert
2007-03-02 14:22                 ` Pavel Machek
2007-03-02 14:03             ` Jean Delvare
2007-03-02 14:24               ` Pavel Machek
2007-03-02 14:57               ` Matthew Garrett
2007-03-02 21:41                 ` Jean Delvare
2007-03-02 21:46                   ` Matthew Garrett
2007-03-06 21:28                     ` Jean Delvare [this message]
2007-04-13 18:18               ` Bjorn Helgaas
2007-04-13 20:07                 ` Pavel Machek
2007-04-13 20:59                   ` Bjorn Helgaas
2007-04-15  9:41                     ` Jean Delvare
2007-04-15 20:31                       ` Bjorn Helgaas
2007-04-15 20:59                         ` Luca Tettamanti
2007-04-16  0:57                           ` Bjorn Helgaas
2007-04-16 21:14                             ` Luca Tettamanti
2007-04-16 22:28                               ` Bjorn Helgaas
2007-04-17 23:50                                 ` Luca Tettamanti
2007-04-22 16:55                                   ` Luca Tettamanti
2007-04-17 10:03                               ` Jean Delvare
2007-02-18 22:43     ` Rudolf Marek
2007-02-20 15:08       ` Chuck Ebbert
2007-02-20 19:11         ` Dave Jones
2007-02-21 16:17           ` Jean Delvare
2007-02-21 17:37             ` Dave Jones
2007-02-21 20:19               ` Dave Jones
2007-02-22 16:37                 ` Jean Delvare
2007-02-23  7:13                   ` Hans de Goede
2007-02-23  7:47                     ` Jean Delvare
2007-02-21 14:54         ` Jean Delvare
2007-02-21 16:03           ` Chuck Ebbert
2007-02-21 16:22             ` Jean Delvare
     [not found] <7PvLN-1cj-3@gated-at.bofh.it>
     [not found] ` <7TEGV-6Jy-39@gated-at.bofh.it>
     [not found]   ` <7TUBX-6TN-5@gated-at.bofh.it>
     [not found]     ` <7UeqX-4QO-17@gated-at.bofh.it>
     [not found]       ` <7UeqZ-4QO-27@gated-at.bofh.it>
     [not found]         ` <7UgM5-np-1@gated-at.bofh.it>
     [not found]           ` <7UgM8-np-11@gated-at.bofh.it>
     [not found]             ` <7UnaS-2xP-9@gated-at.bofh.it>
     [not found]               ` <7UnkC-2JB-9@gated-at.bofh.it>
     [not found]                 ` <7Uzcd-49u-3@gated-at.bofh.it>
     [not found]                   ` <7UEEN-4xi-3@gated-at.bofh.it>
2007-03-05 13:56                     ` Bodo Eggert
2007-03-06 15:19                       ` Jean Delvare
2007-03-06 20:40                         ` Bodo Eggert
2007-03-07  9:17                           ` Jean Delvare
2007-03-07  9:36                             ` Pavel Machek
2007-03-07 17:09                             ` Bodo Eggert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070306222847.85b4aff4.khali@linux-fr.org \
    --to=khali@linux-fr.org \
    --cc=cebbert@redhat.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=pavel@ucw.cz \
    --cc=r.marek@assembler.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox