Re: [PATCH v0 01/11] stm class: Introduce an abstraction for System Trace Module devices
From: Paul Bolle <hidden>
Date: 2015-03-07 22:26:39
Also in:
lkml
On Sat, 2015-03-07 at 13:35 +0200, Alexander Shishkin wrote:
Documentation/ABI/testing/configfs-stp-policy | 44 ++
git am whined about this file when I tried to apply this patch:
Applying: stm class: Introduce an abstraction for System Trace Module devices
[...]/.git/rebase-apply/patch:77: new blank line at EOF.
Documentation/ABI/testing/sysfs-class-stm | 14 + Documentation/ABI/testing/sysfs-class-stm_source | 11 + Documentation/trace/stm.txt | 77 +++ drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/stm/Kconfig | 8 + drivers/stm/Makefile | 3 + drivers/stm/core.c | 839 +++++++++++++++++++++++ drivers/stm/policy.c | 470 +++++++++++++ drivers/stm/stm.h | 77 +++ include/linux/stm.h | 87 +++ include/uapi/linux/stm.h | 47 ++
quoted hunk ↗ jump to hunk
--- /dev/null +++ b/drivers/stm/Kconfig@@ -0,0 +1,8 @@ +config STM + tristate "System Trace Module devices" + help + A System Trace Module (STM) is a device exporting data in System + Trace Protocol (STP) format as defined by MIPI STP standards. + Examples of such devices are Intel Trace Hub and Coresight STM. + + Say Y here to enable System Trace Module device support.diff --git a/drivers/stm/Makefile b/drivers/stm/Makefile new file mode 100644 index 0000000000..adec701649 --- /dev/null +++ b/drivers/stm/Makefile@@ -0,0 +1,3 @@ +obj-$(CONFIG_STM) += stm_core.o + +stm_core-y := core.o policy.o
I tried to compile this as a module:
$ make -C ../.. M=$PWD CONFIG_STM=m stm_core.ko
make: Entering directory `[...]'
LD [M] [...]/drivers/stm/stm_core.o
[...]/drivers/stm/policy.o: In function `stp_configfs_init':
policy.c:(.text+0x5f0): multiple definition of `init_module'
[...]/drivers/stm/core.o:core.c:(.init.text+0x0): first defined here
make[1]: *** [[...]/drivers/stm/stm_core.o] Error 1
make: *** [stm_core.ko] Error 2
make: Leaving directory `[...]'
I think that's because
postcore_initcall(stm_core_init);
in core.c becomes
module_init(stm_core_init);
if this driver is compiled as a module. And that will clash with
module_init(stp_configfs_init);
in policy.c. Am I missing something obvious or should STM not be a
tristate symbol?
Paul Bolle