diff options
| author | Mukul Sharma <mukul@qti.qualcomm.com> | 2015-12-22 12:04:29 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-12-28 16:01:26 +0530 |
| commit | 43cf1207751d1252fc2a5ccfaeb3a989a8983632 (patch) | |
| tree | 3114408990322c2a97923a6a2c5ce2aee8a41d71 | |
| parent | 5d3bc9e6b9fd7095afcefba11e974c709bb6956b (diff) | |
qcacld-2.0: Add SSR protect for ndo hard_start_xmit ops
SSR should wait until ndo hard_start_xmit ops is completed.
Change-Id: Ic3148cfb655f87d22c40bca7825809648c7b4b4a
CRs-Fixed: 952660
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_softap_tx_rx.c | 12 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_tx_rx.c | 12 |
2 files changed, 22 insertions, 2 deletions
diff --git a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c index abf9f5cc3415..887b57f8ed77 100644 --- a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c @@ -223,7 +223,7 @@ void hdd_softap_tx_resume_cb(void *adapter_context, @return : NETDEV_TX_OK ===========================================================================*/ -int hdd_softap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) +int __hdd_softap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) { WLANTL_ACEnumType ac; hdd_adapter_t *pAdapter = (hdd_adapter_t *)netdev_priv(dev); @@ -417,6 +417,16 @@ drop_list: } +int hdd_softap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) +{ + int ret; + + vos_ssr_protect(__func__); + ret = __hdd_softap_hard_start_xmit(skb, dev); + vos_ssr_unprotect(__func__); + return ret; +} + /** * __hdd_softap_tx_timeout() - softap tx timeout * @dev: pointer to net_device diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c index cc442ea122a0..e25ca1e1b53f 100644 --- a/CORE/HDD/src/wlan_hdd_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_tx_rx.c @@ -814,7 +814,7 @@ void hdd_drop_skb_list(hdd_adapter_t *adapter, struct sk_buff *skb, @return : NET_XMIT_DROP if packets are dropped : NET_XMIT_SUCCESS if packet is enqueued successfully ===========================================================================*/ -int hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) +int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) { VOS_STATUS status; WLANTL_ACEnumType ac; @@ -1065,6 +1065,16 @@ drop_list: return NETDEV_TX_OK; } +int hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) +{ + int ret; + + vos_ssr_protect(__func__); + ret = __hdd_hard_start_xmit(skb, dev); + vos_ssr_unprotect(__func__); + return ret; +} + /**============================================================================ @brief hdd_Ibss_GetStaId() - Get the StationID using the Peer Mac address |
