commit 55b6c4a5d22e15c70032eb004751fe19c8104175
parent a7a1d30d7717ce6944c99f2cdbe2fe4532fe96b8
Author: Broadcom SDK Release <sdk.releases@broadcom.com>
Date: Tue, 14 May 2019 14:26:03 -0700
SDK-178822: NA
Devices: 56980_A0
Module: ALPM
Symptom:
Synchronization issue between API thread and hitbit thread when ALPM
route are added or removed.
Diffstat:
2 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/sdk-6.5.16/include/bcm_int/esw/alpm.h b/sdk-6.5.16/include/bcm_int/esw/alpm.h
@@ -145,7 +145,6 @@ typedef struct _alpm_dist_hitbit_s {
VOL int interval; /* Time between dist hitbit thread (us) */
int priority; /* task priority */
sal_sem_t sema; /* Dist hitbit semaphore */
- sal_mutex_t mutex; /* Dist hitbit mutex */
} _alpm_dist_hitbit_t;
extern _alpm_dist_hitbit_t *alpm_dist_hitbit[];
@@ -164,8 +163,8 @@ extern _alpm_dist_hitbit_t *alpm_dist_hitbit[];
#define ALPM_HTBL_ENT_MOVED(u, i, p) (ALPM_HTBL(u, i, p)->ent_moved)
#define ALPM_HTBL_ENT_MOVED_CNT(u, i, p) (ALPM_HTBL(u, i, p)->ent_moved_cnt)
-#define ALPM_HIT_LOCK(u) sal_mutex_take(ALPMDH(u)->mutex, sal_sem_FOREVER)
-#define ALPM_HIT_UNLOCK(u) sal_mutex_give(ALPMDH(u)->mutex)
+#define ALPM_HIT_LOCK(u) L3_LOCK(u)
+#define ALPM_HIT_UNLOCK(u) L3_UNLOCK(u)
/* ALPM control block */
diff --git a/sdk-6.5.16/src/bcm/esw/alpm2/alpm_hit.c b/sdk-6.5.16/src/bcm/esw/alpm2/alpm_hit.c
@@ -558,11 +558,6 @@ bcm_esw_alpm_hit_deinit(int u)
ALPMDH(u)->sema = NULL;
}
- if (ALPMDH(u)->mutex != NULL) {
- sal_mutex_destroy(ALPMDH(u)->mutex);
- ALPMDH(u)->mutex = NULL;
- }
-
ALPM_DRV(u)->alpm_hit_deinit(u);
alpm_util_free(ALPMDH(u));
@@ -609,11 +604,6 @@ bcm_esw_alpm_hit_init(int u)
ALPM_IEG(BCM_E_MEMORY);
}
- ALPMDH(u)->mutex = sal_mutex_create("bcmHit_LOCK");
- if (ALPMDH(u)->mutex == NULL) {
- ALPM_IEG(BCM_E_MEMORY);
- }
-
ALPM_IEG(alpm_dist_hitbit_enable_set(u, usec));
return rv;