]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
pstore/ram: Mark ramoops_pstore_write_buf() as notrace
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Wed, 18 Jul 2012 02:49:37 +0000 (19:49 -0700)
committerAnton Vorontsov <anton.vorontsov@linaro.org>
Sat, 4 Aug 2012 23:16:47 +0000 (16:16 -0700)
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>
fs/pstore/ram.c

index fba8c725692937d0192606c4411dc3c06e7e2487..91016049e551d16f23d28f7fd6c8dd2ccaf91c60 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/ioport.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
+#include <linux/compiler.h>
 #include <linux/pstore_ram.h>
 
 #define RAMOOPS_KERNMSG_HDR "===="
@@ -181,12 +182,11 @@ static size_t ramoops_write_kmsg_hdr(struct persistent_ram_zone *prz)
        return len;
 }
 
-
-static int ramoops_pstore_write_buf(enum pstore_type_id type,
-                                   enum kmsg_dump_reason reason,
-                                   u64 *id, unsigned int part,
-                                   const char *buf, size_t size,
-                                   struct pstore_info *psi)
+static int notrace ramoops_pstore_write_buf(enum pstore_type_id type,
+                                           enum kmsg_dump_reason reason,
+                                           u64 *id, unsigned int part,
+                                           const char *buf, size_t size,
+                                           struct pstore_info *psi)
 {
        struct ramoops_context *cxt = psi->data;
        struct persistent_ram_zone *prz = cxt->przs[cxt->dump_write_cnt];