1. 29 1月, 2009 2 次提交
    • I
      x86, genapic: rename int_delivery_mode, et. al. · f8987a10
      Ingo Molnar 提交于
      int_delivery_mode is supposed to mean 'interrupt delivery mode', but
      it's quite a misnomer as 'int' we usually think of as an integer type ...
      
      The standard naming for such attributes is 'irq' - so rename the following
      fields and macros:
      
       int_delivery_mode => irq_delivery_mode
       INT_DELIVERY_MODE => IRQ_DELIVERY_MODE
       int_dest_mode     => irq_dest_mode
       INT_DEST_MODE     => IRQ_DEST_MODE
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f8987a10
    • I
      x86: rename 'genapic' to 'apic' · c8d46cf0
      Ingo Molnar 提交于
      Rename genapic-> to apic-> references because in a future chagne we'll
      open-code all the indirect calls (instead of obscuring them via macros),
      so we want this reference to be as short as possible.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c8d46cf0
  2. 21 1月, 2009 1 次提交
  3. 19 1月, 2009 1 次提交
    • M
      x86: Remove never-called arch_setup_msi_irq() · 422e79a8
      Michael Ellerman 提交于
      Since commit 75c46fa6, "x64, x2apic/intr-remap: MSI and MSI-X
      support for interrupt remapping infrastructure", x86 has had an
      implementation of arch_setup_msi_irqs().
      
      That implementation does not call arch_setup_msi_irq(), instead it calls
      setup_irq(). No other x86 code calls arch_setup_msi_irq().
      
      That leaves only arch_setup_msi_irqs() in drivers/pci/msi.c, but that
      routine is overridden by the x86 version of arch_setup_msi_irqs().
      
      So arch_setup_msi_irq() is dead code, remove it.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      422e79a8
  4. 15 1月, 2009 1 次提交
  5. 14 1月, 2009 2 次提交
  6. 13 1月, 2009 1 次提交
  7. 12 1月, 2009 2 次提交
    • M
      irq: change references from NR_IRQS to nr_irqs · 9594949b
      Mike Travis 提交于
      Impact: preparation, cleanup, add KERN_INFO printk
      
      Modify references from NR_IRQS to nr_irqs as the later will become
      variable-sized based on nr_cpu_ids when CONFIG_SPARSE_IRQS=y.
      Signed-off-by: NMike Travis <travis@sgi.com>
      9594949b
    • M
      cpumask: update irq_desc to use cpumask_var_t · 7f7ace0c
      Mike Travis 提交于
      Impact: reduce memory usage, use new cpumask API.
      
      Replace the affinity and pending_masks with cpumask_var_t's.  This adds
      to the significant size reduction done with the SPARSE_IRQS changes.
      
      The added functions (init_alloc_desc_masks & init_copy_desc_masks) are
      in the include file so they can be inlined (and optimized out for the
      !CONFIG_CPUMASKS_OFFSTACK case.)  [Naming chosen to be consistent with
      the other init*irq functions, as well as the backwards arg declaration
      of "from, to" instead of the more common "to, from" standard.]
      
      Includes a slight change to the declaration of struct irq_desc to embed
      the pending_mask within ifdef(CONFIG_SMP) to be consistent with other
      references, and some small changes to Xen.
      
      Tested: sparse/non-sparse/cpumask_offstack/non-cpumask_offstack/nonuma/nosmp on x86_64
      Signed-off-by: NMike Travis <travis@sgi.com>
      Cc: Chris Wright <chrisw@sous-sol.org>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Cc: virtualization@lists.osdl.org
      Cc: xen-devel@lists.xensource.com
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      7f7ace0c
  8. 08 1月, 2009 1 次提交
  9. 04 1月, 2009 1 次提交
  10. 03 1月, 2009 1 次提交
  11. 30 12月, 2008 1 次提交
  12. 27 12月, 2008 1 次提交
  13. 26 12月, 2008 1 次提交
  14. 24 12月, 2008 1 次提交
    • Y
      x86: fix lguest used_vectors breakage, -v2 · b77b881f
      Yinghai Lu 提交于
      Impact: fix lguest, clean up
      
      32-bit lguest used used_vectors to record vectors, but that model of
      allocating vectors changed and got broken, after we changed vector
      allocation to a per_cpu array.
      
      Try enable that for 64bit, and the array is used for all vectors that
      are not managed by vector_irq per_cpu array.
      
      Also kill system_vectors[], that is now a duplication of the
      used_vectors bitmap.
      
      [ merged in cpus4096 due to io_apic.c cpumask changes. ]
      [ -v2, fix build failure ]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b77b881f
  15. 20 12月, 2008 1 次提交
  16. 19 12月, 2008 1 次提交
    • I
      x86: fix warning in arch/x86/kernel/io_apic.c · a7883dec
      Ingo Molnar 提交于
      this warning:
      
        arch/x86/kernel/io_apic.c: In function ‘ir_set_msi_irq_affinity’:
        arch/x86/kernel/io_apic.c:3373: warning: ‘cfg’ may be used uninitialized in this function
      
      triggers because the variable was truly uninitialized. We'd crash on
      entering this code.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a7883dec
  17. 17 12月, 2008 5 次提交
    • I
      x86: update io_apic.c to the new cpumask code · d733e00d
      Ingo Molnar 提交于
      Impact: build fix
      
      The sparseirq tree crossed with the cpumask changes, fix the fallout.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d733e00d
    • M
      x86: Update io_apic.c to use new cpumask API · 22f65d31
      Mike Travis 提交于
      Impact: cleanup, consolidate patches, use new API
      
      Consolidate the following into a single patch to adapt to new
      sparseirq code in arch/x86/kernel/io_apic.c, add allocation of
      cpumask_var_t's in domain and old_domain, and reduce further
      merge conflicts.  Only one file (arch/x86/kernel/io_apic.c) is
      changed in all of these patches.
      
      	0006-x86-io_apic-change-irq_cfg-domain-old_domain-to.patch
      	0007-x86-io_apic-set_desc_affinity.patch
      	0008-x86-io_apic-send_cleanup_vector.patch
      	0009-x86-io_apic-eliminate-remaining-cpumask_ts-from-st.patch
      	0021-x86-final-cleanups-in-io_apic-to-use-new-cpumask-AP.patch
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NMike Travis <travis@sgi.com>
      22f65d31
    • M
      x86 smp: modify send_IPI_mask interface to accept cpumask_t pointers · e7986739
      Mike Travis 提交于
      Impact: cleanup, change parameter passing
      
        * Change genapic interfaces to accept cpumask_t pointers where possible.
      
        * Modify external callers to use cpumask_t pointers in function calls.
      
        * Create new send_IPI_mask_allbutself which is the same as the
          send_IPI_mask functions but removes smp_processor_id() from list.
          This removes another common need for a temporary cpumask_t variable.
      
        * Functions that used a temp cpumask_t variable for:
      
      	cpumask_t allbutme = cpu_online_map;
      
      	cpu_clear(smp_processor_id(), allbutme);
      	if (!cpus_empty(allbutme))
      		...
      
          become:
      
      	if (!cpus_equal(cpu_online_map, cpumask_of_cpu(cpu)))
      		...
      
        * Other minor code optimizations (like using cpus_clear instead of
          CPU_MASK_NONE, etc.)
      
      Applies to linux-2.6.tip/master.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      e7986739
    • Y
      x86, sparseirq: move irq_desc according to smp_affinity, v7 · 48a1b10a
      Yinghai Lu 提交于
      Impact: improve NUMA handling by migrating irq_desc on smp_affinity changes
      
      if CONFIG_NUMA_MIGRATE_IRQ_DESC is set:
      
      -  make irq_desc to go with affinity aka irq_desc moving etc
      -  call move_irq_desc in irq_complete_move()
      -  legacy irq_desc is not moved, because they are allocated via static array
      
      for logical apic mode, need to add move_desc_in_progress_in_same_domain,
      otherwise it will not be moved ==> also could need two phases to get
      irq_desc moved.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      48a1b10a
    • M
      x86: fix build error with post-merge of tip/cpus4096 and rr-for-ingo/master. · c8cae544
      Mike Travis 提交于
      Ingo Molnar wrote:
      
      > allyes64 build failure:
      >
      > arch/x86/kernel/io_apic.c: In function ‘set_ir_ioapic_affinity_irq_desc’:
      > arch/x86/kernel/io_apic.c:2295: error: incompatible type for argument 2 of
      > ‘migrate_ioapic_irq_desc’
      > arch/x86/kernel/io_apic.c: In function ‘ir_set_msi_irq_affinity’:
      > arch/x86/kernel/io_apic.c:3205: error: incompatible type for argument 2 of
      > ‘set_extra_move_desc’
      > make[1]: *** wait: No child processes.  Stop.
      
      Here's a small patch to correct the build error with the post-merge tree.
      Built and boot-tested.  I'll will reset the follow on patches in my brand
      new git tree to accommodate this change.
      
      Fix two references in io_apic.c that were incorrect.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c8cae544
  18. 13 12月, 2008 1 次提交
  19. 12 12月, 2008 1 次提交
  20. 08 12月, 2008 4 次提交
  21. 23 11月, 2008 1 次提交
  22. 21 11月, 2008 1 次提交
    • M
      x86: Fix interrupt leak due to migration · 0ca4b6b0
      Matthew Wilcox 提交于
      When we migrate an interrupt from one CPU to another, we set the
      move_in_progress flag and clean up the vectors later once they're not
      being used.  If you're unlucky and call destroy_irq() before the vectors
      become un-used, the move_in_progress flag is never cleared, which causes
      the interrupt to become unusable.
      
      This was discovered by Jesse Brandeburg for whom it manifested as an
      MSI-X device refusing to use MSI-X mode when the driver was unloaded
      and reloaded repeatedly.
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0ca4b6b0
  23. 10 11月, 2008 1 次提交
  24. 06 11月, 2008 1 次提交
    • B
      x86: don't allow nr_irqs > NR_IRQS · c78d0cf2
      Ben Hutchings 提交于
      Impact: fix boot hang on 32-bit systems with more than 224 IO-APIC pins
      
      On some 32-bit systems with a lot of IO-APICs probe_nr_irqs() can
      return a value larger than NR_IRQS. This will lead to probe_irq_on()
      overrunning the irq_desc array.
      
      I hit this when running net-next-2.6 (close to 2.6.28-rc3) on a
      Supermicro dual Xeon system.  NR_IRQS is 224 but probe_nr_irqs() detects
      5 IOAPICs and returns 240.  Here are the log messages:
      
      Tue Nov  4 16:53:47 2008 ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
      Tue Nov  4 16:53:47 2008 IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
      Tue Nov  4 16:53:47 2008 ACPI: IOAPIC (id[0x02] address[0xfec81000] gsi_base[24])
      Tue Nov  4 16:53:47 2008 IOAPIC[1]: apic_id 2, version 32, address 0xfec81000, GSI 24-47
      Tue Nov  4 16:53:47 2008 ACPI: IOAPIC (id[0x03] address[0xfec81400] gsi_base[48])
      Tue Nov  4 16:53:47 2008 IOAPIC[2]: apic_id 3, version 32, address 0xfec81400, GSI 48-71
      Tue Nov  4 16:53:47 2008 ACPI: IOAPIC (id[0x04] address[0xfec82000] gsi_base[72])
      Tue Nov  4 16:53:47 2008 IOAPIC[3]: apic_id 4, version 32, address 0xfec82000, GSI 72-95
      Tue Nov  4 16:53:47 2008 ACPI: IOAPIC (id[0x05] address[0xfec82400] gsi_base[96])
      Tue Nov  4 16:53:47 2008 IOAPIC[4]: apic_id 5, version 32, address 0xfec82400, GSI 96-119
      Tue Nov  4 16:53:47 2008 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
      Tue Nov  4 16:53:47 2008 ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
      Tue Nov  4 16:53:47 2008 Enabling APIC mode:  Flat.  Using 5 I/O APICs
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Acked-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c78d0cf2
  25. 16 10月, 2008 6 次提交