kmax icon indicating copy to clipboard operation
kmax copied to clipboard

Examples of tristate config option usage that could cause unmet dependencies not detected by kismet

Open julianbraha opened this issue 3 years ago • 0 comments

In linux/drivers/pinctrl/qcom/Kconfig:

config PINCTRL_MSM
 	tristate "Qualcomm core pin controller driver"
	depends on QCOM_SCM || !QCOM_SCM #if QCOM_SCM=m this can't be =y
 	select PINMUX
 	select PINCONF
 	select GENERIC_PINCONF

Similar usage appears throughout the kernel:

net/wireless/Kconfig: depends on RFKILL || !RFKILL net/nfc/Kconfig: depends on RFKILL || !RFKILL net/rds/Kconfig: depends on IPV6 || !IPV6 net/bluetooth/Kconfig: depends on RFKILL || !RFKILL net/netfilter/Kconfig: depends on IP6_NF_IPTABLES || !IP6_NF_IPTABLES drivers/rtc/Kconfig: depends on MFD_ROHM_BD71828 || MFD_ROHM_BD70528 && (BD70528_WATCHDOG || !BD70528_WATCHDOG) drivers/edac/Kconfig: depends on ACPI_NFIT || !ACPI_NFIT drivers/usb/renesas_usbhs/Kconfig: depends on EXTCON || !EXTCON drivers/usb/typec/Kconfig: depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH drivers/usb/typec/ucsi/Kconfig: depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH drivers/usb/typec/tcpm/Kconfig: depends on EXTCON || !EXTCON drivers/usb/phy/Kconfig: depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y' drivers/usb/mtu3/Kconfig: depends on EXTCON || !EXTCON drivers/usb/musb/Kconfig: depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY drivers/usb/dwc2/Kconfig: depends on USB_GADGET || !USB_GADGET drivers/usb/dwc3/Kconfig: depends on EXTCON || !EXTCON drivers/usb/host/Kconfig: depends on USB_XHCI_PCI_RENESAS || !USB_XHCI_PCI_RENESAS drivers/phy/renesas/Kconfig: depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in drivers/phy/ti/Kconfig: depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't 'y' drivers/phy/qualcomm/Kconfig: depends on NVMEM || !NVMEM drivers/gpu/drm/Kconfig: depends on AGP || !AGP drivers/gpu/drm/bridge/Kconfig: depends on RC_CORE || !RC_CORE drivers/gpu/ipu-v3/Kconfig: depends on DRM || !DRM # if DRM=m, this can't be 'y' drivers/scsi/cxgbi/cxgb4i/Kconfig: depends on THERMAL || !THERMAL drivers/scsi/qla2xxx/Kconfig: depends on NVME_FC || !NVME_FC drivers/power/supply/Kconfig: depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y' drivers/power/supply/Kconfig: depends on EXTCON || !EXTCON drivers/net/ethernet/mellanox/mlx5/core/Kconfig: depends on VXLAN || !VXLAN drivers/net/ethernet/mellanox/mlx5/core/Kconfig: depends on MLXFW || !MLXFW drivers/net/ethernet/mellanox/mlx5/core/Kconfig: depends on PTP_1588_CLOCK || !PTP_1588_CLOCK drivers/net/ethernet/mellanox/mlx5/core/Kconfig: depends on PCI_HYPERV_INTERFACE || !PCI_HYPERV_INTERFACE drivers/net/ethernet/mediatek/Kconfig: depends on NET_DSA || !NET_DSA drivers/net/ethernet/broadcom/Kconfig: depends on NET_DSA || !NET_DSA drivers/net/ethernet/ti/Kconfig: depends on TI_CPTS || !TI_CPTS drivers/net/ethernet/ti/Kconfig: depends on TI_K3_AM65_CPTS || !TI_K3_AM65_CPTS drivers/net/dsa/b53/Kconfig: depends on B53_SERDES || !B53_SERDES drivers/net/Kconfig: depends on IPV6 || !IPV6 drivers/net/Kconfig: depends on IPV6 || !IPV6 drivers/leds/flash/Kconfig: depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS drivers/leds/Kconfig: depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS drivers/leds/Kconfig: depends on LEDS_CLASS_MULTICOLOR || !LEDS_CLASS_MULTICOLOR drivers/leds/Kconfig: depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS drivers/soc/qcom/Kconfig: depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) drivers/pinctrl/qcom/Kconfig: depends on GPIOLIB && (QCOM_SCM || !QCOM_SCM) #if QCOM_SCM=m this can't be =y drivers/staging/wfx/Kconfig: depends on MMC || !MMC # do not allow WFX=y if MMC=m drivers/thermal/Kconfig: depends on NVMEM || !NVMEM drivers/bluetooth/Kconfig: depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS drivers/bluetooth/Kconfig: depends on NVMEM || !NVMEM drivers/media/usb/dvb-usb/Kconfig: depends on DVB_DIB3000MC || !DVB_DIB3000MC drivers/media/platform/Kconfig: depends on VIDEO_MEDIATEK_VPU || !VIDEO_MEDIATEK_VPU drivers/media/platform/Kconfig: depends on MTK_SCP || !MTK_SCP drivers/i2c/busses/Kconfig: depends on (ACPI && COMMON_CLK) || !ACPI drivers/watchdog/Kconfig: depends on NVMEM || !NVMEM drivers/watchdog/Kconfig: depends on MFD_INTEL_PMC_BXT || !MFD_INTEL_PMC_BXT drivers/vhost/Kconfig: depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) drivers/ata/Kconfig: depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON drivers/infiniband/hw/i40iw/Kconfig: depends on IPV6 || !IPV6 lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519 lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA lib/crypto/Kconfig: depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 Documentation/driver-api/rfkill.rst: depends on RFKILL || !RFKILL

julianbraha avatar May 01 '21 00:05 julianbraha