qcacmn: Do not start unmap timer if send cmd to FW fails

Do not start unmap timer if peer delete couldn't be sent to
firmware.

Change-Id: Ie746bde046b76d8e136ebb4fd0b60088bf516d42
CRs-Fixed: 2116223
This commit is contained in:
Naveen Rawat
2017-09-19 10:30:11 -07:00
committed by snandini
parent 2bb999c91a
commit 761329bbf2
3 changed files with 12 additions and 5 deletions

View File

@@ -157,10 +157,10 @@ static inline void cdp_peer_teardown
} }
static inline void static inline void
cdp_peer_delete(ol_txrx_soc_handle soc, void *peer) cdp_peer_delete(ol_txrx_soc_handle soc, void *peer, uint32_t bitmap)
{ {
if (soc->ops->cmn_drv_ops->txrx_peer_delete) if (soc->ops->cmn_drv_ops->txrx_peer_delete)
return soc->ops->cmn_drv_ops->txrx_peer_delete(peer); return soc->ops->cmn_drv_ops->txrx_peer_delete(peer, bitmap);
return; return;
} }

View File

@@ -36,6 +36,12 @@
#include <linux/ipa.h> #include <linux/ipa.h>
#endif #endif
/**
* bitmap values to indicate special handling of peer_delete
*/
#define CDP_PEER_DELETE_NO_SPECIAL 0
#define CDP_PEER_DO_NOT_START_UNMAP_TIMER 1
/****************************************************************************** /******************************************************************************
* *
* Control Interface (A Interface) * Control Interface (A Interface)
@@ -75,7 +81,7 @@ struct cdp_cmn_ops {
void (*txrx_peer_teardown) void (*txrx_peer_teardown)
(struct cdp_vdev *vdev_hdl, void *peer_hdl); (struct cdp_vdev *vdev_hdl, void *peer_hdl);
void (*txrx_peer_delete)(void *peer); 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,
uint8_t smart_monitor); uint8_t smart_monitor);

View File

@@ -3217,10 +3217,11 @@ void dp_peer_unref_delete(void *peer_handle)
/* /*
* dp_peer_detach_wifi3() Detach txrx peer * dp_peer_detach_wifi3() Detach txrx peer
* @peer_handle: Datapath peer handle * @peer_handle: Datapath peer handle
* @bitmap: bitmap indicating special handling of request.
* *
*/ */
static void dp_peer_delete_wifi3(void *peer_handle) static void dp_peer_delete_wifi3(void *peer_handle, uint32_t bitmap)
{ {
struct dp_peer *peer = (struct dp_peer *)peer_handle; struct dp_peer *peer = (struct dp_peer *)peer_handle;