lkml.org 
[lkml]   [2018]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 039/183] tools lib traceevent: Simplify pointer print logic and fix %pF
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>


    [ Upstream commit 38d70b7ca1769f26c0b79f3c08ff2cc949712b59 ]

    When processing %pX in pretty_print(), simplify the logic slightly by
    incrementing the ptr to the format string if isalnum(ptr[1]) is true.
    This follows the logic a bit more closely to what is in the kernel.

    Also, this fixes a small bug where %pF was not giving the offset of the
    function.

    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Link: http://lkml.kernel.org/r/20180112004822.260262257@goodmis.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    tools/lib/traceevent/event-parse.c | 17 +++++++++--------
    1 file changed, 9 insertions(+), 8 deletions(-)

    --- a/tools/lib/traceevent/event-parse.c
    +++ b/tools/lib/traceevent/event-parse.c
    @@ -4949,21 +4949,22 @@ static void pretty_print(struct trace_se
    else
    ls = 2;

    - if (*(ptr+1) == 'F' || *(ptr+1) == 'f' ||
    - *(ptr+1) == 'S' || *(ptr+1) == 's') {
    + if (isalnum(ptr[1]))
    ptr++;
    +
    + if (*ptr == 'F' || *ptr == 'f' ||
    + *ptr == 'S' || *ptr == 's') {
    show_func = *ptr;
    - } else if (*(ptr+1) == 'M' || *(ptr+1) == 'm') {
    - print_mac_arg(s, *(ptr+1), data, size, event, arg);
    - ptr++;
    + } else if (*ptr == 'M' || *ptr == 'm') {
    + print_mac_arg(s, *ptr, data, size, event, arg);
    arg = arg->next;
    break;
    - } else if (*(ptr+1) == 'I' || *(ptr+1) == 'i') {
    + } else if (*ptr == 'I' || *ptr == 'i') {
    int n;

    - n = print_ip_arg(s, ptr+1, data, size, event, arg);
    + n = print_ip_arg(s, ptr, data, size, event, arg);
    if (n > 0) {
    - ptr += n;
    + ptr += n - 1;
    arg = arg->next;
    break;
    }

    \
     
     \ /
      Last update: 2018-04-25 13:29    [W:3.804 / U:0.852 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site