struct qman_portal *portal;
        int cpu;
 
-       for_each_cpu(cpu, cpus) {
+       for_each_cpu_and(cpu, cpus, cpu_online_mask) {
                portal = qman_get_affine_portal(cpu);
                qman_p_static_dequeue_add(portal, pool);
        }
        u16 channels[NR_CPUS];
        struct dpaa_fq *fq;
 
-       for_each_cpu(cpu, affine_cpus)
+       for_each_cpu_and(cpu, affine_cpus, cpu_online_mask)
                channels[num_portals++] = qman_affine_channel(cpu);
 
        if (num_portals == 0)
        if (cleaned < budget) {
                napi_complete_done(napi, cleaned);
                qman_p_irqsource_add(np->p, QM_PIRQ_DQRI);
-
        } else if (np->down) {
                qman_p_irqsource_add(np->p, QM_PIRQ_DQRI);
        }
        struct dpaa_percpu_priv *percpu_priv;
        int i;
 
-       for_each_possible_cpu(i) {
+       for_each_online_cpu(i) {
                percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
 
                percpu_priv->np.down = 0;
        struct dpaa_percpu_priv *percpu_priv;
        int i;
 
-       for_each_possible_cpu(i) {
+       for_each_online_cpu(i) {
                percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
 
                percpu_priv->np.down = 1;
 
        qman_dqrr_get_ithresh(portal, &prev_thresh);
 
        /* set new values */
-       for_each_cpu(cpu, cpus) {
+       for_each_cpu_and(cpu, cpus, cpu_online_mask) {
                portal = qman_get_affine_portal(cpu);
                res = qman_portal_set_iperiod(portal, period);
                if (res)
 
 revert_values:
        /* restore previous values */
-       for_each_cpu(cpu, cpus) {
+       for_each_cpu_and(cpu, cpus, cpu_online_mask) {
                if (!needs_revert[cpu])
                        continue;
                portal = qman_get_affine_portal(cpu);