Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6438329ybv; Wed, 12 Feb 2020 12:13:29 -0800 (PST) X-Google-Smtp-Source: APXvYqzLxLbO/DXyiPgzyIkOy3uyxBs6WuIlRm6NV27Z2zmncayGqvIWkt54ZmNtZGxsurPRJiMJ X-Received: by 2002:aca:90f:: with SMTP id 15mr599707oij.18.1581538409211; Wed, 12 Feb 2020 12:13:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581538409; cv=none; d=google.com; s=arc-20160816; b=fYKwY0WaisTBYjDHlD8HRSZFLg2cvr5cdRE71ESU7MBoOj97sqEI1ClyNAfsxI12lt PtDjrFYzL88amPVOkQ+d/SfAiZ3F2mxmc/5IreY4RNCqjNZ3fXIWIPrQK/6eUYP8pur1 ipDkes6PmkbWSnIrYKz5iMm2I7lle4abb+OGgCh2bD3kXnioxmKPpeo0FirsfQkEyyly KE4gMpdxFY6JiBAV2HR9SZXabK8kD5qchLDsXLIvGUZh84U53YTj1HeMzkUpslIfIeBR g9asSetS6XETMRu6XPnb3Tm6ds31BmktOog9UhXmxJyV2XT9tTlpZ9Z8jM8l7LLyBi15 yBbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :date:cc:to:from:subject:message-id:dkim-signature; bh=hRyzGKLbru+GVibzqSI+tf4K6tKv1T5KHUBTcqBIqNw=; b=RVmu7E/HiczNAtDKRCjY68U9LnWSMKNEOrepejqBOkTq7P+fe+b6AMNRZoqI4Q/ZYE YdfCEPEhTGIiJtLyMd+724EYFygFwl8G8BUC790HiZvPm2dhxemoVTyvXNGsWDtJ1EP/ 000aOxGRPNYR1tR586d8QYNahuyILSTulW0kV8w8qrAxl8POdQlpGkdHBQ4zI72e40DI qXps9HYHXeR/kTBbTGDbnsQ+JSuIlDiybE+oNWn2W2CWBc9mv+SmOx/4/nmKGDigtCNk HF4jdk0J2J1wUoB8upsuAxtQ9cFOpscn8ioFUM4lKOtc68qki3nS3akotUxwdjGKWoCK JJeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rKY3nWz6; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z15si766047otm.168.2020.02.12.12.13.16; Wed, 12 Feb 2020 12:13:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rKY3nWz6; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728575AbgBLUNF (ORCPT + 99 others); Wed, 12 Feb 2020 15:13:05 -0500 Received: from mail-il1-f195.google.com ([209.85.166.195]:42972 "EHLO mail-il1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727361AbgBLUNF (ORCPT ); Wed, 12 Feb 2020 15:13:05 -0500 Received: by mail-il1-f195.google.com with SMTP id x2so2871732ila.9 for ; Wed, 12 Feb 2020 12:13:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=hRyzGKLbru+GVibzqSI+tf4K6tKv1T5KHUBTcqBIqNw=; b=rKY3nWz6c7K6iRwc8S/4CbOATqBxUwb6UC1nfumo2Q9SxdkSrM2yBYoR+j9LHkkM58 GuA0ltgHs6lbYiVwNFsy2kkD/Mc2ihcKdG/b9sReXieDqQ8JCddK8prkgjhbPTwsv2kM 70hU1lA96LYLQ1lcrRUObYZznvcOCAc37Yz7H1J4n7NSy77QrI6IkhOYWmDpvYVWSb+o E2pVpNytH7aILjKIWJ48WvaebSvErMea1O2Wg5nfmwPaWeFI+WcyVUT1BZ82Bx7P7ZZ4 r3zAptDz0HzKsdTIecBeSMxAnCHZEDSd5vXck+EjpBTb9qfXFoSMahLzRwSTc74RBqMG xU4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=hRyzGKLbru+GVibzqSI+tf4K6tKv1T5KHUBTcqBIqNw=; b=LivzXpLLdL5lLwGzk+y61dr+fNoX+MQCEWhn0Fo0RzzNX57tFnFwCnaxbxg2HQri5w xyIBlMNctuswsKv6kdEjVIhU8QMQ21piHAtnfuEniRA9PC5lqzfG4UZ+YeaxWZyWxsgH x9m+g0rxt7x2SYzD0zTALDCE+2byMoJjn6r1JI3T6ZnauHF0lXs5ojqHjwLhtT831Dnn u1AcA8tCHE/og/q3yEz9ddHRnn5Mw2zUBA+Libd0quKKTf36nvMwH6nA4UKD7cQN0zyc aC/1oEdOjeiphqTJmYqzfb6tlO6HSFIfj2ZGgrPuXAK1alk16UnoDMhKc9Dylf7JNVVE 8t5A== X-Gm-Message-State: APjAAAV9gNiE0uBT+tDmDClL081CdYpzYIpm0iJqMrSJOYpY7NFyHcFu aKlVmZVTNG9z+pgBTvbF2cs= X-Received: by 2002:a92:8656:: with SMTP id g83mr13252186ild.9.1581538384126; Wed, 12 Feb 2020 12:13:04 -0800 (PST) Received: from tzanussi-mobl ([2601:246:3:ceb0:468:9cb0:2637:feaf]) by smtp.googlemail.com with ESMTPSA id h6sm42695iom.43.2020.02.12.12.13.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Feb 2020 12:13:03 -0800 (PST) Message-ID: <1581538382.25773.5.camel@gmail.com> Subject: [PATCH v2] tracing: Remove bogus 64-bit synth_event_trace() vararg assumption From: Tom Zanussi To: Steven Rostedt Cc: kernel test robot , Masami Hiramatsu , LKML , Linus Torvalds , lkp@lists.01.org Date: Wed, 12 Feb 2020 14:13:02 -0600 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.26.1-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The vararg code in synth_event_trace() assumed the args were 64 bit which is not the case on 32-bit systems. Just use long which should work on every system. Also remove all the u64 casts from the synth event test module, which also cause compile warnings on 32-bit compiles. This fixes the bug reported by the kernel test robot/Rong Chen as reported here: https://lore.kernel.org/lkml/20200212113444.GS12867@shao2-debian/ With this commit, the lkp-tests tests now pass, as do the synth/kprobe event test modules and selftests on x86_64. Reported-by: kernel test robot Signed-off-by: Tom Zanussi --- kernel/trace/synth_event_gen_test.c | 24 ++++++++++++------------ kernel/trace/trace_events_hist.c | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/kernel/trace/synth_event_gen_test.c b/kernel/trace/synth_event_gen_test.c index 4aefe003cb7c..f0e14106048c 100644 --- a/kernel/trace/synth_event_gen_test.c +++ b/kernel/trace/synth_event_gen_test.c @@ -111,11 +111,11 @@ static int __init test_gen_synth_cmd(void) /* Create some bogus values just for testing */ vals[0] = 777; /* next_pid_field */ - vals[1] = (u64)"hula hoops"; /* next_comm_field */ + vals[1] = (long)"hula hoops"; /* next_comm_field */ vals[2] = 1000000; /* ts_ns */ vals[3] = 1000; /* ts_ms */ vals[4] = smp_processor_id(); /* cpu */ - vals[5] = (u64)"thneed"; /* my_string_field */ + vals[5] = (long)"thneed"; /* my_string_field */ vals[6] = 598; /* my_int_field */ /* Now generate a gen_synth_test event */ @@ -218,11 +218,11 @@ static int __init test_empty_synth_event(void) /* Create some bogus values just for testing */ vals[0] = 777; /* next_pid_field */ - vals[1] = (u64)"tiddlywinks"; /* next_comm_field */ + vals[1] = (long)"tiddlywinks"; /* next_comm_field */ vals[2] = 1000000; /* ts_ns */ vals[3] = 1000; /* ts_ms */ vals[4] = smp_processor_id(); /* cpu */ - vals[5] = (u64)"thneed_2.0"; /* my_string_field */ + vals[5] = (long)"thneed_2.0"; /* my_string_field */ vals[6] = 399; /* my_int_field */ /* Now trace an empty_synth_test event */ @@ -290,11 +290,11 @@ static int __init test_create_synth_event(void) /* Create some bogus values just for testing */ vals[0] = 777; /* next_pid_field */ - vals[1] = (u64)"tiddlywinks"; /* next_comm_field */ + vals[1] = (long)"tiddlywinks"; /* next_comm_field */ vals[2] = 1000000; /* ts_ns */ vals[3] = 1000; /* ts_ms */ vals[4] = smp_processor_id(); /* cpu */ - vals[5] = (u64)"thneed"; /* my_string_field */ + vals[5] = (long)"thneed"; /* my_string_field */ vals[6] = 398; /* my_int_field */ /* Now generate a create_synth_test event */ @@ -330,7 +330,7 @@ static int __init test_add_next_synth_val(void) goto out; /* next_comm_field */ - ret = synth_event_add_next_val((u64)"slinky", &trace_state); + ret = synth_event_add_next_val((long)"slinky", &trace_state); if (ret) goto out; @@ -350,7 +350,7 @@ static int __init test_add_next_synth_val(void) goto out; /* my_string_field */ - ret = synth_event_add_next_val((u64)"thneed_2.01", &trace_state); + ret = synth_event_add_next_val((long)"thneed_2.01", &trace_state); if (ret) goto out; @@ -396,12 +396,12 @@ static int __init test_add_synth_val(void) if (ret) goto out; - ret = synth_event_add_val("next_comm_field", (u64)"silly putty", + ret = synth_event_add_val("next_comm_field", (long)"silly putty", &trace_state); if (ret) goto out; - ret = synth_event_add_val("my_string_field", (u64)"thneed_9", + ret = synth_event_add_val("my_string_field", (long)"thneed_9", &trace_state); if (ret) goto out; @@ -424,11 +424,11 @@ static int __init test_trace_synth_event(void) /* Trace some bogus values just for testing */ ret = synth_event_trace(create_synth_test, 7, /* number of values */ 444, /* next_pid_field */ - (u64)"clackers", /* next_comm_field */ + "clackers", /* next_comm_field */ 1000000, /* ts_ns */ 1000, /* ts_ms */ smp_processor_id(), /* cpu */ - (u64)"Thneed", /* my_string_field */ + "Thneed", /* my_string_field */ 999); /* my_int_field */ return ret; } diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c index 483b3fd1094f..b8dd28f546d8 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -1887,12 +1887,12 @@ int synth_event_trace(struct trace_event_file *file, unsigned int n_vals, ...) va_start(args, n_vals); for (i = 0, n_u64 = 0; i < state.event->n_fields; i++) { - u64 val; + long val; - val = va_arg(args, u64); + val = va_arg(args, long); if (state.event->fields[i]->is_string) { - char *str_val = (char *)(long)val; + char *str_val = (char *)val; char *str_field = (char *)&state.entry->fields[n_u64]; strscpy(str_field, str_val, STR_VAR_LEN_MAX); -- 2.14.1