aboutsummaryrefslogtreecommitdiffstats
path: root/fs/pstore
diff options
context:
space:
mode:
authorAnton Vorontsov <anton.vorontsov@linaro.org>2012-07-17 22:49:37 -0400
committerAnton Vorontsov <anton.vorontsov@linaro.org>2012-08-04 19:16:47 -0400
commit242030365eacb649161023a3a024373198c34d59 (patch)
tree7606527669a61be1162f9f99218f550b85c589e3 /fs/pstore
parent0427193b691edc81c846c7d0ebd2561cae8709d8 (diff)
pstore/ram: Mark ramoops_pstore_write_buf() as notrace
write_buf() should be marked as notrace, otherwise it is prone to recursion. Though, yet the issue is never triggered in real life, because we run inside the function tracer, where ftrace does its own recurse protection. But it's still no good, plus soon we might switch to our own tracer ops, and then the issue will be fatal. So, let's fix it. Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Diffstat (limited to 'fs/pstore')
-rw-r--r--fs/pstore/ram.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index fba8c7256929..91016049e551 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -32,6 +32,7 @@
32#include <linux/ioport.h> 32#include <linux/ioport.h>
33#include <linux/platform_device.h> 33#include <linux/platform_device.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/compiler.h>
35#include <linux/pstore_ram.h> 36#include <linux/pstore_ram.h>
36 37
37#define RAMOOPS_KERNMSG_HDR "====" 38#define RAMOOPS_KERNMSG_HDR "===="
@@ -181,12 +182,11 @@ static size_t ramoops_write_kmsg_hdr(struct persistent_ram_zone *prz)
181 return len; 182 return len;
182} 183}
183 184
184 185static int notrace ramoops_pstore_write_buf(enum pstore_type_id type,
185static int ramoops_pstore_write_buf(enum pstore_type_id type, 186 enum kmsg_dump_reason reason,
186 enum kmsg_dump_reason reason, 187 u64 *id, unsigned int part,
187 u64 *id, unsigned int part, 188 const char *buf, size_t size,
188 const char *buf, size_t size, 189 struct pstore_info *psi)
189 struct pstore_info *psi)
190{ 190{
191 struct ramoops_context *cxt = psi->data; 191 struct ramoops_context *cxt = psi->data;
192 struct persistent_ram_zone *prz = cxt->przs[cxt->dump_write_cnt]; 192 struct persistent_ram_zone *prz = cxt->przs[cxt->dump_write_cnt];