Commit 6abd4577 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Marc Kleine-Budde
Browse files

can: fix build dependency



A recent bugfix introduced a new problem with Kconfig dependencies:

WARNING: unmet direct dependencies detected for CAN_DEV
  Depends on [n]: NETDEVICES [=n] && CAN [=m]
  Selected by [m]:
  - CAN [=m] && NET [=y]

Since the CAN core code now links into the CAN device code, that
particular function needs to be available, though the rest of it
does not.

Revert the incomplete fix and instead use Makefile logic to avoid
the link failure.

Fixes: cb2dc6d2 ("can: Kconfig: select CAN driver infrastructure by default")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202512091523.zty3CLmc-lkp@intel.com/


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Tested-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
Acked-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
Link: https://patch.msgid.link/20251204100015.1033688-1-arnd@kernel.org


[mkl: removed module option from CAN_DEV help text (thanks Vincent)]
[mkl: removed '&& CAN' from Kconfig dependency (thanks Vincent)]
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 186468c6
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only

menuconfig CAN_DEV
	tristate "CAN Device Drivers"
	bool "CAN Device Drivers"
	default y
	depends on CAN
	help
@@ -17,9 +17,6 @@ menuconfig CAN_DEV
	  virtual ones. If you own such devices or plan to use the virtual CAN
	  interfaces to develop applications, say Y here.

	  To compile as a module, choose M here: the module will be called
	  can-dev.

if CAN_DEV

config CAN_VCAN
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ obj-$(CONFIG_CAN_VCAN) += vcan.o
obj-$(CONFIG_CAN_VXCAN)		+= vxcan.o
obj-$(CONFIG_CAN_SLCAN)		+= slcan/

obj-y				+= dev/
obj-$(CONFIG_CAN_DEV)		+= dev/
obj-y				+= esd/
obj-y				+= rcar/
obj-y				+= rockchip/
+2 −3
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0

obj-$(CONFIG_CAN_DEV) += can-dev.o

can-dev-y += skb.o
obj-$(CONFIG_CAN) += can-dev.o

can-dev-$(CONFIG_CAN_DEV) += skb.o
can-dev-$(CONFIG_CAN_CALC_BITTIMING) += calc_bittiming.o
can-dev-$(CONFIG_CAN_NETLINK) += bittiming.o
can-dev-$(CONFIG_CAN_NETLINK) += dev.o
+0 −1
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@

menuconfig CAN
	tristate "CAN bus subsystem support"
	select CAN_DEV
	help
	  Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
	  communications protocol. Development of the CAN bus started in