diff mbox

acpi, add region addresses to conflict output [v2]

Message ID 1385403950-11297-1-git-send-email-prarit@redhat.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Prarit Bhargava Nov. 25, 2013, 6:25 p.m. UTC
Currently the kernel does

 ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts
 with Region \PMIO 1 (20130517/utaddress-251)

This patch outputs the region address so that we now see

ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts
with Region 0x0000000000000400-0x000000000000047f \PMIO 1
(20130927/utaddress-252)

which is a lot more useful for debugging.

Also fix some simple comment linewrapping issues in this function.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Myron Stowe <mstowe@redhat.com>
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: mjg59@srcf.ucam.org

[v2]: minor change to comments
---
 drivers/acpi/acpica/utaddress.c |   53 +++++++++++++++++++++------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

Comments

Rafael J. Wysocki Nov. 25, 2013, 10:55 p.m. UTC | #1
On Monday, November 25, 2013 01:25:50 PM Prarit Bhargava wrote:
> Currently the kernel does
> 
>  ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts
>  with Region \PMIO 1 (20130517/utaddress-251)
> 
> This patch outputs the region address so that we now see
> 
> ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts
> with Region 0x0000000000000400-0x000000000000047f \PMIO 1
> (20130927/utaddress-252)
> 
> which is a lot more useful for debugging.
> 
> Also fix some simple comment linewrapping issues in this function.
> 
> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> Cc: Myron Stowe <mstowe@redhat.com>
> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: mjg59@srcf.ucam.org
> 
> [v2]: minor change to comments

ACPICA patches should go to its upstream maintainers in the first place,
as per MAINTAINERS (CCed now).  Also ACPICA patches generally have to be
integrated into ACPICA upstream before appearing in the kernel.

Thanks!

> ---
>  drivers/acpi/acpica/utaddress.c |   53 +++++++++++++++++++++------------------
>  1 file changed, 29 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/utaddress.c b/drivers/acpi/acpica/utaddress.c
> index e0a2e27..eb4f28d 100644
> --- a/drivers/acpi/acpica/utaddress.c
> +++ b/drivers/acpi/acpica/utaddress.c
> @@ -224,35 +224,40 @@ acpi_ut_check_address_range(acpi_adr_space_type space_id,
>  
>  	while (range_info) {
>  		/*
> -		 * Check if the requested Address/Length overlaps this address_range.
> -		 * Four cases to consider:
> +		 * Check if the requested Address/Length overlaps this
> +		 * address_range.  Four cases to consider:
>  		 *
> -		 * 1) Input address/length is contained completely in the address range
> +		 * 1) Input address/length is contained completely in the
> +		 *    address range
>  		 * 2) Input address/length overlaps range at the range start
>  		 * 3) Input address/length overlaps range at the range end
>  		 * 4) Input address/length completely encompasses the range
>  		 */
> -		if ((address <= range_info->end_address) &&
> -		    (end_address >= range_info->start_address)) {
> -
> -			/* Found an address range overlap */
> -
> -			overlap_count++;
> -			if (warn) {	/* Optional warning message */
> -				pathname =
> -				    acpi_ns_get_external_pathname(range_info->
> -								  region_node);
> -
> -				ACPI_WARNING((AE_INFO,
> -					      "0x%p-0x%p %s conflicts with Region %s %d",
> -					      ACPI_CAST_PTR(void, address),
> -					      ACPI_CAST_PTR(void, end_address),
> -					      acpi_ut_get_region_name(space_id),
> -					      pathname, overlap_count));
> -				ACPI_FREE(pathname);
> -			}
> -		}
> -
> +		if ((address > range_info->end_address) &&
> +		    (end_address < range_info->start_address))
> +			goto next_range;
> +
> +		/* Found an address range overlap */
> +		overlap_count++;
> +
> +		if (!warn)
> +			goto next_range;
> +
> +		/* Optional warning message */
> +		pathname =
> +			 acpi_ns_get_external_pathname(range_info->region_node);
> +
> +		ACPI_WARNING((AE_INFO,
> +			      "0x%p-0x%p %s conflicts with Region 0x%p-0x%p %s %d",
> +			      ACPI_CAST_PTR(void, address),
> +			      ACPI_CAST_PTR(void, end_address),
> +			      acpi_ut_get_region_name(space_id),
> +			      ACPI_CAST_PTR(void, range_info->start_address),
> +			      ACPI_CAST_PTR(void, range_info->end_address),
> +			      pathname, overlap_count));
> +		ACPI_FREE(pathname);
> +
> +next_range:
>  		range_info = range_info->next;
>  	}
>  
>
diff mbox

Patch

diff --git a/drivers/acpi/acpica/utaddress.c b/drivers/acpi/acpica/utaddress.c
index e0a2e27..eb4f28d 100644
--- a/drivers/acpi/acpica/utaddress.c
+++ b/drivers/acpi/acpica/utaddress.c
@@ -224,35 +224,40 @@  acpi_ut_check_address_range(acpi_adr_space_type space_id,
 
 	while (range_info) {
 		/*
-		 * Check if the requested Address/Length overlaps this address_range.
-		 * Four cases to consider:
+		 * Check if the requested Address/Length overlaps this
+		 * address_range.  Four cases to consider:
 		 *
-		 * 1) Input address/length is contained completely in the address range
+		 * 1) Input address/length is contained completely in the
+		 *    address range
 		 * 2) Input address/length overlaps range at the range start
 		 * 3) Input address/length overlaps range at the range end
 		 * 4) Input address/length completely encompasses the range
 		 */
-		if ((address <= range_info->end_address) &&
-		    (end_address >= range_info->start_address)) {
-
-			/* Found an address range overlap */
-
-			overlap_count++;
-			if (warn) {	/* Optional warning message */
-				pathname =
-				    acpi_ns_get_external_pathname(range_info->
-								  region_node);
-
-				ACPI_WARNING((AE_INFO,
-					      "0x%p-0x%p %s conflicts with Region %s %d",
-					      ACPI_CAST_PTR(void, address),
-					      ACPI_CAST_PTR(void, end_address),
-					      acpi_ut_get_region_name(space_id),
-					      pathname, overlap_count));
-				ACPI_FREE(pathname);
-			}
-		}
-
+		if ((address > range_info->end_address) &&
+		    (end_address < range_info->start_address))
+			goto next_range;
+
+		/* Found an address range overlap */
+		overlap_count++;
+
+		if (!warn)
+			goto next_range;
+
+		/* Optional warning message */
+		pathname =
+			 acpi_ns_get_external_pathname(range_info->region_node);
+
+		ACPI_WARNING((AE_INFO,
+			      "0x%p-0x%p %s conflicts with Region 0x%p-0x%p %s %d",
+			      ACPI_CAST_PTR(void, address),
+			      ACPI_CAST_PTR(void, end_address),
+			      acpi_ut_get_region_name(space_id),
+			      ACPI_CAST_PTR(void, range_info->start_address),
+			      ACPI_CAST_PTR(void, range_info->end_address),
+			      pathname, overlap_count));
+		ACPI_FREE(pathname);
+
+next_range:
 		range_info = range_info->next;
 	}