Paul Bolle <pebolle@xxxxxxxxxx> writes: > 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 ++ > >> --- /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? My mistake, I think I fancied the policy to be a separate module in the beginning. But I don't see why STM shouldn't be a tristate after the above is fixed. Thanks, -- Alex -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html