aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2011-11-08 10:37:08 +0100
committerJan Beulich <jbeulich@suse.com>2011-11-08 10:37:08 +0100
commit4e84a8fad033bfd06faf6b9a2a2c58db885b6acb (patch)
tree071d8e0ad11e48aa6bdf0f5dd72285899e8aad94 /xen
parent22bdce1c04881c0e909817ee11f7cecd6c852d8c (diff)
downloadxen-4e84a8fad033bfd06faf6b9a2a2c58db885b6acb.tar.gz
xen-4e84a8fad033bfd06faf6b9a2a2c58db885b6acb.tar.bz2
xen-4e84a8fad033bfd06faf6b9a2a2c58db885b6acb.zip
eliminate remaining uses of struct irq_cfg
Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/x86/io_apic.c8
-rw-r--r--xen/arch/x86/irq.c8
-rw-r--r--xen/include/asm-ia64/linux-xen/asm/irq.h6
-rw-r--r--xen/include/asm-x86/irq.h8
-rw-r--r--xen/include/xen/irq.h2
5 files changed, 11 insertions, 21 deletions
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 94f151e26f..dea4316601 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2279,7 +2279,6 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
int apic, pin, irq, ret, vector, pirq;
struct IO_APIC_route_entry rte = { 0 };
unsigned long flags;
- struct irq_cfg *cfg;
struct irq_desc *desc;
if ( (apic = ioapic_physbase_to_id(physbase)) < 0 )
@@ -2321,7 +2320,6 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
return irq;
desc = irq_to_desc(irq);
- cfg = &desc->arch;
/*
* Since PHYSDEVOP_alloc_irq_vector is dummy, rte.vector is the pirq
@@ -2338,7 +2336,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
spin_lock_irqsave(&ioapic_lock, flags);
ret = io_apic_read(apic, 0x10 + 2 * pin);
spin_unlock_irqrestore(&ioapic_lock, flags);
- rte.vector = cfg->vector;
+ rte.vector = desc->arch.vector;
if ( *(u32*)&rte != ret )
WARN_BOGUS_WRITE("old_entry=%08x pirq=%d\n%s: "
"Attempt to modify IO-APIC pin for in-use IRQ!\n",
@@ -2346,7 +2344,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
return 0;
}
- if ( cfg->vector <= 0 || cfg->vector > LAST_DYNAMIC_VECTOR ) {
+ if ( desc->arch.vector <= 0 || desc->arch.vector > LAST_DYNAMIC_VECTOR ) {
vector = assign_irq_vector(irq);
if ( vector < 0 )
return vector;
@@ -2370,7 +2368,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
/* Mask iff level triggered. */
rte.mask = rte.trigger;
/* Set the vector field to the real vector! */
- rte.vector = cfg->vector;
+ rte.vector = desc->arch.vector;
SET_DEST(rte.dest.dest32, rte.dest.logical.logical_dest,
cpu_mask_to_apicid(desc->arch.cpu_mask));
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 0271be93dc..16b5792d20 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -285,16 +285,14 @@ void destroy_irq(unsigned int irq)
int irq_to_vector(int irq)
{
int vector = -1;
- struct irq_cfg *cfg;
BUG_ON(irq >= nr_irqs || irq < 0);
if (IO_APIC_IRQ(irq))
vector = irq_vector[irq];
- else if(MSI_IRQ(irq)) {
- cfg = irq_cfg(irq);
- vector = cfg->vector;
- } else
+ else if (MSI_IRQ(irq))
+ vector = irq_to_desc(irq)->arch.vector;
+ else
vector = LEGACY_VECTOR(irq);
return vector;
diff --git a/xen/include/asm-ia64/linux-xen/asm/irq.h b/xen/include/asm-ia64/linux-xen/asm/irq.h
index cec2be02c5..8fa5dec812 100644
--- a/xen/include/asm-ia64/linux-xen/asm/irq.h
+++ b/xen/include/asm-ia64/linux-xen/asm/irq.h
@@ -15,8 +15,7 @@
#define NR_IRQS 256
#ifdef XEN
-struct irq_cfg {
-#define arch_irq_desc irq_cfg
+struct arch_irq_desc {
int vector;
cpumask_var_t cpu_mask;
};
@@ -63,9 +62,6 @@ extern int request_irq_vector(unsigned int vector,
#define create_irq(x) assign_irq_vector(AUTO_ASSIGN_IRQ)
#define destroy_irq(x) free_irq_vector(x)
-#define irq_cfg(x) (&irq_desc[x].arch)
-#define irq_to_desc(x) (&irq_desc[x]
-
#define irq_complete_move(x) do {} \
while(!x)
diff --git a/xen/include/asm-x86/irq.h b/xen/include/asm-x86/irq.h
index 3b654dc684..27724ee3c5 100644
--- a/xen/include/asm-x86/irq.h
+++ b/xen/include/asm-x86/irq.h
@@ -20,17 +20,13 @@
#define LEGACY_VECTOR(irq) ((irq) + FIRST_LEGACY_VECTOR)
-#define irq_to_desc(irq) (&irq_desc[irq])
-#define irq_cfg(irq) (&irq_desc[irq].arch)
-
typedef struct {
DECLARE_BITMAP(_bits,NR_VECTORS);
} vmask_t;
struct irq_desc;
-struct irq_cfg {
-#define arch_irq_desc irq_cfg
+struct arch_irq_desc {
s16 vector; /* vector itself is only 8 bits, */
s16 old_vector; /* but we use -1 for unassigned */
cpumask_var_t cpu_mask;
@@ -42,7 +38,7 @@ struct irq_cfg {
s8 used;
};
-/* For use with irq_cfg.used */
+/* For use with irq_desc.arch.used */
#define IRQ_UNUSED (0)
#define IRQ_USED (1)
#define IRQ_RESERVED (-1)
diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 9b633c0a9b..c8a0276dda 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -84,6 +84,8 @@ typedef struct irq_desc {
struct list_head rl_link;
} __cacheline_aligned irq_desc_t;
+#define irq_to_desc(irq) (&irq_desc[irq])
+
int init_one_irq_desc(struct irq_desc *);
int arch_init_one_irq_desc(struct irq_desc *);