Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp2502124ybg; Fri, 31 Jul 2020 01:18:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx9thecblIcTap0DBGLXwCjZwW1O3xvg+HUmh2AiNIq57THvS0zwOuU49IkgH0Y9Y90yXXS X-Received: by 2002:a17:906:25c4:: with SMTP id n4mr2848168ejb.3.1596183494747; Fri, 31 Jul 2020 01:18:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596183494; cv=none; d=google.com; s=arc-20160816; b=UuJI/PpjZPHbTJyiDrr7tIt1aNL8WTJ0/xk5EB8nFkIGcW2W0+g7gba04TzuiJdmUH NwXW1AyhOHdgBzZ0sEMgTHLAO4YCZBBlw0WpenJmWttJAQSR9YGgQFJMgPreBY4fia4y wW2p2EKFtM6m20Q8F1WuO+3+FCbiVoOlKNOoJU0YekDtL2a5x2AVqEPCE93x/cC9B6PH 3yVZcDReh1Zo4TSngAm/jH3ru6s4E5ctgBhez+vRmids76ZauIV4VaYo0BqAlOZY+/Zu 5nh95xRVqO6Sl4OLBOR8dsw/5eyvJ+RoFQ7zOAAH5MnMqY0TRPxv5FrUgG0DSo3o8ISf qXEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=wdHz4VAV7cWLg1rq1e/SyhC9acNNi0lj4Bxe95gHR1c=; b=aHNgqxnzwyDrSRQbB08x8lRp+/giEGwy4NBrozb4T5Ahu0KwNBZ+PzFaZUfP8a4j5J Ph9QMXReHsq1B+IhSWAYnZ3MGUcIrgpLUGGEVyFxjo0DXg7NCO8IeOJIunkipbnE9B4z 16t0O5zcWegVBPYm0AQ+YgffGOZWuIqzUiY/OUzBiA0yZtjsAr3wlKvL1BWrQ8XzayDl O3aIRq+BMrUZIcCyHUla8kZtQHz1NOo0041O5rR1BKJdK5k+LKe2t/p5MmAkYtmj4bY3 SYo3MzEO0C2ixmUPl8uDZ1ie0HP3aTkY2xaNCeVid4BFf7imecLNgRn4SR94dmkHXNBD sYGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="fHL3/dWw"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m1si4987865ejj.523.2020.07.31.01.17.53; Fri, 31 Jul 2020 01:18:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="fHL3/dWw"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731853AbgGaIRn (ORCPT + 99 others); Fri, 31 Jul 2020 04:17:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731522AbgGaIRl (ORCPT ); Fri, 31 Jul 2020 04:17:41 -0400 Received: from mail-wm1-x349.google.com (mail-wm1-x349.google.com [IPv6:2a00:1450:4864:20::349]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D4A4C061574 for ; Fri, 31 Jul 2020 01:17:41 -0700 (PDT) Received: by mail-wm1-x349.google.com with SMTP id l5so3065710wml.7 for ; Fri, 31 Jul 2020 01:17:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=wdHz4VAV7cWLg1rq1e/SyhC9acNNi0lj4Bxe95gHR1c=; b=fHL3/dWw1EHVS7WtZlSGyIHWOwTlMq18graguqY/6X1lzcsC/OHyCgO/p3evFWUHID SdMZKlATAp8ToqPHyAFJyIFqjYs6OBnAJZMGun+21mjHidCsOwsDbirsHUwcI0KiN6r5 TU+ZbuEqK0cbkkpj+lYu1CqDfXnBvqot/uMdQIN1bMTpFT8ZerxjFoOv1OBu7XP9wZiq NJwYUB3veLy2rxXwVos/pbrvYU846iDAI3e5czG5WHkQQINTjTGx6O0q1JK+1waFg2G+ 5ixPwRRmti87KhNYoVH58fRhPUpqMjMdn1S/3W0vJG/oRhBYiJ6JbniYM3zFP2MqMBxT J5Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=wdHz4VAV7cWLg1rq1e/SyhC9acNNi0lj4Bxe95gHR1c=; b=ScDuddy1HQ9W+dheUPQzJzHZSsWigP+Y4Gtb5O2fVt2EHI20oVuWFObifrVkbZyZou Jx9iWbrDEo4jI6SxjRDVrsvvmRSO57zGcMNKrZg0yCP373hvlTzjbhI5COADp7yaLcZW 1EDQkzmwoUAtIArZQQxVegkZcatdQ8wlq6OuiWOmpq5/92TxiX1OPR3Y9iSfIkOtF/VF k82NsGkCNY80mi1WIP5qk45Et2tcp3PcCweHOs+MjgYS7/y/3JgYqkCOn+iTR8Orlq4H WpWxiC8Fd9vL1K0S4PwarigDtvAwk+ta4BMeQ2VC211fU7SsjWqTPHDeSgiYpHeMtiXt H4Nw== X-Gm-Message-State: AOAM531ovcJbJ/yoWo0W7Kwh786sx449OhAis6jCmblqfbXyipzrXrin S8FCuapjTf9LDPTJFpdXmY+8FVCeqQ== X-Received: by 2002:a1c:c90d:: with SMTP id f13mr2954894wmb.185.1596183459822; Fri, 31 Jul 2020 01:17:39 -0700 (PDT) Date: Fri, 31 Jul 2020 10:17:20 +0200 In-Reply-To: <20200731081723.2181297-1-elver@google.com> Message-Id: <20200731081723.2181297-3-elver@google.com> Mime-Version: 1.0 References: <20200731081723.2181297-1-elver@google.com> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6-goog Subject: [PATCH 2/5] kcsan: Simplify constant string handling From: Marco Elver To: elver@google.com, paulmck@kernel.org Cc: dvyukov@google.com, glider@google.com, andreyknvl@google.com, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Simplify checking prefixes and length calculation of constant strings. For the former, the kernel provides str_has_prefix(), and the latter we should just use strlen("..") because GCC and Clang have optimizations that optimize these into constants. No functional change intended. Signed-off-by: Marco Elver --- kernel/kcsan/debugfs.c | 8 ++++---- kernel/kcsan/report.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/kcsan/debugfs.c b/kernel/kcsan/debugfs.c index 3a9566addeff..116bdd8f050c 100644 --- a/kernel/kcsan/debugfs.c +++ b/kernel/kcsan/debugfs.c @@ -300,16 +300,16 @@ debugfs_write(struct file *file, const char __user *buf, size_t count, loff_t *o WRITE_ONCE(kcsan_enabled, true); } else if (!strcmp(arg, "off")) { WRITE_ONCE(kcsan_enabled, false); - } else if (!strncmp(arg, "microbench=", sizeof("microbench=") - 1)) { + } else if (str_has_prefix(arg, "microbench=")) { unsigned long iters; - if (kstrtoul(&arg[sizeof("microbench=") - 1], 0, &iters)) + if (kstrtoul(&arg[strlen("microbench=")], 0, &iters)) return -EINVAL; microbenchmark(iters); - } else if (!strncmp(arg, "test=", sizeof("test=") - 1)) { + } else if (str_has_prefix(arg, "test=")) { unsigned long iters; - if (kstrtoul(&arg[sizeof("test=") - 1], 0, &iters)) + if (kstrtoul(&arg[strlen("test=")], 0, &iters)) return -EINVAL; test_thread(iters); } else if (!strcmp(arg, "whitelist")) { diff --git a/kernel/kcsan/report.c b/kernel/kcsan/report.c index d05052c23261..15add93ff12e 100644 --- a/kernel/kcsan/report.c +++ b/kernel/kcsan/report.c @@ -279,8 +279,8 @@ static int get_stack_skipnr(const unsigned long stack_entries[], int num_entries cur = strnstr(buf, "kcsan_", len); if (cur) { - cur += sizeof("kcsan_") - 1; - if (strncmp(cur, "test", sizeof("test") - 1)) + cur += strlen("kcsan_"); + if (!str_has_prefix(cur, "test")) continue; /* KCSAN runtime function. */ /* KCSAN related test. */ } -- 2.28.0.163.g6104cc2f0b6-goog