summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorAnca Jeanina FLOAREA <anca.floarea@freescale.com>2013-05-28 09:20:20 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-05-28 19:24:16 (GMT)
commitc71d712ba6f4c00a48b58839e40088f94f9a82be (patch)
treef6498bd5e2b1e3d7cab7fbadce3f8f678e2a9ac4 /drivers/staging
parent41bb64da685e40aa9defde829785e8b4d49b9c2c (diff)
downloadlinux-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.c8
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) {