qcacmn: remove ctrl_peer handle from dp peer
Remove ctrl_peer handle from dp peer and instead use peer's mac address Change-Id: I9e24fa94248749f9b4859bce4a1d79d70f32507e
This commit is contained in:

committed by
nshrivas

parent
fb323024ac
commit
715fdc32ec
@@ -362,7 +362,7 @@ cdp_pdev_deinit(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, int force)
|
||||
|
||||
static inline void *cdp_peer_create
|
||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
||||
uint8_t *peer_mac_addr, struct cdp_ctrl_objmgr_peer *ctrl_peer)
|
||||
uint8_t *peer_mac_addr)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||
@@ -376,7 +376,7 @@ static inline void *cdp_peer_create
|
||||
return NULL;
|
||||
|
||||
return soc->ops->cmn_drv_ops->txrx_peer_create(vdev,
|
||||
peer_mac_addr, ctrl_peer);
|
||||
peer_mac_addr);
|
||||
}
|
||||
|
||||
static inline void cdp_peer_setup
|
||||
|
@@ -96,8 +96,7 @@ struct cdp_cmn_ops {
|
||||
void (*txrx_pdev_deinit)(struct cdp_pdev *pdev, int force);
|
||||
|
||||
void *(*txrx_peer_create)
|
||||
(struct cdp_vdev *vdev, uint8_t *peer_mac_addr,
|
||||
struct cdp_ctrl_objmgr_peer *ctrl_peer);
|
||||
(struct cdp_vdev *vdev, uint8_t *peer_mac_addr);
|
||||
|
||||
void (*txrx_peer_setup)
|
||||
(struct cdp_vdev *vdev_hdl, void *peer_hdl);
|
||||
@@ -935,8 +934,7 @@ struct ol_if_ops {
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
uint32_t tid_mask);
|
||||
int (*peer_unref_delete)(void *scn_handle, uint8_t *peer_mac,
|
||||
uint8_t *vdev_mac, enum wlan_op_mode opmode,
|
||||
void *old_peer, void *new_peer);
|
||||
uint8_t *vdev_mac, enum wlan_op_mode opmode);
|
||||
bool (*is_hw_dbs_2x2_capable)(struct wlan_objmgr_psoc *psoc);
|
||||
int (*peer_add_wds_entry)(void *vdev_handle,
|
||||
struct cdp_peer *peer_handle,
|
||||
@@ -993,15 +991,15 @@ struct ol_if_ops {
|
||||
|
||||
/**
|
||||
* send_delba() - Send delba to peer
|
||||
* @pdev_handle: Dp pdev handle
|
||||
* @ctrl_peer: Peer handle
|
||||
* @psoc: Objmgr soc handle
|
||||
* @vdev_id: dp vdev id
|
||||
* @peer_macaddr: Peer mac addr
|
||||
* @tid: Tid number
|
||||
*
|
||||
* Return: 0 for success, non-zero for failure
|
||||
*/
|
||||
int (*send_delba)(void *pdev_handle, void *ctrl_peer,
|
||||
uint8_t *peer_macaddr, uint8_t tid, void *vdev_handle,
|
||||
int (*send_delba)(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint8_t *peer_macaddr, uint8_t tid,
|
||||
uint8_t reason_code);
|
||||
int (*peer_delete_multiple_wds_entries)(void *vdev_handle,
|
||||
uint8_t *dest_macaddr,
|
||||
|
@@ -957,7 +957,8 @@ struct cdp_peer_stats {
|
||||
};
|
||||
|
||||
/* struct cdp_interface_peer_stats - interface structure for txrx peer stats
|
||||
* @peer_hdl: control path peer handle
|
||||
* @peer_mac: peer mac address
|
||||
* @vdev_id : vdev_id for the peer
|
||||
* @last_peer_tx_rate: peer tx rate for last transmission
|
||||
* @peer_tx_rate: tx rate for current transmission
|
||||
* @peer_rssi: current rssi value of peer
|
||||
@@ -970,17 +971,18 @@ struct cdp_peer_stats {
|
||||
* @rssi_changed: denotes rssi is changed
|
||||
*/
|
||||
struct cdp_interface_peer_stats {
|
||||
void *peer_hdl;
|
||||
uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
|
||||
uint8_t vdev_id;
|
||||
uint8_t rssi_changed;
|
||||
uint32_t last_peer_tx_rate;
|
||||
uint32_t peer_tx_rate;
|
||||
uint32_t peer_rssi;
|
||||
uint32_t peer_rssi;
|
||||
uint32_t tx_packet_count;
|
||||
uint32_t rx_packet_count;
|
||||
uint32_t tx_byte_count;
|
||||
uint32_t rx_byte_count;
|
||||
uint32_t per;
|
||||
uint32_t ack_rssi;
|
||||
uint8_t rssi_changed;
|
||||
};
|
||||
|
||||
/* Tx completions per interrupt */
|
||||
|
@@ -139,8 +139,7 @@ dp_soc_attach(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, HTC_HANDLE htc_handle,
|
||||
struct ol_if_ops *ol_ops, uint16_t device_id);
|
||||
static void dp_pktlogmod_exit(struct dp_pdev *handle);
|
||||
static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
||||
uint8_t *peer_mac_addr,
|
||||
struct cdp_ctrl_objmgr_peer *ctrl_peer);
|
||||
uint8_t *peer_mac_addr);
|
||||
static void dp_peer_delete_wifi3(void *peer_handle, uint32_t bitmap);
|
||||
static void dp_ppdu_ring_reset(struct dp_pdev *pdev);
|
||||
static void dp_ppdu_ring_cfg(struct dp_pdev *pdev);
|
||||
@@ -4851,8 +4850,7 @@ static struct cdp_vdev *dp_vdev_attach_wifi3(struct cdp_pdev *txrx_pdev,
|
||||
|
||||
if (wlan_op_mode_sta == vdev->opmode)
|
||||
dp_peer_create_wifi3((struct cdp_vdev *)vdev,
|
||||
vdev->mac_addr.raw,
|
||||
NULL);
|
||||
vdev->mac_addr.raw);
|
||||
|
||||
return (struct cdp_vdev *)vdev;
|
||||
|
||||
@@ -5214,7 +5212,7 @@ static inline void dp_peer_rx_bufq_resources_init(struct dp_peer *peer)
|
||||
* Return: DP peeer handle on success, NULL on failure
|
||||
*/
|
||||
static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
||||
uint8_t *peer_mac_addr, struct cdp_ctrl_objmgr_peer *ctrl_peer)
|
||||
uint8_t *peer_mac_addr)
|
||||
{
|
||||
struct dp_peer *peer;
|
||||
int i;
|
||||
@@ -5262,9 +5260,8 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
||||
if (soc->cdp_soc.ol_ops->peer_unref_delete) {
|
||||
soc->cdp_soc.ol_ops->peer_unref_delete(pdev->ctrl_pdev,
|
||||
peer->mac_addr.raw, vdev->mac_addr.raw,
|
||||
vdev->opmode, peer->ctrl_peer, ctrl_peer);
|
||||
vdev->opmode);
|
||||
}
|
||||
peer->ctrl_peer = ctrl_peer;
|
||||
|
||||
dp_local_peer_id_alloc(pdev, peer);
|
||||
|
||||
@@ -5302,7 +5299,6 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
||||
|
||||
/* store provided params */
|
||||
peer->vdev = vdev;
|
||||
peer->ctrl_peer = ctrl_peer;
|
||||
|
||||
if ((vdev->opmode == wlan_op_mode_sta) &&
|
||||
!qdf_mem_cmp(peer_mac_addr, &vdev->mac_addr.raw[0],
|
||||
@@ -5898,10 +5894,10 @@ static void dp_peer_release_mem(struct dp_soc *soc,
|
||||
{
|
||||
if (soc->cdp_soc.ol_ops->peer_unref_delete)
|
||||
soc->cdp_soc.ol_ops->peer_unref_delete(
|
||||
pdev->ctrl_pdev,
|
||||
soc->ctrl_psoc,
|
||||
pdev->pdev_id,
|
||||
peer->mac_addr.raw, vdev_mac_addr,
|
||||
vdev_opmode, peer->ctrl_peer,
|
||||
NULL);
|
||||
vdev_opmode);
|
||||
|
||||
/*
|
||||
* Peer AST list hast to be empty here
|
||||
@@ -6105,19 +6101,6 @@ static void dp_peer_delete_wifi3(void *peer_handle, uint32_t bitmap)
|
||||
{
|
||||
struct dp_peer *peer = (struct dp_peer *)peer_handle;
|
||||
|
||||
/* redirect the peer's rx delivery function to point to a
|
||||
* discard func
|
||||
*/
|
||||
|
||||
/* Do not make ctrl_peer to NULL for connected sta peers.
|
||||
* We need ctrl_peer to release the reference during dp
|
||||
* peer free. This reference was held for
|
||||
* obj_mgr peer during the creation of dp peer.
|
||||
*/
|
||||
if (!(peer->vdev && (peer->vdev->opmode != wlan_op_mode_sta) &&
|
||||
!peer->bss_peer))
|
||||
peer->ctrl_peer = NULL;
|
||||
|
||||
peer->valid = 0;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
|
@@ -2507,11 +2507,10 @@ static void dp_teardown_256_ba_sessions(struct dp_peer *peer)
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
if (peer->vdev->pdev->soc->cdp_soc.ol_ops->send_delba)
|
||||
peer->vdev->pdev->soc->cdp_soc.ol_ops->send_delba(
|
||||
peer->vdev->pdev->ctrl_pdev,
|
||||
peer->ctrl_peer,
|
||||
peer->mac_addr.raw,
|
||||
tid, peer->vdev->ctrl_vdev,
|
||||
delba_rcode);
|
||||
peer->vdev->pdev->soc->ctrl_psoc,
|
||||
peer->vdev->vdev_id,
|
||||
peer->mac_addr.raw,
|
||||
tid, delba_rcode);
|
||||
} else {
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
}
|
||||
@@ -2824,8 +2823,9 @@ int dp_delba_tx_completion_wifi3(void *peer_handle,
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
if (peer->vdev->pdev->soc->cdp_soc.ol_ops->send_delba)
|
||||
peer->vdev->pdev->soc->cdp_soc.ol_ops->send_delba(
|
||||
peer->vdev->pdev->ctrl_pdev, peer->ctrl_peer,
|
||||
peer->mac_addr.raw, tid, peer->vdev->ctrl_vdev,
|
||||
peer->vdev->pdev->soc->ctrl_psoc,
|
||||
peer->vdev->vdev_id,
|
||||
peer->mac_addr.raw, tid,
|
||||
rx_tid->delba_rcode);
|
||||
}
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
@@ -1292,27 +1292,22 @@ static QDF_STATUS dp_rx_defrag(struct dp_peer *peer, unsigned tid,
|
||||
|
||||
if (tkip_demic) {
|
||||
msdu = frag_list_head;
|
||||
if (soc->cdp_soc.ol_ops->rx_frag_tkip_demic) {
|
||||
status = soc->cdp_soc.ol_ops->rx_frag_tkip_demic(
|
||||
(void *)peer->ctrl_peer, msdu, hdr_space);
|
||||
} else {
|
||||
qdf_mem_copy(key,
|
||||
&peer->security[index].michael_key[0],
|
||||
IEEE80211_WEP_MICLEN);
|
||||
status = dp_rx_defrag_tkip_demic(key, msdu,
|
||||
RX_PKT_TLVS_LEN +
|
||||
hdr_space);
|
||||
qdf_mem_copy(key,
|
||||
&peer->security[index].michael_key[0],
|
||||
IEEE80211_WEP_MICLEN);
|
||||
status = dp_rx_defrag_tkip_demic(key, msdu,
|
||||
RX_PKT_TLVS_LEN +
|
||||
hdr_space);
|
||||
|
||||
if (status) {
|
||||
dp_rx_defrag_err(vdev, frag_list_head);
|
||||
if (status) {
|
||||
dp_rx_defrag_err(vdev, frag_list_head);
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX,
|
||||
QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: TKIP demic failed status %d",
|
||||
__func__, status);
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX,
|
||||
QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: TKIP demic failed status %d",
|
||||
__func__, status);
|
||||
|
||||
return QDF_STATUS_E_DEFRAG_ERROR;
|
||||
}
|
||||
return QDF_STATUS_E_DEFRAG_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -561,12 +561,12 @@ dp_2k_jump_handle(struct dp_soc *soc,
|
||||
IEEE80211_REASON_QOS_SETUP_REQUIRED;
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
if (soc->cdp_soc.ol_ops->send_delba)
|
||||
soc->cdp_soc.ol_ops->send_delba(peer->vdev->pdev->ctrl_pdev,
|
||||
peer->ctrl_peer,
|
||||
peer->mac_addr.raw,
|
||||
tid,
|
||||
peer->vdev->ctrl_vdev,
|
||||
rx_tid->delba_rcode);
|
||||
soc->cdp_soc.ol_ops->send_delba(
|
||||
peer->vdev->pdev->soc->ctrl_psoc,
|
||||
peer->vdev->vdev_id,
|
||||
peer->mac_addr.raw,
|
||||
tid,
|
||||
rx_tid->delba_rcode);
|
||||
} else {
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
}
|
||||
|
@@ -4056,7 +4056,9 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer)
|
||||
if ((peer_stats->rx.rssi && peer_stats_intf.rssi_changed) ||
|
||||
(peer_stats->tx.tx_rate &&
|
||||
peer_stats->tx.tx_rate != peer_stats->tx.last_tx_rate)) {
|
||||
peer_stats_intf.peer_hdl = peer->ctrl_peer;
|
||||
qdf_mem_copy(peer_stats_intf.peer_mac, peer->mac_addr.raw,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
peer_stats_intf.vdev_id = peer->vdev->vdev_id;
|
||||
peer_stats_intf.last_peer_tx_rate = peer_stats->tx.last_tx_rate;
|
||||
peer_stats_intf.peer_tx_rate = peer_stats->tx.tx_rate;
|
||||
peer_stats_intf.peer_rssi = peer_stats->rx.rssi;
|
||||
|
@@ -1979,8 +1979,6 @@ struct dp_peer {
|
||||
/* VDEV to which this peer is associated */
|
||||
struct dp_vdev *vdev;
|
||||
|
||||
struct cdp_ctrl_objmgr_peer *ctrl_peer;
|
||||
|
||||
struct dp_ast_entry *self_ast_entry;
|
||||
|
||||
qdf_atomic_t ref_cnt;
|
||||
|
Reference in New Issue
Block a user