qcacmn: Add APIs to get AST entry with pdev_id
With HKv1 WAR to handle DBDC backhaul SON cases a AST entry for same mac can exist on different radio added CDP APIs to support the same Change-Id: I374b8af3fe5e34f62eeb5b09819e331fdeda602a
This commit is contained in:

committed by
nshrivas

parent
7c8cf12b76
commit
cf347d1686
@@ -310,7 +310,7 @@ static inline void cdp_peer_setup
|
|||||||
peer);
|
peer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void *cdp_peer_ast_hash_find
|
static inline void *cdp_peer_ast_hash_find_soc
|
||||||
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr)
|
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
@@ -321,11 +321,32 @@ static inline void *cdp_peer_ast_hash_find
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
!soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find)
|
!soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find_soc)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find(soc,
|
return soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find_soc(soc,
|
||||||
ast_mac_addr);
|
ast_mac_addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void *cdp_peer_ast_hash_find_by_pdevid
|
||||||
|
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr,
|
||||||
|
uint8_t pdev_id)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
|
!soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find_by_pdevid)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return soc->ops->cmn_drv_ops->txrx_peer_ast_hash_find_by_pdevid
|
||||||
|
(soc,
|
||||||
|
ast_mac_addr,
|
||||||
|
pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int cdp_peer_add_ast
|
static inline int cdp_peer_add_ast
|
||||||
@@ -594,6 +615,42 @@ void cdp_peer_ast_free_entry(struct cdp_soc_t *soc,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline struct cdp_peer *cdp_peer_ast_get_peer
|
||||||
|
(ol_txrx_soc_handle soc, void *ast_handle)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
|
!soc->ops->cmn_drv_ops->txrx_peer_ast_get_peer)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return soc->ops->cmn_drv_ops->txrx_peer_ast_get_peer(soc, ast_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t cdp_peer_ast_get_nexthop_peer_id
|
||||||
|
(ol_txrx_soc_handle soc, void *ast_handle)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return CDP_INVALID_PEER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
|
!soc->ops->cmn_drv_ops->txrx_peer_ast_get_nexthop_peer_id)
|
||||||
|
return CDP_INVALID_PEER;
|
||||||
|
|
||||||
|
return soc->ops->cmn_drv_ops->txrx_peer_ast_get_nexthop_peer_id
|
||||||
|
(soc,
|
||||||
|
ast_handle);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void cdp_peer_teardown
|
static inline void cdp_peer_teardown
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev, void *peer)
|
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev, void *peer)
|
||||||
{
|
{
|
||||||
|
@@ -105,10 +105,13 @@ struct cdp_cmn_ops {
|
|||||||
(ol_txrx_soc_handle soc, struct cdp_peer *peer_hdl,
|
(ol_txrx_soc_handle soc, struct cdp_peer *peer_hdl,
|
||||||
uint8_t *mac_addr, uint32_t flags);
|
uint8_t *mac_addr, uint32_t flags);
|
||||||
|
|
||||||
|
void *(*txrx_peer_ast_hash_find_soc)
|
||||||
void *(*txrx_peer_ast_hash_find)
|
|
||||||
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr);
|
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr);
|
||||||
|
|
||||||
|
void *(*txrx_peer_ast_hash_find_by_pdevid)
|
||||||
|
(ol_txrx_soc_handle soc, uint8_t *ast_mac_addr,
|
||||||
|
uint8_t pdev_id);
|
||||||
|
|
||||||
uint8_t (*txrx_peer_ast_get_pdev_id)
|
uint8_t (*txrx_peer_ast_get_pdev_id)
|
||||||
(ol_txrx_soc_handle soc, void *ast_hdl);
|
(ol_txrx_soc_handle soc, void *ast_hdl);
|
||||||
|
|
||||||
@@ -136,6 +139,12 @@ struct cdp_cmn_ops {
|
|||||||
enum cdp_txrx_ast_entry_type (*txrx_peer_ast_get_type)
|
enum cdp_txrx_ast_entry_type (*txrx_peer_ast_get_type)
|
||||||
(ol_txrx_soc_handle soc, void *ast_hdl);
|
(ol_txrx_soc_handle soc, void *ast_hdl);
|
||||||
|
|
||||||
|
struct cdp_peer* (*txrx_peer_ast_get_peer)
|
||||||
|
(ol_txrx_soc_handle soc, void *ast_hdl);
|
||||||
|
|
||||||
|
uint32_t (*txrx_peer_ast_get_nexthop_peer_id)
|
||||||
|
(ol_txrx_soc_handle soc, void *ast_hdl);
|
||||||
|
|
||||||
void (*txrx_peer_delete)(void *peer, uint32_t bitmap);
|
void (*txrx_peer_delete)(void *peer, uint32_t bitmap);
|
||||||
|
|
||||||
int (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,
|
int (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,
|
||||||
|
@@ -485,14 +485,16 @@ static int dp_peer_update_ast_wifi3(struct cdp_soc_t *soc_hdl,
|
|||||||
int status = -1;
|
int status = -1;
|
||||||
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||||
struct dp_ast_entry *ast_entry = NULL;
|
struct dp_ast_entry *ast_entry = NULL;
|
||||||
|
struct dp_peer *peer = (struct dp_peer *)peer_hdl;
|
||||||
|
|
||||||
qdf_spin_lock_bh(&soc->ast_lock);
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, wds_macaddr);
|
ast_entry = dp_peer_ast_hash_find_by_pdevid(soc, wds_macaddr,
|
||||||
|
peer->vdev->pdev->pdev_id);
|
||||||
|
|
||||||
if (ast_entry) {
|
if (ast_entry) {
|
||||||
status = dp_peer_update_ast(soc,
|
status = dp_peer_update_ast(soc,
|
||||||
(struct dp_peer *)peer_hdl,
|
peer,
|
||||||
ast_entry, flags);
|
ast_entry, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
@@ -511,9 +513,11 @@ static void dp_wds_reset_ast_wifi3(struct cdp_soc_t *soc_hdl,
|
|||||||
{
|
{
|
||||||
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||||
struct dp_ast_entry *ast_entry = NULL;
|
struct dp_ast_entry *ast_entry = NULL;
|
||||||
|
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||||
|
|
||||||
qdf_spin_lock_bh(&soc->ast_lock);
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, wds_macaddr);
|
ast_entry = dp_peer_ast_hash_find_by_pdevid(soc, wds_macaddr,
|
||||||
|
vdev->pdev->pdev_id);
|
||||||
|
|
||||||
if (ast_entry) {
|
if (ast_entry) {
|
||||||
if ((ast_entry->type != CDP_TXRX_AST_TYPE_STATIC) &&
|
if ((ast_entry->type != CDP_TXRX_AST_TYPE_STATIC) &&
|
||||||
@@ -607,13 +611,27 @@ static void dp_wds_flush_ast_table_wifi3(struct cdp_soc_t *soc_hdl)
|
|||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *dp_peer_ast_hash_find_wifi3(struct cdp_soc_t *soc_hdl,
|
static void *dp_peer_ast_hash_find_soc_wifi3(struct cdp_soc_t *soc_hdl,
|
||||||
uint8_t *ast_mac_addr)
|
uint8_t *ast_mac_addr)
|
||||||
{
|
{
|
||||||
struct dp_ast_entry *ast_entry;
|
struct dp_ast_entry *ast_entry;
|
||||||
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||||
|
|
||||||
qdf_spin_lock_bh(&soc->ast_lock);
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, ast_mac_addr);
|
ast_entry = dp_peer_ast_hash_find_soc(soc, ast_mac_addr);
|
||||||
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
|
return (void *)ast_entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *dp_peer_ast_hash_find_by_pdevid_wifi3(struct cdp_soc_t *soc_hdl,
|
||||||
|
uint8_t *ast_mac_addr,
|
||||||
|
uint8_t pdev_id)
|
||||||
|
{
|
||||||
|
struct dp_ast_entry *ast_entry;
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||||
|
|
||||||
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
|
ast_entry = dp_peer_ast_hash_find_by_pdevid(soc, ast_mac_addr, pdev_id);
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return (void *)ast_entry;
|
return (void *)ast_entry;
|
||||||
}
|
}
|
||||||
@@ -701,6 +719,19 @@ void dp_peer_ast_free_entry_wifi3(struct cdp_soc_t *soc_handle,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static struct cdp_peer *dp_peer_ast_get_peer_wifi3(
|
||||||
|
struct cdp_soc_t *soc_hdl,
|
||||||
|
void *ast_entry_hdl)
|
||||||
|
{
|
||||||
|
return (struct cdp_peer *)((struct dp_ast_entry *)ast_entry_hdl)->peer;
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t dp_peer_ast_get_nexhop_peer_id_wifi3(
|
||||||
|
struct cdp_soc_t *soc_hdl,
|
||||||
|
void *ast_entry_hdl)
|
||||||
|
{
|
||||||
|
return ((struct dp_ast_entry *)ast_entry_hdl)->peer->peer_ids[0];
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* dp_srng_find_ring_in_mask() - find which ext_group a ring belongs
|
* dp_srng_find_ring_in_mask() - find which ext_group a ring belongs
|
||||||
* @ring_num: ring num of the ring being queried
|
* @ring_num: ring num of the ring being queried
|
||||||
@@ -4016,7 +4047,7 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
|||||||
* MAC addresses, we could deduce it as a WDS entry
|
* MAC addresses, we could deduce it as a WDS entry
|
||||||
*/
|
*/
|
||||||
qdf_spin_lock_bh(&soc->ast_lock);
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, peer_mac_addr);
|
ast_entry = dp_peer_ast_hash_find_soc(soc, peer_mac_addr);
|
||||||
if (ast_entry)
|
if (ast_entry)
|
||||||
dp_peer_del_ast(soc, ast_entry);
|
dp_peer_del_ast(soc, ast_entry);
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
@@ -7833,11 +7864,16 @@ static struct cdp_cmn_ops dp_ops_cmn = {
|
|||||||
.txrx_peer_add_ast = dp_peer_add_ast_wifi3,
|
.txrx_peer_add_ast = dp_peer_add_ast_wifi3,
|
||||||
.txrx_peer_del_ast = dp_peer_del_ast_wifi3,
|
.txrx_peer_del_ast = dp_peer_del_ast_wifi3,
|
||||||
.txrx_peer_update_ast = dp_peer_update_ast_wifi3,
|
.txrx_peer_update_ast = dp_peer_update_ast_wifi3,
|
||||||
.txrx_peer_ast_hash_find = dp_peer_ast_hash_find_wifi3,
|
.txrx_peer_ast_hash_find_soc = dp_peer_ast_hash_find_soc_wifi3,
|
||||||
|
.txrx_peer_ast_hash_find_by_pdevid =
|
||||||
|
dp_peer_ast_hash_find_by_pdevid_wifi3,
|
||||||
.txrx_peer_ast_get_pdev_id = dp_peer_ast_get_pdev_id_wifi3,
|
.txrx_peer_ast_get_pdev_id = dp_peer_ast_get_pdev_id_wifi3,
|
||||||
.txrx_peer_ast_get_next_hop = dp_peer_ast_get_next_hop_wifi3,
|
.txrx_peer_ast_get_next_hop = dp_peer_ast_get_next_hop_wifi3,
|
||||||
.txrx_peer_ast_set_type = dp_peer_ast_set_type_wifi3,
|
.txrx_peer_ast_set_type = dp_peer_ast_set_type_wifi3,
|
||||||
.txrx_peer_ast_get_type = dp_peer_ast_get_type_wifi3,
|
.txrx_peer_ast_get_type = dp_peer_ast_get_type_wifi3,
|
||||||
|
.txrx_peer_ast_get_peer = dp_peer_ast_get_peer_wifi3,
|
||||||
|
.txrx_peer_ast_get_nexthop_peer_id =
|
||||||
|
dp_peer_ast_get_nexhop_peer_id_wifi3,
|
||||||
#if defined(FEATURE_AST) && defined(AST_HKV1_WORKAROUND)
|
#if defined(FEATURE_AST) && defined(AST_HKV1_WORKAROUND)
|
||||||
.txrx_peer_ast_set_cp_ctx = dp_peer_ast_set_cp_ctx_wifi3,
|
.txrx_peer_ast_set_cp_ctx = dp_peer_ast_set_cp_ctx_wifi3,
|
||||||
.txrx_peer_ast_get_cp_ctx = dp_peer_ast_get_cp_ctx_wifi3,
|
.txrx_peer_ast_get_cp_ctx = dp_peer_ast_get_cp_ctx_wifi3,
|
||||||
|
@@ -368,10 +368,7 @@ struct dp_ast_entry *dp_peer_ast_list_find(struct dp_soc *soc,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_peer_ast_hash_find_by_pdevid() - Find AST entry by MAC address
|
* dp_peer_ast_hash_find_by_pdevid() - Find AST entry by MAC address
|
||||||
* and pdev id
|
|
||||||
* @soc: SoC handle
|
* @soc: SoC handle
|
||||||
* @ast_mac_addr: mac address
|
|
||||||
* @pdev_id: pdev_id
|
|
||||||
*
|
*
|
||||||
* It assumes caller has taken the ast lock to protect the access to
|
* It assumes caller has taken the ast lock to protect the access to
|
||||||
* AST hash table
|
* AST hash table
|
||||||
@@ -402,7 +399,7 @@ struct dp_ast_entry *dp_peer_ast_hash_find_by_pdevid(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_peer_ast_hash_find() - Find AST entry by MAC address
|
* dp_peer_ast_hash_find_soc() - Find AST entry by MAC address
|
||||||
* @soc: SoC handle
|
* @soc: SoC handle
|
||||||
*
|
*
|
||||||
* It assumes caller has taken the ast lock to protect the access to
|
* It assumes caller has taken the ast lock to protect the access to
|
||||||
@@ -410,8 +407,8 @@ struct dp_ast_entry *dp_peer_ast_hash_find_by_pdevid(struct dp_soc *soc,
|
|||||||
*
|
*
|
||||||
* Return: AST entry
|
* Return: AST entry
|
||||||
*/
|
*/
|
||||||
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
struct dp_ast_entry *dp_peer_ast_hash_find_soc(struct dp_soc *soc,
|
||||||
uint8_t *ast_mac_addr)
|
uint8_t *ast_mac_addr)
|
||||||
{
|
{
|
||||||
union dp_align_mac_addr local_mac_addr_aligned, *mac_addr;
|
union dp_align_mac_addr local_mac_addr_aligned, *mac_addr;
|
||||||
unsigned index;
|
unsigned index;
|
||||||
@@ -550,7 +547,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, mac_addr);
|
ast_entry = dp_peer_ast_hash_find_soc(soc, mac_addr);
|
||||||
|
|
||||||
if (ast_entry) {
|
if (ast_entry) {
|
||||||
if (ast_entry->type == CDP_TXRX_AST_TYPE_MEC) {
|
if (ast_entry->type == CDP_TXRX_AST_TYPE_MEC) {
|
||||||
@@ -826,8 +823,15 @@ int dp_peer_update_ast(struct dp_soc *soc, struct dp_peer *peer,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
struct dp_ast_entry *dp_peer_ast_hash_find_soc(struct dp_soc *soc,
|
||||||
uint8_t *ast_mac_addr)
|
uint8_t *ast_mac_addr)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct dp_ast_entry *dp_peer_ast_hash_find_by_pdevid(struct dp_soc *soc,
|
||||||
|
uint8_t *ast_mac_addr,
|
||||||
|
uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@@ -116,8 +116,8 @@ struct dp_ast_entry *dp_peer_ast_hash_find_by_pdevid(struct dp_soc *soc,
|
|||||||
uint8_t *ast_mac_addr,
|
uint8_t *ast_mac_addr,
|
||||||
uint8_t pdev_id);
|
uint8_t pdev_id);
|
||||||
|
|
||||||
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
struct dp_ast_entry *dp_peer_ast_hash_find_soc(struct dp_soc *soc,
|
||||||
uint8_t *ast_mac_addr);
|
uint8_t *ast_mac_addr);
|
||||||
|
|
||||||
struct dp_ast_entry *dp_peer_ast_list_find(struct dp_soc *soc,
|
struct dp_ast_entry *dp_peer_ast_list_find(struct dp_soc *soc,
|
||||||
struct dp_peer *peer,
|
struct dp_peer *peer,
|
||||||
|
@@ -127,7 +127,6 @@ static inline bool dp_rx_mcast_echo_check(struct dp_soc *soc,
|
|||||||
* ast is not in ast_table, we use the below API to get
|
* ast is not in ast_table, we use the below API to get
|
||||||
* AST entry for STA's own mac_address.
|
* AST entry for STA's own mac_address.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ase = dp_peer_ast_list_find(soc, peer,
|
ase = dp_peer_ast_list_find(soc, peer,
|
||||||
&data[DP_MAC_ADDR_LEN]);
|
&data[DP_MAC_ADDR_LEN]);
|
||||||
if (ase) {
|
if (ase) {
|
||||||
@@ -136,7 +135,7 @@ static inline bool dp_rx_mcast_echo_check(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
ase = dp_peer_ast_hash_find(soc, &data[DP_MAC_ADDR_LEN]);
|
ase = dp_peer_ast_hash_find_soc(soc, &data[DP_MAC_ADDR_LEN]);
|
||||||
|
|
||||||
if (ase) {
|
if (ase) {
|
||||||
|
|
||||||
|
@@ -1722,7 +1722,10 @@ static qdf_nbuf_t dp_tx_prepare_nawds(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||||||
qdf_nbuf_t nbuf_copy;
|
qdf_nbuf_t nbuf_copy;
|
||||||
|
|
||||||
qdf_spin_lock_bh(&(soc->ast_lock));
|
qdf_spin_lock_bh(&(soc->ast_lock));
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, (uint8_t *)(eh->ether_shost));
|
ast_entry = dp_peer_ast_hash_find_by_pdevid
|
||||||
|
(soc,
|
||||||
|
(uint8_t *)(eh->ether_shost),
|
||||||
|
vdev->pdev->pdev_id);
|
||||||
|
|
||||||
if (ast_entry)
|
if (ast_entry)
|
||||||
sa_peer = ast_entry->peer;
|
sa_peer = ast_entry->peer;
|
||||||
@@ -2157,7 +2160,10 @@ void dp_tx_reinject_handler(struct dp_tx_desc_s *tx_desc, uint8_t *status)
|
|||||||
|
|
||||||
qdf_spin_lock_bh(&(soc->ast_lock));
|
qdf_spin_lock_bh(&(soc->ast_lock));
|
||||||
|
|
||||||
ast_entry = dp_peer_ast_hash_find(soc, (uint8_t *)(eh->ether_shost));
|
ast_entry = dp_peer_ast_hash_find_by_pdevid
|
||||||
|
(soc,
|
||||||
|
(uint8_t *)(eh->ether_shost),
|
||||||
|
vdev->pdev->pdev_id);
|
||||||
|
|
||||||
if (ast_entry)
|
if (ast_entry)
|
||||||
sa_peer = ast_entry->peer;
|
sa_peer = ast_entry->peer;
|
||||||
|
Reference in New Issue
Block a user