Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2836415pxb; Mon, 1 Nov 2021 02:53:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJznVNAAmAKtUAJWQ6b2uzj/3wVWM6HnJ/Qx8lEaTfWp0pNUuHspUSsPSM7LwzrootTyze4L X-Received: by 2002:a05:6402:84d:: with SMTP id b13mr41178226edz.110.1635760408334; Mon, 01 Nov 2021 02:53:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635760408; cv=none; d=google.com; s=arc-20160816; b=yG8cAIGLeHaHkDfsExmlbZ+7XzUbnnAtqaPe3IQNNKn3ljBbH1UXRCedXDI/S4XTGs XB2jJZEPggjKaqDIlSPVaG18Pqy1agq/0IISSpysjL5AQJpfdBXIK3WgQo9EyeBqGYta ZDn++94Fv2bca9JSI4uNg05HGw0ftXPq2RwgnUTF5NciidD3bPLLk8+HhaLYzzq7IFQ9 aEOL1R8HoYCjrhVNKEwT4BbqFD6rfOsa2Go7Tb0Fp7yZBjjSTvv+DSbxj24nCanI2Obq IulWyR46l283YL2N1Y6bvRx/XBMvgXp2a4LuGfL0sNE3Oren9devoqXTc8s24U5yDbsp 2TTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iVDPc2eibv6o6BwkY0B1WWvQdTb/AeQDm4d7oqrJNp0=; b=rS/ZinbK7ZOtLaX5TiGzOqbHKwk0GrBn1aPDoI5i189d4Mpbe0v5aHlgO7CTyIvOCq 62/luHODgCjTbnZ3lbXzp22RQ3ABJ4veJSI3rS3L9CnfFMKFnOGIcTOoNpgH2kXYNtJi aYLny939Htu2rTyAEYnGo3+/75pbTAkCMc93vypOkjbPVfR0WUojGDRbNGe6YOTrK4gb I8x74ckn2LyJLo2dT3wBZkGTjYDSIdFOx7ynP1XLfq/4EO53c9/PF54M47W9jCZb38vm sMwq+8UHNFwbDk4HhJviO8mwNlAAAurH5tDohc9p1gYNHKDTknYZQMBOfBc6E7dTHAdS Owrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LpIWEuSz; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v8si14620705eju.124.2021.11.01.02.53.04; Mon, 01 Nov 2021 02:53:28 -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=@linuxfoundation.org header.s=korg header.b=LpIWEuSz; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235071AbhKAJxo (ORCPT + 99 others); Mon, 1 Nov 2021 05:53:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:51430 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234788AbhKAJtD (ORCPT ); Mon, 1 Nov 2021 05:49:03 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 234ED6124D; Mon, 1 Nov 2021 09:31:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635759108; bh=3kpXCsn6ZY/dtNru9H4Ega8JvaVx+u4Q8fjD4LGN1ys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LpIWEuSzOEf+UjLHT1MWhO7NDjMr5gijGVgmXZnVc/TiBUWrXo7E3hSANL0hDRe4s 1Phiep6ZptMvHXCSDEpw9QdBM+eQUvwFUySPfmkDoXK3aL/fDN7Ah6vFUtI7AwCAIF sj+wEuTKsRPZ25GiyAwVKGNwn+KgDg4FrZhizNY8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alexandre Ghiti , Palmer Dabbelt Subject: [PATCH 5.14 119/125] riscv: Do not re-populate shadow memory with kasan_populate_early_shadow Date: Mon, 1 Nov 2021 10:18:12 +0100 Message-Id: <20211101082555.560628157@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211101082533.618411490@linuxfoundation.org> References: <20211101082533.618411490@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alexandre Ghiti commit cf11d01135ea1ff7fddb612033e3cb5cde279ff2 upstream. When calling this function, all the shadow memory is already populated with kasan_early_shadow_pte which has PAGE_KERNEL protection. kasan_populate_early_shadow write-protects the mapping of the range of addresses passed in argument in zero_pte_populate, which actually write-protects all the shadow memory mapping since kasan_early_shadow_pte is used for all the shadow memory at this point. And then when using memblock API to populate the shadow memory, the first write access to the kernel stack triggers a trap. This becomes visible with the next commit that contains a fix for asan-stack. We already manually populate all the shadow memory in kasan_early_init and we write-protect kasan_early_shadow_pte at the end of kasan_init which makes the calls to kasan_populate_early_shadow superfluous so we can remove them. Signed-off-by: Alexandre Ghiti Fixes: e178d670f251 ("riscv/kasan: add KASAN_VMALLOC support") Fixes: 8ad8b72721d0 ("riscv: Add KASAN support") Cc: stable@vger.kernel.org Signed-off-by: Palmer Dabbelt Signed-off-by: Greg Kroah-Hartman --- arch/riscv/mm/kasan_init.c | 11 ----------- 1 file changed, 11 deletions(-) --- a/arch/riscv/mm/kasan_init.c +++ b/arch/riscv/mm/kasan_init.c @@ -172,21 +172,10 @@ void __init kasan_init(void) phys_addr_t p_start, p_end; u64 i; - /* - * Populate all kernel virtual address space with kasan_early_shadow_page - * except for the linear mapping and the modules/kernel/BPF mapping. - */ - kasan_populate_early_shadow((void *)KASAN_SHADOW_START, - (void *)kasan_mem_to_shadow((void *) - VMEMMAP_END)); if (IS_ENABLED(CONFIG_KASAN_VMALLOC)) kasan_shallow_populate( (void *)kasan_mem_to_shadow((void *)VMALLOC_START), (void *)kasan_mem_to_shadow((void *)VMALLOC_END)); - else - kasan_populate_early_shadow( - (void *)kasan_mem_to_shadow((void *)VMALLOC_START), - (void *)kasan_mem_to_shadow((void *)VMALLOC_END)); /* Populate the linear mapping */ for_each_mem_range(i, &p_start, &p_end) {