]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 May 2016 13:00:32 +0000 (15:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 May 2016 13:00:32 +0000 (15:00 +0200)
added patches:
acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch
x86-sysfb_efi-fix-valid-bar-address-range-check.patch

queue-3.14/acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch [new file with mode: 0644]
queue-3.14/series
queue-3.14/x86-sysfb_efi-fix-valid-bar-address-range-check.patch [new file with mode: 0644]

diff --git a/queue-3.14/acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch b/queue-3.14/acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch
new file mode 100644 (file)
index 0000000..f62f724
--- /dev/null
@@ -0,0 +1,39 @@
+From 93d68841a23a5779cef6fb9aa0ef32e7c5bd00da Mon Sep 17 00:00:00 2001
+From: Prarit Bhargava <prarit@redhat.com>
+Date: Wed, 4 May 2016 13:48:56 +0800
+Subject: ACPICA: Dispatcher: Update thread ID for recursive method calls
+
+From: Prarit Bhargava <prarit@redhat.com>
+
+commit 93d68841a23a5779cef6fb9aa0ef32e7c5bd00da upstream.
+
+ACPICA commit 7a3bd2d962f221809f25ddb826c9e551b916eb25
+
+Set the mutex owner thread ID.
+Original patch from: Prarit Bhargava <prarit@redhat.com>
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=115121
+Link: https://github.com/acpica/acpica/commit/7a3bd2d9
+Signed-off-by: Prarit Bhargava <prarit@redhat.com>
+Tested-by: Andy Lutomirski <luto@kernel.org> # On a Dell XPS 13 9350
+Signed-off-by: Bob Moore <robert.moore@intel.com>
+Signed-off-by: Lv Zheng <lv.zheng@intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/acpica/dsmethod.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/acpi/acpica/dsmethod.c
++++ b/drivers/acpi/acpica/dsmethod.c
+@@ -267,6 +267,9 @@ acpi_ds_begin_method_execution(struct ac
+                               obj_desc->method.mutex->mutex.
+                                   original_sync_level =
+                                   obj_desc->method.mutex->mutex.sync_level;
++
++                              obj_desc->method.mutex->mutex.thread_id =
++                                  acpi_os_get_thread_id();
+                       }
+               }
index 866ef9b43a6234ac2ffd90dade18aed6d2f5e1d2..93eb87d1c0e8934e2a2b0ba023244d0603d918c8 100644 (file)
@@ -14,3 +14,5 @@ batman-adv-fix-broadcast-ogm-queue-limit-on-a-removed-interface.patch
 batman-adv-reduce-refcnt-of-removed-router-when-updating-route.patch
 maintainers-remove-asterisk-from-efi-directory-names.patch
 x86-tsc-read-all-ratio-bits-from-msr_platform_info.patch
+x86-sysfb_efi-fix-valid-bar-address-range-check.patch
+acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch
diff --git a/queue-3.14/x86-sysfb_efi-fix-valid-bar-address-range-check.patch b/queue-3.14/x86-sysfb_efi-fix-valid-bar-address-range-check.patch
new file mode 100644 (file)
index 0000000..7d75998
--- /dev/null
@@ -0,0 +1,71 @@
+From c10fcb14c7afd6688c7b197a814358fecf244222 Mon Sep 17 00:00:00 2001
+From: Wang YanQing <udknight@gmail.com>
+Date: Thu, 5 May 2016 14:14:21 +0100
+Subject: x86/sysfb_efi: Fix valid BAR address range check
+
+From: Wang YanQing <udknight@gmail.com>
+
+commit c10fcb14c7afd6688c7b197a814358fecf244222 upstream.
+
+The code for checking whether a BAR address range is valid will break
+out of the loop when a start address of 0x0 is encountered.
+
+This behaviour is wrong since by breaking out of the loop we may miss
+the BAR that describes the EFI frame buffer in a later iteration.
+
+Because of this bug I can't use video=efifb: boot parameter to get
+efifb on my new ThinkPad E550 for my old linux system hard disk with
+3.10 kernel. In 3.10, efifb is the only choice due to DRM/I915 not
+supporting the GPU.
+
+This patch also add a trivial optimization to break out after we find
+the frame buffer address range without testing later BARs.
+
+Signed-off-by: Wang YanQing <udknight@gmail.com>
+[ Rewrote changelog. ]
+Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
+Reviewed-by: Peter Jones <pjones@redhat.com>
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: David Herrmann <dh.herrmann@gmail.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
+Cc: linux-efi@vger.kernel.org
+Link: http://lkml.kernel.org/r/1462454061-21561-2-git-send-email-matt@codeblueprint.co.uk
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/sysfb_efi.c |   14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kernel/sysfb_efi.c
++++ b/arch/x86/kernel/sysfb_efi.c
+@@ -106,14 +106,24 @@ static int __init efifb_set_system(const
+                                       continue;
+                               for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+                                       resource_size_t start, end;
++                                      unsigned long flags;
++
++                                      flags = pci_resource_flags(dev, i);
++                                      if (!(flags & IORESOURCE_MEM))
++                                              continue;
++
++                                      if (flags & IORESOURCE_UNSET)
++                                              continue;
++
++                                      if (pci_resource_len(dev, i) == 0)
++                                              continue;
+                                       start = pci_resource_start(dev, i);
+-                                      if (start == 0)
+-                                              break;
+                                       end = pci_resource_end(dev, i);
+                                       if (screen_info.lfb_base >= start &&
+                                           screen_info.lfb_base < end) {
+                                               found_bar = 1;
++                                              break;
+                                       }
+                               }
+                       }