Message ID | 1543216969-2227-2-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | New |
Headers | show |
Series | [1/2] kconfig: fix reverse dependency with tristate if-conditional | expand |
Hi Masahiro, I love your patch! Yet something to improve: [auto build test ERROR on masahiroy/kconfig] [also build test ERROR on v4.20-rc4 next-20181126] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kconfig-fix-reverse-dependency-with-tristate-if-conditional/20181126-152716 base: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kconfig config: x86_64-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y >> drivers/input/mouse/synaptics.c:1754:16: error: undefined identifier 'psmouse_smbus_init' drivers/input/mouse/synaptics.c: In function 'synaptics_create_intertouch': drivers/input/mouse/synaptics.c:1754:9: error: implicit declaration of function 'psmouse_smbus_init'; did you mean 'psmouse_smbus_cleanup'? [-Werror=implicit-function-declaration] return psmouse_smbus_init(psmouse, &intertouch_board, ^~~~~~~~~~~~~~~~~~ psmouse_smbus_cleanup cc1: some warnings being treated as errors -- >> drivers/input/mouse/elantech.c:1786:16: error: undefined identifier 'psmouse_smbus_init' include/linux/slab.h:332:43: warning: dubious: x & !y drivers/input/mouse/elantech.c: In function 'elantech_create_smbus': drivers/input/mouse/elantech.c:1786:9: error: implicit declaration of function 'psmouse_smbus_init'; did you mean 'psmouse_smbus_cleanup'? [-Werror=implicit-function-declaration] return psmouse_smbus_init(psmouse, &smbus_board, NULL, 0, false, ^~~~~~~~~~~~~~~~~~ psmouse_smbus_cleanup cc1: some warnings being treated as errors -- sound/soc/intel/skylake/skl-topology.c:2474:39: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2478:41: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2478:41: expected unsigned int [unsigned] [usertype] instance_id sound/soc/intel/skylake/skl-topology.c:2478:41: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2493:34: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2493:34: expected unsigned int [unsigned] [usertype] vbus_id sound/soc/intel/skylake/skl-topology.c:2493:34: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2497:39: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2497:39: expected unsigned int [unsigned] [usertype] params_fixup sound/soc/intel/skylake/skl-topology.c:2497:39: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2501:36: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2501:36: expected unsigned int [unsigned] [usertype] converter sound/soc/intel/skylake/skl-topology.c:2501:36: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2505:36: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2505:36: expected unsigned int enum d0i3_capability [unsigned] d0i3_caps sound/soc/intel/skylake/skl-topology.c:2505:36: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2523:26: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2523:26: expected int static [signed] conf_idx sound/soc/intel/skylake/skl-topology.c:2523:26: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2534:49: warning: incorrect type in argument 3 (different base types) sound/soc/intel/skylake/skl-topology.c:2534:49: expected unsigned int [unsigned] [usertype] tkn sound/soc/intel/skylake/skl-topology.c:2534:49: got restricted __le32 [usertype] token sound/soc/intel/skylake/skl-topology.c:2534:66: warning: incorrect type in argument 4 (different base types) sound/soc/intel/skylake/skl-topology.c:2534:66: expected unsigned int [unsigned] [usertype] tkn_val sound/soc/intel/skylake/skl-topology.c:2534:66: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2547:49: warning: incorrect type in argument 3 (different base types) sound/soc/intel/skylake/skl-topology.c:2547:49: expected unsigned int [unsigned] [usertype] tkn sound/soc/intel/skylake/skl-topology.c:2547:49: got restricted __le32 [usertype] token sound/soc/intel/skylake/skl-topology.c:2547:66: warning: incorrect type in argument 4 (different base types) sound/soc/intel/skylake/skl-topology.c:2547:66: expected unsigned int [unsigned] [usertype] tkn_val sound/soc/intel/skylake/skl-topology.c:2547:66: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2555:52: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2555:52: expected unsigned char [unsigned] [usertype] res_idx sound/soc/intel/skylake/skl-topology.c:2555:52: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2559:52: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2559:52: expected unsigned char [unsigned] [usertype] fmt_idx sound/soc/intel/skylake/skl-topology.c:2559:52: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2568:31: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2569:38: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2582:68: warning: incorrect type in argument 3 (different base types) sound/soc/intel/skylake/skl-topology.c:2582:68: expected unsigned int [unsigned] [usertype] tkn sound/soc/intel/skylake/skl-topology.c:2582:68: got restricted __le32 [usertype] token sound/soc/intel/skylake/skl-topology.c:2583:41: warning: incorrect type in argument 4 (different base types) sound/soc/intel/skylake/skl-topology.c:2583:41: expected unsigned int [unsigned] [usertype] val sound/soc/intel/skylake/skl-topology.c:2583:41: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2602:51: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2602:51: expected unsigned int [unsigned] [usertype] caps_size sound/soc/intel/skylake/skl-topology.c:2602:51: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2608:52: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2608:52: expected unsigned int [unsigned] [usertype] set_params sound/soc/intel/skylake/skl-topology.c:2608:52: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2613:50: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2613:50: expected unsigned int [unsigned] [usertype] param_id sound/soc/intel/skylake/skl-topology.c:2613:50: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2618:33: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2618:33: expected unsigned char [unsigned] [usertype] domain sound/soc/intel/skylake/skl-topology.c:2618:33: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2624:42: warning: incorrect type in assignment (different base types) sound/soc/intel/skylake/skl-topology.c:2624:42: expected unsigned int [unsigned] [usertype] dma_buffer_size sound/soc/intel/skylake/skl-topology.c:2624:42: got restricted __le32 [usertype] value sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: restricted __le32 degrades to integer sound/soc/intel/skylake/skl-topology.c:2422:25: warning: too many warnings >> sound/soc/intel/skylake/skl-topology.c:3075:15: error: undefined identifier 'snd_soc_tplg_widget_bind_event' >> sound/soc/intel/skylake/skl-topology.c:3740:15: error: undefined identifier 'snd_soc_tplg_component_load' sound/soc/intel/skylake/skl-topology.c: In function 'skl_tplg_widget_load': sound/soc/intel/skylake/skl-topology.c:3075:8: error: implicit declaration of function 'snd_soc_tplg_widget_bind_event'; did you mean 'snd_soc_dapm_get_bias_level'? [-Werror=implicit-function-declaration] ret = snd_soc_tplg_widget_bind_event(w, skl_tplg_widget_ops, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ snd_soc_dapm_get_bias_level sound/soc/intel/skylake/skl-topology.c: In function 'skl_tplg_init': sound/soc/intel/skylake/skl-topology.c:3740:8: error: implicit declaration of function 'snd_soc_tplg_component_load'; did you mean 'snd_soc_tplg_component_remove'? [-Werror=implicit-function-declaration] ret = snd_soc_tplg_component_load(component, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ snd_soc_tplg_component_remove cc1: some warnings being treated as errors -- >> drivers/char/tpm/tpm_ibmvtpm.c:21:11: error: unable to open 'asm/vio.h' -- >> sound/soc/codecs/ac97.c:76:58: error: undefined identifier 'soc_ac97_ops' sound/soc/codecs/ac97.c: In function 'ac97_soc_probe': sound/soc/codecs/ac97.c:76:51: error: 'soc_ac97_ops' undeclared (first use in this function); did you mean 'snd_ac97_bus'? ret = snd_ac97_bus(component->card->snd_card, 0, soc_ac97_ops, ^~~~~~~~~~~~ snd_ac97_bus sound/soc/codecs/ac97.c:76:51: note: each undeclared identifier is reported only once for each function it appears in -- >> sound/pci/hda/hda_intel.c:184:25: error: undefined identifier 'CONFIG_SND_HDA_POWER_SAVE_DEFAULT' include/linux/slab.h:332:43: warning: dubious: x & !y sound/pci/hda/hda_intel.c:184:25: error: 'CONFIG_SND_HDA_POWER_SAVE_DEFAULT' undeclared here (not in a function); did you mean 'CONFIG_SND_SEQ_HRTIMER_DEFAULT'? static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG_SND_SEQ_HRTIMER_DEFAULT -- arch/x86/kernel/devicetree.c:27:16: warning: symbol 'initial_dtb' was not declared. Should it be static? arch/x86/kernel/devicetree.c:28:17: warning: symbol 'cmd_line' was not declared. Should it be static? arch/x86/kernel/devicetree.c:30:16: warning: symbol 'of_ioapic' was not declared. Should it be static? arch/x86/kernel/devicetree.c:32:13: warning: symbol 'early_init_dt_scan_chosen_arch' was not declared. Should it be static? >> arch/x86/kernel/devicetree.c:37:13: warning: symbol 'early_init_dt_add_memory_arch' was not declared. Should it be static? arch/x86/kernel/devicetree.c:42:13: warning: symbol 'add_dtb' was not declared. Should it be static? arch/x86/kernel/devicetree.c:108:6: warning: symbol 'x86_of_pci_init' was not declared. Should it be static? arch/x86/kernel/devicetree.c:314:13: warning: symbol 'x86_dtb_init' was not declared. Should it be static? vim +/psmouse_smbus_init +1754 drivers/input/mouse/synaptics.c e839ffab Benjamin Tissoires 2017-03-02 1728 e839ffab Benjamin Tissoires 2017-03-02 1729 static int synaptics_create_intertouch(struct psmouse *psmouse, e839ffab Benjamin Tissoires 2017-03-02 1730 struct synaptics_device_info *info, e839ffab Benjamin Tissoires 2017-03-02 1731 bool leave_breadcrumbs) e839ffab Benjamin Tissoires 2017-03-02 1732 { e839ffab Benjamin Tissoires 2017-03-02 1733 bool topbuttonpad = e839ffab Benjamin Tissoires 2017-03-02 1734 psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) && e839ffab Benjamin Tissoires 2017-03-02 1735 !SYN_CAP_EXT_BUTTONS_STICK(info->ext_cap_10); e839ffab Benjamin Tissoires 2017-03-02 1736 const struct rmi_device_platform_data pdata = { e839ffab Benjamin Tissoires 2017-03-02 1737 .sensor_pdata = { e839ffab Benjamin Tissoires 2017-03-02 1738 .sensor_type = rmi_sensor_touchpad, e839ffab Benjamin Tissoires 2017-03-02 1739 .axis_align.flip_y = true, 2b30297d Andrew Duggan 2017-10-09 1740 .kernel_tracking = false, e839ffab Benjamin Tissoires 2017-03-02 1741 .topbuttonpad = topbuttonpad, e839ffab Benjamin Tissoires 2017-03-02 1742 }, e839ffab Benjamin Tissoires 2017-03-02 1743 .f30_data = { e839ffab Benjamin Tissoires 2017-03-02 1744 .buttonpad = SYN_CAP_CLICKPAD(info->ext_cap_0c), e839ffab Benjamin Tissoires 2017-03-02 1745 .trackstick_buttons = e839ffab Benjamin Tissoires 2017-03-02 1746 !!SYN_CAP_EXT_BUTTONS_STICK(info->ext_cap_10), e839ffab Benjamin Tissoires 2017-03-02 1747 }, e839ffab Benjamin Tissoires 2017-03-02 1748 }; e839ffab Benjamin Tissoires 2017-03-02 1749 const struct i2c_board_info intertouch_board = { e839ffab Benjamin Tissoires 2017-03-02 1750 I2C_BOARD_INFO("rmi4_smbus", 0x2c), e839ffab Benjamin Tissoires 2017-03-02 1751 .flags = I2C_CLIENT_HOST_NOTIFY, e839ffab Benjamin Tissoires 2017-03-02 1752 }; e839ffab Benjamin Tissoires 2017-03-02 1753 e839ffab Benjamin Tissoires 2017-03-02 @1754 return psmouse_smbus_init(psmouse, &intertouch_board, bf232e46 Benjamin Tissoires 2018-05-22 1755 &pdata, sizeof(pdata), true, e839ffab Benjamin Tissoires 2017-03-02 1756 leave_breadcrumbs); e839ffab Benjamin Tissoires 2017-03-02 1757 } e839ffab Benjamin Tissoires 2017-03-02 1758 :::::: The code at line 1754 was first introduced by commit :::::: e839ffab028981ac77f650faf8c84f16e1719738 Input: synaptics - add support for Intertouch devices :::::: TO: Benjamin Tissoires <benjamin.tissoires@redhat.com> :::::: CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/scripts/kconfig/tests/revdep_with_tristate_if/Kconfig b/scripts/kconfig/tests/revdep_with_tristate_if/Kconfig new file mode 100644 index 0000000..2bd1141 --- /dev/null +++ b/scripts/kconfig/tests/revdep_with_tristate_if/Kconfig @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: GPL-2.0 + +config MODULES + def_bool y + option modules + +config A + tristate + +config B + tristate "b" + default y + select A if C + imply D if C + +config C + tristate "c" + default m + +config D + tristate "d" diff --git a/scripts/kconfig/tests/revdep_with_tristate_if/__init__.py b/scripts/kconfig/tests/revdep_with_tristate_if/__init__.py new file mode 100644 index 0000000..ad95cec --- /dev/null +++ b/scripts/kconfig/tests/revdep_with_tristate_if/__init__.py @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: GPL-2.0 +""" +select/imply property with tristate if-conditional + +The reverse dependencies (select/imply) are used to define a lower limit +of another symbol. The current value of the selector is set to the lower +limit of the selectee. This did not handled correctly in the past when the +property has a tristate if-conditional. +""" + + +def test(conf): + assert conf.alldefconfig() == 0 + assert conf.config_matches('expected_config') diff --git a/scripts/kconfig/tests/revdep_with_tristate_if/expected_config b/scripts/kconfig/tests/revdep_with_tristate_if/expected_config new file mode 100644 index 0000000..9826223 --- /dev/null +++ b/scripts/kconfig/tests/revdep_with_tristate_if/expected_config @@ -0,0 +1,9 @@ +# +# Automatically generated file; DO NOT EDIT. +# Main menu +# +CONFIG_MODULES=y +CONFIG_A=y +CONFIG_B=y +CONFIG_C=m +CONFIG_D=y
Add a test-case for the fixed reverse dependency handling. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- .../kconfig/tests/revdep_with_tristate_if/Kconfig | 21 +++++++++++++++++++++ .../tests/revdep_with_tristate_if/__init__.py | 14 ++++++++++++++ .../tests/revdep_with_tristate_if/expected_config | 9 +++++++++ 3 files changed, 44 insertions(+) create mode 100644 scripts/kconfig/tests/revdep_with_tristate_if/Kconfig create mode 100644 scripts/kconfig/tests/revdep_with_tristate_if/__init__.py create mode 100644 scripts/kconfig/tests/revdep_with_tristate_if/expected_config -- 2.7.4