From 5bfb40ab3cef42d876a2f20962a43d3e9e0c42d5 Mon Sep 17 00:00:00 2001 From: Ashish Date: Tue, 22 Mar 2022 13:33:13 +0530 Subject: [PATCH] Revert "qcacld-3.0: Fix arp offload not sent when suspend" This reverts commit I06ea617df49287ee87e7b5bf8b20971b581dedf1 which introduced a fix to enable/disable arp offload on every suspend/resume even if gActiveModeOffload is enabled, which is not correct. The expectation here is that if gActiveModeOffload is enabled, host should enable arp offload only onece and it should not disable on any condition. Change-Id: Ifc4ff1c0a39cc4c17e9a292ef8b0ebabd766a710 CRs-Fixed: 3147896 --- components/pmo/core/src/wlan_pmo_arp.c | 22 +++++----------------- components/pmo/core/src/wlan_pmo_ns.c | 21 +++------------------ 2 files changed, 8 insertions(+), 35 deletions(-) diff --git a/components/pmo/core/src/wlan_pmo_arp.c b/components/pmo/core/src/wlan_pmo_arp.c index 7f8594819a3a..d997c8ecdea3 100644 --- a/components/pmo/core/src/wlan_pmo_arp.c +++ b/components/pmo/core/src/wlan_pmo_arp.c @@ -231,13 +231,13 @@ QDF_STATUS pmo_core_arp_check_offload(struct wlan_objmgr_psoc *psoc, vdev_ctx = pmo_vdev_get_priv(vdev); psoc_ctx = vdev_ctx->pmo_psoc_ctx; - active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; - if (trigger == pmo_apps_suspend) { + if (trigger == pmo_apps_suspend || trigger == pmo_apps_resume) { + active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; + qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_arp_req.enable == PMO_OFFLOAD_ENABLE && - vdev_ctx->vdev_arp_req.is_offload_applied; + is_applied_cond = vdev_ctx->vdev_arp_req.enable && + vdev_ctx->vdev_arp_req.is_offload_applied; qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); if (active_offload_cond && is_applied_cond) { @@ -245,18 +245,6 @@ QDF_STATUS pmo_core_arp_check_offload(struct wlan_objmgr_psoc *psoc, wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); return QDF_STATUS_E_INVAL; } - } else if (trigger == pmo_apps_resume) { - qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_arp_req.enable == PMO_OFFLOAD_DISABLE && - !vdev_ctx->vdev_arp_req.is_offload_applied; - qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); - - if (active_offload_cond && is_applied_cond) { - pmo_debug("active offload is enabled and offload already disabled"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); - return QDF_STATUS_E_INVAL; - } } wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); out: diff --git a/components/pmo/core/src/wlan_pmo_ns.c b/components/pmo/core/src/wlan_pmo_ns.c index 4325450f40ed..f41d212f0549 100644 --- a/components/pmo/core/src/wlan_pmo_ns.c +++ b/components/pmo/core/src/wlan_pmo_ns.c @@ -271,13 +271,12 @@ QDF_STATUS pmo_core_ns_check_offload(struct wlan_objmgr_psoc *psoc, vdev_ctx = pmo_vdev_get_priv(vdev); psoc_ctx = vdev_ctx->pmo_psoc_ctx; - if (trigger == pmo_apps_suspend) { + if (trigger == pmo_apps_suspend || trigger == pmo_apps_resume) { active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_ns_req.enable == PMO_OFFLOAD_ENABLE && - vdev_ctx->vdev_ns_req.is_offload_applied; + is_applied_cond = vdev_ctx->vdev_ns_req.enable && + vdev_ctx->vdev_ns_req.is_offload_applied; qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); if (active_offload_cond && is_applied_cond) { @@ -285,20 +284,6 @@ QDF_STATUS pmo_core_ns_check_offload(struct wlan_objmgr_psoc *psoc, wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); return QDF_STATUS_E_INVAL; } - } else if (trigger == pmo_apps_resume) { - active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; - - qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_ns_req.enable == PMO_OFFLOAD_DISABLE && - !vdev_ctx->vdev_ns_req.is_offload_applied; - qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); - - if (active_offload_cond && is_applied_cond) { - pmo_debug("active offload is enabled and offload already disabled"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); - return QDF_STATUS_E_INVAL; - } } wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); out: