1. 09 9月, 2017 1 次提交
    • D
      ARM: 8691/1: Export save_stack_trace_tsk() · 9a3dc318
      Dustin Brown 提交于
      The kernel watchdog is a great debugging tool for finding tasks that
      consume a disproportionate amount of CPU time in contiguous chunks. One
      can imagine building a similar watchdog for arbitrary driver threads
      using save_stack_trace_tsk() and print_stack_trace(). However, this is
      not viable for dynamically loaded driver modules on ARM platforms
      because save_stack_trace_tsk() is not exported for those architectures.
      Export save_stack_trace_tsk() for the ARM architecture to align with
      x86 and support various debugging use cases such as arbitrary driver
      thread watchdog timers.
      Signed-off-by: NDustin Brown <dustinb@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      9a3dc318
  2. 02 8月, 2017 4 次提交
  3. 11 7月, 2017 1 次提交
  4. 10 7月, 2017 1 次提交
  5. 03 7月, 2017 1 次提交
    • L
      ARM/PCI: Remove pci_fixup_irqs() call for bios32 host controllers · 16508469
      Lorenzo Pieralisi 提交于
      Legacy PCI host controllers (ie host controllers that set-up the PCI bus
      through the ARM pci_common_init() API) are currently relying on
      pci_fixup_irqs() to assign legacy PCI irqs to devices.  This is not ideal
      in that pci_fixup_irqs() assigns IRQs for all PCI devices present in a given
      system some of which may well be enabled by the time pci_fixup_irqs() is
      called (ie a system with multiple host controllers).  With the introduction
      of struct pci_host_bridge.(*map_irq) pointer it is possible to assign IRQs
      for all devices originating from a PCI host bridge at probe time; this is
      implemented through pci_assign_irq() that relies on the struct
      pci_host_bridge.map_irq pointer to map IRQ for a given device.
      
      The benefits this brings are twofold:
      
        - the IRQ for a device is assigned once at probe time
        - the IRQ assignment works also for hotplugged devices
      
      Remove pci_fixup_irqs() call from bios32 code and rely on pci_assign_irq()
      to carry out the IRQ mapping at device probe time.
      
      The map_irq() and swizzle_irq() struct pci_host_bridge callbacks are set-up
      in the struct pci_host_bridge created in the bios32 pcibios_init_hw()
      function and mach-* code paths (for PCI mach implementations that require a
      specific struct hw_pci.(*scan) function callback).
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      [bhelgaas: folded in fixes from Lorenzo:
      http://lkml.kernel.org/r/20170701140629.GC8977@red-moon]
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Andrew Lunn <andrew@lunn.ch>
      16508469
  6. 01 7月, 2017 1 次提交
    • A
      ARM: Prepare for randomized task_struct · ffa47aa6
      Arnd Bergmann 提交于
      With the new task struct randomization, we can run into a build
      failure for certain random seeds, which will place fields beyond
      the allow immediate size in the assembly:
      
      arch/arm/kernel/entry-armv.S: Assembler messages:
      arch/arm/kernel/entry-armv.S:803: Error: bad immediate value for offset (4096)
      
      Only two constants in asm-offset.h are affected, and I'm changing
      both of them here to work correctly in all configurations.
      
      One more macro has the problem, but is currently unused, so this
      removes it instead of adding complexity.
      Suggested-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      [kees: Adjust commit log slightly]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      ffa47aa6
  7. 29 6月, 2017 1 次提交
  8. 21 6月, 2017 1 次提交
    • D
      ARM: 8683/1: ARM32: Support mremap() for sigpage/vDSO · 280e87e9
      Dmitry Safonov 提交于
      CRIU restores application mappings on the same place where they
      were before Checkpoint. That means, that we need to move vDSO
      and sigpage during restore on exactly the same place where
      they were before C/R.
      
      Make mremap() code update mm->context.{sigpage,vdso} pointers
      during VMA move. Sigpage is used for landing after handling
      a signal - if the pointer is not updated during moving, the
      application might crash on any signal after mremap().
      
      vDSO pointer on ARM32 is used only for setting auxv at this moment,
      update it during mremap() in case of future usage.
      
      Without those updates, current work of CRIU on ARM32 is not reliable.
      Historically, we error Checkpointing if we find vDSO page on ARM32
      and suggest user to disable CONFIG_VDSO.
      But that's not correct - it goes from x86 where signal processing
      is ended in vDSO blob. For arm32 it's sigpage, which is not disabled
      with `CONFIG_VDSO=n'.
      
      Looks like C/R was working by luck - because userspace on ARM32 at
      this moment always sets SA_RESTORER.
      Signed-off-by: NDmitry Safonov <dsafonov@virtuozzo.com>
      Acked-by: NAndy Lutomirski <luto@amacapital.net>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      Cc: Pavel Emelyanov <xemul@virtuozzo.com>
      Cc: Christopher Covington <cov@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      280e87e9
  9. 20 6月, 2017 1 次提交
  10. 19 6月, 2017 1 次提交
    • A
      ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS · 620176f3
      Abel Vesa 提交于
      The DYNAMIC_FTRACE_WITH_REGS configuration makes it possible for a
      ftrace operation to specify if registers need to saved/restored by
      the ftrace handler. This is needed by kgraft and possibly other
      ftrace-based tools, and the ARM architecture is currently lacking
      this feature. It would also be the first step to support the
      "Kprobes-on-ftrace" optimization on ARM.
      
      This patch introduces a new ftrace handler that stores the registers
      on the stack before calling the next stage. The registers are restored
      from the stack before going back to the instrumented function.
      
      A side-effect of this patch is to activate the support for
      ftrace_modify_call() as it defines ARCH_SUPPORTS_FTRACE_OPS for the
      ARM architecture.
      Signed-off-by: NAbel Vesa <abelvesa@linux.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      620176f3
  11. 15 6月, 2017 1 次提交
  12. 14 6月, 2017 2 次提交
  13. 12 6月, 2017 1 次提交
  14. 03 6月, 2017 6 次提交
  15. 26 5月, 2017 2 次提交
  16. 24 5月, 2017 1 次提交
    • J
      ARM: 8673/1: Fix __show_regs output timestamps · 801f19b9
      Joe Perches 提交于
      Multiple line formats are not preferred as the second and
      subsequent lines may not have timestamps.
      
      Lacking timestamps makes reading the output a bit difficult.
      This also makes arm/arm64 output more similar.
      
      Previous:
      
      [ 1514.093231] pc : [<bf79c304>]    lr : [<bf79ced8>]    psr: a00f0013
      sp : ecdd7e20  ip : 00000000  fp : ffffffff
      
      New:
      
      [ 1514.093231] pc : [<bf79c304>]    lr : [<bf79ced8>]    psr: a00f0013
      [ 1514.105316] sp : ecdd7e20  ip : 00000000  fp : ffffffff
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      801f19b9
  17. 23 5月, 2017 1 次提交
  18. 11 5月, 2017 1 次提交
  19. 09 5月, 2017 2 次提交
  20. 20 4月, 2017 5 次提交
  21. 09 4月, 2017 5 次提交