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

+16 -10
+4 -4
drivers/irqchip/irq-gic-v3.c
··· 1042 { 1043 const __be32 *cell; 1044 u64 hwid; 1045 - int i; 1046 1047 cell = of_get_property(dn, "reg", NULL); 1048 if (!cell) ··· 1056 if (hwid & ~MPIDR_HWID_BITMASK) 1057 return -1; 1058 1059 - for (i = 0; i < num_possible_cpus(); i++) 1060 - if (cpu_logical_map(i) == hwid) 1061 - return i; 1062 1063 return -1; 1064 }
··· 1042 { 1043 const __be32 *cell; 1044 u64 hwid; 1045 + int cpu; 1046 1047 cell = of_get_property(dn, "reg", NULL); 1048 if (!cell) ··· 1056 if (hwid & ~MPIDR_HWID_BITMASK) 1057 return -1; 1058 1059 + for_each_possible_cpu(cpu) 1060 + if (cpu_logical_map(cpu) == hwid) 1061 + return cpu; 1062 1063 return -1; 1064 }
+9 -3
drivers/irqchip/irq-gic-v4.c
··· 173 { 174 struct its_cmd_info info = { 175 .cmd_type = MAP_VLPI, 176 - .map = map, 177 }; 178 179 /* ··· 191 { 192 struct its_cmd_info info = { 193 .cmd_type = GET_VLPI, 194 - .map = map, 195 }; 196 197 return irq_set_vcpu_affinity(irq, &info); ··· 209 { 210 struct its_cmd_info info = { 211 .cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI, 212 - .config = config, 213 }; 214 215 return irq_set_vcpu_affinity(irq, &info);
··· 173 { 174 struct its_cmd_info info = { 175 .cmd_type = MAP_VLPI, 176 + { 177 + .map = map, 178 + }, 179 }; 180 181 /* ··· 189 { 190 struct its_cmd_info info = { 191 .cmd_type = GET_VLPI, 192 + { 193 + .map = map, 194 + }, 195 }; 196 197 return irq_set_vcpu_affinity(irq, &info); ··· 205 { 206 struct its_cmd_info info = { 207 .cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI, 208 + { 209 + .config = config, 210 + }, 211 }; 212 213 return irq_set_vcpu_affinity(irq, &info);
+3 -3
drivers/irqchip/irq-mips-gic.c
··· 169 { 170 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 171 172 - write_gic_rmask(BIT(intr)); 173 gic_clear_pcpu_masks(intr); 174 } 175 ··· 179 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 180 unsigned int cpu; 181 182 - write_gic_smask(BIT(intr)); 183 184 gic_clear_pcpu_masks(intr); 185 cpu = cpumask_first_and(affinity, cpu_online_mask); ··· 767 for (i = 0; i < gic_shared_intrs; i++) { 768 change_gic_pol(i, GIC_POL_ACTIVE_HIGH); 769 change_gic_trig(i, GIC_TRIG_LEVEL); 770 - write_gic_rmask(BIT(i)); 771 } 772 773 for (i = 0; i < gic_vpes; i++) {
··· 169 { 170 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 171 172 + write_gic_rmask(intr); 173 gic_clear_pcpu_masks(intr); 174 } 175 ··· 179 unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq); 180 unsigned int cpu; 181 182 + write_gic_smask(intr); 183 184 gic_clear_pcpu_masks(intr); 185 cpu = cpumask_first_and(affinity, cpu_online_mask); ··· 767 for (i = 0; i < gic_shared_intrs; i++) { 768 change_gic_pol(i, GIC_POL_ACTIVE_HIGH); 769 change_gic_trig(i, GIC_TRIG_LEVEL); 770 + write_gic_rmask(i); 771 } 772 773 for (i = 0; i < gic_vpes; i++) {