* [GIT PULL 0/2] EFI urgent fixes
@ 2016-08-11 10:41 Matt Fleming
2016-08-11 10:41 ` [PATCH 1/2] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case Matt Fleming
2016-08-11 10:42 ` [PATCH 2/2] efi/capsule: Allocate whole capsule into virtual memory Matt Fleming
0 siblings, 2 replies; 16+ messages in thread
From: Matt Fleming @ 2016-08-11 10:41 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Matt Fleming, Ard Biesheuvel, linux-kernel, linux-efi,
Alex Thorlton, Austin Christ, Borislav Petkov,
Bryan O'Donoghue, Kweh Hock Leong, Chun-Yi Lee, Mike Travis,
Russ Anderson
Please pull the following two patches that fix EFI issues in v4.7.
They're both tagged for stable.
The following changes since commit 29b4817d4018df78086157ea3a55c1d9424a7cfc:
Linux 4.8-rc1 (2016-08-07 18:18:00 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
for you to fetch changes up to be6743b7f66c7d8bf7f8a48de9d86a66a177c3a2:
efi/capsule: Allocate whole capsule into virtual memory (2016-08-09 11:32:55 +0100)
----------------------------------------------------------------
* Fix a boot crash on SGI/UV when kexec'ing a kernel with the "noefi"
kernel parameter - Alex Thorlton
* Wholly map EFI capsules with vmap() instead of just the first page
with kmap(), so that the capsule driver works on Qualcomm QDF2432,
and because the UEFI specification requires the capsule to be fully
mapped into the kernel's virtual address space - Austin Christ
----------------------------------------------------------------
Alex Thorlton (1):
x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case
Austin Christ (1):
efi/capsule: Allocate whole capsule into virtual memory
arch/x86/platform/uv/bios_uv.c | 3 ++-
drivers/firmware/efi/capsule-loader.c | 8 +++++---
drivers/firmware/efi/capsule.c | 6 +++---
3 files changed, 10 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/2] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case
2016-08-11 10:41 [GIT PULL 0/2] EFI urgent fixes Matt Fleming
@ 2016-08-11 10:41 ` Matt Fleming
2016-08-11 16:19 ` [tip:efi/urgent] " tip-bot for Alex Thorlton
2016-08-11 10:42 ` [PATCH 2/2] efi/capsule: Allocate whole capsule into virtual memory Matt Fleming
1 sibling, 1 reply; 16+ messages in thread
From: Matt Fleming @ 2016-08-11 10:41 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Alex Thorlton, Ard Biesheuvel, linux-kernel, linux-efi,
Matt Fleming, Borislav Petkov, Ingo Molnar, Mike Travis,
Russ Anderson, stable
From: Alex Thorlton <athorlton@sgi.com>
This problem has actually been in the UV code for a while, but we didn't
catch it until recently, because we had been relying on EFI_OLD_MEMMAP
to allow our systems to boot for a period of time. We noticed the issue
when trying to kexec a recent community kernel, where we hit this NULL
pointer dereference in efi_sync_low_kernel_mappings:
[ 0.337515] BUG: unable to handle kernel NULL pointer dereference at 0000000000000880
[ 0.346276] IP: [<ffffffff8105df8d>] efi_sync_low_kernel_mappings+0x5d/0x1b0
The problem doesn't show up with EFI_OLD_MEMMAP because we skip the
chunk of setup_efi_state that sets the efi_loader_signature for the
kexec'd kernel. When the kexec'd kernel boots, it won't set EFI_BOOT in
setup_arch, so we completely avoid the bug.
We always kexec with noefi on the command line, so this shouldn't be an
issue, but since we're not actually checking for efi_runtime_disabled in
uv_bios_init, we end up trying to do EFI runtime callbacks when we
shouldn't be. This patch just adds a check for efi_runtime_disabled in
uv_bios_init so that we don't map in uv_systab when runtime_disabled ==
true.
Signed-off-by: Alex Thorlton <athorlton@sgi.com>
Cc: Russ Anderson <rja@sgi.com>
Cc: Mike Travis <travis@sgi.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: <stable@vger.kernel.org> # v4.7
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
---
arch/x86/platform/uv/bios_uv.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/platform/uv/bios_uv.c b/arch/x86/platform/uv/bios_uv.c
index 66b2166ea4a1..0df8a0370d32 100644
--- a/arch/x86/platform/uv/bios_uv.c
+++ b/arch/x86/platform/uv/bios_uv.c
@@ -187,7 +187,8 @@ EXPORT_SYMBOL_GPL(uv_bios_set_legacy_vga_target);
void uv_bios_init(void)
{
uv_systab = NULL;
- if ((efi.uv_systab == EFI_INVALID_TABLE_ADDR) || !efi.uv_systab) {
+ if ((efi.uv_systab == EFI_INVALID_TABLE_ADDR) ||
+ !efi.uv_systab || efi_runtime_disabled()) {
pr_crit("UV: UVsystab: missing\n");
return;
}
--
2.7.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [tip:efi/urgent] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case
2016-08-11 10:41 ` [PATCH 1/2] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case Matt Fleming
@ 2016-08-11 16:19 ` tip-bot for Alex Thorlton
0 siblings, 0 replies; 16+ messages in thread
From: tip-bot for Alex Thorlton @ 2016-08-11 16:19 UTC (permalink / raw)
To: linux-tip-commits
Cc: jpoimboe, brgerst, travis, luto, tglx, peterz, dvlasenk, bp,
ard.biesheuvel, mingo, linux-kernel, hpa, rja, bp, torvalds,
athorlton, matt
Commit-ID: f72075c9eda8a43aeea2f9dbb8d187afd4a76f0b
Gitweb: http://git.kernel.org/tip/f72075c9eda8a43aeea2f9dbb8d187afd4a76f0b
Author: Alex Thorlton <athorlton@sgi.com>
AuthorDate: Thu, 11 Aug 2016 11:41:59 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 11 Aug 2016 13:55:36 +0200
x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case
This problem has actually been in the UV code for a while, but we didn't
catch it until recently, because we had been relying on EFI_OLD_MEMMAP
to allow our systems to boot for a period of time. We noticed the issue
when trying to kexec a recent community kernel, where we hit this NULL
pointer dereference in efi_sync_low_kernel_mappings():
[ 0.337515] BUG: unable to handle kernel NULL pointer dereference at 0000000000000880
[ 0.346276] IP: [<ffffffff8105df8d>] efi_sync_low_kernel_mappings+0x5d/0x1b0
The problem doesn't show up with EFI_OLD_MEMMAP because we skip the
chunk of setup_efi_state() that sets the efi_loader_signature for the
kexec'd kernel. When the kexec'd kernel boots, it won't set EFI_BOOT in
setup_arch, so we completely avoid the bug.
We always kexec with noefi on the command line, so this shouldn't be an
issue, but since we're not actually checking for efi_runtime_disabled in
uv_bios_init(), we end up trying to do EFI runtime callbacks when we
shouldn't be. This patch just adds a check for efi_runtime_disabled in
uv_bios_init() so that we don't map in uv_systab when runtime_disabled ==
true.
Signed-off-by: Alex Thorlton <athorlton@sgi.com>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Cc: <stable@vger.kernel.org> # v4.7
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Borislav Petkov <bp@suse.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Travis <travis@sgi.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russ Anderson <rja@sgi.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/1470912120-22831-2-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/platform/uv/bios_uv.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/platform/uv/bios_uv.c b/arch/x86/platform/uv/bios_uv.c
index 66b2166..0df8a03 100644
--- a/arch/x86/platform/uv/bios_uv.c
+++ b/arch/x86/platform/uv/bios_uv.c
@@ -187,7 +187,8 @@ EXPORT_SYMBOL_GPL(uv_bios_set_legacy_vga_target);
void uv_bios_init(void)
{
uv_systab = NULL;
- if ((efi.uv_systab == EFI_INVALID_TABLE_ADDR) || !efi.uv_systab) {
+ if ((efi.uv_systab == EFI_INVALID_TABLE_ADDR) ||
+ !efi.uv_systab || efi_runtime_disabled()) {
pr_crit("UV: UVsystab: missing\n");
return;
}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/2] efi/capsule: Allocate whole capsule into virtual memory
2016-08-11 10:41 [GIT PULL 0/2] EFI urgent fixes Matt Fleming
2016-08-11 10:41 ` [PATCH 1/2] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case Matt Fleming
@ 2016-08-11 10:42 ` Matt Fleming
2016-08-11 16:20 ` [tip:efi/urgent] " tip-bot for Austin Christ
1 sibling, 1 reply; 16+ messages in thread
From: Matt Fleming @ 2016-08-11 10:42 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Austin Christ, Ard Biesheuvel, linux-kernel, linux-efi,
Matt Fleming, Bryan O'Donoghue, Kweh Hock Leong, Lee,
Chun-Yi, stable
From: Austin Christ <austinwc@codeaurora.org>
According to UEFI 2.6 section 7.5.3, the capsule should be in contiguous
virtual memory and firmware may consume the capsule immediately. To
correctly implement this functionality, the kernel driver needs to vmap
the entire capsule at the time it is made available to firmware.
The virtual allocation of the capsule update has been changed from kmap,
which was only allocating the first page of the update, to vmap, and
allocates the entire data payload.
Signed-off-by: Austin Christ <austinwc@codeaurora.org>
Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
Reviewed-by: Lee, Chun-Yi <jlee@suse.com>
Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: Kweh Hock Leong <hock.leong.kweh@intel.com>
Cc: <stable@vger.kernel.org> # v4.7
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
---
drivers/firmware/efi/capsule-loader.c | 8 +++++---
drivers/firmware/efi/capsule.c | 6 +++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c
index c99c24bc79b0..9ae6c116c474 100644
--- a/drivers/firmware/efi/capsule-loader.c
+++ b/drivers/firmware/efi/capsule-loader.c
@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <linux/mutex.h>
#include <linux/efi.h>
+#include <linux/vmalloc.h>
#define NO_FURTHER_WRITE_ACTION -1
@@ -108,14 +109,15 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info)
int ret;
void *cap_hdr_temp;
- cap_hdr_temp = kmap(cap_info->pages[0]);
+ cap_hdr_temp = vmap(cap_info->pages, cap_info->index,
+ VM_MAP, PAGE_KERNEL);
if (!cap_hdr_temp) {
- pr_debug("%s: kmap() failed\n", __func__);
+ pr_debug("%s: vmap() failed\n", __func__);
return -EFAULT;
}
ret = efi_capsule_update(cap_hdr_temp, cap_info->pages);
- kunmap(cap_info->pages[0]);
+ vunmap(cap_hdr_temp);
if (ret) {
pr_err("%s: efi_capsule_update() failed\n", __func__);
return ret;
diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c
index 53b9fd2293ee..6eedff45e6d7 100644
--- a/drivers/firmware/efi/capsule.c
+++ b/drivers/firmware/efi/capsule.c
@@ -190,9 +190,9 @@ efi_capsule_update_locked(efi_capsule_header_t *capsule,
* map the capsule described by @capsule with its data in @pages and
* send it to the firmware via the UpdateCapsule() runtime service.
*
- * @capsule must be a virtual mapping of the first page in @pages
- * (@pages[0]) in the kernel address space. That is, a
- * capsule_header_t that describes the entire contents of the capsule
+ * @capsule must be a virtual mapping of the complete capsule update in the
+ * kernel address space, as the capsule can be consumed immediately.
+ * A capsule_header_t that describes the entire contents of the capsule
* must be at the start of the first data page.
*
* Even though this function will validate that the firmware supports
--
2.7.3
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [tip:efi/urgent] efi/capsule: Allocate whole capsule into virtual memory
2016-08-11 10:42 ` [PATCH 2/2] efi/capsule: Allocate whole capsule into virtual memory Matt Fleming
@ 2016-08-11 16:20 ` tip-bot for Austin Christ
0 siblings, 0 replies; 16+ messages in thread
From: tip-bot for Austin Christ @ 2016-08-11 16:20 UTC (permalink / raw)
To: linux-tip-commits
Cc: ard.biesheuvel, mingo, torvalds, linux-kernel, jpoimboe, bp,
austinwc, luto, brgerst, peterz, jlee, pure.logic,
hock.leong.kweh, tglx, matt, hpa, dvlasenk
Commit-ID: 6862e6ad95e984991a6ceec592cf67831658f928
Gitweb: http://git.kernel.org/tip/6862e6ad95e984991a6ceec592cf67831658f928
Author: Austin Christ <austinwc@codeaurora.org>
AuthorDate: Thu, 11 Aug 2016 11:42:00 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 11 Aug 2016 13:55:36 +0200
efi/capsule: Allocate whole capsule into virtual memory
According to UEFI 2.6 section 7.5.3, the capsule should be in contiguous
virtual memory and firmware may consume the capsule immediately. To
correctly implement this functionality, the kernel driver needs to vmap
the entire capsule at the time it is made available to firmware.
The virtual allocation of the capsule update has been changed from kmap,
which was only allocating the first page of the update, to vmap, and
allocates the entire data payload.
Signed-off-by: Austin Christ <austinwc@codeaurora.org>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
Reviewed-by: Lee, Chun-Yi <jlee@suse.com>
Cc: <stable@vger.kernel.org> # v4.7
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kweh Hock Leong <hock.leong.kweh@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/1470912120-22831-3-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
drivers/firmware/efi/capsule-loader.c | 8 +++++---
drivers/firmware/efi/capsule.c | 6 +++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c
index c99c24b..9ae6c11 100644
--- a/drivers/firmware/efi/capsule-loader.c
+++ b/drivers/firmware/efi/capsule-loader.c
@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <linux/mutex.h>
#include <linux/efi.h>
+#include <linux/vmalloc.h>
#define NO_FURTHER_WRITE_ACTION -1
@@ -108,14 +109,15 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info)
int ret;
void *cap_hdr_temp;
- cap_hdr_temp = kmap(cap_info->pages[0]);
+ cap_hdr_temp = vmap(cap_info->pages, cap_info->index,
+ VM_MAP, PAGE_KERNEL);
if (!cap_hdr_temp) {
- pr_debug("%s: kmap() failed\n", __func__);
+ pr_debug("%s: vmap() failed\n", __func__);
return -EFAULT;
}
ret = efi_capsule_update(cap_hdr_temp, cap_info->pages);
- kunmap(cap_info->pages[0]);
+ vunmap(cap_hdr_temp);
if (ret) {
pr_err("%s: efi_capsule_update() failed\n", __func__);
return ret;
diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c
index 53b9fd2..6eedff4 100644
--- a/drivers/firmware/efi/capsule.c
+++ b/drivers/firmware/efi/capsule.c
@@ -190,9 +190,9 @@ efi_capsule_update_locked(efi_capsule_header_t *capsule,
* map the capsule described by @capsule with its data in @pages and
* send it to the firmware via the UpdateCapsule() runtime service.
*
- * @capsule must be a virtual mapping of the first page in @pages
- * (@pages[0]) in the kernel address space. That is, a
- * capsule_header_t that describes the entire contents of the capsule
+ * @capsule must be a virtual mapping of the complete capsule update in the
+ * kernel address space, as the capsule can be consumed immediately.
+ * A capsule_header_t that describes the entire contents of the capsule
* must be at the start of the first data page.
*
* Even though this function will validate that the firmware supports
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [GIT PULL 0/2] EFI urgent fixes
@ 2016-11-12 21:04 Matt Fleming
0 siblings, 0 replies; 16+ messages in thread
From: Matt Fleming @ 2016-11-12 21:04 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Matt Fleming, Ard Biesheuvel, linux-kernel, linux-efi,
Andy Lutomirski, Borislav Petkov
Folks, please pull the following two EFI patches. The first fixes a
build warning for PAE that Boris hit. The second makes mixed-mode EFI
boot again after the vmap'd stack changes introduced during the merge
window.
The following changes since commit bc33b0ca11e3df467777a4fa7639ba488c9d4911:
Linux 4.9-rc4 (2016-11-05 16:23:36 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/efi-urgent
for you to fetch changes up to 044ddf3d3e3cb62671f22fa837a2164d4786d867:
x86/efi: Prevent mixed mode boot corruption with CONFIG_VMAP_STACK (2016-11-12 21:00:18 +0000)
----------------------------------------------------------------
* Fix memory corruption when booting EFI mixed mode due to the recent
vmap'd stack changes - Matt Fleming
* Build warning fix in the EFI memmap code when CONFIG_X86_PAE and
CONFIG_PHYS_ADDR_T_64BIT are enabled - Borislav Petkov
----------------------------------------------------------------
Borislav Petkov (1):
x86/efi: Fix EFI memmap pointer size warning
Matt Fleming (1):
x86/efi: Prevent mixed mode boot corruption with CONFIG_VMAP_STACK
arch/x86/platform/efi/efi.c | 2 +-
arch/x86/platform/efi/efi_64.c | 80 ++++++++++++++++++++++++++++++------------
2 files changed, 58 insertions(+), 24 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* [GIT PULL 0/2] EFI urgent fixes
@ 2016-09-20 14:48 Matt Fleming
2016-09-20 14:58 ` Ingo Molnar
2016-09-20 15:20 ` Waiman Long
0 siblings, 2 replies; 16+ messages in thread
From: Matt Fleming @ 2016-09-20 14:48 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Matt Fleming, Ard Biesheuvel, linux-kernel, linux-efi,
Arnd Bergmann, Borislav Petkov, Douglas Hatch,
Greg Kroah-Hartman, Linus Torvalds, Scott J Norton,
stable @ vger . kernel . org Waiman Long, stable
Folks, please pull the following two fixes that address the boot hang
issue Waiman reported here,
https://lkml.kernel.org/r/57DF56D4.50304@hpe.com
The following changes since commit 3be7988674ab33565700a37b210f502563d932e6:
Linux 4.8-rc7 (2016-09-18 17:27:41 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
for you to fetch changes up to 1297667083d5442aafe3e337b9413bf02b114edb:
x86/efi: Only map RAM into EFI page tables if in mixed-mode (2016-09-20 14:53:04 +0100)
----------------------------------------------------------------
* Fix a boot hang on large memory machines (multiple terabyte) caused
by type conversion errors in the x86 pat code - Matt Fleming
----------------------------------------------------------------
Matt Fleming (2):
x86/mm/pat: Prevent hang during boot when mapping pages
x86/efi: Only map RAM into EFI page tables if in mixed-mode
arch/x86/mm/pageattr.c | 21 +++++++++++----------
arch/x86/platform/efi/efi_64.c | 2 +-
2 files changed, 12 insertions(+), 11 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-09-20 14:48 Matt Fleming
@ 2016-09-20 14:58 ` Ingo Molnar
2016-09-20 15:20 ` Waiman Long
1 sibling, 0 replies; 16+ messages in thread
From: Ingo Molnar @ 2016-09-20 14:58 UTC (permalink / raw)
To: Matt Fleming
Cc: Thomas Gleixner, H . Peter Anvin, Ard Biesheuvel, linux-kernel,
linux-efi, Arnd Bergmann, Borislav Petkov, Douglas Hatch,
Greg Kroah-Hartman, Linus Torvalds, Scott J Norton,
stable @ vger . kernel . org Waiman Long, stable
* Matt Fleming <matt@codeblueprint.co.uk> wrote:
> Folks, please pull the following two fixes that address the boot hang
> issue Waiman reported here,
>
> https://lkml.kernel.org/r/57DF56D4.50304@hpe.com
>
> The following changes since commit 3be7988674ab33565700a37b210f502563d932e6:
>
> Linux 4.8-rc7 (2016-09-18 17:27:41 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
>
> for you to fetch changes up to 1297667083d5442aafe3e337b9413bf02b114edb:
>
> x86/efi: Only map RAM into EFI page tables if in mixed-mode (2016-09-20 14:53:04 +0100)
>
> ----------------------------------------------------------------
> * Fix a boot hang on large memory machines (multiple terabyte) caused
> by type conversion errors in the x86 pat code - Matt Fleming
>
> ----------------------------------------------------------------
> Matt Fleming (2):
> x86/mm/pat: Prevent hang during boot when mapping pages
> x86/efi: Only map RAM into EFI page tables if in mixed-mode
>
> arch/x86/mm/pageattr.c | 21 +++++++++++----------
> arch/x86/platform/efi/efi_64.c | 2 +-
> 2 files changed, 12 insertions(+), 11 deletions(-)
Pulled, thanks a lot Matt!
Ingo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-09-20 14:48 Matt Fleming
2016-09-20 14:58 ` Ingo Molnar
@ 2016-09-20 15:20 ` Waiman Long
2016-09-20 15:27 ` Matt Fleming
1 sibling, 1 reply; 16+ messages in thread
From: Waiman Long @ 2016-09-20 15:20 UTC (permalink / raw)
To: Matt Fleming
Cc: Ingo Molnar, Thomas Gleixner, H . Peter Anvin, Ard Biesheuvel,
linux-kernel, linux-efi, Arnd Bergmann, Borislav Petkov,
Douglas Hatch, Greg Kroah-Hartman, Linus Torvalds,
Scott J Norton, stable
On 09/20/2016 10:48 AM, Matt Fleming wrote:
> Folks, please pull the following two fixes that address the boot hang
> issue Waiman reported here,
>
> https://lkml.kernel.org/r/57DF56D4.50304@hpe.com
>
> The following changes since commit 3be7988674ab33565700a37b210f502563d932e6:
>
> Linux 4.8-rc7 (2016-09-18 17:27:41 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
>
> for you to fetch changes up to 1297667083d5442aafe3e337b9413bf02b114edb:
>
> x86/efi: Only map RAM into EFI page tables if in mixed-mode (2016-09-20 14:53:04 +0100)
>
> ----------------------------------------------------------------
> * Fix a boot hang on large memory machines (multiple terabyte) caused
> by type conversion errors in the x86 pat code - Matt Fleming
>
> ----------------------------------------------------------------
> Matt Fleming (2):
> x86/mm/pat: Prevent hang during boot when mapping pages
> x86/efi: Only map RAM into EFI page tables if in mixed-mode
>
> arch/x86/mm/pageattr.c | 21 +++++++++++----------
> arch/x86/platform/efi/efi_64.c | 2 +-
> 2 files changed, 12 insertions(+), 11 deletions(-)
Are you also going to send these fixes to the 4.6 and 4.7 stable trees
as well?
Cheers,
Longman
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-09-20 15:20 ` Waiman Long
@ 2016-09-20 15:27 ` Matt Fleming
0 siblings, 0 replies; 16+ messages in thread
From: Matt Fleming @ 2016-09-20 15:27 UTC (permalink / raw)
To: Waiman Long
Cc: Ingo Molnar, Thomas Gleixner, H . Peter Anvin, Ard Biesheuvel,
linux-kernel, linux-efi, Arnd Bergmann, Borislav Petkov,
Douglas Hatch, Greg Kroah-Hartman, Linus Torvalds,
Scott J Norton
On Tue, 20 Sep, at 11:20:17AM, Waiman Long wrote:
> On 09/20/2016 10:48 AM, Matt Fleming wrote:
> >Folks, please pull the following two fixes that address the boot hang
> >issue Waiman reported here,
> >
> > https://lkml.kernel.org/r/57DF56D4.50304@hpe.com
> >
> >The following changes since commit 3be7988674ab33565700a37b210f502563d932e6:
> >
> > Linux 4.8-rc7 (2016-09-18 17:27:41 -0700)
> >
> >are available in the git repository at:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
> >
> >for you to fetch changes up to 1297667083d5442aafe3e337b9413bf02b114edb:
> >
> > x86/efi: Only map RAM into EFI page tables if in mixed-mode (2016-09-20 14:53:04 +0100)
> >
> >----------------------------------------------------------------
> > * Fix a boot hang on large memory machines (multiple terabyte) caused
> > by type conversion errors in the x86 pat code - Matt Fleming
> >
> >----------------------------------------------------------------
> >Matt Fleming (2):
> > x86/mm/pat: Prevent hang during boot when mapping pages
> > x86/efi: Only map RAM into EFI page tables if in mixed-mode
> >
> > arch/x86/mm/pageattr.c | 21 +++++++++++----------
> > arch/x86/platform/efi/efi_64.c | 2 +-
> > 2 files changed, 12 insertions(+), 11 deletions(-)
>
> Are you also going to send these fixes to the 4.6 and 4.7 stable trees as
> well?
I just checked and I failed to tag the first patch for stable, though
I did mean to. Yes, I'll send them to stable once they're merged.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [GIT PULL 0/2] EFI urgent fixes
@ 2016-05-31 10:23 Matt Fleming
2016-06-06 10:02 ` Matt Fleming
0 siblings, 1 reply; 16+ messages in thread
From: Matt Fleming @ 2016-05-31 10:23 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Matt Fleming, Ard Biesheuvel, linux-kernel, linux-efi,
Catalin Marinas, Dan Williams, Dennis Chen, K. Y. Srinivasan,
Mark Rutland, Mark Salter, Steve Capper, Steve McIntyre,
Steven Rostedt, Vitaly Kuznetsov, Will Deacon
Folks, please pull the following urgent patches which fix a boot crash
when using the "noefi" parameter and the debug output on arm.
The following changes since commit 1a695a905c18548062509178b98bc91e67510864:
Linux 4.7-rc1 (2016-05-29 09:29:24 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
for you to fetch changes up to 1f0cf3892caeab20a99c19f5523499be77b533cd:
efi/arm: Fix the format of debug message from efi (2016-05-30 22:51:53 +0100)
----------------------------------------------------------------
* Fix crash when booting with the "noefi" kernel parameter, caused by
recent changes to for_each_efi_memory_desc_in_map() - Vitaly Kuznetsov
* Unscramble the debug output on arm when efi=debug and memblock=debug
is passed on the kernel cmdline - Dennis Chen
----------------------------------------------------------------
Dennis Chen (1):
efi/arm: Fix the format of debug message from efi
Vitaly Kuznetsov (1):
efi: Fix for_each_efi_memory_desc_in_map() for empty memmaps
drivers/firmware/efi/arm-init.c | 14 ++++++--------
include/linux/efi.h | 2 +-
2 files changed, 7 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-05-31 10:23 Matt Fleming
@ 2016-06-06 10:02 ` Matt Fleming
2016-06-08 7:24 ` Ingo Molnar
0 siblings, 1 reply; 16+ messages in thread
From: Matt Fleming @ 2016-06-06 10:02 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Ard Biesheuvel, linux-kernel, linux-efi, Catalin Marinas,
Dan Williams, Dennis Chen, K. Y. Srinivasan, Mark Rutland,
Mark Salter, Steve Capper, Steve McIntyre, Steven Rostedt,
Vitaly Kuznetsov, Will Deacon
On Tue, 31 May, at 11:23:42AM, Matt Fleming wrote:
> Folks, please pull the following urgent patches which fix a boot crash
> when using the "noefi" parameter and the debug output on arm.
>
> The following changes since commit 1a695a905c18548062509178b98bc91e67510864:
>
> Linux 4.7-rc1 (2016-05-29 09:29:24 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
>
> for you to fetch changes up to 1f0cf3892caeab20a99c19f5523499be77b533cd:
>
> efi/arm: Fix the format of debug message from efi (2016-05-30 22:51:53 +0100)
>
> ----------------------------------------------------------------
> * Fix crash when booting with the "noefi" kernel parameter, caused by
> recent changes to for_each_efi_memory_desc_in_map() - Vitaly Kuznetsov
>
> * Unscramble the debug output on arm when efi=debug and memblock=debug
> is passed on the kernel cmdline - Dennis Chen
>
> ----------------------------------------------------------------
> Dennis Chen (1):
> efi/arm: Fix the format of debug message from efi
>
> Vitaly Kuznetsov (1):
> efi: Fix for_each_efi_memory_desc_in_map() for empty memmaps
>
> drivers/firmware/efi/arm-init.c | 14 ++++++--------
> include/linux/efi.h | 2 +-
> 2 files changed, 7 insertions(+), 9 deletions(-)
Ping? I see these patches queued up in tip/efi/urgent but they don't
appear to be in Linus' tree yet.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-06-06 10:02 ` Matt Fleming
@ 2016-06-08 7:24 ` Ingo Molnar
0 siblings, 0 replies; 16+ messages in thread
From: Ingo Molnar @ 2016-06-08 7:24 UTC (permalink / raw)
To: Matt Fleming
Cc: Thomas Gleixner, H . Peter Anvin, Ard Biesheuvel, linux-kernel,
linux-efi, Catalin Marinas, Dan Williams, Dennis Chen,
K. Y. Srinivasan, Mark Rutland, Mark Salter, Steve Capper,
Steve McIntyre, Steven Rostedt, Vitaly Kuznetsov, Will Deacon
* Matt Fleming <matt@codeblueprint.co.uk> wrote:
> On Tue, 31 May, at 11:23:42AM, Matt Fleming wrote:
> > Folks, please pull the following urgent patches which fix a boot crash
> > when using the "noefi" parameter and the debug output on arm.
> >
> > The following changes since commit 1a695a905c18548062509178b98bc91e67510864:
> >
> > Linux 4.7-rc1 (2016-05-29 09:29:24 -0700)
> >
> > are available in the git repository at:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
> >
> > for you to fetch changes up to 1f0cf3892caeab20a99c19f5523499be77b533cd:
> >
> > efi/arm: Fix the format of debug message from efi (2016-05-30 22:51:53 +0100)
> >
> > ----------------------------------------------------------------
> > * Fix crash when booting with the "noefi" kernel parameter, caused by
> > recent changes to for_each_efi_memory_desc_in_map() - Vitaly Kuznetsov
> >
> > * Unscramble the debug output on arm when efi=debug and memblock=debug
> > is passed on the kernel cmdline - Dennis Chen
> >
> > ----------------------------------------------------------------
> > Dennis Chen (1):
> > efi/arm: Fix the format of debug message from efi
> >
> > Vitaly Kuznetsov (1):
> > efi: Fix for_each_efi_memory_desc_in_map() for empty memmaps
> >
> > drivers/firmware/efi/arm-init.c | 14 ++++++--------
> > include/linux/efi.h | 2 +-
> > 2 files changed, 7 insertions(+), 9 deletions(-)
>
> Ping? I see these patches queued up in tip/efi/urgent but they don't
> appear to be in Linus' tree yet.
Yeah, will get them to Linus later today.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 16+ messages in thread
* [GIT PULL 0/2] EFI urgent fixes
@ 2016-02-16 12:59 Matt Fleming
2016-02-16 15:47 ` Ingo Molnar
0 siblings, 1 reply; 16+ messages in thread
From: Matt Fleming @ 2016-02-16 12:59 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
Cc: Ard Biesheuvel, Matt Fleming, linux-kernel, linux-efi,
Jason Andryuk, Laszlo Ersek, Lee, Chun-Yi, Matthew Garrett,
Peter Jones
Folks, here are some bug fixes that missed the previous pull request
but that are related to those patches.
The following changes since commit 4682c211a80ee93214b72d95f861b0f6e90e5445:
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent (2016-02-16 13:14:57 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
for you to fetch changes up to a68075908a37850918ad96b056acc9ac4ce1bd90:
lib/ucs2_string: Correct ucs2 -> utf8 conversion (2016-02-16 12:49:05 +0000)
----------------------------------------------------------------
* Fix bugs in our code that converts ucs2 strings to utf8 where we
unintentionally drop bits from the original string - Jason Andryuk
* Add the efi-pstore variables to the variable whitelist so that
users can continue to delete them via efivarfs without needing to
manipulate the immutable flag - Matt Fleming
----------------------------------------------------------------
Jason Andryuk (1):
lib/ucs2_string: Correct ucs2 -> utf8 conversion
Matt Fleming (1):
efi: Add pstore variables to the deletion whitelist
drivers/firmware/efi/vars.c | 1 +
lib/ucs2_string.c | 14 +++++++-------
2 files changed, 8 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL 0/2] EFI urgent fixes
2016-02-16 12:59 Matt Fleming
@ 2016-02-16 15:47 ` Ingo Molnar
0 siblings, 0 replies; 16+ messages in thread
From: Ingo Molnar @ 2016-02-16 15:47 UTC (permalink / raw)
To: Matt Fleming
Cc: Thomas Gleixner, H . Peter Anvin, Ard Biesheuvel, linux-kernel,
linux-efi, Jason Andryuk, Laszlo Ersek, Lee, Chun-Yi,
Matthew Garrett, Peter Jones
* Matt Fleming <matt@codeblueprint.co.uk> wrote:
> Folks, here are some bug fixes that missed the previous pull request
> but that are related to those patches.
>
> The following changes since commit 4682c211a80ee93214b72d95f861b0f6e90e5445:
>
> Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent (2016-02-16 13:14:57 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
>
> for you to fetch changes up to a68075908a37850918ad96b056acc9ac4ce1bd90:
>
> lib/ucs2_string: Correct ucs2 -> utf8 conversion (2016-02-16 12:49:05 +0000)
>
> ----------------------------------------------------------------
> * Fix bugs in our code that converts ucs2 strings to utf8 where we
> unintentionally drop bits from the original string - Jason Andryuk
>
> * Add the efi-pstore variables to the variable whitelist so that
> users can continue to delete them via efivarfs without needing to
> manipulate the immutable flag - Matt Fleming
>
> ----------------------------------------------------------------
> Jason Andryuk (1):
> lib/ucs2_string: Correct ucs2 -> utf8 conversion
>
> Matt Fleming (1):
> efi: Add pstore variables to the deletion whitelist
>
> drivers/firmware/efi/vars.c | 1 +
> lib/ucs2_string.c | 14 +++++++-------
> 2 files changed, 8 insertions(+), 7 deletions(-)
Pulled, thanks Matt!
Ingo
^ permalink raw reply [flat|nested] 16+ messages in thread
* [GIT PULL 0/2] EFI urgent fixes
@ 2015-09-25 22:02 Matt Fleming
0 siblings, 0 replies; 16+ messages in thread
From: Matt Fleming @ 2015-09-25 22:02 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin
Cc: Matt Fleming, linux-kernel, linux-efi, Ard Biesheuvel,
Borislav Petkov, Catalin Marinas, Dave Young, James Bottomley,
Lee, Chun-Yi, Leif Lindholm, Mark Rutland, Mark Salter,
Matthew Garrett, Peter Jones, stable, Will Deacon
From: Matt Fleming <matt.fleming@intel.com>
Folks,
The patches in this pull request fix kernel crashes when booting Linux
on UEFI v2.5 machines with the Properties Table feature enabled.
Essentially, when this feature is enabled the firmware allocates
separate entries in the EFI memory map for the code and data sections
of PE/COFF images, whereas previously only one memory map entry would
have existed.
Because we've now got two entries that reference each other we *must*
map them into the kernel virtual address space with the same offsets
and in the same order as they appear in the EFI memory map. Failure to
do so causes the firmware to access unmapped/invalid addresses.
These patches were intentionally kept as small as possible so that
they can be backported by distributions, aggressively.
The following changes since commit 1f93e4a96c9109378204c147b3eec0d0e8100fde:
Linux 4.3-rc2 (2015-09-20 14:32:34 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-urgent
for you to fetch changes up to 1fa25e09ca2ce07f03bca93ad71800c312fd4951:
arm64/efi: Don't pad between EFI_MEMORY_RUNTIME regions (2015-09-25 22:35:15 +0100)
----------------------------------------------------------------
* arm64 bug fix for UEFI 2.5 firmware that has the Properties Table
feature enabled. The fix avoids a kernel crash by removing the padding
between runtime regions that we currently do in the kernel so we don't
break the EFI's cross-region references - Ard Biesheuvel
* Map EFI memory regions in-order on x86 so that we maintain the
relative offset between regions and fix a crash when booting on
UEFI 2.5 machines with the Properties Table feature enabled.
----------------------------------------------------------------
Ard Biesheuvel (1):
arm64/efi: Don't pad between EFI_MEMORY_RUNTIME regions
Matt Fleming (1):
x86/efi: Map EFI memmap entries in-order at runtime
arch/arm64/kernel/efi.c | 3 +-
arch/x86/platform/efi/efi.c | 67 ++++++++++++++++++++++++-
drivers/firmware/efi/libstub/arm-stub.c | 88 +++++++++++++++++++++++++++------
3 files changed, 141 insertions(+), 17 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2016-11-12 21:04 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-11 10:41 [GIT PULL 0/2] EFI urgent fixes Matt Fleming
2016-08-11 10:41 ` [PATCH 1/2] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case Matt Fleming
2016-08-11 16:19 ` [tip:efi/urgent] " tip-bot for Alex Thorlton
2016-08-11 10:42 ` [PATCH 2/2] efi/capsule: Allocate whole capsule into virtual memory Matt Fleming
2016-08-11 16:20 ` [tip:efi/urgent] " tip-bot for Austin Christ
-- strict thread matches above, loose matches on Subject: below --
2016-11-12 21:04 [GIT PULL 0/2] EFI urgent fixes Matt Fleming
2016-09-20 14:48 Matt Fleming
2016-09-20 14:58 ` Ingo Molnar
2016-09-20 15:20 ` Waiman Long
2016-09-20 15:27 ` Matt Fleming
2016-05-31 10:23 Matt Fleming
2016-06-06 10:02 ` Matt Fleming
2016-06-08 7:24 ` Ingo Molnar
2016-02-16 12:59 Matt Fleming
2016-02-16 15:47 ` Ingo Molnar
2015-09-25 22:02 Matt Fleming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).