2006-05-08 18:44:52

by Kristen Carlson Accardi

[permalink] [raw]
Subject: [patch] fix pciehp compile issue when CONFIG_ACPI is not enabled.

Fix compile error when CONFIG_ACPI is not defined.

Signed-off-by: Kristen Carlson Accardi <[email protected]>

---
include/acpi/actypes.h | 1 +
1 files changed, 1 insertion(+)

--- 2.6-git.orig/include/acpi/actypes.h
+++ 2.6-git/include/acpi/actypes.h
@@ -348,6 +348,7 @@ struct acpi_pointer {
* Mescellaneous types
*/
typedef u32 acpi_status; /* All ACPI Exceptions */
+#define acpi_status acpi_status
typedef u32 acpi_name; /* 4-byte ACPI name */
typedef char *acpi_string; /* Null terminated ASCII string */
typedef void *acpi_handle; /* Actually a ptr to a NS Node */


2006-05-08 19:26:05

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [patch] fix pciehp compile issue when CONFIG_ACPI is not enabled.

On Mon, May 08, 2006 at 11:54:30AM -0700, Kristen Accardi wrote:
> Fix compile error when CONFIG_ACPI is not defined.

> --- 2.6-git.orig/include/acpi/actypes.h
> +++ 2.6-git/include/acpi/actypes.h
> @@ -348,6 +348,7 @@ struct acpi_pointer {
> * Mescellaneous types
> */
> typedef u32 acpi_status; /* All ACPI Exceptions */
> +#define acpi_status acpi_status
> typedef u32 acpi_name; /* 4-byte ACPI name */
> typedef char *acpi_string; /* Null terminated ASCII string */
> typedef void *acpi_handle; /* Actually a ptr to a NS Node */

The following in include/linux/pci-acpi.h is ugly

#if !defined(acpi_status)
typedef u32 acpi_status;
#define AE_ERROR (acpi_status) (0x0001)
#endif

but you're adding more of it.

2006-05-08 19:32:16

by Kristen Carlson Accardi

[permalink] [raw]
Subject: Re: [patch] fix pciehp compile issue when CONFIG_ACPI is not enabled.

On Mon, 2006-05-08 at 23:24 +0400, Alexey Dobriyan wrote:
> On Mon, May 08, 2006 at 11:54:30AM -0700, Kristen Accardi wrote:
> > Fix compile error when CONFIG_ACPI is not defined.
>
> > --- 2.6-git.orig/include/acpi/actypes.h
> > +++ 2.6-git/include/acpi/actypes.h
> > @@ -348,6 +348,7 @@ struct acpi_pointer {
> > * Mescellaneous types
> > */
> > typedef u32 acpi_status; /* All ACPI Exceptions */
> > +#define acpi_status acpi_status
> > typedef u32 acpi_name; /* 4-byte ACPI name */
> > typedef char *acpi_string; /* Null terminated ASCII string */
> > typedef void *acpi_handle; /* Actually a ptr to a NS Node */
>
> The following in include/linux/pci-acpi.h is ugly
>
> #if !defined(acpi_status)
> typedef u32 acpi_status;
> #define AE_ERROR (acpi_status) (0x0001)
> #endif
>
> but you're adding more of it.

The actual solution to the problem is long. acpi_status should not be
used outside of acpi-ca. However, it is. In many, many places. The
real solution is to go around and re-write all the apis that export
acpi_status to drivers, and then fix all the drivers which rely on
acpi_status (and other acpi-caisms ). This fix, while ugly, solves the
immediate problem in an expedient way. However, I'm certainly open to
suggestions about nicer ways to do it.

2006-05-08 20:13:21

by Kristen Carlson Accardi

[permalink] [raw]
Subject: Re: [patch] fix pciehp compile issue when CONFIG_ACPI is not enabled.

Fix build error when CONFIG_ACPI not defined

Signed-off-by: Kristen Carlson Accardi <[email protected]>

---
Here's an alternate way to solve this problem - also easy, that may look
nicer. (thanks arjan).

include/linux/pci-acpi.h | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

--- 2.6-git.orig/include/linux/pci-acpi.h
+++ 2.6-git/include/linux/pci-acpi.h
@@ -50,7 +50,7 @@
extern acpi_status pci_osc_control_set(acpi_handle handle, u32 flags);
extern acpi_status pci_osc_support_set(u32 flags);
#else
-#if !defined(acpi_status)
+#if !defined(AE_ERROR)
typedef u32 acpi_status;
#define AE_ERROR (acpi_status) (0x0001)
#endif