From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dimitri Sivanich Subject: Re: [Patch v3 0/4] Protect against concurrent calls into UV BIOS Date: Thu, 14 Feb 2019 15:21:49 -0600 Message-ID: <20190214212149.GB5073@hpe.com> References: <20190213193413.25560-1-hedi.berriche@hpe.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20190213193413.25560-1-hedi.berriche@hpe.com> Sender: linux-kernel-owner@vger.kernel.org To: Hedi Berriche Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , Thomas Gleixner , Bhupesh Sharma , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , linux-efi@vger.kernel.org, x86@kernel.org, Russ Anderson , Mike Travis , Steve Wahl , stable@vger.kernel.org List-Id: linux-efi@vger.kernel.org For the series: Reviewed-by: Dimitri Sivanich On Wed, Feb 13, 2019 at 07:34:09PM +0000, Hedi Berriche wrote: > - Changes since v2 > Addressed comments from Ard Biesheuvel: > * expose efi_runtime_lock to UV platform only instead of globally > * remove unnecessary #ifdef CONFIG_EFI from bios_uv.c > > - Changes since v1: > Addressed comments from Bhupesh Sharma, Thomas Gleixner, and Ard Biesheuvel: > * made __uv_bios_call() static > * moved the efi_enabled() cleanup to its own patchlet > * explained the reason for renaming the efi_runtime_lock semaphore > * dropped the reviewed-bys as they should be given on the mailing list > * Cc'ng stable@vger.kernel.org given the nature of the problem addressed by the patches > > --- > > Calls into UV BIOS were not being serialised which is wrong as it violates EFI > runtime rules, and bad as it does result in all sorts of potentially hard to > track down hangs and panics when efi_scratch.prev_mm gets clobbered whenever > efi_switch_mm() gets called concurrently from two different CPUs. > > Patch #1 removes an unnecessary #ifdef CONFIG_EFI guard from bios_uv.c. > > Patch #2 removes uv_bios_call_reentrant() because it's dead code. > > Patch #3 is a cleanup that drops test_bit() in favour of the ad hoc efi_enabled(). > > Patch #4 makes uv_bios_call() variants use the efi_runtime_lock semaphore to > protect against concurrency. > > Cc: Russ Anderson > Cc: Mike Travis > Cc: Dimitri Sivanich > Cc: Steve Wahl > Cc: stable@vger.kernel.org # v4.9+ > > Hedi Berriche (4): > x86/platform/UV: remove unnecessary #ifdef CONFIG_EFI > x86/platform/UV: kill uv_bios_call_reentrant() as it has no callers > x86/platform/UV: use efi_enabled() instead of test_bit() > x86/platform/UV: use efi_runtime_lock to serialise BIOS calls > > arch/x86/include/asm/uv/bios.h | 13 ++++----- > arch/x86/platform/uv/bios_uv.c | 35 ++++++++++++++----------- > drivers/firmware/efi/runtime-wrappers.c | 7 +++++ > 3 files changed, 34 insertions(+), 21 deletions(-) > > -- > 2.20.1 >