Commit cf00ab84 authored by Thomas Gleixner's avatar Thomas Gleixner

Merge tag 'irqchip-4.14-2' of...

Merge tag 'irqchip-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent

Pull irqchip updates from Marc Zyngier

- A GICv3 initialisation fix when some CPUs fail to be brought up
- A GICv4 compile fix for GCC 4.5 (!)
- A MIPS-GIC fix for the PCIe support
parents 0551968a 90019f8f
...@@ -1042,7 +1042,7 @@ static int get_cpu_number(struct device_node *dn) ...@@ -1042,7 +1042,7 @@ static int get_cpu_number(struct device_node *dn)
{ {
const __be32 *cell; const __be32 *cell;
u64 hwid; u64 hwid;
int i; int cpu;
cell = of_get_property(dn, "reg", NULL); cell = of_get_property(dn, "reg", NULL);
if (!cell) if (!cell)
...@@ -1056,9 +1056,9 @@ static int get_cpu_number(struct device_node *dn) ...@@ -1056,9 +1056,9 @@ static int get_cpu_number(struct device_node *dn)
if (hwid & ~MPIDR_HWID_BITMASK) if (hwid & ~MPIDR_HWID_BITMASK)
return -1; return -1;
for (i = 0; i < num_possible_cpus(); i++) for_each_possible_cpu(cpu)
if (cpu_logical_map(i) == hwid) if (cpu_logical_map(cpu) == hwid)
return i; return cpu;
return -1; return -1;
} }
......
...@@ -173,7 +173,9 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map) ...@@ -173,7 +173,9 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map)
{ {
struct its_cmd_info info = { struct its_cmd_info info = {
.cmd_type = MAP_VLPI, .cmd_type = MAP_VLPI,
{
.map = map, .map = map,
},
}; };
/* /*
...@@ -189,7 +191,9 @@ int its_get_vlpi(int irq, struct its_vlpi_map *map) ...@@ -189,7 +191,9 @@ int its_get_vlpi(int irq, struct its_vlpi_map *map)
{ {
struct its_cmd_info info = { struct its_cmd_info info = {
.cmd_type = GET_VLPI, .cmd_type = GET_VLPI,
{
.map = map, .map = map,
},
}; };
return irq_set_vcpu_affinity(irq, &info); return irq_set_vcpu_affinity(irq, &info);
...@@ -205,7 +209,9 @@ int its_prop_update_vlpi(int irq, u8 config, bool inv) ...@@ -205,7 +209,9 @@ int its_prop_update_vlpi(int irq, u8 config, bool inv)
{ {
struct its_cmd_info info = { struct its_cmd_info info = {
.cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI, .cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI,
{
.config = config, .config = config,
},
}; };
return irq_set_vcpu_affinity(irq, &info); return irq_set_vcpu_affinity(irq, &info);
......
...@@ -169,7 +169,7 @@ static void gic_mask_irq(struct irq_data *d) ...@@ -169,7 +169,7 @@ static void gic_mask_irq(struct irq_data *d)
{ {
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
write_gic_rmask(BIT(intr)); write_gic_rmask(intr);
gic_clear_pcpu_masks(intr); gic_clear_pcpu_masks(intr);
} }
...@@ -179,7 +179,7 @@ static void gic_unmask_irq(struct irq_data *d) ...@@ -179,7 +179,7 @@ static void gic_unmask_irq(struct irq_data *d)
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
unsigned int cpu; unsigned int cpu;
write_gic_smask(BIT(intr)); write_gic_smask(intr);
gic_clear_pcpu_masks(intr); gic_clear_pcpu_masks(intr);
cpu = cpumask_first_and(affinity, cpu_online_mask); cpu = cpumask_first_and(affinity, cpu_online_mask);
...@@ -767,7 +767,7 @@ static int __init gic_of_init(struct device_node *node, ...@@ -767,7 +767,7 @@ static int __init gic_of_init(struct device_node *node,
for (i = 0; i < gic_shared_intrs; i++) { for (i = 0; i < gic_shared_intrs; i++) {
change_gic_pol(i, GIC_POL_ACTIVE_HIGH); change_gic_pol(i, GIC_POL_ACTIVE_HIGH);
change_gic_trig(i, GIC_TRIG_LEVEL); change_gic_trig(i, GIC_TRIG_LEVEL);
write_gic_rmask(BIT(i)); write_gic_rmask(i);
} }
for (i = 0; i < gic_vpes; i++) { for (i = 0; i < gic_vpes; i++) {
......
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