qcacld-3.0: Disable ARP_NS and GTK offload for NaN mode
arp_ns_offload and gtk offload command are being issued for NaN mode vdev. NaN mode vdev does not support ARP_NS and GTK off load features, so disable them when in NaN mode. Change-Id: Iab11c92bb5da4004b62e642342a386f532832509 CRs-Fixed: 2608618
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -72,6 +72,13 @@ static QDF_STATUS pmo_core_do_enable_gtk_offload(
|
|||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
|
enum QDF_OPMODE op_mode;
|
||||||
|
|
||||||
|
op_mode = pmo_get_vdev_opmode(vdev);
|
||||||
|
if (QDF_NDI_MODE == op_mode) {
|
||||||
|
pmo_debug("gtk offload is not supported in NaN mode");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!pmo_core_is_vdev_supports_offload(vdev)) {
|
if (!pmo_core_is_vdev_supports_offload(vdev)) {
|
||||||
pmo_debug("vdev in invalid opmode for gtk offload %d",
|
pmo_debug("vdev in invalid opmode for gtk offload %d",
|
||||||
@@ -156,6 +163,13 @@ static QDF_STATUS pmo_core_do_disable_gtk_offload(
|
|||||||
struct pmo_gtk_req *op_gtk_req)
|
struct pmo_gtk_req *op_gtk_req)
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
|
enum QDF_OPMODE op_mode;
|
||||||
|
|
||||||
|
op_mode = pmo_get_vdev_opmode(vdev);
|
||||||
|
if (QDF_NDI_MODE == op_mode) {
|
||||||
|
pmo_debug("gtk offload is not supported in NaN mode");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
status = pmo_core_is_gtk_enabled_in_fwr(vdev, vdev_ctx);
|
status = pmo_core_is_gtk_enabled_in_fwr(vdev, vdev_ctx);
|
||||||
if (status != QDF_STATUS_SUCCESS)
|
if (status != QDF_STATUS_SUCCESS)
|
||||||
|
@@ -281,8 +281,7 @@ static void __wlan_hdd_ipv6_changed(struct net_device *net_dev)
|
|||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE ||
|
if (adapter->device_mode == QDF_STA_MODE ||
|
||||||
adapter->device_mode == QDF_P2P_CLIENT_MODE ||
|
adapter->device_mode == QDF_P2P_CLIENT_MODE) {
|
||||||
adapter->device_mode == QDF_NDI_MODE) {
|
|
||||||
hdd_debug("invoking sme_dhcp_done_ind");
|
hdd_debug("invoking sme_dhcp_done_ind");
|
||||||
sme_dhcp_done_ind(hdd_ctx->mac_handle, adapter->vdev_id);
|
sme_dhcp_done_ind(hdd_ctx->mac_handle, adapter->vdev_id);
|
||||||
schedule_work(&adapter->ipv6_notifier_work);
|
schedule_work(&adapter->ipv6_notifier_work);
|
||||||
@@ -910,8 +909,7 @@ static void __wlan_hdd_ipv4_changed(struct net_device *net_dev)
|
|||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE ||
|
if (adapter->device_mode == QDF_STA_MODE ||
|
||||||
adapter->device_mode == QDF_P2P_CLIENT_MODE ||
|
adapter->device_mode == QDF_P2P_CLIENT_MODE) {
|
||||||
adapter->device_mode == QDF_NDI_MODE) {
|
|
||||||
hdd_debug("invoking sme_dhcp_done_ind");
|
hdd_debug("invoking sme_dhcp_done_ind");
|
||||||
sme_dhcp_done_ind(hdd_ctx->mac_handle, adapter->vdev_id);
|
sme_dhcp_done_ind(hdd_ctx->mac_handle, adapter->vdev_id);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user