Skip to content

Commit 43d368a

Browse files
committed
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Ingo Molnar: "Three irqchip driver fixes, and an affinity mask helper function bug fix affecting x86" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: Revert "genirq: Restrict effective affinity to interrupts actually using it" irqchip.mips-gic: Fix shared interrupt mask writes irqchip/gic-v4: Fix building with ancient gcc irqchip/gic-v3: Iterate over possible CPUs by for_each_possible_cpu()
2 parents a430643 + cf00ab8 commit 43d368a

File tree

4 files changed

+17
-14
lines changed

4 files changed

+17
-14
lines changed

drivers/irqchip/irq-gic-v3.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ static int get_cpu_number(struct device_node *dn)
10421042
{
10431043
const __be32 *cell;
10441044
u64 hwid;
1045-
int i;
1045+
int cpu;
10461046

10471047
cell = of_get_property(dn, "reg", NULL);
10481048
if (!cell)
@@ -1056,9 +1056,9 @@ static int get_cpu_number(struct device_node *dn)
10561056
if (hwid & ~MPIDR_HWID_BITMASK)
10571057
return -1;
10581058

1059-
for (i = 0; i < num_possible_cpus(); i++)
1060-
if (cpu_logical_map(i) == hwid)
1061-
return i;
1059+
for_each_possible_cpu(cpu)
1060+
if (cpu_logical_map(cpu) == hwid)
1061+
return cpu;
10621062

10631063
return -1;
10641064
}

drivers/irqchip/irq-gic-v4.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,9 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map)
173173
{
174174
struct its_cmd_info info = {
175175
.cmd_type = MAP_VLPI,
176-
.map = map,
176+
{
177+
.map = map,
178+
},
177179
};
178180

179181
/*
@@ -189,7 +191,9 @@ int its_get_vlpi(int irq, struct its_vlpi_map *map)
189191
{
190192
struct its_cmd_info info = {
191193
.cmd_type = GET_VLPI,
192-
.map = map,
194+
{
195+
.map = map,
196+
},
193197
};
194198

195199
return irq_set_vcpu_affinity(irq, &info);
@@ -205,7 +209,9 @@ int its_prop_update_vlpi(int irq, u8 config, bool inv)
205209
{
206210
struct its_cmd_info info = {
207211
.cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI,
208-
.config = config,
212+
{
213+
.config = config,
214+
},
209215
};
210216

211217
return irq_set_vcpu_affinity(irq, &info);

drivers/irqchip/irq-mips-gic.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ static void gic_mask_irq(struct irq_data *d)
169169
{
170170
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
171171

172-
write_gic_rmask(BIT(intr));
172+
write_gic_rmask(intr);
173173
gic_clear_pcpu_masks(intr);
174174
}
175175

@@ -179,7 +179,7 @@ static void gic_unmask_irq(struct irq_data *d)
179179
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
180180
unsigned int cpu;
181181

182-
write_gic_smask(BIT(intr));
182+
write_gic_smask(intr);
183183

184184
gic_clear_pcpu_masks(intr);
185185
cpu = cpumask_first_and(affinity, cpu_online_mask);
@@ -767,7 +767,7 @@ static int __init gic_of_init(struct device_node *node,
767767
for (i = 0; i < gic_shared_intrs; i++) {
768768
change_gic_pol(i, GIC_POL_ACTIVE_HIGH);
769769
change_gic_trig(i, GIC_TRIG_LEVEL);
770-
write_gic_rmask(BIT(i));
770+
write_gic_rmask(i);
771771
}
772772

773773
for (i = 0; i < gic_vpes; i++) {

include/linux/irq.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -783,10 +783,7 @@ static inline struct cpumask *irq_data_get_affinity_mask(struct irq_data *d)
783783
static inline
784784
struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d)
785785
{
786-
if (!cpumask_empty(d->common->effective_affinity))
787-
return d->common->effective_affinity;
788-
789-
return d->common->affinity;
786+
return d->common->effective_affinity;
790787
}
791788
static inline void irq_data_update_effective_affinity(struct irq_data *d,
792789
const struct cpumask *m)

0 commit comments

Comments
 (0)