xfs
[Top] [All Lists]

[PATCH 2/2] printk: Debug patch 2

To: linux-fsdevel@xxxxxxxxxxxxxxx
Subject: [PATCH 2/2] printk: Debug patch 2
From: Jan Kara <jack@xxxxxxx>
Date: Fri, 10 Oct 2014 16:23:48 +0200
Cc: linux-ext4@xxxxxxxxxxxxxxx, Dave Chinner <david@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, cluster-devel@xxxxxxxxxx, Steven Whitehouse <swhiteho@xxxxxxxxxx>, Mark Fasheh <mfasheh@xxxxxxxx>, Joel Becker <jlbec@xxxxxxxxxxxx>, ocfs2-devel@xxxxxxxxxxxxxx, reiserfs-devel@xxxxxxxxxxxxxxx, Jeff Mahoney <jeffm@xxxxxxx>, Dave Kleikamp <shaggy@xxxxxxxxxx>, jfs-discussion@xxxxxxxxxxxxxxxxxxxxx, tytso@xxxxxxx, viro@xxxxxxxxxxxxxxxxxx, Jan Kara <jack@xxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1412951028-4085-1-git-send-email-jack@xxxxxxx>
References: <1412951028-4085-1-git-send-email-jack@xxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
---
 kernel/printk/printk.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index a39f4129f848..00a9ad5c2708 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1718,17 +1718,19 @@ asmlinkage int vprintk_emit(int facility, int level,
 
        logbuf_cpu = UINT_MAX;
        raw_spin_unlock(&logbuf_lock);
-       local_irq_restore(flags);
-
-       /* If called from the scheduler, we can not call up(). */
-       if (in_sched)
-               return printed_len;
-
        /*
         * Disable preemption to avoid being preempted while holding
         * console_sem which would prevent anyone from printing to console
         */
        preempt_disable();
+       local_irq_restore(flags);
+
+       /* If called from the scheduler, we can not call up(). */
+       if (in_sched) {
+               preempt_enable();
+               return printed_len;
+       }
+
        /*
         * Try to acquire and then immediately release the console semaphore.
         * The release will print out buffers and wake up /dev/kmsg and syslog()
-- 
1.8.1.4

<Prev in Thread] Current Thread [Next in Thread>