diff options
author | Anca Jeanina FLOAREA <anca.floarea@freescale.com> | 2013-05-28 09:20:20 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-05-28 19:24:16 (GMT) |
commit | c71d712ba6f4c00a48b58839e40088f94f9a82be (patch) | |
tree | f6498bd5e2b1e3d7cab7fbadce3f8f678e2a9ac4 /drivers/staging | |
parent | 41bb64da685e40aa9defde829785e8b4d49b9c2c (diff) | |
download | linux-fsl-qoriq-c71d712ba6f4c00a48b58839e40088f94f9a82be.tar.xz |
dpa_offload: Fix thread safe support for get_counters
The asynchronous call for dpa_stats_get_counters function
needs to allow multiple requests for the same counters
to be processed in parallel. The check counter parameters
must wait in blocking mode until the processing is complete
and not exit the function.
Signed-off-by: Anca Jeanina FLOAREA <anca.floarea@freescale.com>
Change-Id: I7785196842b165830066a4e6319d656ff288e643
Reviewed-on: http://git.am.freescale.net:8181/2725
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Zanoschi Aurelian-B43522 <Aurelian.Zanoschi@freescale.com>
Reviewed-by: Chereji Marian-Cornel-R27762 <marian.chereji@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/fsl_dpa_offload/dpa_stats.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/staging/fsl_dpa_offload/dpa_stats.c b/drivers/staging/fsl_dpa_offload/dpa_stats.c index 0d8f65f..c54c30d 100644 --- a/drivers/staging/fsl_dpa_offload/dpa_stats.c +++ b/drivers/staging/fsl_dpa_offload/dpa_stats.c @@ -3081,13 +3081,7 @@ int dpa_stats_get_counters(struct dpa_stats_cnt_request_params params, cnt_cb = &dpa_stats->cnts_cb[cnt_id]; /* Acquire counter lock */ - err = mutex_trylock(&cnt_cb->lock); - if (err == 0) { - pr_err("Counter %d is being used\n", cnt_id); - unblock_sched_cnts(dpa_stats, params.cnts_ids, - params.cnts_ids_len); - return -EBUSY; - } + mutex_lock(&cnt_cb->lock); /* Check if counter control block is initialized */ if (cnt_cb->index == DPA_OFFLD_INVALID_OBJECT_ID) { |