qcacld-3.0: Integrate DSC (cfg80211)

As part of DSC integration, replace remaining cds_ssr_protect/unprotect
with appropriate osif_sync op start/stop calls in cfg80211 callback
handlers.

Change-Id: Ie5c513e8ca51668d0ac7e2972e6db1556057f314
CRs-Fixed: 2410851
这个提交包含在:
Dustin Brown
2019-03-06 11:00:38 -08:00
提交者 nshrivas
父节点 d74a5dfc39
当前提交 4376fedf86
修改 12 个文件,包含 157 行新增81 行删除

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -222,13 +223,18 @@ int wlan_hdd_cfg80211_set_limit_offchan_param(struct wiphy *wiphy,
const void *data, int data_len) const void *data, int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_set_limit_offchan_param(wiphy, wdev, data, if (errno)
data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_set_limit_offchan_param(wiphy, wdev, data,
data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -259,13 +260,18 @@ int wlan_hdd_cfg80211_fetch_bss_transition_status(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_fetch_bss_transition_status(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_fetch_bss_transition_status(wiphy, wdev,
data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -2965,16 +2965,19 @@ void wlan_hdd_undo_acs(struct hdd_adapter *adapter)
* *
* Return: None * Return: None
*/ */
static void wlan_hdd_cfg80211_start_pending_acs(struct work_struct *work) static void wlan_hdd_cfg80211_start_pending_acs(struct work_struct *work)
{ {
struct hdd_adapter *adapter = container_of(work, struct hdd_adapter, struct hdd_adapter *adapter = container_of(work, struct hdd_adapter,
acs_pending_work.work); acs_pending_work.work);
struct osif_vdev_sync *vdev_sync;
if (osif_vdev_sync_op_start(adapter->dev, &vdev_sync))
return;
cds_ssr_protect(__func__);
wlan_hdd_cfg80211_start_acs(adapter); wlan_hdd_cfg80211_start_acs(adapter);
cds_ssr_unprotect(__func__);
clear_bit(ACS_PENDING, &adapter->event_flags); clear_bit(ACS_PENDING, &adapter->event_flags);
osif_vdev_sync_op_stop(vdev_sync);
} }
/** /**

查看文件

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019 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
@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -132,13 +133,18 @@ int wlan_hdd_cfg80211_get_concurrency_matrix(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_psoc_sync *psoc_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_psoc_sync_op_start(wiphy_dev(wiphy), &psoc_sync);
ret = __wlan_hdd_cfg80211_get_concurrency_matrix(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_get_concurrency_matrix(wiphy, wdev,
data, data_len);
osif_psoc_sync_op_stop(psoc_sync);
return errno;
} }

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -131,12 +132,17 @@ int wlan_hdd_cfg80211_set_ota_test(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_set_ota_test(wiphy, wdev, data, data_len); if (errno)
cds_ssr_unprotect(__func__); return errno;
return ret; errno = __wlan_hdd_cfg80211_set_ota_test(wiphy, wdev, data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -250,14 +251,19 @@ int wlan_hdd_cfg80211_p2p_lo_start(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_p2p_lo_start(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_p2p_lo_start(wiphy, wdev,
data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }
/** /**
@@ -335,13 +341,18 @@ int wlan_hdd_cfg80211_p2p_lo_stop(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_p2p_lo_stop(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_p2p_lo_stop(wiphy, wdev,
data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -163,13 +164,18 @@ int
wlan_hdd_cfg80211_monitor_rssi(struct wiphy *wiphy, struct wireless_dev *wdev, wlan_hdd_cfg80211_monitor_rssi(struct wiphy *wiphy, struct wireless_dev *wdev,
const void *data, int data_len) const void *data, int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_monitor_rssi(wiphy, wdev, data, data_len); if (errno)
cds_ssr_unprotect(__func__); return errno;
return ret; errno = __wlan_hdd_cfg80211_monitor_rssi(wiphy, wdev, data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }
void hdd_rssi_threshold_breached(hdd_handle_t hdd_handle, void hdd_rssi_threshold_breached(hdd_handle_t hdd_handle,

查看文件

@@ -541,13 +541,18 @@ int wlan_hdd_cfg80211_conditional_chan_switch(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_conditional_chan_switch(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_conditional_chan_switch(wiphy, wdev,
data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019 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
@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -309,12 +310,17 @@ int wlan_hdd_cfg80211_get_sar_power_limits(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_psoc_sync *psoc_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_psoc_sync_op_start(wiphy_dev(wiphy), &psoc_sync);
ret = __wlan_hdd_get_sar_power_limits(wiphy, wdev, data, data_len); if (errno)
cds_ssr_unprotect(__func__); return errno;
return ret; errno = __wlan_hdd_get_sar_power_limits(wiphy, wdev, data, data_len);
osif_psoc_sync_op_stop(psoc_sync);
return errno;
} }

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -1233,12 +1234,17 @@ int32_t hdd_cfg80211_get_station_cmd(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __hdd_cfg80211_get_station_cmd(wiphy, wdev, data, data_len); if (errno)
cds_ssr_unprotect(__func__); return errno;
return ret; errno = __hdd_cfg80211_get_station_cmd(wiphy, wdev, data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }

查看文件

@@ -1551,17 +1551,22 @@ __wlan_hdd_cfg80211_ll_stats_get(struct wiphy *wiphy,
* Return: 0 if success, non-zero for failure * Return: 0 if success, non-zero for failure
*/ */
int wlan_hdd_cfg80211_ll_stats_get(struct wiphy *wiphy, int wlan_hdd_cfg80211_ll_stats_get(struct wiphy *wiphy,
struct wireless_dev *wdev, struct wireless_dev *wdev,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret = 0; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_ll_stats_get(wiphy, wdev, data, data_len); if (errno)
cds_ssr_unprotect(__func__); return errno;
return ret; errno = __wlan_hdd_cfg80211_ll_stats_get(wiphy, wdev, data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }
const struct const struct

查看文件

@@ -23,6 +23,7 @@
* *
*/ */
#include "osif_sync.h"
#include <wlan_hdd_includes.h> #include <wlan_hdd_includes.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
@@ -102,14 +103,18 @@ int wlan_hdd_cfg80211_txpower_scale(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_txpower_scale(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_txpower_scale(wiphy, wdev, data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }
static const struct nla_policy txpower_scale_decr_db_policy static const struct nla_policy txpower_scale_decr_db_policy
@@ -180,13 +185,18 @@ int wlan_hdd_cfg80211_txpower_scale_decr_db(struct wiphy *wiphy,
const void *data, const void *data,
int data_len) int data_len)
{ {
int ret; struct osif_vdev_sync *vdev_sync;
int errno;
cds_ssr_protect(__func__); errno = osif_vdev_sync_op_start(wdev->netdev, &vdev_sync);
ret = __wlan_hdd_cfg80211_txpower_scale_decr_db(wiphy, wdev, if (errno)
data, data_len); return errno;
cds_ssr_unprotect(__func__);
return ret; errno = __wlan_hdd_cfg80211_txpower_scale_decr_db(wiphy, wdev,
data, data_len);
osif_vdev_sync_op_stop(vdev_sync);
return errno;
} }