lkml.org 
[lkml]   [2016]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 123/210] kernel/panic.c: turn off locks debug before releasing console lock
    Date
    3.19.8-ckt14 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Vitaly Kuznetsov <vkuznets@redhat.com>

    commit 7625b3a0007decf2b135cb47ca67abc78a7b1bc1 upstream.

    Commit 08d78658f393 ("panic: release stale console lock to always get the
    logbuf printed out") introduced an unwanted bad unlock balance report when
    panic() is called directly and not from OOPS (e.g. from out_of_memory()).
    The difference is that in case of OOPS we disable locks debug in
    oops_enter() and on direct panic call nobody does that.

    Fixes: 08d78658f393 ("panic: release stale console lock to always get the logbuf printed out")
    Reported-by: kernel test robot <ying.huang@linux.intel.com>
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Xie XiuQi <xiexiuqi@huawei.com>
    Cc: Seth Jennings <sjenning@redhat.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Petr Mladek <pmladek@suse.cz>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    kernel/panic.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/kernel/panic.c b/kernel/panic.c
    index 1871216..ea4e4ba 100644
    --- a/kernel/panic.c
    +++ b/kernel/panic.c
    @@ -151,8 +151,11 @@ void panic(const char *fmt, ...)
    * We may have ended up stopping the CPU holding the lock (in
    * smp_send_stop()) while still having some valuable data in the console
    * buffer. Try to acquire the lock then release it regardless of the
    - * result. The release will also print the buffers out.
    + * result. The release will also print the buffers out. Locks debug
    + * should be disabled to avoid reporting bad unlock balance when
    + * panic() is not being callled from OOPS.
    */
    + debug_locks_off();
    console_trylock();
    console_unlock();

    --
    1.9.1
    \
     
     \ /
      Last update: 2016-01-29 03:21    [W:4.323 / U:0.672 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site