for (; quirks->desc; quirks++) {
                if (quirks->iidr != (quirks->mask & iidr))
                        continue;
-               quirks->init(data);
-               pr_info("GIC: enabling workaround for %s\n", quirks->desc);
+               if (quirks->init(data))
+                       pr_info("GIC: enabling workaround for %s\n",
+                               quirks->desc);
        }
 }
 
 
        }
 }
 
-static void __maybe_unused its_enable_quirk_cavium_22375(void *data)
+static bool __maybe_unused its_enable_quirk_cavium_22375(void *data)
 {
        struct its_node *its = data;
 
        /* erratum 22375: only alloc 8MB table size */
        its->device_ids = 0x14;         /* 20 bits, 8MB */
        its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_22375;
+
+       return true;
 }
 
-static void __maybe_unused its_enable_quirk_cavium_23144(void *data)
+static bool __maybe_unused its_enable_quirk_cavium_23144(void *data)
 {
        struct its_node *its = data;
 
        its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_23144;
+
+       return true;
 }
 
-static void __maybe_unused its_enable_quirk_qdf2400_e0065(void *data)
+static bool __maybe_unused its_enable_quirk_qdf2400_e0065(void *data)
 {
        struct its_node *its = data;
 
        /* On QDF2400, the size of the ITE is 16Bytes */
        its->ite_size = 16;
+
+       return true;
 }
 
 static const struct gic_quirk its_quirks[] = {