|
@@ -28,6 +28,7 @@
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
#include <linux/wireless.h>
|
|
#include <linux/wireless.h>
|
|
#include <mac_trace.h>
|
|
#include <mac_trace.h>
|
|
|
|
+#include "osif_sync.h"
|
|
#include <wlan_hdd_includes.h>
|
|
#include <wlan_hdd_includes.h>
|
|
#include <cds_api.h>
|
|
#include <cds_api.h>
|
|
#include "scheduler_api.h"
|
|
#include "scheduler_api.h"
|
|
@@ -3743,13 +3744,20 @@ static int iw_get_linkspeed(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_get_linkspeed(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_get_linkspeed(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef FEATURE_WLM_STATS
|
|
#ifdef FEATURE_WLM_STATS
|
|
@@ -5764,13 +5772,20 @@ static int iw_setint_getnone(struct net_device *dev,
|
|
union iwreq_data *wrqu,
|
|
union iwreq_data *wrqu,
|
|
char *extra)
|
|
char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_setint_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_setint_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -5827,13 +5842,20 @@ static int iw_setnone_get_threeint(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_setnone_get_threeint(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_setnone_get_threeint(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef WLAN_UNIT_TEST
|
|
#ifdef WLAN_UNIT_TEST
|
|
@@ -6064,13 +6086,20 @@ static int iw_setchar_getnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_setchar_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_setchar_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -6568,13 +6597,20 @@ static int iw_setnone_getint(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_setnone_getint(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_setnone_getint(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
static int hdd_set_fwtest(int argc, int cmd, int value)
|
|
static int hdd_set_fwtest(int argc, int cmd, int value)
|
|
@@ -6701,13 +6737,20 @@ int iw_set_three_ints_getnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_three_ints_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_three_ints_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -7381,13 +7424,20 @@ static int iw_get_char_setnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_get_char_setnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_get_char_setnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -7501,13 +7551,20 @@ static int iw_setnone_getnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_setnone_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_setnone_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef MPC_UT_FRAMEWORK
|
|
#ifdef MPC_UT_FRAMEWORK
|
|
@@ -8177,7 +8234,8 @@ static int iw_hdd_set_var_ints_getnone(struct net_device *dev,
|
|
{
|
|
{
|
|
union iwreq_data u_priv_wrqu;
|
|
union iwreq_data u_priv_wrqu;
|
|
int apps_args[MAX_VAR_ARGS] = {0};
|
|
int apps_args[MAX_VAR_ARGS] = {0};
|
|
- int ret, num_args;
|
|
|
|
|
|
+ int errno, num_args;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
|
|
if (!capable(CAP_NET_ADMIN)) {
|
|
if (!capable(CAP_NET_ADMIN)) {
|
|
hdd_err("permission check failed");
|
|
hdd_err("permission check failed");
|
|
@@ -8198,16 +8256,23 @@ static int iw_hdd_set_var_ints_getnone(struct net_device *dev,
|
|
num_args = MAX_VAR_ARGS;
|
|
num_args = MAX_VAR_ARGS;
|
|
|
|
|
|
if (copy_from_user(apps_args, u_priv_wrqu.data.pointer,
|
|
if (copy_from_user(apps_args, u_priv_wrqu.data.pointer,
|
|
- (sizeof(int)) * num_args)) {
|
|
|
|
|
|
+ sizeof(int) * num_args)) {
|
|
hdd_err("failed to copy data from user buffer");
|
|
hdd_err("failed to copy data from user buffer");
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
+
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_var_ints_getnone(dev, info, &u_priv_wrqu,
|
|
|
|
- (char *)&apps_args);
|
|
|
|
|
|
+ errno = __iw_set_var_ints_getnone(dev, info, &u_priv_wrqu,
|
|
|
|
+ (char *)&apps_args);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
- return ret;
|
|
|
|
|
|
+
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8227,12 +8292,20 @@ int iw_set_var_ints_getnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_var_ints_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_var_ints_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
- return ret;
|
|
|
|
|
|
+
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8403,13 +8476,20 @@ static int iw_add_tspec(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_add_tspec(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_add_tspec(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8470,13 +8550,20 @@ static int iw_del_tspec(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_del_tspec(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_del_tspec(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8530,13 +8617,20 @@ static int iw_get_tspec(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_get_tspec(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_get_tspec(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8598,13 +8692,20 @@ static int iw_set_fties(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_fties(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_fties(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8740,13 +8841,20 @@ static int iw_set_host_offload(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_host_offload(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_host_offload(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8832,13 +8940,20 @@ static int iw_set_keepalive_params(struct net_device *dev,
|
|
union iwreq_data *wrqu,
|
|
union iwreq_data *wrqu,
|
|
char *extra)
|
|
char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_keepalive_params(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_keepalive_params(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef WLAN_FEATURE_PACKET_FILTERING
|
|
#ifdef WLAN_FEATURE_PACKET_FILTERING
|
|
@@ -8973,13 +9088,20 @@ static int iw_set_packet_filter_params(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_packet_filter_params(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_packet_filter_params(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -9221,13 +9343,20 @@ static int iw_get_statistics(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_get_statistics(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_get_statistics(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef FEATURE_WLAN_SCAN_PNO
|
|
#ifdef FEATURE_WLAN_SCAN_PNO
|
|
@@ -9568,13 +9697,20 @@ static int iw_set_pno(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_pno(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_pno(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
#endif /* FEATURE_WLAN_SCAN_PNO */
|
|
#endif /* FEATURE_WLAN_SCAN_PNO */
|
|
|
|
|
|
@@ -9606,13 +9742,20 @@ static int iw_set_band_config(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_band_config(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_band_config(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
static int printk_adapter(void *priv, const char *fmt, ...)
|
|
static int printk_adapter(void *priv, const char *fmt, ...)
|
|
@@ -9822,13 +9965,20 @@ static int iw_set_two_ints_getnone(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int errno;
|
|
|
|
+ struct osif_vdev_sync *vdev_sync;
|
|
|
|
+
|
|
|
|
+ errno = osif_vdev_sync_op_start(dev, &vdev_sync);
|
|
|
|
+ if (errno)
|
|
|
|
+ return errno;
|
|
|
|
|
|
cds_ssr_protect(__func__);
|
|
cds_ssr_protect(__func__);
|
|
- ret = __iw_set_two_ints_getnone(dev, info, wrqu, extra);
|
|
|
|
|
|
+ errno = __iw_set_two_ints_getnone(dev, info, wrqu, extra);
|
|
cds_ssr_unprotect(__func__);
|
|
cds_ssr_unprotect(__func__);
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ osif_vdev_sync_op_stop(vdev_sync);
|
|
|
|
+
|
|
|
|
+ return errno;
|
|
}
|
|
}
|
|
|
|
|
|
/* Define the Wireless Extensions to the Linux Network Device structure */
|
|
/* Define the Wireless Extensions to the Linux Network Device structure */
|