while (cpu < nr_cpu_ids) {
                int new_cpu, offset;
 
-               /* Get the possible target cpus for @mask/@cpu from the apic */
-               apic->vector_allocation_domain(cpu, vector_cpumask, mask);
+               cpumask_copy(vector_cpumask, cpumask_of(cpu));
 
                /*
                 * Clear the offline cpus from @vector_cpumask for searching
                irq_data->chip = &lapic_controller;
                irq_data->chip_data = data;
                irq_data->hwirq = virq + i;
+               irqd_set_single_target(irq_data);
                err = assign_irq_vector_policy(virq + i, node, data, info,
                                               irq_data);
                if (err)
                        goto error;
-               /*
-                * If the apic destination mode is physical, then the
-                * effective affinity is restricted to a single target
-                * CPU. Mark the interrupt accordingly.
-                */
-               if (!apic->irq_dest_mode)
-                       irqd_set_single_target(irq_data);
        }
 
        return 0;
                BUG_ON(!data);
 
                data->cfg.vector = ISA_IRQ_VECTOR(i);
-               cpumask_setall(data->domain);
+               cpumask_copy(data->domain, cpumask_of(0));
                irq_set_chip_data(i, data);
        }
 }