]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/irqchip/irq-gic-v3.c
IB/ipoib: Fix memory leak in create child syscall
[karo-tx-linux.git] / drivers / irqchip / irq-gic-v3.c
index 19d642eae096b2495f5707470ea5f857d2f9b876..c132f29322cc68a13ab76785d6c7d7b77bed542b 100644 (file)
@@ -120,11 +120,10 @@ static void gic_redist_wait_for_rwp(void)
 }
 
 #ifdef CONFIG_ARM64
-static DEFINE_STATIC_KEY_FALSE(is_cavium_thunderx);
 
 static u64 __maybe_unused gic_read_iar(void)
 {
-       if (static_branch_unlikely(&is_cavium_thunderx))
+       if (cpus_have_const_cap(ARM64_WORKAROUND_CAVIUM_23154))
                return gic_read_iar_cavium_thunderx();
        else
                return gic_read_iar_common();
@@ -633,9 +632,9 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
 static void gic_smp_init(void)
 {
        set_smp_cross_call(gic_raise_softirq);
-       cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GICV3_STARTING,
-                                 "AP_IRQ_GICV3_STARTING", gic_starting_cpu,
-                                 NULL);
+       cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GIC_STARTING,
+                                 "irqchip/arm/gicv3:starting",
+                                 gic_starting_cpu, NULL);
 }
 
 static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
@@ -905,14 +904,6 @@ static const struct irq_domain_ops partition_domain_ops = {
        .select = gic_irq_domain_select,
 };
 
-static void gicv3_enable_quirks(void)
-{
-#ifdef CONFIG_ARM64
-       if (cpus_have_cap(ARM64_WORKAROUND_CAVIUM_23154))
-               static_branch_enable(&is_cavium_thunderx);
-#endif
-}
-
 static int __init gic_init_bases(void __iomem *dist_base,
                                 struct redist_region *rdist_regs,
                                 u32 nr_redist_regions,
@@ -935,8 +926,6 @@ static int __init gic_init_bases(void __iomem *dist_base,
        gic_data.nr_redist_regions = nr_redist_regions;
        gic_data.redist_stride = redist_stride;
 
-       gicv3_enable_quirks();
-
        /*
         * Find out how many interrupts are supported.
         * The GIC only supports up to 1020 interrupt sources (SGI+PPI+SPI)