gianfar: Fix possible overrun and simplify interrupt name field creation
[linux-2.6-block.git] / kernel / printk.c
index 49a2ae4a8dc70801e4a793f9309d0ceb519577ce..b663c2c95d3922e4c080e8974c09c6ce99b4355f 100644 (file)
@@ -44,6 +44,9 @@
 
 #include <asm/uaccess.h>
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/printk.h>
+
 /*
  * Architectures can override it:
  */
@@ -542,6 +545,8 @@ MODULE_PARM_DESC(ignore_loglevel, "ignore loglevel setting, to"
 static void _call_console_drivers(unsigned start,
                                unsigned end, int msg_log_level)
 {
+       trace_console(&LOG_BUF(0), start, end, log_buf_len);
+
        if ((msg_log_level < console_loglevel || ignore_loglevel) &&
                        console_drivers && start != end) {
                if ((start & LOG_BUF_MASK) > (end & LOG_BUF_MASK)) {
@@ -1222,26 +1227,6 @@ int is_console_locked(void)
 static DEFINE_PER_CPU(int, printk_pending);
 static DEFINE_PER_CPU(char [PRINTK_BUF_SIZE], printk_sched_buf);
 
-int printk_sched(const char *fmt, ...)
-{
-       unsigned long flags;
-       va_list args;
-       char *buf;
-       int r;
-
-       local_irq_save(flags);
-       buf = __get_cpu_var(printk_sched_buf);
-
-       va_start(args, fmt);
-       r = vsnprintf(buf, PRINTK_BUF_SIZE, fmt, args);
-       va_end(args);
-
-       __this_cpu_or(printk_pending, PRINTK_PENDING_SCHED);
-       local_irq_restore(flags);
-
-       return r;
-}
-
 void printk_tick(void)
 {
        if (__this_cpu_read(printk_pending)) {
@@ -1658,6 +1643,26 @@ late_initcall(printk_late_init);
 
 #if defined CONFIG_PRINTK
 
+int printk_sched(const char *fmt, ...)
+{
+       unsigned long flags;
+       va_list args;
+       char *buf;
+       int r;
+
+       local_irq_save(flags);
+       buf = __get_cpu_var(printk_sched_buf);
+
+       va_start(args, fmt);
+       r = vsnprintf(buf, PRINTK_BUF_SIZE, fmt, args);
+       va_end(args);
+
+       __this_cpu_or(printk_pending, PRINTK_PENDING_SCHED);
+       local_irq_restore(flags);
+
+       return r;
+}
+
 /*
  * printk rate limiting, lifted from the networking subsystem.
  *