Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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()

+17 -14
+4 -4
drivers/irqchip/irq-gic-v3.c
··· 1042 1042 { 1043 1043 const __be32 *cell; 1044 1044 u64 hwid; 1045 - int i; 1045 + int cpu; 1046 1046 1047 1047 cell = of_get_property(dn, "reg", NULL); 1048 1048 if (!cell) ··· 1056 1056 if (hwid & ~MPIDR_HWID_BITMASK) 1057 1057 return -1; 1058 1058 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; 1062 1062 1063 1063 return -1; 1064 1064 }
+9 -3
drivers/irqchip/irq-gic-v4.c
··· 173 173 { 174 174 struct its_cmd_info info = { 175 175 .cmd_type = MAP_VLPI, 176 - .map = map, 176 + { 177 + .map = map, 178 + }, 177 179 }; 178 180 179 181 /* ··· 191 189 { 192 190 struct its_cmd_info info = { 193 191 .cmd_type = GET_VLPI, 194 - .map = map, 192 + { 193 + .map = map, 194 + }, 195 195 }; 196 196 197 197 return irq_set_vcpu_affinity(irq, &info); ··· 209 205 { 210 206 struct its_cmd_info info = { 211 207 .cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI, 212 - .config = config, 208 + { 209 + .config = config, 210 + }, 213 211 }; 214 212 215 213 return irq_set_vcpu_affinity(irq, &info);
+3 -3
drivers/irqchip/irq-mips-gic.c
··· 169 169 { 170 170 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 171 171 172 - write_gic_rmask(BIT(intr)); 172 + write_gic_rmask(intr); 173 173 gic_clear_pcpu_masks(intr); 174 174 } 175 175 ··· 179 179 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 180 180 unsigned int cpu; 181 181 182 - write_gic_smask(BIT(intr)); 182 + write_gic_smask(intr); 183 183 184 184 gic_clear_pcpu_masks(intr); 185 185 cpu = cpumask_first_and(affinity, cpu_online_mask); ··· 767 767 for (i = 0; i < gic_shared_intrs; i++) { 768 768 change_gic_pol(i, GIC_POL_ACTIVE_HIGH); 769 769 change_gic_trig(i, GIC_TRIG_LEVEL); 770 - write_gic_rmask(BIT(i)); 770 + write_gic_rmask(i); 771 771 } 772 772 773 773 for (i = 0; i < gic_vpes; i++) {
+1 -4
include/linux/irq.h
··· 783 783 static inline 784 784 struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d) 785 785 { 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; 790 787 } 791 788 static inline void irq_data_update_effective_affinity(struct irq_data *d, 792 789 const struct cpumask *m)