[PATCH] EDAC, skx: Better fix for randconfig builds

From: Luck, Tony
Date: Tue Nov 06 2018 - 13:39:17 EST


On Tue, Nov 06, 2018 at 03:32:53PM +0100, Borislav Petkov wrote:
> On Tue, Nov 06, 2018 at 02:44:42PM +0100, Arnd Bergmann wrote:
> > No, it was unintentional, the 'if ACPI' can be dropped when we add
> > 'depends on ACPI'.
>
> So I have one fix already which takes care of non-sensical configs. If
> you or Tony wanna make it prettier, feel free to test it thoroughly and
> send me a patch ontop of
>
> https://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git/log/?h=for-next
>


It was previously noted that Kconfig complained about unmet
dependencies when trying to configure skx_edac together with
CONFIG_ACPI=n. First fix for this checked for ACPI when doing

select ACPI_ADXL

but this required stub functions for the case where ACPI wasn't
selected. It also allowed building a driver that didn't actually
work for a system that has non-volatile DIMMs.

Arnd Bergmann pointed out that the right fix is to make EDAC_SKX
"depend on ACPI".

Fixes: a324e9396ca3 ("EDAC, skx: Fix randconfig builds")
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
---
drivers/edac/Kconfig | 4 ++--
include/linux/adxl.h | 5 -----
2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
index ec2727b27556..e286b5b99003 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -231,10 +231,10 @@ config EDAC_SBRIDGE

config EDAC_SKX
tristate "Intel Skylake server Integrated MC"
- depends on PCI && X86_64 && X86_MCE_INTEL && PCI_MMCONFIG
+ depends on PCI && X86_64 && X86_MCE_INTEL && PCI_MMCONFIG && ACPI
depends on ACPI_NFIT || !ACPI_NFIT # if ACPI_NFIT=m, EDAC_SKX can't be y
select DMI
- select ACPI_ADXL if ACPI
+ select ACPI_ADXL
help
Support for error detection and correction the Intel
Skylake server Integrated Memory Controllers. If your
diff --git a/include/linux/adxl.h b/include/linux/adxl.h
index 2d29f55923e3..2a629acb4c3f 100644
--- a/include/linux/adxl.h
+++ b/include/linux/adxl.h
@@ -7,12 +7,7 @@
#ifndef _LINUX_ADXL_H
#define _LINUX_ADXL_H

-#ifdef CONFIG_ACPI_ADXL
const char * const *adxl_get_component_names(void);
int adxl_decode(u64 addr, u64 component_values[]);
-#else
-static inline const char * const *adxl_get_component_names(void) { return NULL; }
-static inline int adxl_decode(u64 addr, u64 component_values[]) { return -EOPNOTSUPP; }
-#endif

#endif /* _LINUX_ADXL_H */
--
2.19.1