Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2013 22:08:59 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2013 22:08:59 +0000 (15:08 -0700)
Pull Hexagon fixes from Richard Kuo:
 "A bug fix and a Kconfig cleanup"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
  HEXAGON: Remove non existent reference to GENERIC_KERNEL_EXECVE & GENERIC_KERNEL_THREAD
  Hexagon: fix register used to call do_work_pending

arch/hexagon/Kconfig
arch/hexagon/kernel/vm_entry.S

index 04dff5bdcbf72b30aebc5c2c5287d247eb3e7d2d..841325f60df87ab7bffc5aab449ef04f30e4bbf8 100644 (file)
@@ -30,8 +30,6 @@ config HEXAGON
        select GENERIC_CLOCKEVENTS_BROADCAST
        select MODULES_USE_ELF_RELA
        select GENERIC_CPU_DEVICES
-       select GENERIC_KERNEL_THREAD
-       select GENERIC_KERNEL_EXECVE
        ---help---
          Qualcomm Hexagon is a processor architecture designed for high
          performance and low power across a wide variety of applications.
index e3086185fc9ff69a401993597c9a46aba408848d..67c6ccc14770320c21f334b16c13e1c480a99cd7 100644 (file)
@@ -291,12 +291,12 @@ event_dispatch:
        /*  "Nested control path" -- if the previous mode was kernel  */
        {
                R0 = memw(R29 + #_PT_ER_VMEST);
-               R16.L = #LO(do_work_pending);
+               R26.L = #LO(do_work_pending);
        }
        {
                P0 = tstbit(R0, #HVM_VMEST_UM_SFT);
                if (!P0.new) jump:nt restore_all;
-               R16.H = #HI(do_work_pending);
+               R26.H = #HI(do_work_pending);
                R0 = #VM_INT_DISABLE;
        }
 
@@ -304,7 +304,7 @@ event_dispatch:
         * Check also the return from fork/system call, normally coming back from
         * user mode
         *
-        * R16 needs to have do_work_pending, and R0 should have VM_INT_DISABLE
+        * R26 needs to have do_work_pending, and R0 should have VM_INT_DISABLE
         */
 
 check_work_pending:
@@ -313,7 +313,7 @@ check_work_pending:
        {
                R0 = R29;  /*  regs should still be at top of stack  */
                R1 = memw(THREADINFO_REG + #_THREAD_INFO_FLAGS);
-               callr R16;
+               callr R26;
        }
 
        {
@@ -375,11 +375,11 @@ _K_enter_debug:
 ret_from_fork:
        {
                call schedule_tail
-               R16.H = #HI(do_work_pending);
+               R26.H = #HI(do_work_pending);
        }
        {
                P0 = cmp.eq(R24, #0);
-               R16.L = #LO(do_work_pending);
+               R26.L = #LO(do_work_pending);
                R0 = #VM_INT_DISABLE;
        }
        if P0 jump check_work_pending