pstore/platform: Make automatic updates interval configurable
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Sat, 26 May 2012 13:20:28 +0000 (06:20 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Jun 2012 23:59:37 +0000 (16:59 -0700)
There is no behavioural change, the default value is still 60 seconds.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/pstore/platform.c

index 61461ed9b6c87b09b01bd4536c7a37152233e77f..34ca3141eb0ac13223126c282b0fed3a580be639 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/slab.h>
 #include <linux/uaccess.h>
 #include <linux/hardirq.h>
+#include <linux/jiffies.h>
 #include <linux/workqueue.h>
 
 #include "internal.h"
  * whether the system is actually still running well enough
  * to let someone see the entry
  */
-#define        PSTORE_INTERVAL (60 * HZ)
+static int pstore_update_ms = 60000;
+module_param_named(update_ms, pstore_update_ms, int, 0600);
+MODULE_PARM_DESC(update_ms, "milliseconds before pstore updates its content "
+                "(default is 60000; -1 means runtime updates are disabled)");
 
 static int pstore_new_entry;
 
@@ -231,8 +235,11 @@ int pstore_register(struct pstore_info *psi)
        kmsg_dump_register(&pstore_dumper);
        pstore_register_console();
 
-       pstore_timer.expires = jiffies + PSTORE_INTERVAL;
-       add_timer(&pstore_timer);
+       if (pstore_update_ms >= 0) {
+               pstore_timer.expires = jiffies +
+                       msecs_to_jiffies(pstore_update_ms);
+               add_timer(&pstore_timer);
+       }
 
        return 0;
 }
@@ -291,7 +298,7 @@ static void pstore_timefunc(unsigned long dummy)
                schedule_work(&pstore_work);
        }
 
-       mod_timer(&pstore_timer, jiffies + PSTORE_INTERVAL);
+       mod_timer(&pstore_timer, jiffies + msecs_to_jiffies(pstore_update_ms));
 }
 
 module_param(backend, charp, 0444);