openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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:
Msdk-6.5.16/include/bcm_int/esw/alpm.h | 5++---
Msdk-6.5.16/src/bcm/esw/alpm2/alpm_hit.c | 10----------
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;