stm: Mark the functions of writing STM with notrace
authorChunyan Zhang <zhang.chunyan@linaro.org>
Mon, 21 Nov 2016 07:57:23 +0000 (15:57 +0800)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 22 Nov 2016 22:48:04 +0000 (17:48 -0500)
If CONFIG_STM_SOURCE_FTRACE is selected, Function trace data can be
writen to sink via STM, all functions that related to writing data
packets to STM should be marked 'notrace' to avoid being traced by
Ftrace, otherwise the program would stall into an endless loop.

Link: http://lkml.kernel.org/r/1479715043-6534-7-git-send-email-zhang.chunyan@linaro.org
Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
Acked-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
drivers/hwtracing/stm/core.c
include/linux/stm.h

index 51f81d64ca37f963b770e05227c74cb14c90498a..37d3bcbd253457c0a15e49258dbb7a472abbfa8f 100644 (file)
@@ -425,7 +425,7 @@ static int stm_file_assign(struct stm_file *stmf, char *id, unsigned int width)
        return ret;
 }
 
-static ssize_t stm_write(struct stm_data *data, unsigned int master,
+static ssize_t notrace stm_write(struct stm_data *data, unsigned int master,
                          unsigned int channel, const char *buf, size_t count)
 {
        unsigned int flags = STP_PACKET_TIMESTAMPED;
@@ -1121,8 +1121,9 @@ void stm_source_unregister_device(struct stm_source_data *data)
 }
 EXPORT_SYMBOL_GPL(stm_source_unregister_device);
 
-int stm_source_write(struct stm_source_data *data, unsigned int chan,
-                    const char *buf, size_t count)
+int notrace stm_source_write(struct stm_source_data *data,
+                            unsigned int chan,
+                            const char *buf, size_t count)
 {
        struct stm_source_device *src = data->src;
        struct stm_device *stm;
index 8369d8a8cabd7f1e43505ac404253974ce101db0..210ff2292361a9daecdf0ac027dc3f28a9d1fbff 100644 (file)
@@ -133,7 +133,7 @@ int stm_source_register_device(struct device *parent,
                               struct stm_source_data *data);
 void stm_source_unregister_device(struct stm_source_data *data);
 
-int stm_source_write(struct stm_source_data *data, unsigned int chan,
-                    const char *buf, size_t count);
+int notrace stm_source_write(struct stm_source_data *data, unsigned int chan,
+                            const char *buf, size_t count);
 
 #endif /* _STM_H_ */