1. 23 10月, 2011 1 次提交
    • M
      ARM: gic: consolidate PPI handling · 292b293c
      Marc Zyngier 提交于
      PPI handling is a bit of an odd beast. It uses its own low level
      handling code and is hardwired to the local timers (hence lacking
      a registration interface).
      
      Instead, switch the low handling to the normal SPI handling code.
      PPIs are handled by the handle_percpu_devid_irq flow.
      
      This also allows the removal of some duplicated code.
      
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: David Brown <davidb@codeaurora.org>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Magnus Damm <magnus.damm@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      Tested-by: NDavid Brown <davidb@codeaurora.org>
      Tested-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      292b293c
  2. 17 10月, 2011 1 次提交
  3. 21 7月, 2011 3 次提交
  4. 12 7月, 2011 1 次提交
    • R
      ARM: introduce handle_IRQ() not to dump exception stack · a4841e39
      Russell King - ARM Linux 提交于
      On Mon, Jul 11, 2011 at 3:52 PM, Russell King - ARM Linux
      <linux@arm.linux.org.uk> wrote:
      
      ...
      
      > The __exception annotation on a function causes this to happen:
      >
      > [<c002406c>] (asm_do_IRQ+0x6c/0x8c) from [<c0024b84>]
      > (__irq_svc+0x44/0xcc)
      > Exception stack(0xc3897c78 to 0xc3897cc0)
      > 7c60:                                                       4022d320 4022e000
      > 7c80: 08000075 00001000 c32273c0 c03ce1c0 c2b49b78 4022d000 c2b420b4 00000001
      > 7ca0: 00000000 c3897cfc 00000000 c3897cc0 c00afc54 c002edd8 00000013 ffffffff
      >
      > Where that stack dump represents the pt_regs for the exception which
      > happened.  Any function found in while unwinding will cause this to
      > be printed.
      >
      > If you insert a C function between the IRQ assembly and asm_do_IRQ,
      > the
      > dump you get from asm_do_IRQ will be the stack for your function,
      > not
      > the pt_regs.  That makes the feature useless.
      >
      
      When __irq_svc - or any of the other exception handling assembly code -
      calls the C code, the stack pointer will be pointing at the pt_regs
      structure.
      
      All the entry points into C code from the exception handling code are
      marked with __exception or __exception_irq_enter to indicate that they
      are one of the functions which has pt_regs above them.
      
      Normally, when you've entered asm_do_IRQ() you will have this stack
      layout (higher address towards top):
      
             pt_regs
             asm_do_IRQ frame
      
      If you insert a C function between the exception assembly code and
      asm_do_IRQ, you end up with this stack layout instead:
      
             pt_regs
             your function frame
             asm_do_IRQ frame
      
      This means when we unwind, we'll get to asm_do_IRQ, and rather than
      dumping out the pt_regs, we'll dump out your functions stack frame
      instead, because that's what is above the asm_do_IRQ stack frame
      rather than the expected pt_regs structure.
      
      The fix is to introduce handle_IRQ() for no exception stack dump, so
      it can be called with MULTI_IRQ_HANDLER is selected and a C function
      is between the assembly code and the actual IRQ handling code.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NEric Miao <eric.y.miao@gmail.com>
      a4841e39
  5. 29 3月, 2011 2 次提交
  6. 24 2月, 2011 2 次提交
  7. 13 1月, 2011 1 次提交
  8. 24 12月, 2010 1 次提交
  9. 20 12月, 2010 3 次提交
  10. 20 11月, 2010 1 次提交
  11. 17 10月, 2010 2 次提交
    • T
      arm: Use ARCH_IRQ_INIT_FLAGS · 032fa360
      Thomas Gleixner 提交于
      The core code now initializes the requested number of interrupts and
      sets the flags in irq_desc.status which are requested by the
      architecture via ARCH_IRQ_INIT_FLAGS.
      
      Add ARCH_IRQ_INIT_FLAGS and remove the loop which sets those flags
      after the irq descriptors are allocated.
      
      [ This patch should have been in the original irq rework and got
        dropped accidentaly ]
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@stericsson.com>
      Cc: Anand Gadiyar <gadiyar@ti.com>
      032fa360
    • A
      genirq, ARM: Fix boot on ARM platforms · 05d0ca85
      Anand Gadiyar 提交于
      Commit b683de2b in linux-next as of 20101014 (genirq: Query
      arch for number of early descriptors) seems to have broken
      bootup on several ARM boards - my beagleboard gives the
      following dump with earlyprintk:
      
       NR_IRQS:402
       Unable to handle kernel NULL pointer dereference at virtual
       address 00000028 pgd = c0004000
       [00000028] *pgd=00000000
       Internal error: Oops: 5 [#1]
       last sysfs file:
       Modules linked in:
       CPU: 0    Not tainted
       (2.6.36-rc7-next-20101014-linux-next-20101012+ #40) PC is at
       init_IRQ+0x14/0x48 LR is at start_kernel+0x150/0x2c0
       [...]
      
      We seem to be using desc->status without assigning desc to
      anything. Fix this by adding back the code that was originally
      there.
      Signed-off-by: NAnand Gadiyar <gadiyar@ti.com>
      Tested-by: NLinus Walleij <linus.walleij@stericsson.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: linux-arm-kernel@lists.infradead.org
      LKML-Reference: <1287077397-21781-1-git-send-email-gadiyar@ti.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      05d0ca85
  12. 12 10月, 2010 1 次提交
  13. 09 7月, 2010 1 次提交
  14. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  15. 15 12月, 2009 1 次提交
  16. 17 8月, 2009 1 次提交
  17. 25 6月, 2009 1 次提交
  18. 19 6月, 2009 1 次提交
  19. 31 1月, 2009 1 次提交
  20. 13 1月, 2009 2 次提交
  21. 13 12月, 2008 1 次提交
  22. 09 10月, 2008 1 次提交
  23. 07 8月, 2008 1 次提交
  24. 22 4月, 2007 2 次提交
  25. 17 2月, 2007 1 次提交
  26. 30 11月, 2006 1 次提交
  27. 07 10月, 2006 2 次提交
  28. 02 8月, 2006 1 次提交
  29. 12 7月, 2006 1 次提交
  30. 02 7月, 2006 1 次提交
    • T
      [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation · 4a2581a0
      Thomas Gleixner 提交于
      Patch from Thomas Gleixner
      
      From: Thomas Gleixner <tglx@linutronix.de>
      
      Switch the ARM irq core handling to the generic implementation. The
      ARM specific header files now contain mostly migration stubs and
      helper macros. Note that each machine type must be converted after
      this step seperately. This was seperated out from the patch for easier
      review.
      
      The main changes for the machine type code is the conversion of the
      type handlers to a 'type flow' and 'chip' model. This affects only the
      multiplex interrupt handlers. A conversion macro needs to be added to
      those implementations, which defines the data structure which is
      registered by the set_irq_chained_handler() macro.
      
      Some minor fixups of include files and the conversion of data
      structure access is necessary all over the place.
      
      The mostly macro based conversion was provided to allow an easy
      migration of the existing implementations.
      
      The code compiles on all defconfigs available in arch/arm/configs
      except those which were broken also before applying the conversion
      patches.
      
      The code has been boot and runtime tested on most ARM platforms. The
      results of an extensive testing and bugfixing series can be found
      at: http://www.linutronix.de/index.php?page=testingSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      4a2581a0