lkml.org 
[lkml]   [2018]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 126/171] kdb: use correct pointer when btc calls btt
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Christophe Leroy <christophe.leroy@c-s.fr>

    commit dded2e159208a9edc21dd5c5f583afa28d378d39 upstream.

    On a powerpc 8xx, 'btc' fails as follows:

    Entering kdb (current=0x(ptrval), pid 282) due to Keyboard Entry
    kdb> btc
    btc: cpu status: Currently on cpu 0
    Available cpus: 0
    kdb_getarea: Bad address 0x0

    when booting the kernel with 'debug_boot_weak_hash', it fails as well

    Entering kdb (current=0xba99ad80, pid 284) due to Keyboard Entry
    kdb> btc
    btc: cpu status: Currently on cpu 0
    Available cpus: 0
    kdb_getarea: Bad address 0xba99ad80

    On other platforms, Oopses have been observed too, see
    https://github.com/linuxppc/linux/issues/139

    This is due to btc calling 'btt' with %p pointer as an argument.

    This patch replaces %p by %px to get the real pointer value as
    expected by 'btt'

    Fixes: ad67b74d2469 ("printk: hash addresses printed with %p")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    kernel/debug/kdb/kdb_bt.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/kernel/debug/kdb/kdb_bt.c
    +++ b/kernel/debug/kdb/kdb_bt.c
    @@ -179,14 +179,14 @@ kdb_bt(int argc, const char **argv)
    kdb_printf("no process for cpu %ld\n", cpu);
    return 0;
    }
    - sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
    + sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
    kdb_parse(buf);
    return 0;
    }
    kdb_printf("btc: cpu status: ");
    kdb_parse("cpu\n");
    for_each_online_cpu(cpu) {
    - sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
    + sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
    kdb_parse(buf);
    touch_nmi_watchdog();
    }

    \
     
     \ /
      Last update: 2018-11-19 18:48    [W:16.046 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site