Merge tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Jul 2015 18:07:27 +0000 (11:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Jul 2015 18:07:27 +0000 (11:07 -0700)
Pull init.h/module.h fragility fixes from Paul Gortmaker:
 "Fixup various init.h misuses that are fragile wrt code moving to
  module.h

  What started as a removal of no longer required include <linux/init.h>
  due to the earlier __cpuinit and __devinit removal led to the
  observation that some module specfic support was living in init.h
  itself, thus preventing the full removal from introducing compile
  regressions.

  This series includes a few final fixups needed prior to the relocation
  of the modular init code from <init.h> to <module.h>.  These are
  things that weren't easily categorized into any of the other previous
  series categories already requested for pull.

  That said, each fixup branch (including this one) is independent and
  there are no ordering constraints.  Only the final code relocation
  (which is NOT in this pull) requires that all my cleanup branches be
  merged first"

* tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
  tile: add init.h to usb.c to avoid compile failure
  arm: fix implicit #include <linux/init.h> in entry asm.
  x86: replace __init_or_module with __init in non-modular vsmp_64.c

1  2 
arch/arm/kernel/entry-armv.S

index f8f7398c74c2d355d63a2bf3ef3faec225d2011c,4942fab6ae28bd41f9660642b1ef996060b959fb..7dac3086e361c8e3680d5209e5b72184c9c48cdb
@@@ -15,6 -15,8 +15,8 @@@
   *  that causes it to save wrong values...  Be aware!
   */
  
+ #include <linux/init.h>
  #include <asm/assembler.h>
  #include <asm/memory.h>
  #include <asm/glue-df.h>
@@@ -40,7 -42,7 +42,7 @@@
  #ifdef CONFIG_MULTI_IRQ_HANDLER
        ldr     r1, =handle_arch_irq
        mov     r0, sp
 -      adr     lr, BSYM(9997f)
 +      badr    lr, 9997f
        ldr     pc, [r1]
  #else
        arch_irq_handler_default
@@@ -273,7 -275,7 +275,7 @@@ __und_svc
        str     r4, [sp, #S_PC]
        orr     r0, r9, r0, lsl #16
  #endif
 -      adr     r9, BSYM(__und_svc_finish)
 +      badr    r9, __und_svc_finish
        mov     r2, r4
        bl      call_fpe
  
@@@ -469,7 -471,7 +471,7 @@@ __und_usr
        @ instruction, or the more conventional lr if we are to treat
        @ this as a real undefined instruction
        @
 -      adr     r9, BSYM(ret_from_exception)
 +      badr    r9, ret_from_exception
  
        @ IRQs must be enabled before attempting to read the instruction from
        @ user space since that could cause a page/translation fault if the
        @ r2 = PC value for the following instruction (:= regs->ARM_pc)
        @ r4 = PC value for the faulting instruction
        @ lr = 32-bit undefined instruction function
 -      adr     lr, BSYM(__und_usr_fault_32)
 +      badr    lr, __und_usr_fault_32
        b       call_fpe
  
  __und_usr_thumb:
@@@ -522,7 -524,7 +524,7 @@@ ARM_BE8(rev16      r0, r0)                         @ little endia
        add     r2, r2, #2                      @ r2 is PC + 2, make it PC + 4
        str     r2, [sp, #S_PC]                 @ it's a 2x16bit instr, update
        orr     r0, r0, r5, lsl #16
 -      adr     lr, BSYM(__und_usr_fault_32)
 +      badr    lr, __und_usr_fault_32
        @ r0 = the two 16-bit Thumb instructions which caused the exception
        @ r2 = PC value for the following Thumb instruction (:= regs->ARM_pc)
        @ r4 = PC value for the first 16-bit Thumb instruction
@@@ -716,7 -718,7 +718,7 @@@ __und_usr_fault_32
  __und_usr_fault_16:
        mov     r1, #2
  1:    mov     r0, sp
 -      adr     lr, BSYM(ret_from_exception)
 +      badr    lr, ret_from_exception
        b       __und_fault
  ENDPROC(__und_usr_fault_32)
  ENDPROC(__und_usr_fault_16)