Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1750688pxf; Fri, 2 Apr 2021 22:17:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJznsbrSsEnsqWswqn72hBQ8CDVCDrKM8Cc2SJnyuQsjozwR6lVMQ+P2eDtBWi/moIEH0GoL X-Received: by 2002:a17:906:85b:: with SMTP id f27mr17819165ejd.414.1617427061494; Fri, 02 Apr 2021 22:17:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617427061; cv=none; d=google.com; s=arc-20160816; b=wZnM9rrVEsY/LRyZxRRMnduh5OjIIH+fTQSTKVLO8Z77cWE92fsuA7wu+OzrH1NEyR UbxI6VoIsqvkE2S8Q6BwxnE6/5+5WBLz/Ut/g/spcoE35MMWn+EwgQUXu7NsFiESGitD 5EJqpagTXLdgW1ZNm5Cg/631WyLSsObJp82V92qDwVazviTQ3dPN7pX1OuGvG/cpig/W skjDMw/aanPZ51/PefcneX39EMmXG+v/1ERMR/SNqbu7XUPteMICozllFCHvahJxK5pg TDgzS+xWxmMLlS9P1M9EqPvj+UlvtzkCyxG+4nszQJvxSI73PXDAJxf3Y3YSLf6D0F9a +Hhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=5e19wUdjdODQtGD2+GvA+Yzt0Qe0WeByd74Ygcf0qpo=; b=ux7PrcukheIG1bDrCCkUbz91MtRO9Oo2Be6dL0u2OXsNftOuwq4Bzc982d+PKW48jq 0PPtlFcdVw3uPEyJ4jZS66F0V/7TuUjaXWI6HKb/cTcbrKVul9cisPZFh7Dh8ypGROG+ zNEcGajuFR7YAJMNRr/2gDcDKO+vDhyE2RCMl0dtjViZ1XRSLS/6YDq2nx+kJ5qtTrQz NWIR12J2NCAv5yRBUAkOxJMRKljqBeLLLMzVtX+JkOQDXpzjICbii9AnHC7R7GRG3ftv 4/+pgesk1lqQV19RkrzFQPNcmbYaLpm2rxz9Xo5SdKqcpK6t0s0K7SAwaWNIQEEHKcym nJYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RSLGuy7K; 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 o13si9155165ejb.114.2021.04.02.22.17.19; Fri, 02 Apr 2021 22:17:41 -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=RSLGuy7K; 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 S233497AbhDCFNk (ORCPT + 99 others); Sat, 3 Apr 2021 01:13:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230371AbhDCFNk (ORCPT ); Sat, 3 Apr 2021 01:13:40 -0400 Received: from mail-qt1-x84a.google.com (mail-qt1-x84a.google.com [IPv6:2607:f8b0:4864:20::84a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 224AEC0613E6 for ; Fri, 2 Apr 2021 22:13:38 -0700 (PDT) Received: by mail-qt1-x84a.google.com with SMTP id m11so5993468qtx.19 for ; Fri, 02 Apr 2021 22:13:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=5e19wUdjdODQtGD2+GvA+Yzt0Qe0WeByd74Ygcf0qpo=; b=RSLGuy7Kh37CaGR59OvN4TwyzsJg7oifTMmm9Nxlu2Ybw6NQiYdi+9tHOptypt1958 j2fehMNyvamzGtEfEKt+mFLdy/eQ9ekiTaTVZ9XbAaXNpjUYBslWwogJlOz1Ie+sJ6J6 LG7JiHDC1Ko7EKqax9gNaStHYCMS2hMagAVPX5bli60EN4ycotVrfugd2bbo7AIRddR1 11ntZ+a+0I4nGoHiIzAV3dA9vFD9lypn6ncRdNP/d3SxBmDBPer9Nwa/MhqmuJHWo4uH VrX7GxFpP4xjPIhy38IwB1h4B2Xj6ZVl9FIWFwIYFpe4MYLQKEeZ/NUL12bEfZ2/S9oh bu5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=5e19wUdjdODQtGD2+GvA+Yzt0Qe0WeByd74Ygcf0qpo=; b=NdlIbJytzve5q/gEbFXUDMezjyhVf0FpCHFQkA+Z4hxJuIvwiDvGxNIV0+sUSbjeGP eJMUx3ApMX57OuQ00qAjE962t0eSWXxqEM5lb9e/Z7CbxRDpXZMvdT7/CTFodC1S8CX/ vYKL62SsQF1RVHdoGj4AE8P6d0ZI53P4fOnotDZIVELRwxhP3tQJg/kI9oNBLOTuo+I1 9m7AYycpSWgwNLYcQtLYjeglJVoV6WQGwL3znKs0cJTapePd2esISiYr/uQ2451BeHRL fvhWeEnJCGXZJkBU1ei+rywsrL1XUGCB26+2066z5+uSFYV96LU24SVcmb+EilpHKQNQ IeIg== X-Gm-Message-State: AOAM531+yRTjXjNoTjL5eeS0xb+aV8FITWU0+jnCp9o++a/B7Wjw+Xb5 wuAp4/v+Ts8lh1I1Gqg69of/xfo= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2ce:0:7898:24e2:b0bc:77e6]) (user=pcc job=sendgmr) by 2002:a0c:f805:: with SMTP id r5mr15630966qvn.45.1617426816378; Fri, 02 Apr 2021 22:13:36 -0700 (PDT) Date: Fri, 2 Apr 2021 22:13:25 -0700 Message-Id: <20210403051325.683071-1-pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH] kfence: unpoison pool region before use From: Peter Collingbourne To: Marco Elver , Dmitry Vyukov , Alexander Potapenko Cc: Peter Collingbourne , Evgenii Stepanov , Andrey Konovalov , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the memory region allocated by KFENCE had previously been poisoned, any validity checks done using kasan_byte_accessible() will fail. Fix it by unpoisoning the memory before using it as the pool region. Link: https://linux-review.googlesource.com/id/I0af99e9f1c25eaf7e1ec295836b5d148d76940c5 Signed-off-by: Peter Collingbourne --- mm/kfence/core.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mm/kfence/core.c b/mm/kfence/core.c index d53c91f881a4..bb22b0cf77aa 100644 --- a/mm/kfence/core.c +++ b/mm/kfence/core.c @@ -633,13 +633,19 @@ static DECLARE_DELAYED_WORK(kfence_timer, toggle_allocation_gate); void __init kfence_alloc_pool(void) { + void *pool; + if (!kfence_sample_interval) return; - __kfence_pool = memblock_alloc(KFENCE_POOL_SIZE, PAGE_SIZE); - - if (!__kfence_pool) + pool = memblock_alloc(KFENCE_POOL_SIZE, PAGE_SIZE); + if (!pool) { pr_err("failed to allocate pool\n"); + return; + } + + kasan_unpoison_range(pool, KFENCE_POOL_SIZE); + __kfence_pool = pool; } void __init kfence_init(void) -- 2.31.0.208.g409f899ff0-goog