Received: by 2002:ab2:69cc:0:b0:1f4:be93:e15a with SMTP id n12csp1561483lqp; Mon, 15 Apr 2024 09:50:22 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWLRzIkwHQwUXqmTA5lHodS3JV73dKhy6zNSSTJXu2qc7jUHrSUKMNFYxEq2Qcs+7ni1C7Te+QsAVncpg5xuhNCXUqZJwikgtcsd2VfYQ== X-Google-Smtp-Source: AGHT+IFq6SwqZU1+ZjaI4CjsfnzBppV3MH7BJqhAdEVWsYUuSbeLNZSdhjqHYJQkIstWwa8mWLqo X-Received: by 2002:a05:6359:4192:b0:183:4d1d:dcaa with SMTP id ki18-20020a056359419200b001834d1ddcaamr10384259rwc.3.1713199821666; Mon, 15 Apr 2024 09:50:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713199821; cv=pass; d=google.com; s=arc-20160816; b=ccS/3zqjaqYgQ9AVMgiiCAI7gcndy3cPcPTtA9yRPQM9XWyONVf0hn/BynYUuxAEiC N5PykCn8nB61msXjKnvGyaJfri6gXfVbyu16O7E/sCicxFyTOHf19/w+Z/NpuNbG2APG 2hU7Twz7w/KbL0qPvT8mBdmlXNwGSQln+Paexe0k270ITeNmQ++bwPMwZiyyuisgmCVY sm/UVqWeR/MYIeKbkwE0TVWykkGzfWWQq1waJP0fQvYwrqBlBjVlV7Xd/S2Ld4+PBWQj IGkCGHK+mbBgLrA/GSh5Pea7Qu7EY/fndiJYCXMDI58cMTsaewycY+nWjGFGYVNLeCiU W9rQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=9+kM0mp5N6TNjQbO1qnF0u96/P+K0HDGRG1U5jkyIms=; fh=mN5k4D91sudIQ7fbAIDPSF5RyNjW+CPs7VT/wQInil4=; b=DYi6xqBmKSwXjubaIEqjXgQz4k+RYwtKvCxRXZpd2QkWMn/v8Tqz/qc4UNG51K9h98 ywIJeT2se/3BbCIoRC8qCghbTSIHOhpnc/ef3K3ZyvmOvGl7P4TwnSe7kU5UlvQmnFzl YXed4gYfyZKIMdrk8WnYfndg1Kr6Aei1evSCFVPA8jAY+ZNILlhwNsIHoJ1CxIaJHji4 37dht0n744Ac8POqyxjjzilArm21FjB9feBalUHqeCtO7uJqMzHWZ8bPv7AJ4wVSAcmb ILs4hIOxKkPR2rw8BB+DcIsFMHFkthIJYtsyD4RzIYbIB9BRJSieTzprgpfjlmYERo+n 3Haw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-145586-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-145586-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 8-20020a630e48000000b005f0566906b3si8015680pgo.526.2024.04.15.09.50.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Apr 2024 09:50:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-145586-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-145586-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-145586-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 00661287EB8 for ; Mon, 15 Apr 2024 16:50:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8EEEC7E76F; Mon, 15 Apr 2024 16:50:17 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19F57823B5 for ; Mon, 15 Apr 2024 16:50:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713199817; cv=none; b=U1Nl6SJOx8DGS9NURgIMsQ4R7RuhneMq5gMaEnTyO5alf8dX1qOzusTzOdFuJgUPCquL+JLZQubjLtlkJv0q7GLTSutqWlssKjKFP4X/JfOIwRAE2NZUAPxzH7niYWvJfU/wYM+uRC+tglKn6A0GCJobsJw8NpW7e8gCQjP2Jms= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713199817; c=relaxed/simple; bh=HLZhuGcBM5C+fwuEEhkhLoU2r5F1x5SzjVb5yqG/7cA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=kak/8O5qkelC5nlQO339UA/eYxImkXHeEkSn2yjGR/TjTz6ccvCez3WJXVqE7uW5YUXMeuWiTyDYJgoMY4nD+vJge9h+p+pOpzsJBDMx6AWvtHqPkiJVfnuHdj3Pd59Cjygo703IVl//6Y5ovOGVTHR0KDB5hrBLbHU4lMz3TAI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id C70D6C113CC; Mon, 15 Apr 2024 16:50:14 +0000 (UTC) From: Catalin Marinas To: linux-arm-kernel@lists.infradead.org, Anshuman Khandual Cc: Will Deacon , Ard Biesheuvel , Ryan Roberts , Mark Rutland , linux-kernel@vger.kernel.org, Dev Jain Subject: Re: [PATCH V2] arm64/hugetlb: Fix page table walk in huge_pte_alloc() Date: Mon, 15 Apr 2024 17:50:12 +0100 Message-Id: <171319980749.132738.11475383267559280969.b4-ty@arm.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240415094003.1812018-1-anshuman.khandual@arm.com> References: <20240415094003.1812018-1-anshuman.khandual@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit On Mon, 15 Apr 2024 15:10:03 +0530, Anshuman Khandual wrote: > Currently normal HugeTLB fault ends up crashing the kernel, as p4dp derived > from p4d_offset() is an invalid address when PGTABLE_LEVEL = 5. A p4d level > entry needs to be allocated when not available while walking the page table > during HugeTLB faults. Let's call p4d_alloc() to allocate such entries when > required instead of current p4d_offset(). > > Unable to handle kernel paging request at virtual address ffffffff80000000 > Mem abort info: > ESR = 0x0000000096000005 > EC = 0x25: DABT (current EL), IL = 32 bits > SET = 0, FnV = 0 > EA = 0, S1PTW = 0 > FSC = 0x05: level 1 translation fault > Data abort info: > ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000 > CM = 0, WnR = 0, TnD = 0, TagAccess = 0 > GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 > swapper pgtable: 4k pages, 52-bit VAs, pgdp=0000000081da9000 > [ffffffff80000000] pgd=1000000082cec003, p4d=0000000082c32003, pud=0000000000000000 > Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP > Modules linked in: > CPU: 1 PID: 108 Comm: high_addr_hugep Not tainted 6.9.0-rc4 #48 > Hardware name: Foundation-v8A (DT) > pstate: 01402005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) > pc : huge_pte_alloc+0xd4/0x334 > lr : hugetlb_fault+0x1b8/0xc68 > sp : ffff8000833bbc20 > x29: ffff8000833bbc20 x28: fff000080080cb58 x27: ffff800082a7cc58 > x26: 0000000000000000 x25: fff0000800378e40 x24: fff00008008d6c60 > x23: 00000000de9dbf07 x22: fff0000800378e40 x21: 0004000000000000 > x20: 0004000000000000 x19: ffffffff80000000 x18: 1ffe00010011d7a1 > x17: 0000000000000001 x16: ffffffffffffffff x15: 0000000000000001 > x14: 0000000000000000 x13: ffff8000816120d0 x12: ffffffffffffffff > x11: 0000000000000000 x10: fff00008008ebd0c x9 : 0004000000000000 > x8 : 0000000000001255 x7 : fff00008003e2000 x6 : 00000000061d54b0 > x5 : 0000000000001000 x4 : ffffffff80000000 x3 : 0000000000200000 > x2 : 0000000000000004 x1 : 0000000080000000 x0 : 0000000000000000 > Call trace: > huge_pte_alloc+0xd4/0x334 > hugetlb_fault+0x1b8/0xc68 > handle_mm_fault+0x260/0x29c > do_page_fault+0xfc/0x47c > do_translation_fault+0x68/0x74 > do_mem_abort+0x44/0x94 > el0_da+0x2c/0x9c > el0t_64_sync_handler+0x70/0xc4 > el0t_64_sync+0x190/0x194 > Code: aa000084 cb010084 b24c2c84 8b130c93 (f9400260) > ---[ end trace 0000000000000000 ]--- > > [...] Applied to arm64 (for-next/fixes), thanks! [1/1] arm64/hugetlb: Fix page table walk in huge_pte_alloc() https://git.kernel.org/arm64/c/015a12a4a670 -- Catalin