On Tue, Mar 06, 2018 at 05:52:57PM -0800, Darren Hart wrote: > On Tue, Mar 06, 2018 at 05:53:16AM +0000, Mario.Limonciello@xxxxxxxx wrote: > > Darren, > > > > I looked through this and I think this is caused by dell-smbios-smm > > no longer being mandated as it's own module but dcdbas being > > allowed to be a module. > > > > The config that was selected had dcdbas as a module and dell-smbios > > compiled in. That particular configuration should be prevented > > > > This is a weird corner case, I had to dig up the syntax: > > config DELL_SMBIOS > depends on DCDBAS || DCDBAS=n > > Is what we want. BUT. We only want that if DELL_SMBIOS_SMM, which > unforunately causes a circular dependency (sort of, but it complains, so > it won't fly) > > I'm working on this between conference sessions. Will report back when I > sort it out. OK, this takes advantage of "select" not doing dependency checking to avoid the recursion. Yuuuuuuck, but it works. >From fe0c6c32fe4616343af8799f0d3c86d7b12d21a6 Mon Sep 17 00:00:00 2001 Message-Id: <fe0c6c32fe4616343af8799f0d3c86d7b12d21a6.1520388937.git.dvhart@xxxxxxxxxxxxx> From: "Darren Hart (VMware)" <dvhart@xxxxxxxxxxxxx> Date: Tue, 6 Mar 2018 18:01:04 -0800 Subject: [PATCH] platform/x86: dell-smbios: Resolve dependency error on DCDBAS When the DELL_SMBIOS_SMM backend is enabled, the DELL_SMBIOS symbol needs to depend on DELL_DCDBAS - and specifically avoid the situation where DELL_SMBIOS=y and DCDBAS=m. The intermediary DELL_SMBIOS_USING_DCDBAS avoids what would otherwise be reported as a recursive dependency between DELL_SMBIOS and DELL_SMBIOS_SMM (thanks to Steven Rostedt for the idea). Cc: Mario.Limonciello@xxxxxxxx Signed-off-by: Darren Hart (VMware) <dvhart@xxxxxxxxxxxxx> --- drivers/platform/x86/Kconfig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index 022c837..0b3d330 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig @@ -107,12 +107,21 @@ config ASUS_LAPTOP config DELL_SMBIOS tristate "Dell SMBIOS driver" + depends on !DELL_SMBIOS_USING_DCDBAS || (DCDBAS || DCDBAS=n) ---help--- This provides support for the Dell SMBIOS calling interface. If you have a Dell computer you should enable this option. Be sure to select at least one backend for it to work properly. +# +# This decouples what would otherwise be a recursive dependency between +# DELL_SMBIOS and DELL_SMBIOS_SMM. If DELL_SMBIOS_SMM is selected, then +# DELL_SMBIOS needs to depend on DCDBAS. +# +config DELL_SMBIOS_USING_DCDBAS + bool + config DELL_SMBIOS_WMI bool "Dell SMBIOS driver WMI backend" default y @@ -132,6 +141,7 @@ config DELL_SMBIOS_SMM default y depends on DCDBAS depends on DELL_SMBIOS + select DELL_SMBIOS_USING_DCDBAS ---help--- This provides an implementation for the Dell SMBIOS calling interface communicated over SMI/SMM. -- 2.9.5 -- Darren Hart VMware Open Source Technology Center