Ensure irqd is active before attempting to set affinity. This should
make the set affinity code more robust. For instance, this prevents
these messages seen on a 4.12 based kernel when taking cpus offline:
   [  123.
053037264,3] XIVE[ IC 00  ] ISN 2 lead to invalid IVE !
   [   77.885859] xive: Error -6 reconfiguring irq 17
   [   77.885862] IRQ17: set affinity failed(-6).
That particular case has been fixed in 4.13-rc1 by commit
91f26cb4cd3c ("genirq/cpuhotplug: Do not migrated shutdown irqs").
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
 
        if (cpumask_any_and(cpumask, cpu_online_mask) >= nr_cpu_ids)
                return -EINVAL;
 
+       /* Don't do anything if the interrupt isn't started */
+       if (!irqd_is_started(d))
+               return IRQ_SET_MASK_OK;
+
        /*
         * If existing target is already in the new mask, and is
         * online then do nothing.