summaryrefslogtreecommitdiff
path: root/drivers/staging/fsl_dpa_offload/dpa_classifier.c
diff options
context:
space:
mode:
authorRadu Bulie <radu.bulie@freescale.com>2013-05-10 12:18:36 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-05-21 20:58:11 (GMT)
commit3b9a44d0f1a8df6876f6de9e8b2651a9bfcf22ec (patch)
tree4491b1b11f2ddb407df4297b46bf795e6502f0c4 /drivers/staging/fsl_dpa_offload/dpa_classifier.c
parent597acc921b7f281e44ff054462cee68fde4c90bb (diff)
downloadlinux-fsl-qoriq-3b9a44d0f1a8df6876f6de9e8b2651a9bfcf22ec.tar.xz
dpa_offload: Fix multicast classifier component to proper release the locks for decriptor array
Descriptor array locks were not released correctly for actions of adding or removing a multicast member. This patch is related to CR ENGR260419 Change-Id: I440241fbfa6d4c8c9b0318b1ae89ddf6e2cad05a Signed-off-by: Radu Bulie <radu.bulie@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/2595 Reviewed-by: Chereji Marian-Cornel-R27762 <marian.chereji@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/staging/fsl_dpa_offload/dpa_classifier.c')
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_classifier.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/staging/fsl_dpa_offload/dpa_classifier.c b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
index 1ca022c..da291de 100644
--- a/drivers/staging/fsl_dpa_offload/dpa_classifier.c
+++ b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
@@ -7654,6 +7654,7 @@ int dpa_classif_mcast_add_member(int grpd,
lock_desc_table(&mcast_grp_array);
pgroup = desc_to_object(&mcast_grp_array, grpd);
if (!pgroup) {
+ release_desc_table(&mcast_grp_array);
pr_err("ERROR: %s, %s (%d): Invalid group descriptor "
"(grpd=%d).\n", __FILE__, __func__, __LINE__, grpd);
return -EINVAL;
@@ -7847,8 +7848,8 @@ int dpa_classif_mcast_remove_member(int grpd, int md)
lock_desc_table(&mcast_grp_array);
pgroup = desc_to_object(&mcast_grp_array, grpd);
- release_desc_table(&mcast_grp_array);
if (!pgroup) {
+ release_desc_table(&mcast_grp_array);
pr_err("ERROR: %s, %s (%d): Invalid group descriptor "
"(grpd=%d).\n", __FILE__, __func__, __LINE__, grpd);
return -EINVAL;