Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2618565ybl; Mon, 20 Jan 2020 06:21:09 -0800 (PST) X-Google-Smtp-Source: APXvYqxFKfCBTTHmIv1KbFjzsmLfdqAId0sXdh/bqWwEUjVLNABif9wwCYQfsMpeqvx6qSTY2MO/ X-Received: by 2002:a54:4f8d:: with SMTP id g13mr12568569oiy.43.1579530068782; Mon, 20 Jan 2020 06:21:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579530068; cv=none; d=google.com; s=arc-20160816; b=oiCp9QoJ4G/ZUeZIxAR7SQZKDGgTEpbNYTvRYO3nPT8suvC21CK03JjegR4lRiwx8D FFEymPXqoDUNJ4e4e5IKujKakeokUgUITAxBSC3DXeWlrZCyD5MtovxC80vWV0V17a3s Q81LrXSAylPU5l4qLvK2nX9dPAt68VWOW+HulW89HVd8APDdQM34Wd8uQQGDUC9Q96p1 /VtN/3jwo+Wb2UqLT1/q07Y5AsmmRprpsgrcGTKeTPYOsDUB0Ld+KAZ42iE03cqKyh8t khOMj0BOW/T9XU4eOgMy9Qj4zsccSrOswD0il+vfRylYzkpgb6UGnRmIhNLuz268xVis vl8g== 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=EjDI0Mf31vFhPpWjYi8Hep+KoV17mwptU+RbwnUr7FM=; b=ygVUv4O0UOY3qFAcB05P429fcPfxRaEDdGwZq+Z7n3QR1fmso/n+Siaeh0R497pVy4 cXK/MTDnRFva9s5eTROqRw89T7lB8VdBEhgyBxu0ftCWePqagIqyELSBcc6vB1C9tklL 5tQcUdc7gTeTWcj8w53gMTOhdeGO/iB5XoKUWpS9cygPAxWvvZd2UV6cZ3K5ldaCEPXh /JIH/zF+pd757ZDEOlk2tcUcuxwpk2hvWmOXF12mzPRXZwCm91fWcQwbJa7TnVIXHILm pwpzjFyoGe+CvlLTHOIY+il1mG7Ee/TYCc1OfDURjeKNJHHvEYpMn1YEDKPWRecT9U4j RF2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fyHqklo6; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n6si20635019otf.246.2020.01.20.06.20.57; Mon, 20 Jan 2020 06:21:08 -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=@google.com header.s=20161025 header.b=fyHqklo6; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728899AbgATOTx (ORCPT + 99 others); Mon, 20 Jan 2020 09:19:53 -0500 Received: from mail-wr1-f73.google.com ([209.85.221.73]:38658 "EHLO mail-wr1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728826AbgATOTw (ORCPT ); Mon, 20 Jan 2020 09:19:52 -0500 Received: by mail-wr1-f73.google.com with SMTP id h30so14171196wrh.5 for ; Mon, 20 Jan 2020 06:19:51 -0800 (PST) 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=EjDI0Mf31vFhPpWjYi8Hep+KoV17mwptU+RbwnUr7FM=; b=fyHqklo6nn+AGZUW6I43igH20ISRLhzgXdt6OI47vUC3A38hD3XA/MO59Mf+XxNPzD CfKubfZ4UjLuL53fbHrkltyJiomkSm8dfQgSm9A3wGnXIVBil5KkHNagTzsywt7LH48A w3cJjEZnRcR6WnzbgFOat7IIqQfFJOGhBmxXkbkTtSOUJC6e3jjLaEw24eJla2/AZSGP L1FU+pO1gLMWFYGUF2x3pxjHhRLmS2vqhUfZyn+w0lBY6lDFZZuHxVmD8Vt2t9pJD0Oq 1JQkCjd5DJ0jx7B10AeCbAdkjpyC5JzuODnfU2c13GYHBsAnk+Ah9WbjbFCTYfoS1hlj ID4g== 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=EjDI0Mf31vFhPpWjYi8Hep+KoV17mwptU+RbwnUr7FM=; b=hJ3XnBQMgIXfhpHoGHQ7QKQxrrfvSg4RL1QQhVTUei4euX1g91/umpYcuY4Q47zGWF 0xMaNxYKFLtINdUex9oy6+geMGNh4zNcHjSDqslrG0TrkJ80G7uiPsZ4vknZjoBYyk8F 9Da4+GJqFQTGuOtEuU9m0shaOu/V/yXAHwIHAHT03+1I9vB2wRJrIsv87yk5mx0R9HV+ OrZDysir+ZaWh2sVoxPlr2jq/oihJDss6okfKIUlGxKtElaH2RhGsnTfyGGkhzB7duvY Ta+etfxKEuZGlBnuBN9I25szA0Yljh7XbLwY/QxhHTss+6WIF5zvlUQMpmXoXi7juc+B 0Ddw== X-Gm-Message-State: APjAAAUeQaACTi6L04oC9FD0aAHKa5690lvLGZ5MMMaWH9ZB2Kb8x/dL 6Imd+kSrRJYDexX5E4IbsNOt8nQ1eQ== X-Received: by 2002:a5d:5403:: with SMTP id g3mr19279976wrv.302.1579529990515; Mon, 20 Jan 2020 06:19:50 -0800 (PST) Date: Mon, 20 Jan 2020 15:19:26 +0100 In-Reply-To: <20200120141927.114373-1-elver@google.com> Message-Id: <20200120141927.114373-4-elver@google.com> Mime-Version: 1.0 References: <20200120141927.114373-1-elver@google.com> X-Mailer: git-send-email 2.25.0.341.g760bfbb309-goog Subject: [PATCH 4/5] iov_iter: Use generic instrumented.h From: Marco Elver To: elver@google.com Cc: paulmck@kernel.org, andreyknvl@google.com, glider@google.com, dvyukov@google.com, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, mark.rutland@arm.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, arnd@arndb.de, viro@zeniv.linux.org.uk, christophe.leroy@c-s.fr, dja@axtens.net, mpe@ellerman.id.au, rostedt@goodmis.org, mhiramat@kernel.org, mingo@kernel.org, christian.brauner@ubuntu.com, daniel@iogearbox.net, cyphar@cyphar.com, keescook@chromium.org, linux-arch@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 This replaces the kasan instrumentation with generic instrumentation, implicitly adding KCSAN instrumentation support. For KASAN no functional change is intended. Suggested-by: Arnd Bergmann Signed-off-by: Marco Elver --- lib/iov_iter.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/iov_iter.c b/lib/iov_iter.c index fb29c02c6a3c..f06f6f1dd686 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -8,6 +8,7 @@ #include #include #include +#include #define PIPE_PARANOIA /* for now */ @@ -137,20 +138,26 @@ static int copyout(void __user *to, const void *from, size_t n) { + size_t res = n; + if (access_ok(to, n)) { - kasan_check_read(from, n); - n = raw_copy_to_user(to, from, n); + instrument_copy_to_user_pre(from, n); + res = raw_copy_to_user(to, from, n); + instrument_copy_to_user_post(from, n, res); } - return n; + return res; } static int copyin(void *to, const void __user *from, size_t n) { + size_t res = n; + if (access_ok(from, n)) { - kasan_check_write(to, n); - n = raw_copy_from_user(to, from, n); + instrument_copy_from_user_pre(to, n); + res = raw_copy_from_user(to, from, n); + instrument_copy_from_user_post(to, n, res); } - return n; + return res; } static size_t copy_page_to_iter_iovec(struct page *page, size_t offset, size_t bytes, @@ -638,11 +645,14 @@ EXPORT_SYMBOL(_copy_to_iter); #ifdef CONFIG_ARCH_HAS_UACCESS_MCSAFE static int copyout_mcsafe(void __user *to, const void *from, size_t n) { + size_t res = n; + if (access_ok(to, n)) { - kasan_check_read(from, n); - n = copy_to_user_mcsafe((__force void *) to, from, n); + instrument_copy_to_user_pre(from, n); + res = copy_to_user_mcsafe((__force void *) to, from, n); + instrument_copy_to_user_post(from, n, res); } - return n; + return res; } static unsigned long memcpy_mcsafe_to_page(struct page *page, size_t offset, -- 2.25.0.341.g760bfbb309-goog