kmax
kmax copied to clipboard
Examples of tristate config option usage that could cause unmet dependencies not detected by kismet
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