1. 21 Feb, 2011 2 commits
    • Yinghai Lu's avatar
      genirq: Use IRQ_BITMAP_BITS as search size in irq_alloc_descs() · ed4dea6e
      Yinghai Lu authored
      The runtime expansion of nr_irqs does not take into account that
      bitmap_find_next_zero_area() returns "start" + size in case the search
      for an matching zero area fails. That results in a start value which
      can be completely off and is not covered by the following
      expand_nr_irqs() and possibly outside of the absolute limit. But we
      use it without further checking.
      
      Use IRQ_BITMAP_BITS as the limit for the bitmap search and expand
      nr_irqs when the start bit is beyond nr_irqs. So start is always
      pointing to the correct area in the bitmap. nr_irqs is just the limit
      for irq enumerations, not the real limit for the irq space.
      
      [ tglx: Let irq_expand_nr_irqs() take the new upper end so we do not
        	expand nr_irqs more than necessary. Made changelog readable ]
      Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
      LKML-Reference: <4D6014F9.8040605@kernel.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      ed4dea6e
    • Thomas Gleixner's avatar
      genirq: Fix misplaced status update in irq_disable() · a61d8258
      Thomas Gleixner authored
      We lazy disable interrupt lines, so only mark the line masked, when
      the chip provides an irq_disable callback.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      a61d8258
  2. 19 Feb, 2011 38 commits