Loading core/hdd/inc/wlan_hdd_softap_tx_rx.h +49 −0 Original line number Diff line number Diff line /* * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -270,4 +271,52 @@ int hdd_softap_inspect_dhcp_packet(struct hdd_adapter *adapter, */ void hdd_softap_check_wait_for_tx_eap_pkt(struct hdd_adapter *adapter, struct qdf_mac_addr *mac_addr); #ifndef QCA_LL_LEGACY_TX_FLOW_CONTROL #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); hdd_skb_fill_gso_size(adapter->dev, skb); if (skb_cloned(skb)) { ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); return skb; } if (unlikely(hdd_ctx->config->tx_orphan_enable)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } return skb; } #else static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); return nskb; } #endif #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ #endif /* end #if !defined(WLAN_HDD_SOFTAP_TX_RX_H) */ core/hdd/src/wlan_hdd_softap_tx_rx.c +0 −33 Original line number Diff line number Diff line Loading @@ -204,39 +204,6 @@ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, return skb; } #else /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); #endif hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) if (unlikely(hdd_ctx->config->tx_orphan_enable) && (nskb == skb)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } #endif return nskb; } #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ #define IEEE8021X_AUTH_TYPE_EAP 0 Loading core/hdd/src/wlan_hdd_tx_rx.c +0 −33 Original line number Diff line number Diff line Loading @@ -385,39 +385,6 @@ void hdd_get_tx_resource(struct hdd_adapter *adapter, } } } #else /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); #endif hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) if (unlikely(hdd_ctx->config->tx_orphan_enable) && (nskb == skb)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } #endif return nskb; } #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ uint32_t hdd_txrx_get_tx_ack_count(struct hdd_adapter *adapter) Loading core/mac/inc/qwlan_version.h +2 −2 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ #define QWLAN_VERSION_MAJOR 5 #define QWLAN_VERSION_MINOR 2 #define QWLAN_VERSION_PATCH 022 #define QWLAN_VERSION_EXTRA "B" #define QWLAN_VERSION_EXTRA "D" #define QWLAN_VERSION_BUILD 11 #define QWLAN_VERSIONSTR "5.2.022.11B" #define QWLAN_VERSIONSTR "5.2.022.11D" #endif /* QWLAN_VERSION_H */ os_if/tdls/src/wlan_cfg80211_tdls.c +5 −0 Original line number Diff line number Diff line Loading @@ -711,6 +711,11 @@ int wlan_cfg80211_tdls_get_all_peers(struct wlan_objmgr_vdev *vdev, tdls_priv = osif_priv->osif_tdls; if (!completion_done(&tdls_priv->tdls_user_cmd_comp)) { osif_err("TDLS user cmd still in progress, reject this one"); return -EBUSY; } wlan_cfg80211_update_tdls_peers_rssi(vdev); reinit_completion(&tdls_priv->tdls_user_cmd_comp); Loading Loading
core/hdd/inc/wlan_hdd_softap_tx_rx.h +49 −0 Original line number Diff line number Diff line /* * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -270,4 +271,52 @@ int hdd_softap_inspect_dhcp_packet(struct hdd_adapter *adapter, */ void hdd_softap_check_wait_for_tx_eap_pkt(struct hdd_adapter *adapter, struct qdf_mac_addr *mac_addr); #ifndef QCA_LL_LEGACY_TX_FLOW_CONTROL #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); hdd_skb_fill_gso_size(adapter->dev, skb); if (skb_cloned(skb)) { ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); return skb; } if (unlikely(hdd_ctx->config->tx_orphan_enable)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } return skb; } #else static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); return nskb; } #endif #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ #endif /* end #if !defined(WLAN_HDD_SOFTAP_TX_RX_H) */
core/hdd/src/wlan_hdd_softap_tx_rx.c +0 −33 Original line number Diff line number Diff line Loading @@ -204,39 +204,6 @@ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, return skb; } #else /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); #endif hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) if (unlikely(hdd_ctx->config->tx_orphan_enable) && (nskb == skb)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } #endif return nskb; } #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ #define IEEE8021X_AUTH_TYPE_EAP 0 Loading
core/hdd/src/wlan_hdd_tx_rx.c +0 −33 Original line number Diff line number Diff line Loading @@ -385,39 +385,6 @@ void hdd_get_tx_resource(struct hdd_adapter *adapter, } } } #else /** * hdd_skb_orphan() - skb_unshare a cloned packed else skb_orphan * @adapter: pointer to HDD adapter * @skb: pointer to skb data packet * * Return: pointer to skb structure */ static inline struct sk_buff *hdd_skb_orphan(struct hdd_adapter *adapter, struct sk_buff *skb) { struct sk_buff *nskb; #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); #endif hdd_skb_fill_gso_size(adapter->dev, skb); nskb = skb_unshare(skb, GFP_ATOMIC); #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 19, 0)) if (unlikely(hdd_ctx->config->tx_orphan_enable) && (nskb == skb)) { /* * For UDP packets we want to orphan the packet to allow the app * to send more packets. The flow would ultimately be controlled * by the limited number of tx descriptors for the vdev. */ ++adapter->hdd_stats.tx_rx_stats.tx_orphaned; skb_orphan(skb); } #endif return nskb; } #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ uint32_t hdd_txrx_get_tx_ack_count(struct hdd_adapter *adapter) Loading
core/mac/inc/qwlan_version.h +2 −2 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ #define QWLAN_VERSION_MAJOR 5 #define QWLAN_VERSION_MINOR 2 #define QWLAN_VERSION_PATCH 022 #define QWLAN_VERSION_EXTRA "B" #define QWLAN_VERSION_EXTRA "D" #define QWLAN_VERSION_BUILD 11 #define QWLAN_VERSIONSTR "5.2.022.11B" #define QWLAN_VERSIONSTR "5.2.022.11D" #endif /* QWLAN_VERSION_H */
os_if/tdls/src/wlan_cfg80211_tdls.c +5 −0 Original line number Diff line number Diff line Loading @@ -711,6 +711,11 @@ int wlan_cfg80211_tdls_get_all_peers(struct wlan_objmgr_vdev *vdev, tdls_priv = osif_priv->osif_tdls; if (!completion_done(&tdls_priv->tdls_user_cmd_comp)) { osif_err("TDLS user cmd still in progress, reject this one"); return -EBUSY; } wlan_cfg80211_update_tdls_peers_rssi(vdev); reinit_completion(&tdls_priv->tdls_user_cmd_comp); Loading