From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Andy Lutomirski <luto@amacapital.net>,
Borislav Petkov <bp@suse.de>,
Matt Fleming <matt.fleming@intel.com>
Subject: [PATCH 3.19 167/175] x86/efi: Avoid triple faults during EFI mixed mode calls
Date: Tue, 3 Mar 2015 22:15:45 -0800 [thread overview]
Message-ID: <20150304061053.541003305@linuxfoundation.org> (raw)
In-Reply-To: <20150304061026.134125919@linuxfoundation.org>
3.19-stable review patch. If anyone has any objections, please let me know.
------------------
From: Matt Fleming <matt.fleming@intel.com>
commit 96738c69a7fcdbf0d7c9df0c8a27660011e82a7b upstream.
Andy pointed out that if an NMI or MCE is received while we're in the
middle of an EFI mixed mode call a triple fault will occur. This can
happen, for example, when issuing an EFI mixed mode call while running
perf.
The reason for the triple fault is that we execute the mixed mode call
in 32-bit mode with paging disabled but with 64-bit kernel IDT handlers
installed throughout the call.
At Andy's suggestion, stop playing the games we currently do at runtime,
such as disabling paging and installing a 32-bit GDT for __KERNEL_CS. We
can simply switch to the __KERNEL32_CS descriptor before invoking
firmware services, and run in compatibility mode. This way, if an
NMI/MCE does occur the kernel IDT handler will execute correctly, since
it'll jump to __KERNEL_CS automatically.
However, this change is only possible post-ExitBootServices(). Before
then the firmware "owns" the machine and expects for its 32-bit IDT
handlers to be left intact to service interrupts, etc.
So, we now need to distinguish between early boot and runtime
invocations of EFI services. During early boot, we need to restore the
GDT that the firmware expects to be present. We can only jump to the
__KERNEL32_CS code segment for mixed mode calls after ExitBootServices()
has been invoked.
A liberal sprinkling of comments in the thunking code should make the
differences in early and late environments more apparent.
Reported-by: Andy Lutomirski <luto@amacapital.net>
Tested-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/boot/compressed/Makefile | 1
arch/x86/boot/compressed/efi_stub_64.S | 25 ----
arch/x86/boot/compressed/efi_thunk_64.S | 196 ++++++++++++++++++++++++++++++++
arch/x86/platform/efi/efi_stub_64.S | 161 --------------------------
arch/x86/platform/efi/efi_thunk_64.S | 121 ++++++++++++++++---
5 files changed, 301 insertions(+), 203 deletions(-)
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -49,6 +49,7 @@ $(obj)/eboot.o: KBUILD_CFLAGS += -fshort
vmlinux-objs-$(CONFIG_EFI_STUB) += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o \
$(objtree)/drivers/firmware/efi/libstub/lib.a
+vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_thunk_$(BITS).o
$(obj)/vmlinux: $(vmlinux-objs-y) FORCE
$(call if_changed,ld)
--- a/arch/x86/boot/compressed/efi_stub_64.S
+++ b/arch/x86/boot/compressed/efi_stub_64.S
@@ -3,28 +3,3 @@
#include <asm/processor-flags.h>
#include "../../platform/efi/efi_stub_64.S"
-
-#ifdef CONFIG_EFI_MIXED
- .code64
- .text
-ENTRY(efi64_thunk)
- push %rbp
- push %rbx
-
- subq $16, %rsp
- leaq efi_exit32(%rip), %rax
- movl %eax, 8(%rsp)
- leaq efi_gdt64(%rip), %rax
- movl %eax, 4(%rsp)
- movl %eax, 2(%rax) /* Fixup the gdt base address */
- leaq efi32_boot_gdt(%rip), %rax
- movl %eax, (%rsp)
-
- call __efi64_thunk
-
- addq $16, %rsp
- pop %rbx
- pop %rbp
- ret
-ENDPROC(efi64_thunk)
-#endif /* CONFIG_EFI_MIXED */
--- /dev/null
+++ b/arch/x86/boot/compressed/efi_thunk_64.S
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2014, 2015 Intel Corporation; author Matt Fleming
+ *
+ * Early support for invoking 32-bit EFI services from a 64-bit kernel.
+ *
+ * Because this thunking occurs before ExitBootServices() we have to
+ * restore the firmware's 32-bit GDT before we make EFI serivce calls,
+ * since the firmware's 32-bit IDT is still currently installed and it
+ * needs to be able to service interrupts.
+ *
+ * On the plus side, we don't have to worry about mangling 64-bit
+ * addresses into 32-bits because we're executing with an identify
+ * mapped pagetable and haven't transitioned to 64-bit virtual addresses
+ * yet.
+ */
+
+#include <linux/linkage.h>
+#include <asm/msr.h>
+#include <asm/page_types.h>
+#include <asm/processor-flags.h>
+#include <asm/segment.h>
+
+ .code64
+ .text
+ENTRY(efi64_thunk)
+ push %rbp
+ push %rbx
+
+ subq $8, %rsp
+ leaq efi_exit32(%rip), %rax
+ movl %eax, 4(%rsp)
+ leaq efi_gdt64(%rip), %rax
+ movl %eax, (%rsp)
+ movl %eax, 2(%rax) /* Fixup the gdt base address */
+
+ movl %ds, %eax
+ push %rax
+ movl %es, %eax
+ push %rax
+ movl %ss, %eax
+ push %rax
+
+ /*
+ * Convert x86-64 ABI params to i386 ABI
+ */
+ subq $32, %rsp
+ movl %esi, 0x0(%rsp)
+ movl %edx, 0x4(%rsp)
+ movl %ecx, 0x8(%rsp)
+ movq %r8, %rsi
+ movl %esi, 0xc(%rsp)
+ movq %r9, %rsi
+ movl %esi, 0x10(%rsp)
+
+ sgdt save_gdt(%rip)
+
+ leaq 1f(%rip), %rbx
+ movq %rbx, func_rt_ptr(%rip)
+
+ /*
+ * Switch to gdt with 32-bit segments. This is the firmware GDT
+ * that was installed when the kernel started executing. This
+ * pointer was saved at the EFI stub entry point in head_64.S.
+ */
+ leaq efi32_boot_gdt(%rip), %rax
+ lgdt (%rax)
+
+ pushq $__KERNEL_CS
+ leaq efi_enter32(%rip), %rax
+ pushq %rax
+ lretq
+
+1: addq $32, %rsp
+
+ lgdt save_gdt(%rip)
+
+ pop %rbx
+ movl %ebx, %ss
+ pop %rbx
+ movl %ebx, %es
+ pop %rbx
+ movl %ebx, %ds
+
+ /*
+ * Convert 32-bit status code into 64-bit.
+ */
+ test %rax, %rax
+ jz 1f
+ movl %eax, %ecx
+ andl $0x0fffffff, %ecx
+ andl $0xf0000000, %eax
+ shl $32, %rax
+ or %rcx, %rax
+1:
+ addq $8, %rsp
+ pop %rbx
+ pop %rbp
+ ret
+ENDPROC(efi64_thunk)
+
+ENTRY(efi_exit32)
+ movq func_rt_ptr(%rip), %rax
+ push %rax
+ mov %rdi, %rax
+ ret
+ENDPROC(efi_exit32)
+
+ .code32
+/*
+ * EFI service pointer must be in %edi.
+ *
+ * The stack should represent the 32-bit calling convention.
+ */
+ENTRY(efi_enter32)
+ movl $__KERNEL_DS, %eax
+ movl %eax, %ds
+ movl %eax, %es
+ movl %eax, %ss
+
+ /* Reload pgtables */
+ movl %cr3, %eax
+ movl %eax, %cr3
+
+ /* Disable paging */
+ movl %cr0, %eax
+ btrl $X86_CR0_PG_BIT, %eax
+ movl %eax, %cr0
+
+ /* Disable long mode via EFER */
+ movl $MSR_EFER, %ecx
+ rdmsr
+ btrl $_EFER_LME, %eax
+ wrmsr
+
+ call *%edi
+
+ /* We must preserve return value */
+ movl %eax, %edi
+
+ /*
+ * Some firmware will return with interrupts enabled. Be sure to
+ * disable them before we switch GDTs.
+ */
+ cli
+
+ movl 56(%esp), %eax
+ movl %eax, 2(%eax)
+ lgdtl (%eax)
+
+ movl %cr4, %eax
+ btsl $(X86_CR4_PAE_BIT), %eax
+ movl %eax, %cr4
+
+ movl %cr3, %eax
+ movl %eax, %cr3
+
+ movl $MSR_EFER, %ecx
+ rdmsr
+ btsl $_EFER_LME, %eax
+ wrmsr
+
+ xorl %eax, %eax
+ lldt %ax
+
+ movl 60(%esp), %eax
+ pushl $__KERNEL_CS
+ pushl %eax
+
+ /* Enable paging */
+ movl %cr0, %eax
+ btsl $X86_CR0_PG_BIT, %eax
+ movl %eax, %cr0
+ lret
+ENDPROC(efi_enter32)
+
+ .data
+ .balign 8
+ .global efi32_boot_gdt
+efi32_boot_gdt: .word 0
+ .quad 0
+
+save_gdt: .word 0
+ .quad 0
+func_rt_ptr: .quad 0
+
+ .global efi_gdt64
+efi_gdt64:
+ .word efi_gdt64_end - efi_gdt64
+ .long 0 /* Filled out by user */
+ .word 0
+ .quad 0x0000000000000000 /* NULL descriptor */
+ .quad 0x00af9a000000ffff /* __KERNEL_CS */
+ .quad 0x00cf92000000ffff /* __KERNEL_DS */
+ .quad 0x0080890000000000 /* TS descriptor */
+ .quad 0x0000000000000000 /* TS continued */
+efi_gdt64_end:
--- a/arch/x86/platform/efi/efi_stub_64.S
+++ b/arch/x86/platform/efi/efi_stub_64.S
@@ -91,167 +91,6 @@ ENTRY(efi_call)
ret
ENDPROC(efi_call)
-#ifdef CONFIG_EFI_MIXED
-
-/*
- * We run this function from the 1:1 mapping.
- *
- * This function must be invoked with a 1:1 mapped stack.
- */
-ENTRY(__efi64_thunk)
- movl %ds, %eax
- push %rax
- movl %es, %eax
- push %rax
- movl %ss, %eax
- push %rax
-
- subq $32, %rsp
- movl %esi, 0x0(%rsp)
- movl %edx, 0x4(%rsp)
- movl %ecx, 0x8(%rsp)
- movq %r8, %rsi
- movl %esi, 0xc(%rsp)
- movq %r9, %rsi
- movl %esi, 0x10(%rsp)
-
- sgdt save_gdt(%rip)
-
- leaq 1f(%rip), %rbx
- movq %rbx, func_rt_ptr(%rip)
-
- /* Switch to gdt with 32-bit segments */
- movl 64(%rsp), %eax
- lgdt (%rax)
-
- leaq efi_enter32(%rip), %rax
- pushq $__KERNEL_CS
- pushq %rax
- lretq
-
-1: addq $32, %rsp
-
- lgdt save_gdt(%rip)
-
- pop %rbx
- movl %ebx, %ss
- pop %rbx
- movl %ebx, %es
- pop %rbx
- movl %ebx, %ds
-
- /*
- * Convert 32-bit status code into 64-bit.
- */
- test %rax, %rax
- jz 1f
- movl %eax, %ecx
- andl $0x0fffffff, %ecx
- andl $0xf0000000, %eax
- shl $32, %rax
- or %rcx, %rax
-1:
- ret
-ENDPROC(__efi64_thunk)
-
-ENTRY(efi_exit32)
- movq func_rt_ptr(%rip), %rax
- push %rax
- mov %rdi, %rax
- ret
-ENDPROC(efi_exit32)
-
- .code32
-/*
- * EFI service pointer must be in %edi.
- *
- * The stack should represent the 32-bit calling convention.
- */
-ENTRY(efi_enter32)
- movl $__KERNEL_DS, %eax
- movl %eax, %ds
- movl %eax, %es
- movl %eax, %ss
-
- /* Reload pgtables */
- movl %cr3, %eax
- movl %eax, %cr3
-
- /* Disable paging */
- movl %cr0, %eax
- btrl $X86_CR0_PG_BIT, %eax
- movl %eax, %cr0
-
- /* Disable long mode via EFER */
- movl $MSR_EFER, %ecx
- rdmsr
- btrl $_EFER_LME, %eax
- wrmsr
-
- call *%edi
-
- /* We must preserve return value */
- movl %eax, %edi
-
- /*
- * Some firmware will return with interrupts enabled. Be sure to
- * disable them before we switch GDTs.
- */
- cli
-
- movl 68(%esp), %eax
- movl %eax, 2(%eax)
- lgdtl (%eax)
-
- movl %cr4, %eax
- btsl $(X86_CR4_PAE_BIT), %eax
- movl %eax, %cr4
-
- movl %cr3, %eax
- movl %eax, %cr3
-
- movl $MSR_EFER, %ecx
- rdmsr
- btsl $_EFER_LME, %eax
- wrmsr
-
- xorl %eax, %eax
- lldt %ax
-
- movl 72(%esp), %eax
- pushl $__KERNEL_CS
- pushl %eax
-
- /* Enable paging */
- movl %cr0, %eax
- btsl $X86_CR0_PG_BIT, %eax
- movl %eax, %cr0
- lret
-ENDPROC(efi_enter32)
-
- .data
- .balign 8
- .global efi32_boot_gdt
-efi32_boot_gdt: .word 0
- .quad 0
-
-save_gdt: .word 0
- .quad 0
-func_rt_ptr: .quad 0
-
- .global efi_gdt64
-efi_gdt64:
- .word efi_gdt64_end - efi_gdt64
- .long 0 /* Filled out by user */
- .word 0
- .quad 0x0000000000000000 /* NULL descriptor */
- .quad 0x00af9a000000ffff /* __KERNEL_CS */
- .quad 0x00cf92000000ffff /* __KERNEL_DS */
- .quad 0x0080890000000000 /* TS descriptor */
- .quad 0x0000000000000000 /* TS continued */
-efi_gdt64_end:
-#endif /* CONFIG_EFI_MIXED */
-
.data
ENTRY(efi_scratch)
.fill 3,8,0
--- a/arch/x86/platform/efi/efi_thunk_64.S
+++ b/arch/x86/platform/efi/efi_thunk_64.S
@@ -1,9 +1,26 @@
/*
* Copyright (C) 2014 Intel Corporation; author Matt Fleming
+ *
+ * Support for invoking 32-bit EFI runtime services from a 64-bit
+ * kernel.
+ *
+ * The below thunking functions are only used after ExitBootServices()
+ * has been called. This simplifies things considerably as compared with
+ * the early EFI thunking because we can leave all the kernel state
+ * intact (GDT, IDT, etc) and simply invoke the the 32-bit EFI runtime
+ * services from __KERNEL32_CS. This means we can continue to service
+ * interrupts across an EFI mixed mode call.
+ *
+ * We do however, need to handle the fact that we're running in a full
+ * 64-bit virtual address space. Things like the stack and instruction
+ * addresses need to be accessible by the 32-bit firmware, so we rely on
+ * using the identity mappings in the EFI page table to access the stack
+ * and kernel text (see efi_setup_page_tables()).
*/
#include <linux/linkage.h>
#include <asm/page_types.h>
+#include <asm/segment.h>
.text
.code64
@@ -33,14 +50,6 @@ ENTRY(efi64_thunk)
leaq efi_exit32(%rip), %rbx
subq %rax, %rbx
movl %ebx, 8(%rsp)
- leaq efi_gdt64(%rip), %rbx
- subq %rax, %rbx
- movl %ebx, 2(%ebx)
- movl %ebx, 4(%rsp)
- leaq efi_gdt32(%rip), %rbx
- subq %rax, %rbx
- movl %ebx, 2(%ebx)
- movl %ebx, (%rsp)
leaq __efi64_thunk(%rip), %rbx
subq %rax, %rbx
@@ -52,14 +61,92 @@ ENTRY(efi64_thunk)
retq
ENDPROC(efi64_thunk)
- .data
-efi_gdt32:
- .word efi_gdt32_end - efi_gdt32
- .long 0 /* Filled out above */
- .word 0
- .quad 0x0000000000000000 /* NULL descriptor */
- .quad 0x00cf9a000000ffff /* __KERNEL_CS */
- .quad 0x00cf93000000ffff /* __KERNEL_DS */
-efi_gdt32_end:
+/*
+ * We run this function from the 1:1 mapping.
+ *
+ * This function must be invoked with a 1:1 mapped stack.
+ */
+ENTRY(__efi64_thunk)
+ movl %ds, %eax
+ push %rax
+ movl %es, %eax
+ push %rax
+ movl %ss, %eax
+ push %rax
+
+ subq $32, %rsp
+ movl %esi, 0x0(%rsp)
+ movl %edx, 0x4(%rsp)
+ movl %ecx, 0x8(%rsp)
+ movq %r8, %rsi
+ movl %esi, 0xc(%rsp)
+ movq %r9, %rsi
+ movl %esi, 0x10(%rsp)
+
+ leaq 1f(%rip), %rbx
+ movq %rbx, func_rt_ptr(%rip)
+
+ /* Switch to 32-bit descriptor */
+ pushq $__KERNEL32_CS
+ leaq efi_enter32(%rip), %rax
+ pushq %rax
+ lretq
+
+1: addq $32, %rsp
+
+ pop %rbx
+ movl %ebx, %ss
+ pop %rbx
+ movl %ebx, %es
+ pop %rbx
+ movl %ebx, %ds
+ /*
+ * Convert 32-bit status code into 64-bit.
+ */
+ test %rax, %rax
+ jz 1f
+ movl %eax, %ecx
+ andl $0x0fffffff, %ecx
+ andl $0xf0000000, %eax
+ shl $32, %rax
+ or %rcx, %rax
+1:
+ ret
+ENDPROC(__efi64_thunk)
+
+ENTRY(efi_exit32)
+ movq func_rt_ptr(%rip), %rax
+ push %rax
+ mov %rdi, %rax
+ ret
+ENDPROC(efi_exit32)
+
+ .code32
+/*
+ * EFI service pointer must be in %edi.
+ *
+ * The stack should represent the 32-bit calling convention.
+ */
+ENTRY(efi_enter32)
+ movl $__KERNEL_DS, %eax
+ movl %eax, %ds
+ movl %eax, %es
+ movl %eax, %ss
+
+ call *%edi
+
+ /* We must preserve return value */
+ movl %eax, %edi
+
+ movl 72(%esp), %eax
+ pushl $__KERNEL_CS
+ pushl %eax
+
+ lret
+ENDPROC(efi_enter32)
+
+ .data
+ .balign 8
+func_rt_ptr: .quad 0
efi_saved_sp: .quad 0
next prev parent reply other threads:[~2015-03-04 6:15 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-04 6:12 [PATCH 3.19 000/175] 3.19.1-stable review Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 002/175] Bluetooth: ath3k: workaround the compatibility issue with xHCI controller Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 003/175] Bluetooth: ath3k: Add support of AR3012 bluetooth 13d3:3423 device Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 004/175] Bluetooth: Fix valid Identity Address check Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 005/175] Bluetooth: btusb: Add Broadcom patchram support for ASUSTek devices Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 006/175] Bluetooth: Fix reporting invalid RSSI for LE devices Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 007/175] Bluetooth: btusb: Add support for Dynex/Insignia USB dongles Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 008/175] Bluetooth: btusb: Add support for Lite-On (04ca) Broadcom based, BCM43142 Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 009/175] random: Fix fast_mix() function Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 010/175] xfs: ensure buffer types are set correctly Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 011/175] xfs: inode unlink does not set AGI buffer type Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 012/175] xfs: set buf types when converting extent formats Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 013/175] xfs: set superblock buffer type correctly Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 014/175] xfs: only trace buffer items if they exist Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 015/175] fsnotify: fix handling of renames in audit Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 016/175] ksoftirqd: Enable IRQs and call cond_resched() before poking RCU Greg Kroah-Hartman
2015-05-01 20:00 ` Josh Hunt
2015-05-01 20:52 ` Greg Kroah-Hartman
2015-05-02 3:14 ` Mike Galbraith
2015-05-02 17:45 ` Greg Kroah-Hartman
2015-05-11 7:37 ` Michal Kubecek
2015-05-11 7:53 ` Jiri Slaby
2015-03-04 6:13 ` [PATCH 3.19 017/175] iwlwifi: pcie: disable the SCD_BASE_ADDR when we resume from WoWLAN Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 018/175] iwlwifi: mvm: validate tid and sta_id in ba_notif Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 019/175] iwlwifi: mvm: fix failure path when power_update fails in add_interface Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 020/175] iwlwifi: mvm: always use mac color zero Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 021/175] HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 022/175] PCI: Generate uppercase hex for modalias var in uevent Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 024/175] ASoC: rt5670: Set use_single_rw flag for regmap Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 025/175] ASoC: Intel: sst: Fix firmware name size handling Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 026/175] ASoC: rt5677: fix SPI dependency Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 027/175] ASoC: mioa701_wm9713: Fix speaker event Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 028/175] ASoC: davinci: fix DM365_EVM codec selection Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 029/175] rtlwifi: rtl8192ee: Fix adhoc fail Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 030/175] rtlwifi: rtl8192ee: Fix TX hang due to failure to update TX write point Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 031/175] rtlwifi: rtl8192ee: Fix parsing of received packet Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 032/175] rtlwifi: rtl8192ee: Fix DMA stalls Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 033/175] rtlwifi: rtl8192ee: Fix problems with calculating free space in FIFO Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 034/175] rtlwifi: Remove logging statement that is no longer needed Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 035/175] cpufreq: Set cpufreq_cpu_data to NULL before putting kobject Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 037/175] cpufreq: s3c: remove incorrect __init annotations Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 038/175] cpufreq: s3c: remove last use of resume_clocks callback Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 039/175] xen/manage: Fix USB interaction issues when resuming Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 040/175] xen-scsiback: mark pvscsi frontend request consumed only after last read Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 041/175] ACPI / LPSS: Always disable I2C host controllers Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 042/175] ACPI / LPSS: Deassert resets for SPI host controllers on Braswell Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 043/175] [media] lmedm04: Increase Interupt due time to 200 msec Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 044/175] [media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 045/175] [media] si2168: define symbol rate limits Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 046/175] ALSA: off by one bug in snd_riptide_joystick_probe() Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 047/175] ALSA: hda - Set up GPIO for Toshiba Satellite S50D Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 048/175] ALSA: hda - enable mute led quirk for one more hp machine Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 049/175] ALSA: usb: Fix support for Denon DA-300USB DAC (ID 154e:1003) Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 050/175] ALSA: hdspm - Constrain periods to 2 on older cards Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 051/175] power_supply: 88pm860x: Fix leaked power supply on probe fail Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 052/175] power: bq24190: Fix ignored supplicants Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 053/175] power: gpio-charger: balance enable/disable_irq_wake calls Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 054/175] megaraid_sas: endianness related bug fixes and code optimization Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 055/175] megaraid_sas: fix the problem of non-existing VD exposed to host Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 056/175] megaraid_sas: disable interrupt_mask before enabling hardware interrupts Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 057/175] megaraid_sas: complete outstanding IOCTLs before killing adapter Greg Kroah-Hartman
2015-03-04 6:13 ` [PATCH 3.19 059/175] [media] timberdale: do not select TIMB_DMA Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 068/175] mmc: sdhci-pxav3: fix unbalanced clock issues during probe Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 069/175] mmc: sdhci-pxav3: fix race between runtime pm and irq Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 070/175] mmc: sdhci-pxav3: fix setting of pdata->clk_delay_cycles Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 071/175] mmc: sdhci-pxav3: Fix SDR50 and DDR50 capabilities for the Armada 38x flavor Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 072/175] mmc: sdhci-pxav3: Fix Armada 38x controllers caps according to erratum ERR-7878951 Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 073/175] proc/pagemap: walk page tables under pte lock Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 074/175] nfs: dont call blocking operations while !TASK_RUNNING Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 075/175] NFS: struct nfs_commit_info.lock must always point to inode->i_lock Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 076/175] KVM: MIPS: Disable HTW while in guest Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 077/175] KVM: MIPS: Dont leak FPU/DSP to guest Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 078/175] MIPS: Alchemy: Fix cpu clock calculation Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 079/175] MIPS: kernel: cps-vec: Replace "addi" with "addiu" Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 080/175] MIPS: asm: asmmacro: Replace "add" instructions with "addu" Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 081/175] MIPS: asm: pgtable: Add c0 hazards on HTW start/stop sequences Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 082/175] MIPS: asm: pgtable: Prevent HTW race when updating PTEs Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 083/175] MIPS: Export FP functions used by lose_fpu(1) for KVM Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 084/175] MIPS: Export MSA " Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 085/175] mm/hugetlb: pmd_huge() returns true for non-present hugepage Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 086/175] tracing: Fix unmapping loop in tracing_mark_write Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 087/175] blk-mq: fix double-free in error path Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 088/175] ARM: 8284/1: sa1100: clear RCSR_SMR on resume Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 089/175] ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3 Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 090/175] ARM: dts: tegra20: fix GR3D, DSI unit and reg base addresses Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 091/175] ARM: dts: am335x-bone*: usb0 is hardwired for peripheral Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 092/175] ARM: dts: BCM63xx: fix L2 cache properties Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 093/175] tpm_tis: verify interrupt during init Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 094/175] TPM: Add new TPMs to the tail of the list to prevent inadvertent change of dev Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 095/175] char: tpm: Add missing error check for devm_kzalloc Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 096/175] tpm: Fix NULL return in tpm_ibmvtpm_get_desired_dma Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 097/175] tpm/tpm_i2c_stm_st33: Fix potential bug in tpm_stm_i2c_send Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 098/175] Added Little Endian support to vtpm module Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 099/175] nfs41: .init_read and .init_write can be called with valid pg_lseg Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 101/175] NFSv4: Ensure we reference the inode for return-on-close in delegreturn Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 102/175] NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 103/175] sg: fix unkillable I/O wait deadlock with scsi-mq Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 104/175] sg: fix EWOULDBLOCK errors " Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 105/175] iscsi-target: Drop problematic active_ts_list usage Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 106/175] cfq-iosched: handle failure of cfq group allocation Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 107/175] cfq-iosched: fix incorrect filing of rt async cfqq Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 108/175] cipso: dont use IPCB() to locate the CIPSO IP option Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 109/175] ring-buffer: Do not wake up a splice waiter when page is not full Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 110/175] smack: fix possible use after frees in task_security() callers Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 111/175] axonram: Fix bug in direct_access Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 112/175] tty: Remove warning in tty_lock_slave() Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 113/175] tty: Prevent untrappable signals from malicious program Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 114/175] tty/serial: at91: use correct type for dma_sync_*_for_cpu() and dma_sync_*_for_device() Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 115/175] tty/serial: at91: enable peripheral clock before accessing I/O registers Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 116/175] tty/serial: at91: fix error handling in atmel_serial_probe() Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 117/175] mei: mask interrupt set bit on clean reset bit Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 118/175] mei: me: release hw from reset only during the reset flow Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 119/175] USB: cp210x: add ID for RUGGEDCOM USB Serial Console Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 120/175] USB: fix use-after-free bug in usb_hcd_unlink_urb() Greg Kroah-Hartman
2015-03-04 6:14 ` [PATCH 3.19 121/175] usb: dwc3: gadget: add missing spin_lock() Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 122/175] usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 123/175] USB: dont cancel queued resets when unbinding drivers Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 124/175] USB: add flag for HCDs that cant receive wakeup requests (isp1760-hcd) Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 125/175] cdc-acm: add sanity checks Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 126/175] vt: provide notifications on selection changes Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 127/175] ARM: pxa: add regulator_has_full_constraints to corgi board file Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 128/175] ARM: pxa: add regulator_has_full_constraints to poodle " Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 129/175] ARM: pxa: add regulator_has_full_constraints to spitz " Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 130/175] ARM: brcmstb: update CPU power management sequence Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 131/175] ARM: BCM: put back ARCH_MULTI_V7 dependency for mobile Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 132/175] ARM: vexpress: use ARM_CPU_SUSPEND if needed Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 133/175] ARM: mvebu: build armada375-smp code conditionally Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 134/175] kdb: fix incorrect counts in KDB summary command output Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 135/175] kdb: Avoid printing KERN_ levels to consoles Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 136/175] kdb: Fix off by one error in kdb_cpu() Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 137/175] ntp: Fixup adjtimex freq validation on 32-bit systems Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 138/175] serial: fsl_lpuart: delete timer on shutdown Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 139/175] serial: fsl_lpuart: avoid new transfer while DMA is running Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 140/175] ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 141/175] MIPS: HTW: Prevent accidental HTW start due to nested htw_{start, stop} Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 142/175] udf: Remove repeated loads blocksize Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 143/175] udf: Check length of extended attributes and allocation descriptors Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 144/175] KVM: s390: forward hrtimer if guest ckc not pending yet Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 145/175] KVM: s390: base hrtimer on a monotonic clock Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 146/175] KVM: s390: floating irqs: fix user triggerable endless loop Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 147/175] KVM: s390: avoid memory leaks if __inject_vm() fails Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 148/175] hx4700: regulator: declare full constraints Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 149/175] arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 150/175] gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip per node Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 151/175] gpio: tps65912: fix wrong container_of arguments Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 152/175] xfs: Fix quota type in quota structures when reusing quota file Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 153/175] metag: Fix KSTK_EIP() and KSTK_ESP() macros Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 154/175] clocksource: mtk: Fix race conditions in probe code Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 155/175] perf tools: Fix probing for PERF_FLAG_FD_CLOEXEC flag Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 156/175] md/raid5: Fix livelock when array is both resyncing and degraded Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 158/175] sb_edac: Fix detection on SNB machines Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 159/175] EDAC, amd64_edac: Prevent OOPS with >16 memory controllers Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 160/175] jffs2: fix handling of corrupted summary length Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 161/175] samsung-laptop: Add use_native_backlight quirk, and enable it on some models Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 162/175] libceph: fix double __remove_osd() problem Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 163/175] btrfs: set proper message level for skinny metadata Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 164/175] btrfs: fix leak of path in btrfs_find_item Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 165/175] Btrfs: fix fsync data loss after adding hard link to inode Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 166/175] blk-throttle: check stats_cpu before reading it from sysfs Greg Kroah-Hartman
2015-03-04 6:15 ` Greg Kroah-Hartman [this message]
2015-03-04 6:15 ` [PATCH 3.19 168/175] x86, mm/ASLR: Fix stack randomization on 64-bit systems Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 170/175] x86: pmc-atom: Assign debugfs node as soon as possible Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 171/175] kernel: tighten rules for ACCESS ONCE Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 172/175] kernel: Fix sparse warning for ACCESS_ONCE Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 173/175] kernel: make READ_ONCE() valid on const arguments Greg Kroah-Hartman
2015-03-04 6:15 ` [PATCH 3.19 175/175] x86/xen/p2m: Replace ACCESS_ONCE with READ_ONCE Greg Kroah-Hartman
2015-03-04 14:23 ` [PATCH 3.19 000/175] 3.19.1-stable review Guenter Roeck
2015-03-04 20:43 ` Greg Kroah-Hartman
2015-03-04 23:41 ` Shuah Khan
2015-03-04 23:58 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150304061053.541003305@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=bp@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=matt.fleming@intel.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).