From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CE5BC43460 for ; Sat, 3 Apr 2021 14:05:44 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0A79B6120F for ; Sat, 3 Apr 2021 14:05:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A79B6120F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 26CE36B0075; Sat, 3 Apr 2021 10:05:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 21DB06B0078; Sat, 3 Apr 2021 10:05:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0BE586B007E; Sat, 3 Apr 2021 10:05:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0154.hostedemail.com [216.40.44.154]) by kanga.kvack.org (Postfix) with ESMTP id E0E126B0075 for ; Sat, 3 Apr 2021 10:05:42 -0400 (EDT) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 9B36D1803F921 for ; Sat, 3 Apr 2021 14:05:42 +0000 (UTC) X-FDA: 77991228924.01.D82FCB4 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf26.hostedemail.com (Postfix) with ESMTP id BE44E40002C0 for ; Sat, 3 Apr 2021 14:05:40 +0000 (UTC) Received: by mail-ej1-f46.google.com with SMTP id r12so10866547ejr.5 for ; Sat, 03 Apr 2021 07:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CkbYgev9qL2BMWr1L6cRiFcLbXU+v6SUrnx3BkXnhug=; b=OskhezKveckuC3sNlo4OaMsYJfITcpoSj2Gp/zFZx1ARv+3Y9vB6Dd3eVkfZNrlxzc 2hu7ChqP5jb8K27n758X0bfGwWgzOhDmiCLxH1Yf7ZkIICGZeED5dZSua4WrU9hpmqQK MIo6X82chYccWcE60J+3mx7b0lmvr4jtfviJ93HxIfOdEKYzSrx55thyhrgqlLGJgux4 WbJj2xapqsAvPgYY6RKf0g0kLn3wx08Hi7GEJq8ngMO/LZF74xIt15OomX935k3VLeU2 ijqtOo4dNL7G+xqzVM7G0ebP5m9qbvRxXpSqvIECV/QBFq4PbrvZLWPhe+1nMD7oW8He oSug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CkbYgev9qL2BMWr1L6cRiFcLbXU+v6SUrnx3BkXnhug=; b=ao/YfnvvQOpvSxr+U9AMJWfssvzyZzbz6tfaXino2NRMgSHbncHzm1VtHfqEiUhVxR KJoqkGRH8QPbQ3JKpeqMYJyWP+TiEJUkHFoI7r3OVAVi6Q2IaYpH9HI2Ayf7fCVxGYi9 NE1fYfyHTOFaZzUhAjUoNlVuooZLs5qrYiZA6oG3TEFaenYYMp24TIJ9nwfpwj1PnavN uHHJpoNyFQ25vDJXnk8/c2Aeh9ixN3I3jbJ29VV+B+NfD1bsAYQNKRWaandIrZjvJIW+ Ea1f8JqHh72dmyjOcVuhNPQsxM9UY0BoQKMQmZM9zeaU2RbLSn0zbv8PcUUZgSHQLmsk Lqyw== X-Gm-Message-State: AOAM530Xio4kBZdNi7KfG42E6gSHMsuY5LKNKYGJz4W2Mx5nPvTw69Jk Zrd0434ac/u9SNoMxLf2F14hF4WCVRfg1ZJ8w68= X-Google-Smtp-Source: ABdhPJwjLJZ4t0V+4o0gvS5Clr1G3GJVriQiBpYopWS895Vd7rMC52nLxNoBSiKjJlAKpuz0vsEiw6+Ui35JQd5ByQ0= X-Received: by 2002:a17:906:bccb:: with SMTP id lw11mr687488ejb.126.1617458741068; Sat, 03 Apr 2021 07:05:41 -0700 (PDT) MIME-Version: 1.0 References: <20210403051325.683071-1-pcc@google.com> In-Reply-To: <20210403051325.683071-1-pcc@google.com> From: Andrey Konovalov Date: Sat, 3 Apr 2021 16:05:30 +0200 Message-ID: Subject: Re: [PATCH] kfence: unpoison pool region before use To: Peter Collingbourne Cc: Marco Elver , Dmitry Vyukov , Alexander Potapenko , Evgenii Stepanov , Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: BE44E40002C0 X-Stat-Signature: sfjt3sd3fy9r7bujofng484b47cotis4 Received-SPF: none (gmail.com>: No applicable sender policy available) receiver=imf26; identity=mailfrom; envelope-from=""; helo=mail-ej1-f46.google.com; client-ip=209.85.218.46 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1617458740-408880 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sat, Apr 3, 2021 at 7:13 AM Peter Collingbourne wrote: > > 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. Which kasan_byte_accessible() call fails? KASAN checks shouldn't be performed for KFENCE objects. We have a number of is_kfence_address() checks in KASAN runtime, but maybe we're missing some. Perhaps, we should even move those checks into the high-level wrappers in include/linux/kasan.h. > 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 >