1. 14 10月, 2010 3 次提交
  2. 16 12月, 2009 1 次提交
  3. 15 12月, 2009 1 次提交
  4. 28 9月, 2009 1 次提交
  5. 03 7月, 2009 2 次提交
  6. 28 4月, 2009 1 次提交
    • Y
      irq: change ->set_affinity() to return status · d5dedd45
      Yinghai Lu 提交于
      according to Ingo, change set_affinity() in irq_chip should return int,
      because that way we can handle failure cases in a much cleaner way, in
      the genirq layer.
      
      v2: fix two typos
      
      [ Impact: extend API ]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: linux-arch@vger.kernel.org
      LKML-Reference: <49F654E9.4070809@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d5dedd45
  7. 16 3月, 2009 1 次提交
  8. 13 3月, 2009 3 次提交
  9. 13 1月, 2009 1 次提交
  10. 11 1月, 2009 1 次提交
    • Y
      sparseirq: use kstat_irqs_cpu instead · dee4102a
      Yinghai Lu 提交于
      Impact: build fix
      
      Ingo Molnar wrote:
      
      > tip/arch/blackfin/kernel/irqchip.c: In function 'show_interrupts':
      > tip/arch/blackfin/kernel/irqchip.c:85: error: 'struct kernel_stat' has no member named 'irqs'
      > make[2]: *** [arch/blackfin/kernel/irqchip.o] Error 1
      > make[2]: *** Waiting for unfinished jobs....
      >
      
      So could move kstat_irqs array to irq_desc struct.
      
      (s390, m68k, sparc) are not touched yet, because they don't support genirq
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      dee4102a
  11. 06 1月, 2009 2 次提交
  12. 13 12月, 2008 1 次提交
  13. 07 12月, 2007 1 次提交
  14. 12 6月, 2007 1 次提交
    • G
      [PARISC] remove global_ack_eiem · 462b529f
      Grant Grundler 提交于
      Kudos to Thibaut Varene for spotting the (mis)use of appropriately named
      global_ack_eiem. This took a long time to figure out and both insight
      from myself, Kyle McMartin, and James Bottomley were required to narrow
      down which bit of code could have this race condition.
      
      The symptom was interrupts stopped getting delivered while some workload
      was generating IO interrupts on two different CPUs. One of the interrupt
      sources would get masked off and stay unmasked. Problem was global_ack_eiem
      was accessed with read/modified/write sequence and not protected by
      a spinlock.
      
      PA-RISC doesn't need a global ack flag though. External Interrupts
      are _always_ delivered to a single CPU (except for "global broadcast
      interrupt" which AFAIK currently is not used.) So we don't have to worry
      about any given IRQ vector getting delivered to more than one CPU.
      
      Tested on a500 and rp34xx boxen. rsync to/from gsyprf11 (a500)
      would lock up the box since NIC (tg3) interrupt and SCSI (sym2)
      were on "opposite" CPUs (2 CPU system). Put them on the same CPU
      or apply this patch and 10GB of data would rsync completely.
      
      Please apply the following critical patch.
      
      thanks,
      grant
      Signed-off-by: NGrant Grundler <grundler@parisc-linux.org>
      Acked-by: NThibaut VARENE <T-Bone@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      462b529f
  15. 09 5月, 2007 1 次提交
  16. 17 2月, 2007 1 次提交
  17. 07 10月, 2006 2 次提交
  18. 04 10月, 2006 2 次提交
  19. 03 7月, 2006 1 次提交
  20. 01 7月, 2006 1 次提交
  21. 30 6月, 2006 3 次提交
    • I
      [PATCH] genirq: add ->retrigger() irq op to consolidate hw_irq_resend() · c0ad90a3
      Ingo Molnar 提交于
      Add ->retrigger() irq op to consolidate hw_irq_resend() implementations.
      (Most architectures had it defined to NOP anyway.)
      
      NOTE: ia64 needs testing. i386 and x86_64 tested.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c0ad90a3
    • I
      [PATCH] genirq: cleanup: merge irq_affinity[] into irq_desc[] · a53da52f
      Ingo Molnar 提交于
      Consolidation: remove the irq_affinity[NR_IRQS] array and move it into the
      irq_desc[NR_IRQS].affinity field.
      
      [akpm@osdl.org: sparc64 build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a53da52f
    • I
      [PATCH] genirq: rename desc->handler to desc->chip · d1bef4ed
      Ingo Molnar 提交于
      This patch-queue improves the generic IRQ layer to be truly generic, by adding
      various abstractions and features to it, without impacting existing
      functionality.
      
      While the queue can be best described as "fix and improve everything in the
      generic IRQ layer that we could think of", and thus it consists of many
      smaller features and lots of cleanups, the one feature that stands out most is
      the new 'irq chip' abstraction.
      
      The irq-chip abstraction is about describing and coding and IRQ controller
      driver by mapping its raw hardware capabilities [and quirks, if needed] in a
      straightforward way, without having to think about "IRQ flow"
      (level/edge/etc.) type of details.
      
      This stands in contrast with the current 'irq-type' model of genirq
      architectures, which 'mixes' raw hardware capabilities with 'flow' details.
      The patchset supports both types of irq controller designs at once, and
      converts i386 and x86_64 to the new irq-chip design.
      
      As a bonus side-effect of the irq-chip approach, chained interrupt controllers
      (master/slave PIC constructs, etc.) are now supported by design as well.
      
      The end result of this patchset intends to be simpler architecture-level code
      and more consolidation between architectures.
      
      We reused many bits of code and many concepts from Russell King's ARM IRQ
      layer, the merging of which was one of the motivations for this patchset.
      
      This patch:
      
      rename desc->handler to desc->chip.
      
      Originally i did not want to do this, because it's a big patch.  But having
      both "desc->handler", "desc->handle_irq" and "action->handler" caused a
      large degree of confusion and made the code appear alot less clean than it
      truly is.
      
      I have also attempted a dual approach as well by introducing a
      desc->chip alias - but that just wasnt robust enough and broke
      frequently.
      
      So lets get over with this quickly.  The conversion was done automatically
      via scripts and converts all the code in the kernel.
      
      This renaming patch is the first one amongst the patches, so that the
      remaining patches can stay flexible and can be merged and split up
      without having some big monolithic patch act as a merge barrier.
      
      [akpm@osdl.org: build fix]
      [akpm@osdl.org: another build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1bef4ed
  22. 18 11月, 2005 7 次提交
    • R
      [PARISC] Make redirecting irq messages less noisy · 75be99a8
      Ryan Bradetich 提交于
      Make the "redirecting irq" message to not display on the console by
      setting the severity to KERN_DEBUG.  The console was basically unusable.
      Signed-off-by: NRyan Bradetich <rbrad@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      75be99a8
    • G
      [PARISC] irq_affinityp[] only available for SMP builds · 03afe22f
      Grant Grundler 提交于
      irq_affinityp[] only available for SMP builds, make code that uses
      it conditional on CONFIG_SMP.
      Signed-off-by: NGrant Grundler <grundler@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      03afe22f
    • J
      [PARISC] Add IRQ affinities · c2ab64d0
      James Bottomley 提交于
      This really only adds them for the machines I can check SMP on, which
      is CPU interrupts and IOSAPIC (so not any of the GSC based machines).
      
      With this patch, irqbalanced can be used to maintain irq balancing.
      Unfortunately, irqbalanced is a bit x86 centric, so it doesn't do an
      incredibly good job, but it does work.
      Signed-off-by: NJames Bottomley <jejb@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      c2ab64d0
    • K
      [PARISC] Fix uniprocessor build by dummying smp_send_all_nop() · 1d4c452a
      Kyle McMartin 提交于
      Since irq.c uses smp_send_all_nop, we must define it for UP builds
      as well. Make it a static inline so it gets optimized away. This forces
      irq.c to include <asm/smp.h> though.
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      1d4c452a
    • J
      [PARISC] Fix our interrupts not to use smp_call_function · d911aed8
      James Bottomley 提交于
      Fix our interrupts not to use smp_call_function
      
      On K and D class smp, the generic code calls this under an irq
      spinlock, which causes the WARN_ON() message in smp_call_function()
      (and is also illegal because it could deadlock).
      
      The fix is to use a new scheme based on the IPI_NOP.
      Signed-off-by: NJames Bottomley <jejb@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      d911aed8
    • G
      [PARISC] Disable nesting of interrupts · 3f902886
      Grant Grundler 提交于
      Disable nesting of interrupts - still has holes
      
      The offending sequence starts out like this:
      1) take external interrupt
      2) set_eiem() to only allow TIMER_IRQ; local interrupts still disabled
      3) read the EIRR to get a "list" of pending interrupts
      4) clear EIRR of pending interrupts we intend to handle
      5) call __do_IRQ() to handle IRQ.
      6) handle_IRQ_event() enables local interrupts (I-Bit)
      7) take a timer interrupt
      8) read EIRR to get a new list of pending interrupts
      9) clear EIRR of pending interrupts we just read
      10) handle pending interrupts found in (8)
      11) set_eiem(cpu_eiem) and return
              [ TROUBLE! all enabled CPU IRQs are unmasked. }
      12) handle remaining interrupts pending from (3)
              e.g. call __do_IRQ() -> handle_IRQ_event()..etc
              [ TROUBLE! call to handle_IRQ_event() can now enable *any* IRQ. }
      13) set_eiem(cpu_eiem) and return
      
      The problem is we now get into ugly race conditions with Timer and IPI
      interrupts at this point.  I'm not exactly sure what happens when
      things go wrong (perhaps nest calls to IPI or timer interrupt?).
      But I'm certain it's not good.
      
      This sequence will break sooner if (10) would accidentally leave
      interrupts enabled.
      
      I'm pretty sure the right answer is now to make cpu_eiem
      a per CPU variable since all external interrupts on parisc
      are per CPU. This means we will NOT need to send an IPI to
      every CPU in the system when enabling or disabling an IRQ
      since only one CPU needs to change it's EIEM.
      
      Thanks to James Bottomley for (once again) pointing out the problem.
      Signed-off-by: NGrant Grundler <grundler@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      3f902886
    • J
      [PARISC] Make sure timer and IPI execute with interrupts disabled · 9a8b4584
      James Bottomley 提交于
      Fix a longstanding smp bug
      
      The problem is that both the timer and ipi interrupts are being called
      with interrupts enabled, which isn't what anyone is expecting.
      
      The IPI issue has just started to show up by causing a BUG_ON in the
      slab debugging code.  The timer issue never shows up because there's an
      eiem work around in our irq.c
      
      The fix is to label both these as SA_INTERRUPT which causes the generic
      irq code not to enable interrupts.
      
      I also suspect the smp_call_function timeouts we're seeing might be
      connected with the fact that we disable IPIs when handling any other
      type of interrupt.  I've put a WARN_ON in the code for executing
      smp_call_function() with IPIs disabled.
      Signed-off-by: NJames Bottomley <jejb@parisc-linux.org>
      Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
      9a8b4584
  23. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4