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 771EBC433F5 for ; Mon, 10 Jan 2022 13:14:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D7C76B007B; Mon, 10 Jan 2022 08:14:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7872C6B007D; Mon, 10 Jan 2022 08:14:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64F6F6B0080; Mon, 10 Jan 2022 08:14:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0150.hostedemail.com [216.40.44.150]) by kanga.kvack.org (Postfix) with ESMTP id 584C86B007B for ; Mon, 10 Jan 2022 08:14:08 -0500 (EST) Received: from smtpin08.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 0A1F08D8FF for ; Mon, 10 Jan 2022 13:14:08 +0000 (UTC) X-FDA: 79014420576.08.1299C8E Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf11.hostedemail.com (Postfix) with ESMTP id 3874C40007 for ; Mon, 10 Jan 2022 13:14:07 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 3D5B3CE0FD5 for ; Mon, 10 Jan 2022 13:14:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C193C36AED for ; Mon, 10 Jan 2022 13:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641820442; bh=cAexxOlfTT/Fp0dj+z1yi67GAYJ7Wh3qXVGNP3f/Cn8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=YMplQEe1TOz79qGgu496txihEhZvc+njCbikDdiUQWOVgbP3z/GFAb3QJEoc3tTBA IHtEiqb5wiQqMuZdFXUtSQZ+s3/kR1JEIVyzzROp7LHyzL2IcKa1IztDpUIo+LH+bp qhzKdhE9WvuHtjprzcX/PVq4JVlp/o4IfBcETJJrAGiNmgfsO8FLMa9jo44pasTuJf Z1XuypKSdIHaewWv2FRcX3a3yHruPYgMf0JZp61LEC+ckKWttpWaRhqOIfkScdOn28 jMN6NBg2TGWWlL4DZGT4OLHR9e+VRetFSKqAiqOzWFYjd3iXeRgSjVddvj6ES7VWsT XtRgYqp1mnKAg== Received: by mail-wm1-f54.google.com with SMTP id d18-20020a05600c251200b0034974323cfaso811716wma.4 for ; Mon, 10 Jan 2022 05:14:02 -0800 (PST) X-Gm-Message-State: AOAM532/2FyZf/B17wwTih4YGAhJLNML8FlYkrGtzHMZTUhvYfhHBo1N Krpym4kZxlThYzpiuCjCZR+S2ZEUR6igyOO3E/M= X-Google-Smtp-Source: ABdhPJzBs7NsHJeWpdRiEP3QbnYZp9X7AFP97Cz7nYonV9f6H8q3BB5BTyL7xCjm0E6HmcEVUec2meLGdI3FHnyLdjs= X-Received: by 2002:a05:600c:35cf:: with SMTP id r15mr22091081wmq.106.1641820440859; Mon, 10 Jan 2022 05:14:00 -0800 (PST) MIME-Version: 1.0 References: <3efc4cfd1d7c45a32752ced389d6666be15cde56.1641659630.git.luto@kernel.org> In-Reply-To: <3efc4cfd1d7c45a32752ced389d6666be15cde56.1641659630.git.luto@kernel.org> From: Ard Biesheuvel Date: Mon, 10 Jan 2022 14:13:48 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 19/23] x86/efi: Make efi_enter/leave_mm use the temporary_mm machinery To: Andy Lutomirski Cc: Andrew Morton , Linux-MM , Nicholas Piggin , Anton Blanchard , Benjamin Herrenschmidt , Paul Mackerras , Randy Dunlap , linux-arch , x86@kernel.org, Rik van Riel , Dave Hansen , Peter Zijlstra , Nadav Amit , Mathieu Desnoyers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 3874C40007 X-Stat-Signature: hcim16snoe38qygfdeahc3mu5fzfmfxr Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=YMplQEe1; spf=pass (imf11.hostedemail.com: domain of ardb@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=ardb@kernel.org; dmarc=pass (policy=none) header.from=kernel.org X-Rspamd-Server: rspam10 X-HE-Tag: 1641820447-789628 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, 8 Jan 2022 at 17:44, Andy Lutomirski wrote: > > This should be considerably more robust. It's also necessary for optimized > for_each_possible_lazymm_cpu() on x86 -- without this patch, EFI calls in > lazy context would remove the lazy mm from mm_cpumask(). > > Cc: Ard Biesheuvel > Signed-off-by: Andy Lutomirski Acked-by: Ard Biesheuvel > --- > arch/x86/platform/efi/efi_64.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c > index 7515e78ef898..b9a571904363 100644 > --- a/arch/x86/platform/efi/efi_64.c > +++ b/arch/x86/platform/efi/efi_64.c > @@ -54,7 +54,7 @@ > * 0xffff_ffff_0000_0000 and limit EFI VA mapping space to 64G. > */ > static u64 efi_va = EFI_VA_START; > -static struct mm_struct *efi_prev_mm; > +static temp_mm_state_t efi_temp_mm_state; > > /* > * We need our own copy of the higher levels of the page tables > @@ -461,15 +461,12 @@ void __init efi_dump_pagetable(void) > */ > void efi_enter_mm(void) > { > - efi_prev_mm = current->active_mm; > - current->active_mm = &efi_mm; > - switch_mm(efi_prev_mm, &efi_mm, NULL); > + efi_temp_mm_state = use_temporary_mm(&efi_mm); > } > > void efi_leave_mm(void) > { > - current->active_mm = efi_prev_mm; > - switch_mm(&efi_mm, efi_prev_mm, NULL); > + unuse_temporary_mm(efi_temp_mm_state); > } > > static DEFINE_SPINLOCK(efi_runtime_lock); > -- > 2.33.1 >