On Mon, Apr 09, 2018 at 09:55:17AM +0200, Tobias Regnery wrote: > The ucsi driver defines several tracepoints, but the header file with the > tracepoint definition trace.h is only conditionally built depending on > CONFIG_FTRACE.
You mean trace.c, right? The definitions are indeed in the header, trace.h, so I'm a bit confused what is actually the problem? > This leads to the following build error with CONFIG_FTRACE=n and > CONFIG_TYPEC_UCSI=m: That alone should not cause any problems. > ERROR: "__tracepoint_ucsi_command" [drivers/usb/typec/ucsi/typec_ucsi.ko] > undefined! > ERROR: "__tracepoint_ucsi_register_port" > [drivers/usb/typec/ucsi/typec_ucsi.ko] undefined! > ERROR: "__tracepoint_ucsi_notify" [drivers/usb/typec/ucsi/typec_ucsi.ko] > undefined! > ERROR: "__tracepoint_ucsi_reset_ppm" [drivers/usb/typec/ucsi/typec_ucsi.ko] > undefined! > ERROR: "__tracepoint_ucsi_run_command" [drivers/usb/typec/ucsi/typec_ucsi.ko] > undefined! > ERROR: "__tracepoint_ucsi_ack" [drivers/usb/typec/ucsi/typec_ucsi.ko] > undefined! > ERROR: "__tracepoint_ucsi_connector_change" > [drivers/usb/typec/ucsi/typec_ucsi.ko] undefined! > > With CONFIG_TYPEC_UCSI=y the build fails with several link errors. > > Fix this by changing the Makefile to unconditionally build trace.o. > Tracepints are a runtime contruct and no other user of tracepoints depends > on CONFIG_FTRACE. > > Fixes: c1b0bc2dabfa ("usb: typec: Add support for UCSI interface") > Signed-off-by: Tobias Regnery <tobias.regn...@gmail.com> > --- > drivers/usb/typec/ucsi/Makefile | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/Makefile b/drivers/usb/typec/ucsi/Makefile > index b57891c1fd31..971befbbc2a8 100644 > --- a/drivers/usb/typec/ucsi/Makefile > +++ b/drivers/usb/typec/ucsi/Makefile > @@ -3,8 +3,6 @@ CFLAGS_trace.o := -I$(src) > > obj-$(CONFIG_TYPEC_UCSI) += typec_ucsi.o > > -typec_ucsi-y := ucsi.o > - > -typec_ucsi-$(CONFIG_FTRACE) += trace.o > +typec_ucsi-y := ucsi.o trace.o > > obj-$(CONFIG_UCSI_ACPI) += ucsi_acpi.o I would like to understand what is the root cause for the problem you are seeing? CONFIG_FTRACE=n with CONFIG_TYPEC_UCSI=m alone compiles just fine for me. Using FTRACE as the condition here is indeed wrong, but changing that so that we unconditionally compile trace.c is also wrong. We should probable use CONFIG_TRACING instead of CONFIG_FTRACE. Can you check if that works for you? Thanks, -- heikki