diff options
author | Roy Pledge <roy.pledge@nxp.com> | 2017-09-13 21:03:06 (GMT) |
---|---|---|
committer | Xie Xiaobo <xiaobo.xie@nxp.com> | 2017-09-28 08:05:51 (GMT) |
commit | ced09b7233720ea9eda55da5cbe5ac131e8bfa6a (patch) | |
tree | cfbde66d1418fcfd3802afbd47925f16c5719cec | |
parent | 90db0bd337f61194513cf3c88b608415e7e6e6c2 (diff) | |
download | linux-ced09b7233720ea9eda55da5cbe5ac131e8bfa6a.tar.xz |
DPIO: Prefer the CPU affine DPIO
Use the cpu affine DPIO unless there isn't one which can happen
if less DPIOs than cores are assign to the kernel.
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
-rw-r--r-- | drivers/staging/fsl-mc/bus/dpio/dpio-service.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c b/drivers/staging/fsl-mc/bus/dpio/dpio-service.c index fe94eb4..8449d98 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c +++ b/drivers/staging/fsl-mc/bus/dpio/dpio-service.c @@ -84,7 +84,7 @@ static inline struct dpaa2_io *service_select_by_cpu(struct dpaa2_io *d, * If cpu == -1, choose the current cpu, with no guarantees about * potentially being migrated away. */ - if (unlikely(cpu < 0)) + if (cpu < 0) cpu = smp_processor_id(); /* If a specific cpu was requested, pick it up immediately */ @@ -96,6 +96,10 @@ static inline struct dpaa2_io *service_select(struct dpaa2_io *d) if (d) return d; + d = service_select_by_cpu(d, -1); + if (d) + return d; + spin_lock(&dpio_list_lock); d = list_entry(dpio_list.next, struct dpaa2_io, node); list_del(&d->node); |