mfd: fusb302: change to host when connect type-c to standard-a cable
[firefly-linux-kernel-4.4.55.git] / drivers / irqchip / irq-gic.c
index abf2ffaed392270c97d14c7fdc2ab247e63a58e1..7851e786af99b7f35bf8f4a9cf91cf4e6f18ff7a 100644 (file)
@@ -347,6 +347,14 @@ static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
                        if (static_key_true(&supports_deactivate))
                                writel_relaxed(irqstat, cpu_base + GIC_CPU_DEACTIVATE);
 #ifdef CONFIG_SMP
+                       /*
+                        * Ensure any shared data written by the CPU sending
+                        * the IPI is read after we've read the ACK register
+                        * on the GIC.
+                        *
+                        * Pairs with the write barrier in gic_raise_softirq
+                        */
+                       smp_rmb();
                        handle_IPI(irqnr, regs);
 #endif
                        continue;
@@ -972,7 +980,7 @@ static int gic_irq_domain_translate(struct irq_domain *d,
                return 0;
        }
 
-       if (fwspec->fwnode->type == FWNODE_IRQCHIP) {
+       if (is_fwnode_irqchip(fwspec->fwnode)) {
                if(fwspec->param_count != 2)
                        return -EINVAL;