|
@@ -1222,26 +1222,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 +1638,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.
|
|
|
*
|