From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755409AbbKWWSZ (ORCPT ); Mon, 23 Nov 2015 17:18:25 -0500 Received: from mail.kernel.org ([198.145.29.136]:39323 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755122AbbKWWSW (ORCPT ); Mon, 23 Nov 2015 17:18:22 -0500 Date: Mon, 23 Nov 2015 19:18:17 -0300 From: Arnaldo Carvalho de Melo To: Steven Rostedt Cc: LKML , Ingo Molnar , Namhyung Kim Subject: Re: [PATCH v2] tools lib traceevents: Fix output of %llu for 64 bit values read on 32 bit machines Message-ID: <20151123221817.GG10315@kernel.org> References: <20151116153310.326c1558@gandalf.local.home> <20151116172302.0a9326b5@gandalf.local.home> <20151116172516.4b79b109@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151116172516.4b79b109@gandalf.local.home> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, Nov 16, 2015 at 05:25:16PM -0500, Steven Rostedt escreveu: > > When a long value is read on 32 bit machines for 64 bit output, the parsing > needs to change "%lu" into "%llu", as the value is read natively. > > Unfortunately, if "%llu" is already there, the code will add another "l" to > it and fail to parse it properly. > > Cc: stable@vger.kernel.org > Signed-off-by: Steven Rostedt > --- > diff --git a/event-parse.c b/event-parse.c > index 0a30253..ee5b720 100644 > --- a/event-parse.c > +++ b/event-parse.c Applied, after reusing this from Namhyung's patch: diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c :-) > @@ -4828,13 +4828,12 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event > sizeof(long) != 8) { > char *p; > > - ls = 2; > /* make %l into %ll */ > - p = strchr(format, 'l'); > - if (p) > + if (ls == 1 && (p = strchr(format, 'l'))) > memmove(p+1, p, strlen(p)+1); > else if (strcmp(format, "%p") == 0) > strcpy(format, "0x%llx"); > + ls = 2; > } > switch (ls) { > case -2: > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/