public inbox for linux-efi@vger.kernel.org
 help / color / mirror / Atom feed
* [Patch v3 0/4] Protect against concurrent calls into UV BIOS
@ 2019-02-13 19:34 Hedi Berriche
  2019-02-13 19:34 ` [Patch v3 1/4] x86/platform/UV: remove unnecessary #ifdef CONFIG_EFI Hedi Berriche
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Hedi Berriche @ 2019-02-13 19:34 UTC (permalink / raw)
  To: linux-kernel, Ard Biesheuvel, Thomas Gleixner, Bhupesh Sharma
  Cc: Ingo Molnar, Borislav Petkov, H. Peter Anvin, linux-efi, x86,
	Russ Anderson, Mike Travis, Dimitri Sivanich, Steve Wahl, stable

- 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 <rja@hpe.com>
Cc: Mike Travis <mike.travis@hpe.com>
Cc: Dimitri Sivanich <sivanich@hpe.com>
Cc: Steve Wahl <steve.wahl@hpe.com>
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

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-02-15 15:05 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-13 19:34 [Patch v3 0/4] Protect against concurrent calls into UV BIOS Hedi Berriche
2019-02-13 19:34 ` [Patch v3 1/4] x86/platform/UV: remove unnecessary #ifdef CONFIG_EFI Hedi Berriche
2019-02-15 15:04   ` [tip:x86/uv] x86/platform/UV: Remove " tip-bot for Hedi Berriche
2019-02-13 19:34 ` [Patch v3 2/4] x86/platform/UV: kill uv_bios_call_reentrant() Hedi Berriche
2019-02-15 15:04   ` [tip:x86/uv] x86/platform/UV: Remove uv_bios_call_reentrant() tip-bot for Hedi Berriche
2019-02-13 19:34 ` [Patch v3 3/4] x86/platform/UV: use efi_enabled() instead of test_bit() Hedi Berriche
2019-02-15 15:05   ` [tip:x86/uv] x86/platform/UV: Use " tip-bot for Hedi Berriche
2019-02-13 19:34 ` [Patch v3 4/4] x86/platform/UV: use efi_runtime_lock to serialise BIOS calls Hedi Berriche
2019-02-15 15:01   ` [tip:x86/urgent] x86/platform/UV: Use " tip-bot for Hedi Berriche
2019-02-14  8:17 ` [Patch v3 0/4] Protect against concurrent calls into UV BIOS Ard Biesheuvel
2019-02-14 21:08   ` Russ Anderson
2019-02-14 21:21 ` Dimitri Sivanich
2019-02-14 21:31   ` Mike Travis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox