return arch_early_ioapic_init();
 }
 
+#ifdef CONFIG_SMP
 /* Temporary hack to keep things working */
 static void vector_update_shutdown_irqs(void)
 {
        unlock_vector_lock();
 }
 
+static int apic_set_affinity(struct irq_data *irqd,
+                            const struct cpumask *dest, bool force)
+{
+       int err;
+
+       if (!IS_ENABLED(CONFIG_SMP))
+               return -EPERM;
+
+       if (!cpumask_intersects(dest, cpu_online_mask))
+               return -EINVAL;
+
+       err = assign_irq_vector(irqd, dest);
+       return err ? err : IRQ_SET_MASK_OK;
+}
+
+#else
+# define apic_set_affinity     NULL
+#endif
+
 static int apic_retrigger_irq(struct irq_data *irqd)
 {
        struct apic_chip_data *apicd = apic_chip_data(irqd);
        ack_APIC_irq();
 }
 
-static int apic_set_affinity(struct irq_data *irqd,
-                            const struct cpumask *dest, bool force)
-{
-       int err;
-
-       if (!IS_ENABLED(CONFIG_SMP))
-               return -EPERM;
-
-       if (!cpumask_intersects(dest, cpu_online_mask))
-               return -EINVAL;
-
-       err = assign_irq_vector(irqd, dest);
-       return err ? err : IRQ_SET_MASK_OK;
-}
-
 static struct irq_chip lapic_controller = {
        .name                   = "APIC",
        .irq_ack                = apic_ack_edge,