Commit 66e22087 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 apic update from Thomas Gleixner:
 "Trivial cleanups of the APIC related code"

* 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/apic: Trivial coding style fixes
  x86/vector: Merge allocate_vector() into assign_vector_locked()
parents 1e45e9a9 843c4089
...@@ -940,7 +940,7 @@ static int __init calibrate_APIC_clock(void) ...@@ -940,7 +940,7 @@ static int __init calibrate_APIC_clock(void)
if (levt->features & CLOCK_EVT_FEAT_DUMMY) { if (levt->features & CLOCK_EVT_FEAT_DUMMY) {
pr_warning("APIC timer disabled due to verification failure\n"); pr_warning("APIC timer disabled due to verification failure\n");
return -1; return -1;
} }
return 0; return 0;
......
...@@ -218,7 +218,8 @@ static int reserve_irq_vector(struct irq_data *irqd) ...@@ -218,7 +218,8 @@ static int reserve_irq_vector(struct irq_data *irqd)
return 0; return 0;
} }
static int allocate_vector(struct irq_data *irqd, const struct cpumask *dest) static int
assign_vector_locked(struct irq_data *irqd, const struct cpumask *dest)
{ {
struct apic_chip_data *apicd = apic_chip_data(irqd); struct apic_chip_data *apicd = apic_chip_data(irqd);
bool resvd = apicd->has_reserved; bool resvd = apicd->has_reserved;
...@@ -245,22 +246,12 @@ static int allocate_vector(struct irq_data *irqd, const struct cpumask *dest) ...@@ -245,22 +246,12 @@ static int allocate_vector(struct irq_data *irqd, const struct cpumask *dest)
return -EBUSY; return -EBUSY;
vector = irq_matrix_alloc(vector_matrix, dest, resvd, &cpu); vector = irq_matrix_alloc(vector_matrix, dest, resvd, &cpu);
if (vector > 0)
apic_update_vector(irqd, vector, cpu);
trace_vector_alloc(irqd->irq, vector, resvd, vector); trace_vector_alloc(irqd->irq, vector, resvd, vector);
return vector;
}
static int assign_vector_locked(struct irq_data *irqd,
const struct cpumask *dest)
{
struct apic_chip_data *apicd = apic_chip_data(irqd);
int vector = allocate_vector(irqd, dest);
if (vector < 0) if (vector < 0)
return vector; return vector;
apic_update_vector(irqd, vector, cpu);
apic_update_irq_cfg(irqd, vector, cpu);
apic_update_irq_cfg(irqd, apicd->vector, apicd->cpu);
return 0; return 0;
} }
...@@ -433,7 +424,7 @@ static int activate_managed(struct irq_data *irqd) ...@@ -433,7 +424,7 @@ static int activate_managed(struct irq_data *irqd)
pr_err("Managed startup irq %u, no vector available\n", pr_err("Managed startup irq %u, no vector available\n",
irqd->irq); irqd->irq);
} }
return ret; return ret;
} }
static int x86_vector_activate(struct irq_domain *dom, struct irq_data *irqd, static int x86_vector_activate(struct irq_domain *dom, struct irq_data *irqd,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment