Signed-off-by: Jan Kara <j...@suse.cz>
---
 kernel/printk/printk.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index ea2d5f6962ed..a39f4129f848 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1718,7 +1718,6 @@ asmlinkage int vprintk_emit(int facility, int level,
 
        logbuf_cpu = UINT_MAX;
        raw_spin_unlock(&logbuf_lock);
-       lockdep_on();
        local_irq_restore(flags);
 
        /* If called from the scheduler, we can not call up(). */
@@ -1738,6 +1737,9 @@ asmlinkage int vprintk_emit(int facility, int level,
        if (console_trylock_for_printk())
                console_unlock();
        preempt_enable();
+       local_irq_save(flags);
+       lockdep_on();
+       local_irq_restore(flags);
 
        return printed_len;
 }
-- 
1.8.1.4

Reply via email to