1. 28 Mar, 2011 4 commits
    • Thomas Gleixner's avatar
      arm: Ns9xxx: Remove private irq flow handler · 68293105
      Thomas Gleixner authored
      handle_prio_irq is almost identical with handle_fasteoi_irq. The
      subtle differences are
      
      1) The handler checks for IRQ_DISABLED after the device handler has
         been called. In case it's set it masks the interrupt.
      
      2) When the handler sees IRQ_DISABLED on entry it masks the interupt
         in the same way as handle_fastoei_irq, but does not set the
         IRQ_PENDING flag.
      
      3) Instead of gracefully handling a recursive interrupt it crashes the
         kernel.
      
      #1 is just relevant when a device handler calls disable_irq_nosync()
         and it does not matter whether we mask the interrupt right away or
         not. We handle lazy masking for disable_irq anyway, so there is no
         real reason to have this extra mask in place.
      
      #2 will prevent the resend of a pending interrupt, which can result in
         lost interrupts for edge type interrupts. For level type interrupts
         the resend is a noop in the generic code. According to the
         datasheet all interrupts are level type, so marking them as such
         will result in the exact same behaviour as the private
         handle_prio_irq implementation.
      
      #3 is just stupid. Crashing the kernel instead of handling a problem
         gracefully is just wrong. With the current semantics- all handlers
         run with interrupts disabled - this is even more wrong.
      
      Rename ack to eoi, remove the unused mask_ack, switch to
      handle_fasteoi_irq and remove the private function.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Acked-by: default avatarUwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
      Cc: linux-arm-kernel@lists.infradead.org
      LKML-Reference: <20110202212552.299898447@linutronix.de>
      68293105
    • Thomas Gleixner's avatar
      powerpc: cell: Use the core flow handler · f9ba4475
      Thomas Gleixner authored
      The core handler is a full equivalent replacement.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      f9ba4475
    • Thomas Gleixner's avatar
      genirq: Provide edge_eoi flow handler · 0521c8fb
      Thomas Gleixner authored
      This is a replacment for the cell flow handler which is in the way of
      cleanups. Must be selected to avoid general bloat.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      0521c8fb
    • Thomas Gleixner's avatar
      genirq: Move INPROGRESS, MASKED and DISABLED state flags to irq_data · 32f4125e
      Thomas Gleixner authored
      We really need these flags for some of the interrupt chips. Move it
      from internal state to irq_data and provide proper accessors.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: David Daney <ddaney@caviumnetworks.com>
      32f4125e
  2. 27 Mar, 2011 5 commits
  3. 26 Mar, 2011 22 commits
  4. 25 Mar, 2011 9 commits