qcacmn: Cleanup local peer id from DP APIs

Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.

Cleanup local peer id usage from DP APIs.

Change-Id: I930e1c6a09092a373c093239632d6f310fee18e2
CRs-Fixed: 2529041
This commit is contained in:
Yeshwanth Sriram Guntuka
2019-11-22 14:50:02 +05:30
committed by nshrivas
parent 92aa901f84
commit 65d547730f
9 changed files with 36 additions and 69 deletions

View File

@@ -232,13 +232,11 @@ enum peer_debug_id_type {
/** /**
* struct ol_txrx_desc_type - txrx descriptor type * struct ol_txrx_desc_type - txrx descriptor type
* @sta_id: sta id
* @is_qos_enabled: is station qos enabled * @is_qos_enabled: is station qos enabled
* @is_wapi_supported: is station wapi supported * @is_wapi_supported: is station wapi supported
* @peer_addr: peer mac address * @peer_addr: peer mac address
*/ */
struct ol_txrx_desc_type { struct ol_txrx_desc_type {
uint8_t sta_id;
uint8_t is_qos_enabled; uint8_t is_qos_enabled;
uint8_t is_wapi_supported; uint8_t is_wapi_supported;
struct qdf_mac_addr peer_addr; struct qdf_mac_addr peer_addr;

View File

@@ -1189,21 +1189,21 @@ struct cdp_peer_ops {
enum ol_txrx_peer_state sta_state, enum ol_txrx_peer_state sta_state,
bool roam_synch_in_progress); bool roam_synch_in_progress);
void * (*peer_get_ref_by_addr)(struct cdp_pdev *pdev, void * (*peer_get_ref_by_addr)(struct cdp_pdev *pdev,
uint8_t *peer_addr, uint8_t *peer_id, uint8_t *peer_addr,
enum peer_debug_id_type debug_id); enum peer_debug_id_type debug_id);
void (*peer_release_ref)(void *peer, enum peer_debug_id_type debug_id); void (*peer_release_ref)(void *peer, enum peer_debug_id_type debug_id);
void * (*find_peer_by_addr)(struct cdp_pdev *pdev, void * (*find_peer_by_addr)(struct cdp_pdev *pdev,
uint8_t *peer_addr, uint8_t *peer_id); uint8_t *peer_addr);
void * (*find_peer_by_addr_and_vdev)(struct cdp_pdev *pdev, void * (*find_peer_by_addr_and_vdev)(struct cdp_pdev *pdev,
struct cdp_vdev *vdev, struct cdp_vdev *vdev,
uint8_t *peer_addr, uint8_t *peer_id); uint8_t *peer_addr);
QDF_STATUS (*peer_state_update)(struct cdp_pdev *pdev, QDF_STATUS (*peer_state_update)(struct cdp_pdev *pdev,
uint8_t *peer_addr, uint8_t *peer_addr,
enum ol_txrx_peer_state state); enum ol_txrx_peer_state state);
QDF_STATUS (*get_vdevid)(void *peer, uint8_t *vdev_id); QDF_STATUS (*get_vdevid)(void *peer, uint8_t *vdev_id);
struct cdp_vdev * (*get_vdev_by_peer_addr)(struct cdp_pdev *pdev, struct cdp_vdev * (*get_vdev_by_peer_addr)(struct cdp_pdev *pdev,
struct qdf_mac_addr peer_addr); struct qdf_mac_addr peer_addr);
QDF_STATUS (*register_ocb_peer)(uint8_t *mac_addr, uint8_t *peer_id); QDF_STATUS (*register_ocb_peer)(uint8_t *mac_addr);
uint8_t * (*peer_get_peer_mac_addr)(void *peer); uint8_t * (*peer_get_peer_mac_addr)(void *peer);
int (*get_peer_state)(void *peer); int (*get_peer_state)(void *peer);
struct cdp_vdev * (*get_vdev_for_peer)(void *peer); struct cdp_vdev * (*get_vdev_for_peer)(void *peer);
@@ -1217,10 +1217,10 @@ struct cdp_peer_ops {
void *callback_context); void *callback_context);
void (*copy_mac_addr_raw)(struct cdp_vdev *vdev, uint8_t *bss_addr); void (*copy_mac_addr_raw)(struct cdp_vdev *vdev, uint8_t *bss_addr);
void (*add_last_real_peer)(struct cdp_pdev *pdev, void (*add_last_real_peer)(struct cdp_pdev *pdev,
struct cdp_vdev *vdev, uint8_t *peer_id); struct cdp_vdev *vdev);
bool (*is_vdev_restore_last_peer)(void *peer); bool (*is_vdev_restore_last_peer)(void *peer);
void (*update_last_real_peer)(struct cdp_pdev *pdev, void *vdev, void (*update_last_real_peer)(struct cdp_pdev *pdev, void *vdev,
uint8_t *peer_id, bool restore_last_peer); bool restore_last_peer);
void (*peer_detach_force_delete)(void *peer); void (*peer_detach_force_delete)(void *peer);
void (*set_tdls_offchan_enabled)(void *peer, bool val); void (*set_tdls_offchan_enabled)(void *peer, bool val);
void (*set_peer_as_tdls_peer)(void *peer, bool val); void (*set_peer_as_tdls_peer)(void *peer, bool val);

View File

@@ -85,7 +85,6 @@ cdp_clear_peer(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
* @soc - data path soc handle * @soc - data path soc handle
* @cds_ctx - cds void context * @cds_ctx - cds void context
* @mac_addr - mac address for ocb self peer * @mac_addr - mac address for ocb self peer
* @peer_id - local peer id
* *
* register ocb peer from physical device * register ocb peer from physical device
* *
@@ -94,7 +93,7 @@ cdp_clear_peer(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
*/ */
static inline QDF_STATUS static inline QDF_STATUS
cdp_peer_register_ocb_peer(ol_txrx_soc_handle soc, cdp_peer_register_ocb_peer(ol_txrx_soc_handle soc,
uint8_t *mac_addr, uint8_t *peer_id) uint8_t *mac_addr)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -103,7 +102,7 @@ cdp_peer_register_ocb_peer(ol_txrx_soc_handle soc,
} }
if (soc->ops->peer_ops->register_ocb_peer) if (soc->ops->peer_ops->register_ocb_peer)
return soc->ops->peer_ops->register_ocb_peer(mac_addr, peer_id); return soc->ops->peer_ops->register_ocb_peer(mac_addr);
return QDF_STATUS_E_NOSUPPORT; return QDF_STATUS_E_NOSUPPORT;
} }
@@ -171,7 +170,6 @@ cdp_peer_remove_for_vdev_no_lock(ol_txrx_soc_handle soc,
* @soc - data path soc handle * @soc - data path soc handle
* @pdev - data path device instance * @pdev - data path device instance
* @peer_addr - peer mac address * @peer_addr - peer mac address
* @peer_id - local peer id with target mac address
* @debug_id - debug_id to track caller * @debug_id - debug_id to track caller
* *
* To release the peer ref, cdp_peer_release_ref needs to be called. * To release the peer ref, cdp_peer_release_ref needs to be called.
@@ -181,7 +179,7 @@ cdp_peer_remove_for_vdev_no_lock(ol_txrx_soc_handle soc,
*/ */
static inline void static inline void
*cdp_peer_get_ref_by_addr(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, *cdp_peer_get_ref_by_addr(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
uint8_t *peer_addr, uint8_t *peer_id, uint8_t *peer_addr,
enum peer_debug_id_type debug_id) enum peer_debug_id_type debug_id)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
@@ -192,7 +190,7 @@ static inline void
if (soc->ops->peer_ops->peer_get_ref_by_addr) if (soc->ops->peer_ops->peer_get_ref_by_addr)
return soc->ops->peer_ops->peer_get_ref_by_addr( return soc->ops->peer_ops->peer_get_ref_by_addr(
pdev, peer_addr, peer_id, debug_id); pdev, peer_addr, debug_id);
return NULL; return NULL;
} }
@@ -224,7 +222,6 @@ cdp_peer_release_ref(ol_txrx_soc_handle soc, void *peer,
* @soc - data path soc handle * @soc - data path soc handle
* @pdev - data path device instance * @pdev - data path device instance
* @peer_addr - peer mac address * @peer_addr - peer mac address
* @peer_id - local peer id with target mac address
* *
* Find peer and local peer id by peer mac address * Find peer and local peer id by peer mac address
* *
@@ -233,7 +230,7 @@ cdp_peer_release_ref(ol_txrx_soc_handle soc, void *peer,
*/ */
static inline void static inline void
*cdp_peer_find_by_addr(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, *cdp_peer_find_by_addr(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
uint8_t *peer_addr, uint8_t *peer_id) uint8_t *peer_addr)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -243,7 +240,7 @@ static inline void
if (soc->ops->peer_ops->find_peer_by_addr) if (soc->ops->peer_ops->find_peer_by_addr)
return soc->ops->peer_ops->find_peer_by_addr( return soc->ops->peer_ops->find_peer_by_addr(
pdev, peer_addr, peer_id); pdev, peer_addr);
return NULL; return NULL;
} }
@@ -254,7 +251,6 @@ static inline void
* @pdev - data path device instance * @pdev - data path device instance
* @vdev - virtual interface instance * @vdev - virtual interface instance
* @peer_addr - peer mac address * @peer_addr - peer mac address
* @peer_id - local peer id with target mac address
* *
* Find peer by peer mac address within vdev * Find peer by peer mac address within vdev
* *
@@ -263,7 +259,7 @@ static inline void
*/ */
static inline void static inline void
*cdp_peer_find_by_addr_and_vdev(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, *cdp_peer_find_by_addr_and_vdev(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
struct cdp_vdev *vdev, uint8_t *peer_addr, uint8_t *peer_id) struct cdp_vdev *vdev, uint8_t *peer_addr)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -273,7 +269,7 @@ static inline void
if (soc->ops->peer_ops->find_peer_by_addr_and_vdev) if (soc->ops->peer_ops->find_peer_by_addr_and_vdev)
return soc->ops->peer_ops->find_peer_by_addr_and_vdev( return soc->ops->peer_ops->find_peer_by_addr_and_vdev(
pdev, vdev, peer_addr, peer_id); pdev, vdev, peer_addr);
return NULL; return NULL;
} }
@@ -494,7 +490,6 @@ cdp_peer_copy_mac_addr_raw(ol_txrx_soc_handle soc,
* @soc - data path soc handle * @soc - data path soc handle
* @pdev - data path device instance * @pdev - data path device instance
* @vdev - virtual interface instance * @vdev - virtual interface instance
* @peer_id - local peer id
* *
* copy peer mac address * copy peer mac address
* *
@@ -502,7 +497,7 @@ cdp_peer_copy_mac_addr_raw(ol_txrx_soc_handle soc,
*/ */
static inline void static inline void
cdp_peer_add_last_real_peer(ol_txrx_soc_handle soc, cdp_peer_add_last_real_peer(ol_txrx_soc_handle soc,
struct cdp_pdev *pdev, struct cdp_vdev *vdev, uint8_t *peer_id) struct cdp_pdev *pdev, struct cdp_vdev *vdev)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -512,7 +507,7 @@ cdp_peer_add_last_real_peer(ol_txrx_soc_handle soc,
if (soc->ops->peer_ops->add_last_real_peer) if (soc->ops->peer_ops->add_last_real_peer)
return soc->ops->peer_ops->add_last_real_peer( return soc->ops->peer_ops->add_last_real_peer(
pdev, vdev, peer_id); pdev, vdev);
return; return;
} }
@@ -546,7 +541,6 @@ cdp_peer_is_vdev_restore_last_peer(ol_txrx_soc_handle soc, void *peer)
* @soc - data path soc handle * @soc - data path soc handle
* @pdev - data path device instance * @pdev - data path device instance
* @peer - peer instance pointer * @peer - peer instance pointer
* @peer_id - local peer id
* @restore_last_peer - restore last peer or not * @restore_last_peer - restore last peer or not
* *
* update last real peer * update last real peer
@@ -555,7 +549,7 @@ cdp_peer_is_vdev_restore_last_peer(ol_txrx_soc_handle soc, void *peer)
*/ */
static inline void static inline void
cdp_peer_update_last_real_peer(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, cdp_peer_update_last_real_peer(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
void *vdev, uint8_t *peer_id, bool restore_last_peer) void *vdev, bool restore_last_peer)
{ {
if (!soc || !soc->ops || !soc->ops->peer_ops) { if (!soc || !soc->ops || !soc->ops->peer_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -565,7 +559,7 @@ cdp_peer_update_last_real_peer(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
if (soc->ops->peer_ops->update_last_real_peer) if (soc->ops->peer_ops->update_last_real_peer)
return soc->ops->peer_ops->update_last_real_peer(pdev, vdev, return soc->ops->peer_ops->update_last_real_peer(pdev, vdev,
peer_id, restore_last_peer); restore_last_peer);
return; return;
} }

View File

@@ -900,7 +900,7 @@ void dp_peer_rx_cleanup(struct dp_vdev *vdev, struct dp_peer *peer,
bool reuse); bool reuse);
void dp_peer_unref_delete(struct dp_peer *peer); void dp_peer_unref_delete(struct dp_peer *peer);
extern void *dp_find_peer_by_addr(struct cdp_pdev *dev, extern void *dp_find_peer_by_addr(struct cdp_pdev *dev,
uint8_t *peer_mac_addr, uint8_t *peer_id); uint8_t *peer_mac_addr);
extern struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc, extern struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
uint8_t *peer_mac_addr, int mac_addr_is_aligned, uint8_t vdev_id); uint8_t *peer_mac_addr, int mac_addr_is_aligned, uint8_t vdev_id);
@@ -911,7 +911,7 @@ QDF_STATUS dp_clear_peer(struct cdp_pdev *pdev_handle,
struct qdf_mac_addr peer_addr); struct qdf_mac_addr peer_addr);
void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle, void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle,
struct cdp_vdev *vdev, struct cdp_vdev *vdev,
uint8_t *peer_addr, uint8_t *local_id); uint8_t *peer_addr);
QDF_STATUS dp_peer_state_update(struct cdp_pdev *pdev_handle, uint8_t *peer_mac, QDF_STATUS dp_peer_state_update(struct cdp_pdev *pdev_handle, uint8_t *peer_mac,
enum ol_txrx_peer_state state); enum ol_txrx_peer_state state);
QDF_STATUS dp_get_vdevid(void *peer_handle, uint8_t *vdev_id); QDF_STATUS dp_get_vdevid(void *peer_handle, uint8_t *vdev_id);

View File

@@ -1720,7 +1720,6 @@ bool dp_ipa_rx_intrabss_fwd(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
qdf_nbuf_t nbuf_copy; qdf_nbuf_t nbuf_copy;
uint8_t da_is_bcmc; uint8_t da_is_bcmc;
struct ethhdr *eh; struct ethhdr *eh;
uint8_t local_id;
*fwd_success = false; /* set default as failure */ *fwd_success = false; /* set default as failure */
@@ -1761,16 +1760,14 @@ bool dp_ipa_rx_intrabss_fwd(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
if (!qdf_mem_cmp(eh->h_dest, vdev->mac_addr.raw, QDF_MAC_ADDR_SIZE)) if (!qdf_mem_cmp(eh->h_dest, vdev->mac_addr.raw, QDF_MAC_ADDR_SIZE))
return false; return false;
da_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_dest, da_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_dest);
&local_id);
if (!da_peer) if (!da_peer)
return false; return false;
if (da_peer->vdev != vdev) if (da_peer->vdev != vdev)
return false; return false;
sa_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_source, sa_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_source);
&local_id);
if (!sa_peer) if (!sa_peer)
return false; return false;

View File

@@ -7200,7 +7200,6 @@ static void
dp_get_host_peer_stats(struct cdp_pdev *pdev_handle, char *mac_addr) dp_get_host_peer_stats(struct cdp_pdev *pdev_handle, char *mac_addr)
{ {
struct dp_peer *peer; struct dp_peer *peer;
uint8_t local_id;
if (!mac_addr) { if (!mac_addr) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
@@ -7208,8 +7207,7 @@ dp_get_host_peer_stats(struct cdp_pdev *pdev_handle, char *mac_addr)
return; return;
} }
peer = (struct dp_peer *)dp_find_peer_by_addr(pdev_handle, mac_addr, peer = (struct dp_peer *)dp_find_peer_by_addr(pdev_handle, mac_addr);
&local_id);
if (!peer) { if (!peer) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
@@ -7958,10 +7956,9 @@ dp_peer_update_pkt_capture_params(struct cdp_pdev *pdev,
{ {
struct dp_peer *peer; struct dp_peer *peer;
uint8_t local_id;
peer = (struct dp_peer *)dp_find_peer_by_addr(pdev, peer = (struct dp_peer *)dp_find_peer_by_addr(pdev,
peer_mac, &local_id); peer_mac);
if (!peer) { if (!peer) {
dp_err("Invalid Peer"); dp_err("Invalid Peer");
@@ -8808,11 +8805,10 @@ dp_enable_peer_based_pktlog(
char *mac_addr, uint8_t enb_dsb) char *mac_addr, uint8_t enb_dsb)
{ {
struct dp_peer *peer; struct dp_peer *peer;
uint8_t local_id;
struct dp_pdev *pdev = (struct dp_pdev *)txrx_pdev_handle; struct dp_pdev *pdev = (struct dp_pdev *)txrx_pdev_handle;
peer = (struct dp_peer *)dp_find_peer_by_addr(txrx_pdev_handle, peer = (struct dp_peer *)dp_find_peer_by_addr(txrx_pdev_handle,
mac_addr, &local_id); mac_addr);
if (!peer) { if (!peer) {
dp_err("Invalid Peer"); dp_err("Invalid Peer");
@@ -9753,14 +9749,12 @@ static struct cdp_mob_stats_ops dp_ops_mob_stats = {
* dp_peer_get_ref_find_by_addr - get peer with addr by ref count inc * dp_peer_get_ref_find_by_addr - get peer with addr by ref count inc
* @dev: physical device instance * @dev: physical device instance
* @peer_mac_addr: peer mac address * @peer_mac_addr: peer mac address
* @local_id: local id for the peer
* @debug_id: to track enum peer access * @debug_id: to track enum peer access
* *
* Return: peer instance pointer * Return: peer instance pointer
*/ */
static inline void * static inline void *
dp_peer_get_ref_find_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr, dp_peer_get_ref_find_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr,
uint8_t *local_id,
enum peer_debug_id_type debug_id) enum peer_debug_id_type debug_id)
{ {
struct dp_pdev *pdev = (struct dp_pdev *)dev; struct dp_pdev *pdev = (struct dp_pdev *)dev;
@@ -9771,8 +9765,8 @@ dp_peer_get_ref_find_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr,
if (!peer) if (!peer)
return NULL; return NULL;
*local_id = peer->local_id; DP_TRACE(INFO, "%s: peer %pK mac: %pM", __func__, peer,
DP_TRACE(INFO, "%s: peer %pK id %d", __func__, peer, *local_id); peer->mac_addr.raw);
return peer; return peer;
} }

View File

@@ -1679,12 +1679,10 @@ static void dp_rx_tid_update_cb(struct dp_soc *soc, void *cb_ctxt,
* dp_find_peer_by_addr - find peer instance by mac address * dp_find_peer_by_addr - find peer instance by mac address
* @dev: physical device instance * @dev: physical device instance
* @peer_mac_addr: peer mac address * @peer_mac_addr: peer mac address
* @local_id: local id for the peer
* *
* Return: peer instance pointer * Return: peer instance pointer
*/ */
void *dp_find_peer_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr, void *dp_find_peer_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr)
uint8_t *local_id)
{ {
struct dp_pdev *pdev = (struct dp_pdev *)dev; struct dp_pdev *pdev = (struct dp_pdev *)dev;
struct dp_peer *peer; struct dp_peer *peer;
@@ -1694,9 +1692,8 @@ void *dp_find_peer_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr,
if (!peer) if (!peer)
return NULL; return NULL;
/* Multiple peer ids? How can know peer id? */ dp_verbose_debug("peer %pK mac: %pM", peer,
*local_id = peer->local_id; peer->mac_addr.raw);
dp_verbose_debug("peer %pK id %d", peer, *local_id);
/* ref_cnt is incremented inside dp_peer_find_hash_find(). /* ref_cnt is incremented inside dp_peer_find_hash_find().
* Decrement it here. * Decrement it here.
@@ -3040,11 +3037,9 @@ QDF_STATUS dp_register_peer(struct cdp_pdev *pdev_handle,
{ {
struct dp_peer *peer; struct dp_peer *peer;
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle; struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
uint8_t peer_id;
peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev,
sta_desc->peer_addr.bytes, sta_desc->peer_addr.bytes);
&peer_id);
if (!peer) if (!peer)
return QDF_STATUS_E_FAULT; return QDF_STATUS_E_FAULT;
@@ -3073,11 +3068,8 @@ dp_clear_peer(struct cdp_pdev *pdev_handle, struct qdf_mac_addr peer_addr)
{ {
struct dp_peer *peer; struct dp_peer *peer;
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle; struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
/* peer_id to be removed */
uint8_t peer_id;
peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer_addr.bytes, peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer_addr.bytes);
&peer_id);
if (!peer) if (!peer)
return QDF_STATUS_E_FAULT; return QDF_STATUS_E_FAULT;
@@ -3095,7 +3087,6 @@ dp_clear_peer(struct cdp_pdev *pdev_handle, struct qdf_mac_addr peer_addr)
* @pdev - data path device instance * @pdev - data path device instance
* @vdev - virtual interface instance * @vdev - virtual interface instance
* @peer_addr - peer mac address * @peer_addr - peer mac address
* @peer_id - local peer id with target mac address
* *
* Find peer by peer mac address within vdev * Find peer by peer mac address within vdev
* *
@@ -3104,7 +3095,7 @@ dp_clear_peer(struct cdp_pdev *pdev_handle, struct qdf_mac_addr peer_addr)
*/ */
void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle, void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle,
struct cdp_vdev *vdev_handle, struct cdp_vdev *vdev_handle,
uint8_t *peer_addr, uint8_t *local_id) uint8_t *peer_addr)
{ {
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle; struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle; struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
@@ -3120,8 +3111,6 @@ void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle,
return NULL; return NULL;
} }
*local_id = peer->local_id;
/* ref_cnt is incremented inside dp_peer_find_hash_find(). /* ref_cnt is incremented inside dp_peer_find_hash_find().
* Decrement it here. * Decrement it here.
*/ */
@@ -3188,8 +3177,6 @@ dp_get_vdev_by_peer_addr(struct cdp_pdev *pdev_handle,
{ {
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle; struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
struct dp_peer *peer = NULL; struct dp_peer *peer = NULL;
/* peer_id to be removed PEER_ID_CLEANUP */
uint8_t peer_id;
if (!pdev) { if (!pdev) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
@@ -3198,8 +3185,7 @@ dp_get_vdev_by_peer_addr(struct cdp_pdev *pdev_handle,
return NULL; return NULL;
} }
peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer_addr.bytes, peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer_addr.bytes);
&peer_id);
if (!peer) { if (!peer) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_HIGH,
"PDEV not found for peer_addr:" QDF_MAC_ADDR_STR, "PDEV not found for peer_addr:" QDF_MAC_ADDR_STR,

View File

@@ -599,7 +599,6 @@ dp_rx_null_q_handle_invalid_peer_id_exception(struct dp_soc *soc,
uint8_t *rx_tlv_hdr, uint8_t *rx_tlv_hdr,
qdf_nbuf_t nbuf) qdf_nbuf_t nbuf)
{ {
uint8_t local_id;
struct dp_peer *peer = NULL; struct dp_peer *peer = NULL;
uint8_t *rx_pkt_hdr = hal_rx_pkt_hdr_get(rx_tlv_hdr); uint8_t *rx_pkt_hdr = hal_rx_pkt_hdr_get(rx_tlv_hdr);
struct dp_pdev *pdev = soc->pdev_list[pool_id]; struct dp_pdev *pdev = soc->pdev_list[pool_id];
@@ -612,7 +611,7 @@ dp_rx_null_q_handle_invalid_peer_id_exception(struct dp_soc *soc,
*/ */
if (wh) if (wh)
peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev,
wh->i_addr2, &local_id); wh->i_addr2);
if (peer) { if (peer) {
dp_verbose_debug("MPDU sw_peer_id & ast_idx is corrupted"); dp_verbose_debug("MPDU sw_peer_id & ast_idx is corrupted");
hal_rx_dump_pkt_tlvs(soc->hal_soc, rx_tlv_hdr, hal_rx_dump_pkt_tlvs(soc->hal_soc, rx_tlv_hdr,

View File

@@ -117,7 +117,6 @@ QDF_STATUS target_if_crypto_set_key(struct wlan_objmgr_vdev *vdev,
struct cdp_vdev *txrx_vdev; struct cdp_vdev *txrx_vdev;
uint32_t pn[4] = {0, 0, 0, 0}; uint32_t pn[4] = {0, 0, 0, 0};
struct cdp_peer *peer = NULL; struct cdp_peer *peer = NULL;
uint8_t peer_id;
uint8_t def_tx_idx; uint8_t def_tx_idx;
wmi_unified_t pdev_wmi_handle; wmi_unified_t pdev_wmi_handle;
bool pairwise; bool pairwise;
@@ -160,7 +159,7 @@ QDF_STATUS target_if_crypto_set_key(struct wlan_objmgr_vdev *vdev,
&req->keyrsc[0], sizeof(uint64_t)); &req->keyrsc[0], sizeof(uint64_t));
txrx_vdev = (struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc, txrx_vdev = (struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
(struct cdp_pdev *)txrx_pdev, params.vdev_id); (struct cdp_pdev *)txrx_pdev, params.vdev_id);
peer = cdp_peer_find_by_addr(soc, txrx_pdev, req->macaddr, &peer_id); peer = cdp_peer_find_by_addr(soc, txrx_pdev, req->macaddr);
if (!txrx_vdev) { if (!txrx_vdev) {
target_if_err("Invalid txrx vdev"); target_if_err("Invalid txrx vdev");