12 Oct, 2010
40 commits
-
That interrupt remapping code is x86 specific and tied to the io_apic
code. No need for separate allocator functions in the interrupt
remapping code. This allows to simplify the code and irq_2_iommu is
small (13 bytes on 64bit) so it's not a real problem even if interrupt
remapping is runtime disabled. If it's compile time disabled the
impact is zero.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Suresh Siddha
Cc: David Woodhouse
Cc: Jesse Barnes -
No users.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Suresh Siddha
Cc: David Woodhouse
Cc: Jesse Barnes -
No need to dereference irq_desc.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Suresh Siddha
Cc: David Woodhouse
Cc: Jesse Barnes -
With SPARSE_IRQ=y the irte descriptors are dynamically allocated, but not
freed in free_irte().That was ok as long as the sparse irq core was not freeing irq descriptors on
destroy_irq(). Now we leak the irte descriptor. Free it in free_irte().Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Suresh Siddha
Cc: David Woodhouse
Cc: Jesse Barnes -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Switch over to the new allocator and remove all the magic which was
caused by the unability to destroy irq descriptors. Get rid of the
create_irq_nr() loop for sparse and non sparse irq.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
The sparseirq rework triggered a warning in the iommu code, which was
caused by setting up ioapic for ACPI irq 9 twice. This function is
solely to handle interrupts which are on a secondary ioapic and
outside the legacy irq range.Replace the sparse irq_to_desc check with a non ifdeffed version.
[ tglx: Moved it before the ioapic sparse conversion and simplified
the inverse logic ]Signed-off-by: Yinghai Lu
LKML-Reference:
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Rename the grossly misnamed get_one_free_irq_cfg() to alloc_irq_cfg().
Add a (not yet used) irq number argument to free_irq_cfg()Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Implement new allocator functions which make use of the core changes.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Cleanup after the irq_chip conversion a bit.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Jesse Barnes -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: David Woodhouse -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Suresh Siddha
Cc: Jesse Barnes -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Suresh Siddha -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Jesse Barnes -
While at it rename it to sensible function names and fix the return
value from unsigned to int for __ioapic_set_affinity (set_desc_affinity).
Returning -1 in a function returning unsigned int is somewhat strange.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Most of it is useless pseudo optimization.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Jesse Barnes -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: David Woodhouse -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Sanitize functions. Remove irq_desc pointer magic.
Preparatory patch for further cleanups.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Fixup the open coded access to
irq_desc->[handler_data|chip_data|msi-desc]Use the macros and inline functions for it.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Remove the open coded access to irq_desc and convert to the new irq
chip functions. Change the mask function of piix4_virtual_irq_type so
we can use the generic irq handling function for the virtual interrupt
instead of open coding it.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Rusty Russell -
Disable the interrupt in CPU_DEAD where it belongs. Remove the
open coded irq_desc manipulation.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Cc: Jacob Pan -
Before moving the irq chips to the new functions, fixup direct callers.
The cpu offline irq fixup code needs to become generic and archs need
to honour the "force" flag as an indicator, but that's for later.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
The descriptors are already initialized in exactly this way.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Handing down irq_desc to msi just so that msi can access
irq_desc.irq_data.msi_desc is a pretty stupid idea. The calling code
can hand down a pointer to msi_desc so msi code does not need to know
about the irq descriptor at all.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Jesse Barnes -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar
Acked-by: Jesse Barnes
Cc: Benjamin Herrenschmidt
Cc: "David S. Miller"
Cc: Tony Luck
Cc: Russell King -
Reason: Pull in the latest io_apic bugfixes
Signed-off-by: Thomas Gleixner
-
Reason: Avoid conflicts with removal of boot_cpu_id
Signed-off-by: Thomas Gleixner
-
Reason: Avoid conflicts with the x2apic modifications
Signed-off-by: Thomas Gleixner
-
sparse irq sets up NR_IRQS_LEGACY irq descriptors and archs then go
ahead and allocate more.Use the unused return value of arch_probe_nr_irqs() to let the
architecture return the number of early allocations. Fix up all users.Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Make irq_to_desc_alloc_node() a wrapper around the new allocator.
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar -
Signed-off-by: Thomas Gleixner
Reviewed-by: Ingo Molnar