RE: [PATCH v2 3/5] ACPICA: Add <asm/acenv.h> to remove mis-ordered inclusion of <asm/acpi.h> from <acpi/platform/aclinux.h>.

From: Zheng, Lv
Date: Tue Apr 29 2014 - 03:49:41 EST


Hi, Rafael

> From: Wysocki, Rafael J
> Sent: Tuesday, April 29, 2014 4:30 AM
>
> On 4/28/2014 5:02 AM, Zheng, Lv wrote:
> > Hi, Rafael
> >
> >> From: linux-acpi-owner@xxxxxxxxxxxxxxx [mailto:linux-acpi-owner@xxxxxxxxxxxxxxx] On Behalf Of Rafael J. Wysocki
> >> Sent: Monday, April 28, 2014 5:37 AM
> >> To: Zheng, Lv
> >>
> >> On Wednesday, April 23, 2014 02:54:06 PM Lv Zheng wrote:
> >>> There is a mis-order inclusion for <asm/acpi.h>.
> >>>
> >>> As we will enforce including <linux/acpi.h> for all Linux ACPI users, we
> >>> can find the inclusion order is as follows:
> >>>
> >>> <linux/acpi.h>
> >>> <acpi/acpi.h>
> >>> <acpi/platform/acenv.h>
> >>> (acenv.h before including aclinux.h)
> >>> <acpi/platform/aclinux.h>
> >>> ...........................................................................
> >>> (aclinux.h before including asm/acpi.h)
> >>> <asm/acpi.h> @Redundant@
> >>> (ACPICA specific stuff)
> >>> ...........................................................................
> >>> ...........................................................................
> >>> (Linux ACPI specific stuff) ? - - - - - - - - - - - - +
> >>> (aclinux.h after including asm/acpi.h) @Invisible@ |
> >>> (acenv.h after including aclinux.h) @Invisible@ |
> >>> other ACPICA headers @Invisible@ |
> >>> ............................................................|..............
> >>> <acpi/acpi_bus.h> |
> >>> <acpi/acpi_drivers.h> |
> >>> <asm/acpi.h> (Excluded) |
> >>> (Linux ACPI specific stuff) ! <- - - - - - - - - - - - - +
> >>>
> >>> NOTE that, in ACPICA, <acpi/platform/acenv.h> is more like Kconfig
> >>> generated <generated/autoconf.h> for Linux, it is meant to be included
> >>> before including any ACPICA code.
> >>>
> >>> In the above figure, there is a question mark for "Linux ACPI specific
> >>> stuff" in <asm/acpi.h> which should be included after including all other
> >>> ACPICA header files. Thus they really need to be moved to the position
> >>> marked with exclaimation mark or the definitions in the blocks marked with
> >>> "@Invisible@" will be invisible to such architecture specific "Linux ACPI
> >>> specific stuff" header blocks. This leaves 2 issues:
> >>> 1. All environmental definitions in these blocks should have a copy in the
> >>> area marked with "@Redundant@" if they are required by the "Linux ACPI
> >>> specific stuff".
> >>> 2. We cannot use any ACPICA defined types in <asm/acpi.h>.
> >>>
> >>> This patch splits architecture specific ACPICA stuff from <asm/acpi.h> to
> >>> fix this issue.
> >>>
> >>> Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
> >>> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> >>> Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> >>> Cc: linux-ia64@xxxxxxxxxxxxxxx
> >>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> >>> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> >>> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> >>> Cc: x86@xxxxxxxxxx
> >>> ---
> >>> arch/ia64/include/asm/acenv.h | 71 +++++++++++++++++++++++++++++++++++++++
> >>> arch/ia64/include/asm/acpi.h | 50 ---------------------------
> >>> arch/x86/include/asm/acenv.h | 65 +++++++++++++++++++++++++++++++++++
> >>> arch/x86/include/asm/acpi.h | 45 -------------------------
> >>> include/acpi/platform/aclinux.h | 2 +-
> >> Please rename the files first (in a separate patch) and then modify the
> >> renamed ones. That will make changes much easier to follow.
> > This patch doesn't provide a rename.
> > Currently, <asm/acpi.h> includes:
> > 1. arch specific ACPI stuff
> > 2. arch specific ACPICA stuff
> > This patch moves "2" to a separate file <asm/acenv.h>, thus no renaming happens here.
>
> Ah, I overlooked that, sorry.
>
> Which I might not do if the changelog said what the patch was really doing.

Hmm, I'll refine the changelog in the next revision. :-)
Thanks for the helping.

Best regards
-Lv