]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
another .32 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 4 Feb 2010 16:59:27 +0000 (08:59 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 4 Feb 2010 16:59:27 +0000 (08:59 -0800)
queue-2.6.32/powerpc-tif_abi_pending-bit-removal.patch [new file with mode: 0644]
queue-2.6.32/series

diff --git a/queue-2.6.32/powerpc-tif_abi_pending-bit-removal.patch b/queue-2.6.32/powerpc-tif_abi_pending-bit-removal.patch
new file mode 100644 (file)
index 0000000..7412e0f
--- /dev/null
@@ -0,0 +1,80 @@
+From 94f28da8409c6059135e89ac64a0839993124155 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@linux-m68k.org>
+Date: Sat, 30 Jan 2010 10:20:59 +0000
+Subject: powerpc: TIF_ABI_PENDING bit removal
+
+From: Andreas Schwab <schwab@linux-m68k.org>
+
+commit 94f28da8409c6059135e89ac64a0839993124155 upstream.
+
+Here are the powerpc bits to remove TIF_ABI_PENDING now that
+set_personality() is called at the appropriate place in exec.
+
+Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/include/asm/elf.h         |    8 ++------
+ arch/powerpc/include/asm/thread_info.h |    2 --
+ arch/powerpc/kernel/process.c          |   12 ------------
+ 3 files changed, 2 insertions(+), 20 deletions(-)
+
+--- a/arch/powerpc/include/asm/elf.h
++++ b/arch/powerpc/include/asm/elf.h
+@@ -236,14 +236,10 @@ typedef elf_vrregset_t elf_fpxregset_t;
+ #ifdef __powerpc64__
+ # define SET_PERSONALITY(ex)                                  \
+ do {                                                          \
+-      unsigned long new_flags = 0;                            \
+       if ((ex).e_ident[EI_CLASS] == ELFCLASS32)               \
+-              new_flags = _TIF_32BIT;                         \
+-      if ((current_thread_info()->flags & _TIF_32BIT)         \
+-          != new_flags)                                       \
+-              set_thread_flag(TIF_ABI_PENDING);               \
++              set_thread_flag(TIF_32BIT);                     \
+       else                                                    \
+-              clear_thread_flag(TIF_ABI_PENDING);             \
++              clear_thread_flag(TIF_32BIT);                   \
+       if (personality(current->personality) != PER_LINUX32)   \
+               set_personality(PER_LINUX |                     \
+                       (current->personality & (~PER_MASK)));  \
+--- a/arch/powerpc/include/asm/thread_info.h
++++ b/arch/powerpc/include/asm/thread_info.h
+@@ -111,7 +111,6 @@ static inline struct thread_info *curren
+ #define TIF_NOTIFY_RESUME     13      /* callback before returning to user */
+ #define TIF_FREEZE            14      /* Freezing for suspend */
+ #define TIF_RUNLATCH          15      /* Is the runlatch enabled? */
+-#define TIF_ABI_PENDING               16      /* 32/64 bit switch needed */
+ /* as above, but as bit values */
+ #define _TIF_SYSCALL_TRACE    (1<<TIF_SYSCALL_TRACE)
+@@ -129,7 +128,6 @@ static inline struct thread_info *curren
+ #define _TIF_NOTIFY_RESUME    (1<<TIF_NOTIFY_RESUME)
+ #define _TIF_FREEZE           (1<<TIF_FREEZE)
+ #define _TIF_RUNLATCH         (1<<TIF_RUNLATCH)
+-#define _TIF_ABI_PENDING      (1<<TIF_ABI_PENDING)
+ #define _TIF_SYSCALL_T_OR_A   (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP)
+ #define _TIF_USER_WORK_MASK   (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
+--- a/arch/powerpc/kernel/process.c
++++ b/arch/powerpc/kernel/process.c
+@@ -554,18 +554,6 @@ void exit_thread(void)
+ void flush_thread(void)
+ {
+-#ifdef CONFIG_PPC64
+-      struct thread_info *t = current_thread_info();
+-
+-      if (test_ti_thread_flag(t, TIF_ABI_PENDING)) {
+-              clear_ti_thread_flag(t, TIF_ABI_PENDING);
+-              if (test_ti_thread_flag(t, TIF_32BIT))
+-                      clear_ti_thread_flag(t, TIF_32BIT);
+-              else
+-                      set_ti_thread_flag(t, TIF_32BIT);
+-      }
+-#endif
+-
+       discard_lazy_cpu_state();
+       if (current->thread.dabr) {
index 0627764bebf15cbd8953431dcaee153a26dd1e56..0c3d2bf662fcac1f03cef2c75c58ef26fbc56ced 100644 (file)
@@ -71,3 +71,4 @@ uartlite-fix-crash-when-using-as-console.patch
 pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch
 ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch
 ath9k-fix-beacon-slot-buffer-leak.patch
+powerpc-tif_abi_pending-bit-removal.patch