public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Alex Williamson <alex.williamson-VXdhtT5mjnY@public.gmane.org>
Cc: "Randy.Dunlap" <rddunlap-3NddpPZAyC0@public.gmane.org>,
	Paul Jackson <pj-sJ/iWh9BUns@public.gmane.org>,
	"Martin J. Bligh"
	<mbligh-/CzTsIfkJEdBDgjK7y7TUQ@public.gmane.org>,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] cleanup ACPI numa warnings
Date: Sun, 08 Aug 2004 21:52:31 -0700	[thread overview]
Message-ID: <1092027151.6496.13709.camel@nighthawk> (raw)
In-Reply-To: <1092025184.2292.26.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 975 bytes --]

On Sun, 2004-08-08 at 21:19, Alex Williamson wrote:
>    Ok, I was all set to switch to static inlines, but it doesn't work.
> Compiling w/ debug on, _dbg is undefined, which is part of the
> ACPI_DB_INFO macro, but it only gets setup by the ACPI_FUNCTION_NAME
> macro.  Guess I got lucky by choosing to do it as a macro.  IMHO, it
> doesn't really make sense to make the static inline functions more
> complicated or hide where they're getting called to make this all work.
> So, I think the choices are to stick with the ugly macros or put #ifdefs
> around the code and essentially leave it the way it is.  Sorry I didn't
> give it a more thorough look when originally questioned.  Better ideas?
> Thanks,

That code is already pretty hideous, so perhaps my original question
doesn't have that much impact.  The attached patch at least uses inline
functions.  It still has the #ifdefs, but what else do you expect for
debugging code?  Is this a feasible approach?

-- Dave

[-- Attachment #2: ACPI-warnings-1.patch --]
[-- Type: text/x-patch, Size: 3876 bytes --]

Only in acpi-warnings/drivers/acpi/: .Kconfig.swp
diff -ru clean/drivers/acpi/numa.c acpi-warnings/drivers/acpi/numa.c
--- clean/drivers/acpi/numa.c	2004-06-15 22:19:44.000000000 -0700
+++ acpi-warnings/drivers/acpi/numa.c	2004-08-08 21:46:58.000000000 -0700
@@ -38,6 +38,33 @@
 
 extern int __init acpi_table_parse_madt_family (enum acpi_table_id id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler handler, unsigned int max_entries);
 
+#ifdef ACPI_DEBUG_OUTPUT
+static inline void acpi_print_srat_processor_affinity(struct acpi_table_processor_affinity *p)
+{
+	ACPI_DEBUG_PRINT((ACPI_DB_INFO, "SRAT Processor (id[0x%02x] "
+			"eid[0x%02x]) in proximity domain %d %s\n",
+	                 p->apic_id, p->lsapic_eid, p->proximity_domain,
+	                 p->flags.enabled?"enabled":"disabled")); }
+}
+
+static inline void acpi_print_srat_memory_affinity(struct acpi_table_memory_affinity *p)
+{
+	ACPI_DEBUG_PRINT((ACPI_DB_INFO, "SRAT Memory (0x%08x%08x length "
+	                 "0x%08x%08x type 0x%x) in proximity domain %d %s%s\n",
+	                 p->base_addr_hi, p->base_addr_lo, p->length_hi,
+	                 p->length_lo, p->memory_type, p->proximity_domain,
+	                 p->flags.enabled ? "enabled" : "disabled",
+	                 p->flags.hot_pluggable ? " hot-pluggable" : "")); }
+}
+#else
+static inline void acpi_print_srat_memory_affinity(acpi_table_entry_header *header) {}
+static inline void acpi_print_srat_processor_affinity(acpi_table_entry_header *header) {}
+#endif
+
+#define BAD_SRAT_ENTRY(entry, end) ( \
+	(!entry) || (unsigned long)entry + sizeof(*entry) > end ||  \
+	((acpi_table_entry_header *)entry)->length != sizeof(*entry))
+
 void __init
 acpi_table_print_srat_entry (
 	acpi_table_entry_header	*header)
@@ -51,27 +78,11 @@
 	switch (header->type) {
 
 	case ACPI_SRAT_PROCESSOR_AFFINITY:
-	{
-		struct acpi_table_processor_affinity *p =
-			(struct acpi_table_processor_affinity*) header;
-		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "SRAT Processor (id[0x%02x] eid[0x%02x]) in proximity domain %d %s\n",
-		       p->apic_id, p->lsapic_eid, p->proximity_domain,
-		       p->flags.enabled?"enabled":"disabled"));
-	}
+		acpi_print_srat_processor_affinity((struct acpi_table_processor_affinity *)header);
 		break;
-
 	case ACPI_SRAT_MEMORY_AFFINITY:
-	{
-		struct acpi_table_memory_affinity *p =
-			(struct acpi_table_memory_affinity*) header;
-		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "SRAT Memory (0x%08x%08x length 0x%08x%08x type 0x%x) in proximity domain %d %s%s\n",
-		       p->base_addr_hi, p->base_addr_lo, p->length_hi, p->length_lo,
-		       p->memory_type, p->proximity_domain,
-		       p->flags.enabled ? "enabled" : "disabled",
-		       p->flags.hot_pluggable ? " hot-pluggable" : ""));
-	}
+		acpi_print_srat_memory_affinity((struct acpi_table_memory_affinity *)header);
 		break;
-
 	default:
 		printk(KERN_WARNING PREFIX "Found unsupported SRAT entry (type = 0x%x)\n",
 			header->type);
@@ -103,12 +114,12 @@
 
 
 static int __init
-acpi_parse_processor_affinity (acpi_table_entry_header *header)
+acpi_parse_processor_affinity (acpi_table_entry_header *header, unsigned long size)
 {
 	struct acpi_table_processor_affinity *processor_affinity;
 
 	processor_affinity = (struct acpi_table_processor_affinity*) header;
-	if (!processor_affinity)
+	if (BAD_SRAT_ENTRY(processor_affinity, size))
 		return -EINVAL;
 
 	acpi_table_print_srat_entry(header);
@@ -121,12 +132,12 @@
 
 
 static int __init
-acpi_parse_memory_affinity (acpi_table_entry_header *header)
+acpi_parse_memory_affinity (acpi_table_entry_header *header, unsigned long size)
 {
 	struct acpi_table_memory_affinity *memory_affinity;
 
 	memory_affinity = (struct acpi_table_memory_affinity*) header;
-	if (!memory_affinity)
+	if (BAD_SRAT_ENTRY(memory_affinity, size))
 		return -EINVAL;
 
 	acpi_table_print_srat_entry(header);

  parent reply	other threads:[~2004-08-09  4:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-05 20:46 [PATCH] cleanup ACPI numa warnings Alex Williamson
2004-08-05 21:01 ` Dave Hansen
2004-08-05 21:25   ` Alex Williamson
2004-08-06  3:35     ` Martin J. Bligh
2004-08-06  3:50       ` [ACPI] " Randy.Dunlap
     [not found]         ` <20040805205059.3fb67b71.rddunlap-3NddpPZAyC0@public.gmane.org>
2004-08-07 17:57           ` Paul Jackson
2004-08-08 21:36             ` [ACPI] " Randy.Dunlap
     [not found]               ` <20040808143631.7c18cae9.rddunlap-3NddpPZAyC0@public.gmane.org>
2004-08-09  2:53                 ` Martin J. Bligh
2004-08-20 18:55                   ` Alex Williamson
2004-08-20 19:22                     ` [ACPI] " Jesse Barnes
2004-08-09  4:19               ` Alex Williamson
     [not found]                 ` <1092025184.2292.26.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2004-08-09  4:52                   ` Dave Hansen [this message]
2004-08-09  5:10                     ` Alex Williamson
     [not found]                       ` <1092028238.2211.5.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2004-08-09  5:44                         ` Dave Hansen

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=1092027151.6496.13709.camel@nighthawk \
    --to=haveblue-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=alex.williamson-VXdhtT5mjnY@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mbligh-/CzTsIfkJEdBDgjK7y7TUQ@public.gmane.org \
    --cc=pj-sJ/iWh9BUns@public.gmane.org \
    --cc=rddunlap-3NddpPZAyC0@public.gmane.org \
    /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