summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMukul Sharma <mukul@qti.qualcomm.com>2015-12-22 12:04:29 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-12-28 16:01:26 +0530
commit43cf1207751d1252fc2a5ccfaeb3a989a8983632 (patch)
tree3114408990322c2a97923a6a2c5ce2aee8a41d71
parent5d3bc9e6b9fd7095afcefba11e974c709bb6956b (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.c12
-rw-r--r--CORE/HDD/src/wlan_hdd_tx_rx.c12
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