On 02/02/2016 09:13 AM, Tony Camuso wrote:
>
> I'm looking for a best practices solution for the following.
>
> Commit 0fbcf4af7c introduces a problem when compiling ipmi/ipmi_si_intf.c
> for platforms that do not have acpi support.
>

The right thing to do is to move linux/acpi.h to the top of the file, 
your second patch.
The point of ACPI_PTR is to avoid the ifdef.

If you would like to send me a clean git patch, I'll get it in.  If you 
need it ported to
previous versions, do the cc stable thing.

Thanks,

-corey

> The offending code is here ...
>
> 2822 static struct platform_driver ipmi_driver = {
> 2823         .driver = {
> 2824                 .name = DEVICE_NAME,
> 2825                 .of_match_table = of_ipmi_match,
> 2826                 .acpi_match_table = ACPI_PTR(acpi_ipmi_match),
>                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 2827         },
> 2828         .probe          = ipmi_probe,
> 2829         .remove         = ipmi_remove,
> 2830 };
>
> Compile succeeds if line 2826 is conditionally compiled with
> CONFIG_ACPI.
>
> Suggested patch for that would be ....
>
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c 
> b/drivers/char/ipmi/ipmi_si_intf.c
> index 73e6b2a..f4a1099 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -2814,7 +2814,9 @@ static struct platform_driver ipmi_driver = {
>         .driver = {
>                 .name = DEVICE_NAME,
>                 .of_match_table = of_ipmi_match,
> +#ifdef CONFIG_ACPI
>                 .acpi_match_table = ACPI_PTR(acpi_ipmi_match),
> +#endif
>         },
>         .probe          = ipmi_probe,
>         .remove         = ipmi_remove,
> ---
>
>
> Alternatively, we could move #include <linux/acpi.h> out of the
> conditional CONFIG_ACPI compile, here ....
>
> 2055 #ifdef CONFIG_ACPI
> 2056
> 2057 #include <linux/acpi.h>
> 2058
>
> acpi.h already contains conditional compile directives for CONFIG_ACPI,
> so it could be considered redundant to conditionally compile the
> whole header.
>
> Suggested patch for that would be ....
>
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c 
> b/drivers/char/ipmi/ipmi_si_intf.c
> index f4a1099..7e9807d 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -68,6 +68,7 @@
>  #include <linux/of_platform.h>
>  #include <linux/of_address.h>
>  #include <linux/of_irq.h>
> +#[email protected] <linux/acpi.h>
>
>  #define PFX "ipmi_si: "
>
> @@ -2048,8 +2049,6 @@ static int hardcode_find_bmc(void)
>
>  #ifdef CONFIG_ACPI
>
> -#include <linux/acpi.h>
> -
>  /*
>   * Once we get an ACPI failure, we don't try any more, because we go
>   * through the tables sequentially.  Once we don't find a table, there
>
>
>
>


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to