]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.38 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 27 Apr 2011 23:42:13 +0000 (16:42 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 27 Apr 2011 23:42:13 +0000 (16:42 -0700)
queue-2.6.38/acpi-pm-avoid-infinite-recurrence-while-registering-power-resources.patch [new file with mode: 0644]
queue-2.6.38/flexcop-pci-fix-__xlate_proc_name-warning-for-flexcop-pci.patch [new file with mode: 0644]
queue-2.6.38/kvm-390-let-kernel-exit-sie-instruction-on-work.patch [new file with mode: 0644]
queue-2.6.38/pfault-fix-token-handling.patch [new file with mode: 0644]
queue-2.6.38/series
queue-2.6.38/set-memory-ranges-in-n_normal_memory-when-onlined.patch [new file with mode: 0644]
queue-2.6.38/slub-fix-panic-with-discontigmem.patch [new file with mode: 0644]

diff --git a/queue-2.6.38/acpi-pm-avoid-infinite-recurrence-while-registering-power-resources.patch b/queue-2.6.38/acpi-pm-avoid-infinite-recurrence-while-registering-power-resources.patch
new file mode 100644 (file)
index 0000000..301a02c
--- /dev/null
@@ -0,0 +1,45 @@
+From 7bed50c5edf5cba8dd515a31191cbfb6065ddc85 Mon Sep 17 00:00:00 2001
+From: Rafael J. Wysocki <rjw@sisk.pl>
+Date: Tue, 26 Apr 2011 11:33:18 +0200
+Subject: ACPI / PM: Avoid infinite recurrence while registering power resources
+
+From: Rafael J. Wysocki <rjw@sisk.pl>
+
+commit 7bed50c5edf5cba8dd515a31191cbfb6065ddc85 upstream.
+
+There is at least one BIOS with a DSDT containing a power resource
+object with a _PR0 entry pointing back to that power resource.  In
+consequence, while registering that power resource
+acpi_bus_get_power_flags() sees that it depends on itself and tries
+to register it again, which leads to an infinitely deep recurrence.
+This problem was introduced by commit bf325f9538d8c89312be305b9779e
+(ACPI / PM: Register power resource devices as soon as they are
+needed).
+
+To fix this problem use the observation that power resources cannot
+be power manageable and prevent acpi_bus_get_power_flags() from
+being called for power resource objects.
+
+References: https://bugzilla.kernel.org/show_bug.cgi?id=31872
+Reported-and-tested-by: Pascal Dormeau <pdormeau@free.fr>
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Acked-by: Len Brown <lenb@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/scan.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/acpi/scan.c
++++ b/drivers/acpi/scan.c
+@@ -944,6 +944,10 @@ static int acpi_bus_get_flags(struct acp
+       if (ACPI_SUCCESS(status))
+               device->flags.lockable = 1;
++      /* Power resources cannot be power manageable. */
++      if (device->device_type == ACPI_BUS_TYPE_POWER)
++              return 0;
++
+       /* Presence of _PS0|_PR0 indicates 'power manageable' */
+       status = acpi_get_handle(device->handle, "_PS0", &temp);
+       if (ACPI_FAILURE(status))
diff --git a/queue-2.6.38/flexcop-pci-fix-__xlate_proc_name-warning-for-flexcop-pci.patch b/queue-2.6.38/flexcop-pci-fix-__xlate_proc_name-warning-for-flexcop-pci.patch
new file mode 100644 (file)
index 0000000..ff959bd
--- /dev/null
@@ -0,0 +1,33 @@
+From b934c20de1398d4a82d2ecfeb588a214a910f13f Mon Sep 17 00:00:00 2001
+From: Patrick Boettcher <pboettcher@kernellabs.com>
+Date: Sun, 3 Apr 2011 12:40:24 -0300
+Subject: [media] FLEXCOP-PCI: fix __xlate_proc_name-warning for flexcop-pci
+
+From: Patrick Boettcher <pboettcher@kernellabs.com>
+
+commit b934c20de1398d4a82d2ecfeb588a214a910f13f upstream.
+
+This patch fixes the warning about bad names for sys-fs and other kernel-things. The flexcop-pci driver was using '/'-characters in it, which is not good.
+This has been fixed in several attempts by several people, but obviously never made it into the kernel.
+
+Signed-off-by: Patrick Boettcher <pboettcher@kernellabs.com>
+Cc: Steffen Barszus <steffenbpunkt@googlemail.com>
+Cc: Boris Cuber <me@boris64.net>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/dvb/b2c2/flexcop-pci.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/dvb/b2c2/flexcop-pci.c
++++ b/drivers/media/dvb/b2c2/flexcop-pci.c
+@@ -38,7 +38,7 @@ MODULE_PARM_DESC(debug,
+       DEBSTATUS);
+ #define DRIVER_VERSION "0.1"
+-#define DRIVER_NAME "Technisat/B2C2 FlexCop II/IIb/III Digital TV PCI Driver"
++#define DRIVER_NAME "flexcop-pci"
+ #define DRIVER_AUTHOR "Patrick Boettcher <patrick.boettcher@desy.de>"
+ struct flexcop_pci {
diff --git a/queue-2.6.38/kvm-390-let-kernel-exit-sie-instruction-on-work.patch b/queue-2.6.38/kvm-390-let-kernel-exit-sie-instruction-on-work.patch
new file mode 100644 (file)
index 0000000..3fa1f26
--- /dev/null
@@ -0,0 +1,42 @@
+From 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 Mon Sep 17 00:00:00 2001
+From: Carsten Otte <cotte@de.ibm.com>
+Date: Wed, 20 Apr 2011 10:15:36 +0200
+Subject: [S390] kvm-390: Let kernel exit SIE instruction on work
+
+From: Carsten Otte <cotte@de.ibm.com>
+
+commit 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 upstream.
+
+From: Christian Borntraeger <borntraeger@de.ibm.com>
+
+This patch fixes the sie exit on interrupts. The low level
+interrupt handler returns to the PSW address in pt_regs and not
+to the PSW address in the lowcore.
+Without this fix a cpu bound guest might never leave guest state
+since the host interrupt handler would blindly return to the
+SIE instruction, even on need_resched and friends.
+
+Signed-off-by: Carsten Otte <cotte@de.ibm.com>
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/s390/kvm/sie64a.S |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/s390/kvm/sie64a.S
++++ b/arch/s390/kvm/sie64a.S
+@@ -48,10 +48,10 @@ sie_irq_handler:
+       tm      __TI_flags+7(%r2),_TIF_EXIT_SIE
+       jz      0f
+       larl    %r2,sie_exit                    # work pending, leave sie
+-      stg     %r2,__LC_RETURN_PSW+8
++      stg     %r2,SPI_PSW+8(0,%r15)
+       br      %r14
+ 0:    larl    %r2,sie_reenter                 # re-enter with guest id
+-      stg     %r2,__LC_RETURN_PSW+8
++      stg     %r2,SPI_PSW+8(0,%r15)
+ 1:    br      %r14
+ /*
diff --git a/queue-2.6.38/pfault-fix-token-handling.patch b/queue-2.6.38/pfault-fix-token-handling.patch
new file mode 100644 (file)
index 0000000..7d40f4b
--- /dev/null
@@ -0,0 +1,77 @@
+From e35c76cd47c244eaa7a74adaabde4d0a1cadb907 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens@de.ibm.com>
+Date: Wed, 20 Apr 2011 10:15:34 +0200
+Subject: [S390] pfault: fix token handling
+
+From: Heiko Carstens <heiko.carstens@de.ibm.com>
+
+commit e35c76cd47c244eaa7a74adaabde4d0a1cadb907 upstream.
+
+f6649a7e "[S390] cleanup lowcore access from external interrupts" changed
+handling of external interrupts. Instead of letting the external interrupt
+handlers accessing the per cpu lowcore the entry code of the kernel reads
+already all fields that are necessary and passes them to the handlers.
+The pfault interrupt handler was incorrectly converted. It tries to
+dereference a value which used to be a pointer to a lowcore field. After
+the conversion however it is not anymore the pointer to the field but its
+content. So instead of a dereference only a cast is needed to get the
+task pointer that caused the pfault.
+
+Fixes a NULL pointer dereference and a subsequent kernel crash:
+
+Unable to handle kernel pointer dereference at virtual kernel address (null)
+Oops: 0004 [#1] SMP
+Modules linked in: nfsd exportfs nfs lockd fscache nfs_acl auth_rpcgss sunrpc
+                   loop qeth_l3 qeth vmur ccwgroup ext3 jbd mbcache dm_mod
+                   dasd_eckd_mod dasd_diag_mod dasd_mod
+CPU: 0 Not tainted 2.6.38-2-s390x #1
+Process cron (pid: 1106, task: 000000001f962f78, ksp: 000000001fa0f9d0)
+Krnl PSW : 0404200180000000 000000000002c03e (pfault_interrupt+0xa2/0x138)
+           R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
+Krnl GPRS: 0000000000000000 0000000000000001 0000000000000000 0000000000000001
+           000000001f962f78 0000000000518968 0000000090000002 000000001ff03280
+           0000000000000000 000000000064f000 000000001f962f78 0000000000002603
+           0000000006002603 0000000000000000 000000001ff7fe68 000000001ff7fe48
+Krnl Code: 000000000002c036: 5820d010            l       %r2,16(%r13)
+           000000000002c03a: 1832                lr      %r3,%r2
+           000000000002c03c: 1a31                ar      %r3,%r1
+          >000000000002c03e: ba23d010            cs      %r2,%r3,16(%r13)
+           000000000002c042: a744fffc            brc     4,2c03a
+           000000000002c046: a7290002            lghi    %r2,2
+           000000000002c04a: e320d0000024        stg     %r2,0(%r13)
+           000000000002c050: 07f0                bcr     15,%r0
+Call Trace:
+ ([<000000001f962f78>] 0x1f962f78)
+  [<000000000001acda>] do_extint+0xf6/0x138
+  [<000000000039b6ca>] ext_no_vtime+0x30/0x34
+  [<000000007d706e04>] 0x7d706e04
+Last Breaking-Event-Address:
+  [<0000000000000000>] 0x0
+
+For stable maintainers:
+the first kernel which contains this bug is 2.6.37.
+
+Reported-by: Stephen Powell <zlinuxman@wowway.com>
+Cc: Jonathan Nieder <jrnieder@gmail.com>
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/s390/mm/fault.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/s390/mm/fault.c
++++ b/arch/s390/mm/fault.c
+@@ -558,9 +558,9 @@ static void pfault_interrupt(unsigned in
+        * Get the token (= address of the task structure of the affected task).
+        */
+ #ifdef CONFIG_64BIT
+-      tsk = *(struct task_struct **) param64;
++      tsk = (struct task_struct *) param64;
+ #else
+-      tsk = *(struct task_struct **) param32;
++      tsk = (struct task_struct *) param32;
+ #endif
+       if (subcode & 0x0080) {
index f92e50ed4249d189e0d94af31ca1d1986ed1956a..df5dc8098444bd9cfbcd79f397f2bb7bc6ad9b73 100644 (file)
@@ -30,3 +30,9 @@ ideapad-read-brightness-setting-on-brightness-key-notify.patch
 acpi-battery-fribble-sysfs-files-from-a-resume-notifier.patch
 ath9k_hw-partially-revert-fix-dma-descriptor-rx-error-bit-parsing.patch
 ubifs-fix-false-space-checking-failure.patch
+kvm-390-let-kernel-exit-sie-instruction-on-work.patch
+pfault-fix-token-handling.patch
+acpi-pm-avoid-infinite-recurrence-while-registering-power-resources.patch
+slub-fix-panic-with-discontigmem.patch
+set-memory-ranges-in-n_normal_memory-when-onlined.patch
+flexcop-pci-fix-__xlate_proc_name-warning-for-flexcop-pci.patch
diff --git a/queue-2.6.38/set-memory-ranges-in-n_normal_memory-when-onlined.patch b/queue-2.6.38/set-memory-ranges-in-n_normal_memory-when-onlined.patch
new file mode 100644 (file)
index 0000000..87bb1d6
--- /dev/null
@@ -0,0 +1,60 @@
+From d9b41e0b54fd7e164daf1e9c539c1070398aa02e Mon Sep 17 00:00:00 2001
+From: David Rientjes <rientjes@google.com>
+Date: Wed, 20 Apr 2011 19:27:13 -0700
+Subject: [PARISC] set memory ranges in N_NORMAL_MEMORY when onlined
+
+From: David Rientjes <rientjes@google.com>
+
+commit d9b41e0b54fd7e164daf1e9c539c1070398aa02e upstream.
+
+When a DISCONTIGMEM memory range is brought online as a NUMA node, it
+also needs to have its bet set in N_NORMAL_MEMORY.  This is necessary for
+generic kernel code that utilizes N_NORMAL_MEMORY as a subset of N_ONLINE
+for memory savings.
+
+These types of hacks can hopefully be removed once DISCONTIGMEM is either
+removed or abstracted away from CONFIG_NUMA.
+
+Fixes a panic in the slub code which only initializes structures for
+N_NORMAL_MEMORY to save memory:
+
+       Backtrace:
+        [<000000004021c938>] add_partial+0x28/0x98
+        [<000000004021faa0>] __slab_free+0x1d0/0x1d8
+        [<000000004021fd04>] kmem_cache_free+0xc4/0x128
+        [<000000004033bf9c>] ida_get_new_above+0x21c/0x2c0
+        [<00000000402a8980>] sysfs_new_dirent+0xd0/0x238
+        [<00000000402a974c>] create_dir+0x5c/0x168
+        [<00000000402a9ab0>] sysfs_create_dir+0x98/0x128
+        [<000000004033d6c4>] kobject_add_internal+0x114/0x258
+        [<000000004033d9ac>] kobject_add_varg+0x7c/0xa0
+        [<000000004033df20>] kobject_add+0x50/0x90
+        [<000000004033dfb4>] kobject_create_and_add+0x54/0xc8
+        [<00000000407862a0>] cgroup_init+0x138/0x1f0
+        [<000000004077ce50>] start_kernel+0x5a0/0x840
+        [<000000004011fa3c>] start_parisc+0xa4/0xb8
+        [<00000000404bb034>] packet_ioctl+0x16c/0x208
+        [<000000004049ac30>] ip_mroute_setsockopt+0x260/0xf20
+
+Signed-off-by: David Rientjes <rientjes@google.com>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/parisc/mm/init.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/parisc/mm/init.c
++++ b/arch/parisc/mm/init.c
+@@ -266,8 +266,10 @@ static void __init setup_bootmem(void)
+       }
+       memset(pfnnid_map, 0xff, sizeof(pfnnid_map));
+-      for (i = 0; i < npmem_ranges; i++)
++      for (i = 0; i < npmem_ranges; i++) {
++              node_set_state(i, N_NORMAL_MEMORY);
+               node_set_online(i);
++      }
+ #endif
+       /*
diff --git a/queue-2.6.38/slub-fix-panic-with-discontigmem.patch b/queue-2.6.38/slub-fix-panic-with-discontigmem.patch
new file mode 100644 (file)
index 0000000..2175708
--- /dev/null
@@ -0,0 +1,38 @@
+From 4a5fa3590f09999f6db41bc386bce40848fa9f63 Mon Sep 17 00:00:00 2001
+From: James Bottomley <James.Bottomley@HansenPartnership.com>
+Date: Tue, 19 Apr 2011 16:29:36 -0500
+Subject: [PARISC] slub: fix panic with DISCONTIGMEM
+
+From: James Bottomley <James.Bottomley@HansenPartnership.com>
+
+commit 4a5fa3590f09999f6db41bc386bce40848fa9f63 upstream.
+
+Slub makes assumptions about page_to_nid() which are violated by
+DISCONTIGMEM and !NUMA.  This violation results in a panic because
+page_to_nid() can be non-zero for pages in the discontiguous ranges and
+this leads to a null return by get_node().  The assertion by the
+maintainer is that DISCONTIGMEM should only be allowed when NUMA is also
+defined.  However, at least six architectures: alpha, ia64, m32r, m68k,
+mips, parisc violate this.  The panic is a regression against slab, so
+just mark slub broken in the problem configuration to prevent users
+reporting these panics.
+
+Acked-by: David Rientjes <rientjes@google.com>
+Acked-by: Pekka Enberg <penberg@kernel.org>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ init/Kconfig |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1209,6 +1209,7 @@ config SLAB
+         per cpu and per node queues.
+ config SLUB
++      depends on BROKEN || NUMA || !DISCONTIGMEM
+       bool "SLUB (Unqueued Allocator)"
+       help
+          SLUB is a slab allocator that minimizes cache line usage