ACPI: Add support to force header inclusion rules for <acpi/acpi.h>.
authorLv Zheng <lv.zheng@intel.com>
Wed, 16 Jul 2014 08:58:53 +0000 (16:58 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 22 Jul 2014 23:10:45 +0000 (01:10 +0200)
As there is only CONFIG_ACPI=n processing in the <linux/acpi.h>, it is not
safe to include <acpi/acpi.h> directly for source out of Linux ACPI
subsystems.

This patch adds error messaging to warn developers of such wrong
inclusions.

In order not to be bisected and reverted as a wrong commit, warning
messages are carefully split into a seperate patch other than the wrong
inclusion cleanups.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/Makefile
include/acpi/platform/aclinux.h

index 8bb43f06e11fda07c6e71718fab7b2baa37a5a57..87a24ac213635ebd784fbaa4a2d7415775ad6d3a 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for ACPICA Core interpreter
 #
 
-ccflags-y                      := -Os
+ccflags-y                      := -Os -DBUILDING_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)   += -DACPI_DEBUG_OUTPUT
 
 # use acpi.o to put all files here into acpi.o modparam namespace
index dfba35476b8ad726fd3e0f4d92a93a7a16eca674..1ba7c190c2ccbfc22ca9f576a0f7faf9ef96d979 100644 (file)
 #ifndef __ACLINUX_H__
 #define __ACLINUX_H__
 
+#ifdef __KERNEL__
+
+/* ACPICA external files should not include ACPICA headers directly. */
+
+#if !defined(BUILDING_ACPICA) && !defined(_LINUX_ACPI_H)
+#error "Please don't include <acpi/acpi.h> directly, include <linux/acpi.h> instead."
+#endif
+
+#endif
+
 /* Common (in-kernel/user-space) ACPICA configuration */
 
 #define ACPI_USE_SYSTEM_CLIBRARY