diff options
author | Radu Bulie <radu.bulie@freescale.com> | 2013-05-10 12:18:36 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-05-21 20:58:11 (GMT) |
commit | 3b9a44d0f1a8df6876f6de9e8b2651a9bfcf22ec (patch) | |
tree | 4491b1b11f2ddb407df4297b46bf795e6502f0c4 /drivers | |
parent | 597acc921b7f281e44ff054462cee68fde4c90bb (diff) | |
download | linux-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')
-rw-r--r-- | drivers/staging/fsl_dpa_offload/dpa_classifier.c | 3 |
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; |