From: Greg Kroah-Hartman Date: Sun, 8 May 2016 13:00:32 +0000 (+0200) Subject: 3.14-stable patches X-Git-Tag: v3.14.69~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c4ab0764add1f67b40534fe3def74c8d0e713f8;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch x86-sysfb_efi-fix-valid-bar-address-range-check.patch --- 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 index 00000000000..f62f724f1cb --- /dev/null +++ b/queue-3.14/acpica-dispatcher-update-thread-id-for-recursive-method-calls.patch @@ -0,0 +1,39 @@ +From 93d68841a23a5779cef6fb9aa0ef32e7c5bd00da Mon Sep 17 00:00:00 2001 +From: Prarit Bhargava +Date: Wed, 4 May 2016 13:48:56 +0800 +Subject: ACPICA: Dispatcher: Update thread ID for recursive method calls + +From: Prarit Bhargava + +commit 93d68841a23a5779cef6fb9aa0ef32e7c5bd00da upstream. + +ACPICA commit 7a3bd2d962f221809f25ddb826c9e551b916eb25 + +Set the mutex owner thread ID. +Original patch from: Prarit Bhargava + +Link: https://bugzilla.kernel.org/show_bug.cgi?id=115121 +Link: https://github.com/acpica/acpica/commit/7a3bd2d9 +Signed-off-by: Prarit Bhargava +Tested-by: Andy Lutomirski # On a Dell XPS 13 9350 +Signed-off-by: Bob Moore +Signed-off-by: Lv Zheng +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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(); + } + } + diff --git a/queue-3.14/series b/queue-3.14/series index 866ef9b43a6..93eb87d1c0e 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -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 index 00000000000..7d759985560 --- /dev/null +++ b/queue-3.14/x86-sysfb_efi-fix-valid-bar-address-range-check.patch @@ -0,0 +1,71 @@ +From c10fcb14c7afd6688c7b197a814358fecf244222 Mon Sep 17 00:00:00 2001 +From: Wang YanQing +Date: Thu, 5 May 2016 14:14:21 +0100 +Subject: x86/sysfb_efi: Fix valid BAR address range check + +From: Wang YanQing + +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 +[ Rewrote changelog. ] +Signed-off-by: Matt Fleming +Reviewed-by: Peter Jones +Cc: Ard Biesheuvel +Cc: David Herrmann +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: Tomi Valkeinen +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } + } + }