diff options
-rw-r--r-- | drivers/soc/fsl/qbman/bman_portal.c | 4 | ||||
-rw-r--r-- | drivers/soc/fsl/qbman/qman_portal.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/soc/fsl/qbman/bman_portal.c b/drivers/soc/fsl/qbman/bman_portal.c index 2f71f7df3465..088cdfa7c034 100644 --- a/drivers/soc/fsl/qbman/bman_portal.c +++ b/drivers/soc/fsl/qbman/bman_portal.c | |||
@@ -65,7 +65,9 @@ static int bman_offline_cpu(unsigned int cpu) | |||
65 | if (!pcfg) | 65 | if (!pcfg) |
66 | return 0; | 66 | return 0; |
67 | 67 | ||
68 | irq_set_affinity(pcfg->irq, cpumask_of(0)); | 68 | /* use any other online CPU */ |
69 | cpu = cpumask_any_but(cpu_online_mask, cpu); | ||
70 | irq_set_affinity(pcfg->irq, cpumask_of(cpu)); | ||
69 | return 0; | 71 | return 0; |
70 | } | 72 | } |
71 | 73 | ||
diff --git a/drivers/soc/fsl/qbman/qman_portal.c b/drivers/soc/fsl/qbman/qman_portal.c index 3e9391d117c5..661c9b234d32 100644 --- a/drivers/soc/fsl/qbman/qman_portal.c +++ b/drivers/soc/fsl/qbman/qman_portal.c | |||
@@ -195,8 +195,10 @@ static int qman_offline_cpu(unsigned int cpu) | |||
195 | if (p) { | 195 | if (p) { |
196 | pcfg = qman_get_qm_portal_config(p); | 196 | pcfg = qman_get_qm_portal_config(p); |
197 | if (pcfg) { | 197 | if (pcfg) { |
198 | irq_set_affinity(pcfg->irq, cpumask_of(0)); | 198 | /* select any other online CPU */ |
199 | qman_portal_update_sdest(pcfg, 0); | 199 | cpu = cpumask_any_but(cpu_online_mask, cpu); |
200 | irq_set_affinity(pcfg->irq, cpumask_of(cpu)); | ||
201 | qman_portal_update_sdest(pcfg, cpu); | ||
200 | } | 202 | } |
201 | } | 203 | } |
202 | return 0; | 204 | return 0; |