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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2202EC001E0 for ; Mon, 24 Jul 2023 07:55:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D9B68D0002; Mon, 24 Jul 2023 03:55:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9898B6B0074; Mon, 24 Jul 2023 03:55:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 850D58D0002; Mon, 24 Jul 2023 03:55:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 776676B0071 for ; Mon, 24 Jul 2023 03:55:50 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 20D091408B1 for ; Mon, 24 Jul 2023 07:55:50 +0000 (UTC) X-FDA: 81045746460.02.BE67592 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by imf08.hostedemail.com (Postfix) with ESMTP id 488F9160014 for ; Mon, 24 Jul 2023 07:55:48 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=dBX304bK; spf=pass (imf08.hostedemail.com: domain of mikhail.v.gavrilov@gmail.com designates 209.85.219.47 as permitted sender) smtp.mailfrom=mikhail.v.gavrilov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690185348; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oO2PaBPMPgNdhD2v5D/LrK8XAtymTxzQa6+Wp6imTI0=; b=EINsZjjR3NhSs/j8LFdNIrA91jfWSfeJjI6EU+1ka4URssqE9rTABprNmqDqlamhJ6ddGa x4EPkW9XZUIP1Rdrl/XGuCrRbj0OrpeUGRI/PscGq8EQHEctQFurHs7bdGqPglGbO7cRzy SCNSoDH5SM4lhGcgdUr9z7qjQGH0bM8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690185348; a=rsa-sha256; cv=none; b=rrztJkxNVgYSJZqkFk1vuRZRdqD0HKE3QeIl5pSeuJCsTegpIdja+IEuI/FQ1v2j/uEEJ9 kYglGu0mahkblSGOHHrthOJUjcb4DV6ajfWvgYPMH/ShRvpyq6FsSEJllY5Wfmlrthf2NF I/JQ9xSWozL2fovK1Xps29DUF28yx/s= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=dBX304bK; spf=pass (imf08.hostedemail.com: domain of mikhail.v.gavrilov@gmail.com designates 209.85.219.47 as permitted sender) smtp.mailfrom=mikhail.v.gavrilov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-63cf6f49a9fso2278196d6.1 for ; Mon, 24 Jul 2023 00:55:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690185347; x=1690790147; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=oO2PaBPMPgNdhD2v5D/LrK8XAtymTxzQa6+Wp6imTI0=; b=dBX304bKzvJ9AbsxqXvs2MvHEftCsEVgOLvRiWccFE9hxumIuUv3a7y0npVz41zJ5Q vMyydB6vwQUzPDH37sUSD5adC12ZaotinoKEquGG94sx/rmG+Uu2yvUJ3Sk2T24v2vfZ 04cmNo9WVO1gbm6BNotp/Fre5Tsi38zqujwUIm4Y9SeKQ5vb9YEap0LOhxHc9SLrTCwz 2pkla2U0k2eAFRWZKA7BenbngpkDjnaUg0oisd4E5S2zF7oxFQ1yMuFhQT/qUkqifd0C sfkk5mRUYV/Dt8AMwEfFR+7pxPWe98L3He0DJoG3VpJP7k/mj3G/qp6g0vd3P7t9p5G3 wQVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690185347; x=1690790147; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oO2PaBPMPgNdhD2v5D/LrK8XAtymTxzQa6+Wp6imTI0=; b=TzTCDVC6EPMGmoQjVnkNy/Elu3+QJZ8LH4+9Kb2pVSTIkjVFusx+vFVp0nGLVaRjyv EhyukRONyTj+EnsTjJrketHbOWHraOA8kyuf2Iqx6uzATUPdvE/S2vDFtgHhWiAncHgx t4DwHLoRzUv4je5lt948vPTflDHGcgtOIkj2reIiqS1gTyySuqOA20wuQvJ02KGmWXjs BwNeRN7U1mjyB+TIVsxl4I8UFR+E5agWTbQ02VL1i6nuBa0cMv7tzEnLAelD4MegqT2z cHGJ9jTY0wZjXskoj4cDlMZZ6QtGqFFBb9b22auqyV7PLaw8rTRiRLA6JtHADdNZsmi/ jwBg== X-Gm-Message-State: ABy/qLZ5+WYiJ+GheXlS4q/VD0l21cxUA6vjMlsLYNfAQfDS9Wj5u4xv ESmE5LohL0emNP+TcAAK+muV4bQRV6eLQU98dZA= X-Google-Smtp-Source: APBJJlF0OMaRw0Uv5+eIczYDG7NDZAVZ8OLqa4zVIlCOMUglxe2CPmAkW6SJI5zy0MMxy5WMRy6SW5i1HIl5Lwga8u4= X-Received: by 2002:a05:6214:f03:b0:636:dae2:dc4 with SMTP id gw3-20020a0562140f0300b00636dae20dc4mr11643747qvb.5.1690185346993; Mon, 24 Jul 2023 00:55:46 -0700 (PDT) MIME-Version: 1.0 References: <22bca736-4cab-9ee5-6a52-73a3b2bbe865@google.com> In-Reply-To: <22bca736-4cab-9ee5-6a52-73a3b2bbe865@google.com> From: Mikhail Gavrilov Date: Mon, 24 Jul 2023 12:55:36 +0500 Message-ID: Subject: Re: [PATCH mm-hotfixes] mm/pagewalk: fix EFI_PGT_DUMP of espfix area To: Hugh Dickins Cc: Andrew Morton , Bagas Sanjaya , Laura Abbott , x86@kernel.org, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, regressions@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: i46y1uy6xahdjsy8gio1whejbwopyexa X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 488F9160014 X-Rspam-User: X-HE-Tag: 1690185348-529403 X-HE-Meta: U2FsdGVkX1+tImLdnmYzNXWz3HVFMLIfNHyZXXiRqwO/e8ywYTFGboSZ6VgV4f36ujNEdoNKtLV3HfEWkVMqQCQQzKAT3j6cZKAFkOwTCDvuiPvRJoUJSskYKGI69xKf/BleVfAfwf49pCHhyFZUjE4I6k28dwnotliwRBgow4zRbTfSFbqjK5bO3zDJWKzvOfBRJX/5+CJiKFgNSVVGrYk88PP23xgnxQw62R3++DO/6kz79AFX8TL2bIHnzQ+CswTETmkFqB4dcWWS+dA8DKkr6AIwpg/sS56d24KDM34F91Di9RJcDipyBwVx4LeM7S8U+xMaTn70TIHzkIDTn52NDwVeMR288f088T3iiaQ5fOm1W3wTQpTJsotCWEaEn7iCaAGUKbv7UpsywzlU/7EBjvuxFel6sjbbvx5xZMZWraanqe5o3eNF3y0UGuPAWUlYatg+3gLK1W8EI3XpU+wuvWl7B1CdTXjBgoQGfzuhTLFSrYt5r/1VFodXxBbsIo3N+d6clrhUMktoJEVuthfsQkdjh1efy+9KuAa4AJKQhSZP4xXRRdzNn5+Gsqlkhl+uj44V6AftuxU+c4Sb9IPtqKX6upoR+R0XDLCWYSNiMPUY+/IHCq3UXQhbm3nGZlKt3DNzzJGIdPBunbB8BdpNdfMe+pPB4FWnXJnAva0n5ReZy+XPJbwy2rZR0YM04GuDf+Aqc1l73q/pBIJiXJOAiyGUAP6DlztWkZfNmDyjHwsIkrK58gTdOlDKIfi/VkxG8wfm1t6oCtf3cpoQTTknP+wNMBsu+Co6JyMkt4OXxwJHrHC3eNt885GjRuTiX6p0LL7gsFCkhvCguPbQUMhV1JnT+P6in5UN9lQJgVrbEokddX1N0zvSHnpeHQTQifXOKh8FcmwQIkexaWU/T/Z5sMmF24dGPL2DQPjcK68l3v/2lSGkenV5ysRMUsH/YnwzpLL6PQBzjczAv0C zAQACj0F hSF3VH/dOmFOQc8ubUNJwC4pb+Hbn4zRP3SeafzvmK3aBoQz/2rJ3Ic9moGCzcb0MpwWfaAAnnoU7h7Zc1AEu6uPoBcjOyafuRBr9289DQ89zMUS7GJWwfJAoSYczvUSWm7UdPiKiefCKON/Qfn8sQNBKqXnFPc9KojhLaChzSyZ7DVYVtBxKm4BwM8wAUQI+wPJP2dgDjDrRuNUiDNhMqjxHu7BPboK+953zhJhK/BbSDHcaohKWK9rvCblqCzneGTij1jc+8RjvbWLaXMhe0+lfVP6hX1cV9fJk30ihA38jCTE9ylSMA9TtdqlvNuQknkxMLanb6kQzurWl8wBK5+sKhsy7dlnWD1KBfdHxT5Ja294WBUXz8xGIRqBkRoAzWiB7oJqBCUP8ttkCo/+OQUDQePgQL++Dj5AV+X6OowHmayVKg+5zfc31CLHWnEFZjPnVjL7I0wO2hzODnaIl9SyvdzsCVn67J5FtfqnI6dWYC1jMBzsmTwV/x2KmwYR4P9SZlJ7c3BcxRRsunXEX/iSaTQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000034, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Jul 24, 2023 at 2:17=E2=80=AFAM Hugh Dickins wro= te: > > Booting x86_64 with CONFIG_EFI_PGT_DUMP=3Dy shows messages of the form > "mm/pgtable-generic.c:53: bad pmd (____ptrval____)(8000000100077061)". > > EFI_PGT_DUMP dumps all of efi_mm, including the espfix area, which is > set up with pmd entries which fit the pmd_bad() check: so 0d940a9b270b > warns and clears those entries, which would ruin running Win16 binaries. > > The failing pte_offset_map() stopped such a kernel from even booting, > until a few commits later be872f83bf57 changed the pagewalk to tolerate > that: but it needs to be even more careful, to not spoil those entries. > > I might have preferred to change init_espfix_ap() not to use "bad" pmd > entries; or to leave them out of the efi_mm dump. But there is great > value in staying away from there, and a pagewalk check of address > against TASK_SIZE may protect from other such aberrations too. > > Reported-by: Mikhail Gavrilov > Closes: https://lore.kernel.org/linux-mm/CABXGCsN3JqXckWO=3DV7p=3DFhPU1tK= 03RE1w9UE6xL5Y86SMk209w@mail.gmail.com/ > Fixes: 0d940a9b270b ("mm/pgtable: allow pte_offset_map[_lock]() to fail") > Fixes: be872f83bf57 ("mm/pagewalk: walk_pte_range() allow for pte_offset_= map()") > Signed-off-by: Hugh Dickins > --- > mm/pagewalk.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/mm/pagewalk.c b/mm/pagewalk.c > index 64437105fe0d..2022333805d3 100644 > --- a/mm/pagewalk.c > +++ b/mm/pagewalk.c > @@ -48,8 +48,11 @@ static int walk_pte_range(pmd_t *pmd, unsigned long ad= dr, unsigned long end, > if (walk->no_vma) { > /* > * pte_offset_map() might apply user-specific validation. > + * Indeed, on x86_64 the pmd entries set up by init_espfi= x_ap() > + * fit its pmd_bad() check (_PAGE_NX set and _PAGE_RW cle= ar), > + * and CONFIG_EFI_PGT_DUMP efi_mm goes so far as to walk = them. > */ > - if (walk->mm =3D=3D &init_mm) > + if (walk->mm =3D=3D &init_mm || addr >=3D TASK_SIZE) > pte =3D pte_offset_kernel(pmd, addr); > else > pte =3D pte_offset_map(pmd, addr); > -- > 2.35.3 > Thanks, I confirm with this patch "bad pmd" went from kernel logs on all my machine= s. Tested-by: Mikhail Gavrilov --=20 Best Regards, Mike Gavrilov.