Patchwork [3.5.y.z,extended,stable] Patch "efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Feb. 19, 2013, 6:15 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/221758/
State New
Headers show


Herton Ronaldo Krzesinski - Feb. 19, 2013, 6:15 p.m.
This is a note to let you know that I have just added a patch titled

    efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 6bdc907045202b73449c313f36b8d3eebe9bdea6 Mon Sep 17 00:00:00 2001
From: Satoru Takeuchi <>
Date: Thu, 14 Feb 2013 09:12:52 +0900
Subject: [PATCH] efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by
 "noefi" boot parameter

commit 1de63d60cd5b0d33a812efa455d5933bf1564a51 upstream.

There was a serious problem in samsung-laptop that its platform driver is
designed to run under BIOS and running under EFI can cause the machine to
become bricked or can cause Machine Check Exceptions.

    Discussion about this problem:

    The patches to fix this problem:
    efi: Make 'efi_enabled' a function to query EFI facilities

    samsung-laptop: Disable on EFI hardware

Unfortunately this problem comes back again if users specify "noefi" option.
This parameter clears EFI_BOOT and that driver continues to run even if running
under EFI. Refer to the document, this parameter should clear



	noefi		[X86] Disable EFI runtime services support.

- If some or all EFI runtime services don't work, you can try following
  kernel command line parameters to turn off some or all EFI runtime
	noefi		turn off all EFI runtime services

Signed-off-by: Satoru Takeuchi <>
Cc: Matt Fleming <>
Signed-off-by: H. Peter Anvin <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 arch/x86/platform/efi/efi.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 6fcd4ad..3705bb0 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -86,7 +86,7 @@  EXPORT_SYMBOL(efi_enabled);

 static int __init setup_noefi(char *arg)
-	clear_bit(EFI_BOOT, &x86_efi_facility);
+	clear_bit(EFI_RUNTIME_SERVICES, &x86_efi_facility);
 	return 0;
 early_param("noefi", setup_noefi);