lkml.org 
[lkml]   [2015]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/apic] x86/irq: Move irqdomain specific code into asm/ irqdomain.h
    Commit-ID:  d746d1ebd30c48562a3fb512ab18d5822f137820
    Gitweb: http://git.kernel.org/tip/d746d1ebd30c48562a3fb512ab18d5822f137820
    Author: Jiang Liu <jiang.liu@linux.intel.com>
    AuthorDate: Tue, 14 Apr 2015 10:30:09 +0800
    Committer: Thomas Gleixner <tglx@linutronix.de>
    CommitDate: Fri, 24 Apr 2015 15:36:55 +0200

    x86/irq: Move irqdomain specific code into asm/irqdomain.h

    Now we have dedicated asm/irqdomain.h, so move irqdomain specific
    code into it.

    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: David Cohen <david.a.cohen@linux.intel.com>
    Cc: Sander Eikelenboom <linux@eikelenboom.it>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dimitri Sivanich <sivanich@sgi.com>
    Cc: Joerg Roedel <jroedel@suse.de>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/1428978610-28986-33-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/x86/include/asm/hw_irq.h | 24 ------------------------
    arch/x86/include/asm/irq_remapping.h | 2 +-
    arch/x86/include/asm/irqdomain.h | 35 ++++++++++++++++++++++++++++++++---
    arch/x86/kernel/apic/htirq.c | 2 +-
    arch/x86/kernel/apic/msi.c | 2 +-
    arch/x86/kernel/apic/vector.c | 2 +-
    arch/x86/kernel/hpet.c | 2 +-
    arch/x86/platform/uv/uv_irq.c | 2 +-
    8 files changed, 38 insertions(+), 33 deletions(-)

    diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
    index 3b8233a..1f88e71 100644
    --- a/arch/x86/include/asm/hw_irq.h
    +++ b/arch/x86/include/asm/hw_irq.h
    @@ -94,8 +94,6 @@ extern void trace_call_function_single_interrupt(void);
    #define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi
    #endif /* CONFIG_TRACING */

    -struct irq_domain;
    -
    #ifdef CONFIG_X86_LOCAL_APIC
    struct irq_data;
    struct pci_dev;
    @@ -165,22 +163,11 @@ struct irq_alloc_info {
    };
    };

    -enum {
    - /* Allocate contiguous CPU vectors */
    - X86_IRQ_ALLOC_CONTIGUOUS_VECTORS = 0x1,
    -};
    -
    struct irq_cfg {
    unsigned int dest_apicid;
    u8 vector;
    };

    -extern struct irq_domain *x86_vector_domain;
    -
    -extern void init_irq_alloc_info(struct irq_alloc_info *info,
    - const struct cpumask *mask);
    -extern void copy_irq_alloc_info(struct irq_alloc_info *dst,
    - struct irq_alloc_info *src);
    extern struct irq_cfg *irq_cfg(unsigned int irq);
    extern struct irq_cfg *irqd_cfg(struct irq_data *irq_data);
    extern void lock_vector_lock(void);
    @@ -200,17 +187,6 @@ static inline void lock_vector_lock(void) {}
    static inline void unlock_vector_lock(void) {}
    #endif /* CONFIG_X86_LOCAL_APIC */

    -#ifdef CONFIG_PCI_MSI
    -extern void arch_init_msi_domain(struct irq_domain *domain);
    -#else
    -static inline void arch_init_msi_domain(struct irq_domain *domain) { }
    -#endif
    -#ifdef CONFIG_HT_IRQ
    -extern void arch_init_htirq_domain(struct irq_domain *domain);
    -#else
    -static inline void arch_init_htirq_domain(struct irq_domain *domain) { }
    -#endif
    -
    /* Statistics */
    extern atomic_t irq_err_count;
    extern atomic_t irq_mis_count;
    diff --git a/arch/x86/include/asm/irq_remapping.h b/arch/x86/include/asm/irq_remapping.h
    index 09efa35..78974fb 100644
    --- a/arch/x86/include/asm/irq_remapping.h
    +++ b/arch/x86/include/asm/irq_remapping.h
    @@ -22,7 +22,7 @@
    #ifndef __X86_IRQ_REMAPPING_H
    #define __X86_IRQ_REMAPPING_H

    -#include <linux/irqdomain.h>
    +#include <asm/irqdomain.h>
    #include <asm/hw_irq.h>
    #include <asm/io_apic.h>

    diff --git a/arch/x86/include/asm/irqdomain.h b/arch/x86/include/asm/irqdomain.h
    index fe0d4c6..d26075b 100644
    --- a/arch/x86/include/asm/irqdomain.h
    +++ b/arch/x86/include/asm/irqdomain.h
    @@ -2,6 +2,25 @@
    #define _ASM_IRQDOMAIN_H

    #include <linux/irqdomain.h>
    +#include <asm/hw_irq.h>
    +
    +#ifdef CONFIG_X86_LOCAL_APIC
    +enum {
    + /* Allocate contiguous CPU vectors */
    + X86_IRQ_ALLOC_CONTIGUOUS_VECTORS = 0x1,
    +};
    +
    +extern struct irq_domain *x86_vector_domain;
    +
    +extern void init_irq_alloc_info(struct irq_alloc_info *info,
    + const struct cpumask *mask);
    +extern void copy_irq_alloc_info(struct irq_alloc_info *dst,
    + struct irq_alloc_info *src);
    +#endif /* CONFIG_X86_LOCAL_APIC */
    +
    +#ifdef CONFIG_X86_IO_APIC
    +struct device_node;
    +struct irq_data;

    enum ioapic_domain_type {
    IOAPIC_DOMAIN_INVALID,
    @@ -10,9 +29,6 @@ enum ioapic_domain_type {
    IOAPIC_DOMAIN_DYNAMIC,
    };

    -struct device_node;
    -struct irq_data;
    -
    struct ioapic_domain_cfg {
    enum ioapic_domain_type type;
    const struct irq_domain_ops *ops;
    @@ -30,5 +46,18 @@ extern void mp_irqdomain_activate(struct irq_domain *domain,
    extern void mp_irqdomain_deactivate(struct irq_domain *domain,
    struct irq_data *irq_data);
    extern int mp_irqdomain_ioapic_idx(struct irq_domain *domain);
    +#endif /* CONFIG_X86_IO_APIC */
    +
    +#ifdef CONFIG_PCI_MSI
    +extern void arch_init_msi_domain(struct irq_domain *domain);
    +#else
    +static inline void arch_init_msi_domain(struct irq_domain *domain) { }
    +#endif
    +
    +#ifdef CONFIG_HT_IRQ
    +extern void arch_init_htirq_domain(struct irq_domain *domain);
    +#else
    +static inline void arch_init_htirq_domain(struct irq_domain *domain) { }
    +#endif

    #endif
    diff --git a/arch/x86/kernel/apic/htirq.c b/arch/x86/kernel/apic/htirq.c
    index 1cae104..341e99b 100644
    --- a/arch/x86/kernel/apic/htirq.c
    +++ b/arch/x86/kernel/apic/htirq.c
    @@ -16,7 +16,7 @@
    #include <linux/device.h>
    #include <linux/pci.h>
    #include <linux/htirq.h>
    -#include <linux/irqdomain.h>
    +#include <asm/irqdomain.h>
    #include <asm/hw_irq.h>
    #include <asm/apic.h>
    #include <asm/hypertransport.h>
    diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
    index 1095842..58fde66 100644
    --- a/arch/x86/kernel/apic/msi.c
    +++ b/arch/x86/kernel/apic/msi.c
    @@ -16,7 +16,7 @@
    #include <linux/dmar.h>
    #include <linux/hpet.h>
    #include <linux/msi.h>
    -#include <linux/irqdomain.h>
    +#include <asm/irqdomain.h>
    #include <asm/msidef.h>
    #include <asm/hpet.h>
    #include <asm/hw_irq.h>
    diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
    index 6004749..ad786f8 100644
    --- a/arch/x86/kernel/apic/vector.c
    +++ b/arch/x86/kernel/apic/vector.c
    @@ -13,8 +13,8 @@
    #include <linux/interrupt.h>
    #include <linux/init.h>
    #include <linux/compiler.h>
    -#include <linux/irqdomain.h>
    #include <linux/slab.h>
    +#include <asm/irqdomain.h>
    #include <asm/hw_irq.h>
    #include <asm/apic.h>
    #include <asm/i8259.h>
    diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
    index e3bc180..e2449cf 100644
    --- a/arch/x86/kernel/hpet.c
    +++ b/arch/x86/kernel/hpet.c
    @@ -11,8 +11,8 @@
    #include <linux/cpu.h>
    #include <linux/pm.h>
    #include <linux/io.h>
    -#include <linux/irqdomain.h>

    +#include <asm/irqdomain.h>
    #include <asm/fixmap.h>
    #include <asm/hpet.h>
    #include <asm/time.h>
    diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c
    index 091b36a..cdf86cd3 100644
    --- a/arch/x86/platform/uv/uv_irq.c
    +++ b/arch/x86/platform/uv/uv_irq.c
    @@ -12,8 +12,8 @@
    #include <linux/rbtree.h>
    #include <linux/slab.h>
    #include <linux/irq.h>
    -#include <linux/irqdomain.h>

    +#include <asm/irqdomain.h>
    #include <asm/apic.h>
    #include <asm/uv/uv_irq.h>
    #include <asm/uv/uv_hub.h>

    \
     
     \ /
      Last update: 2015-04-24 18:41    [W:6.177 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site