qcacld-3.0: Rename hdd_vdev_sync to osif_vdev_sync
Change I556e9d2833edd2bd26266496b6000347649c5fbe moved hdd_dsc to osif, but retained the existing naming. Rename hdd_vdev_sync to a more appropriate osif_vdev_sync, and address any remaining naming problems. Change-Id: Ic0983a79b09254b1615a348fe540f1dc0121baff CRs-Fixed: 2396514
This commit is contained in:
parent
95d5bf502f
commit
2c5e0480c0
@ -5270,21 +5270,21 @@ void hdd_close_adapter(struct hdd_context *hdd_ctx,
|
||||
void hdd_close_all_adapters(struct hdd_context *hdd_ctx, bool rtnl_held)
|
||||
{
|
||||
struct hdd_adapter *adapter;
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
while (QDF_IS_STATUS_SUCCESS(hdd_remove_front_adapter(hdd_ctx,
|
||||
&adapter))) {
|
||||
vdev_sync = hdd_vdev_sync_unregister(adapter->dev);
|
||||
vdev_sync = osif_vdev_sync_unregister(adapter->dev);
|
||||
if (vdev_sync)
|
||||
hdd_vdev_sync_wait_for_ops(vdev_sync);
|
||||
osif_vdev_sync_wait_for_ops(vdev_sync);
|
||||
|
||||
wlan_hdd_release_intf_addr(hdd_ctx, adapter->mac_addr.bytes);
|
||||
__hdd_close_adapter(hdd_ctx, adapter, rtnl_held);
|
||||
|
||||
if (vdev_sync)
|
||||
hdd_vdev_sync_destroy(vdev_sync);
|
||||
osif_vdev_sync_destroy(vdev_sync);
|
||||
}
|
||||
|
||||
hdd_exit();
|
||||
@ -11632,14 +11632,14 @@ static QDF_STATUS hdd_open_adapter_no_trans(struct hdd_context *hdd_ctx,
|
||||
const char *iface_name,
|
||||
uint8_t *mac_addr_bytes)
|
||||
{
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
struct hdd_adapter *adapter;
|
||||
QDF_STATUS status;
|
||||
int errno;
|
||||
|
||||
QDF_BUG(rtnl_is_locked());
|
||||
|
||||
errno = hdd_vdev_sync_create(hdd_ctx->parent_dev, &vdev_sync);
|
||||
errno = osif_vdev_sync_create(hdd_ctx->parent_dev, &vdev_sync);
|
||||
if (errno)
|
||||
return qdf_status_from_os_return(errno);
|
||||
|
||||
@ -11650,12 +11650,12 @@ static QDF_STATUS hdd_open_adapter_no_trans(struct hdd_context *hdd_ctx,
|
||||
goto destroy_sync;
|
||||
}
|
||||
|
||||
hdd_vdev_sync_register(adapter->dev, vdev_sync);
|
||||
osif_vdev_sync_register(adapter->dev, vdev_sync);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
||||
destroy_sync:
|
||||
hdd_vdev_sync_destroy(vdev_sync);
|
||||
osif_vdev_sync_destroy(vdev_sync);
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -12928,7 +12928,7 @@ int hdd_init(void)
|
||||
QDF_STATUS status;
|
||||
int ret;
|
||||
|
||||
hdd_dsc_init();
|
||||
osif_sync_init();
|
||||
|
||||
status = cds_init();
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
@ -12955,7 +12955,7 @@ int hdd_init(void)
|
||||
return 0;
|
||||
|
||||
deinit_dsc:
|
||||
hdd_dsc_deinit();
|
||||
osif_sync_deinit();
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -12979,7 +12979,7 @@ void hdd_deinit(void)
|
||||
wlan_destroy_bug_report_lock();
|
||||
cds_deinit();
|
||||
|
||||
hdd_dsc_deinit();
|
||||
osif_sync_deinit();
|
||||
}
|
||||
|
||||
#ifdef QCA_WIFI_NAPIER_EMULATION
|
||||
|
@ -749,10 +749,10 @@ _wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
|
||||
struct vif_params *params)
|
||||
{
|
||||
struct wireless_dev *wdev;
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
int errno;
|
||||
|
||||
errno = hdd_vdev_sync_create_with_trans(wiphy_dev(wiphy), &vdev_sync);
|
||||
errno = osif_vdev_sync_create_with_trans(wiphy_dev(wiphy), &vdev_sync);
|
||||
if (errno)
|
||||
return ERR_PTR(errno);
|
||||
|
||||
@ -764,14 +764,14 @@ _wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
|
||||
if (IS_ERR_OR_NULL(wdev))
|
||||
goto destroy_sync;
|
||||
|
||||
hdd_vdev_sync_register(wdev->netdev, vdev_sync);
|
||||
hdd_vdev_sync_trans_stop(vdev_sync);
|
||||
osif_vdev_sync_register(wdev->netdev, vdev_sync);
|
||||
osif_vdev_sync_trans_stop(vdev_sync);
|
||||
|
||||
return wdev;
|
||||
|
||||
destroy_sync:
|
||||
hdd_vdev_sync_trans_stop(vdev_sync);
|
||||
hdd_vdev_sync_destroy(vdev_sync);
|
||||
osif_vdev_sync_trans_stop(vdev_sync);
|
||||
osif_vdev_sync_destroy(vdev_sync);
|
||||
|
||||
return wdev;
|
||||
}
|
||||
@ -864,21 +864,21 @@ int __wlan_hdd_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev)
|
||||
int wlan_hdd_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev)
|
||||
{
|
||||
int errno;
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
|
||||
errno = hdd_vdev_sync_trans_start_wait(wdev->netdev, &vdev_sync);
|
||||
errno = osif_vdev_sync_trans_start_wait(wdev->netdev, &vdev_sync);
|
||||
if (errno)
|
||||
return errno;
|
||||
|
||||
hdd_vdev_sync_unregister(wdev->netdev);
|
||||
hdd_vdev_sync_wait_for_ops(vdev_sync);
|
||||
osif_vdev_sync_unregister(wdev->netdev);
|
||||
osif_vdev_sync_wait_for_ops(vdev_sync);
|
||||
|
||||
cds_ssr_protect(__func__);
|
||||
errno = __wlan_hdd_del_virtual_intf(wiphy, wdev);
|
||||
cds_ssr_unprotect(__func__);
|
||||
|
||||
hdd_vdev_sync_trans_stop(vdev_sync);
|
||||
hdd_vdev_sync_destroy(vdev_sync);
|
||||
osif_vdev_sync_trans_stop(vdev_sync);
|
||||
osif_vdev_sync_destroy(vdev_sync);
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
@ -24,18 +24,18 @@
|
||||
#include "osif_vdev_sync.h"
|
||||
|
||||
/**
|
||||
* hdd_dsc_init() - global initializer for HDD DSC
|
||||
* osif_sync_init() - global initializer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void hdd_dsc_init(void);
|
||||
void osif_sync_init(void);
|
||||
|
||||
/**
|
||||
* hdd_dsc_deinit() - global deinitializer for HDD DSC
|
||||
* osif_sync_deinit() - global de-initializer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void hdd_dsc_deinit(void);
|
||||
void osif_sync_deinit(void);
|
||||
|
||||
#endif /* __OSIF_SYNC_H */
|
||||
|
||||
|
@ -24,22 +24,23 @@
|
||||
#include "qdf_types.h"
|
||||
|
||||
/**
|
||||
* struct hdd_vdev_sync - opaque synchronization handle for a vdev
|
||||
* struct osif_vdev_sync - opaque synchronization handle for a vdev
|
||||
*/
|
||||
struct hdd_vdev_sync;
|
||||
struct osif_vdev_sync;
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_create() - create a vdev synchronization context
|
||||
* osif_vdev_sync_create() - create a vdev synchronization context
|
||||
* @dev: parent device to the vdev
|
||||
* @out_vdev_sync: out parameter for the new synchronization context
|
||||
*
|
||||
* Return: Errno
|
||||
*/
|
||||
qdf_must_check int
|
||||
hdd_vdev_sync_create(struct device *dev, struct hdd_vdev_sync **out_vdev_sync);
|
||||
osif_vdev_sync_create(struct device *dev,
|
||||
struct osif_vdev_sync **out_vdev_sync);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_create_with_trans() - create a vdev synchronization context
|
||||
* osif_vdev_sync_create_with_trans() - create a vdev synchronization context
|
||||
* @dev: parent device to the vdev
|
||||
* @out_vdev_sync: out parameter for the new synchronization context
|
||||
*
|
||||
@ -47,125 +48,125 @@ hdd_vdev_sync_create(struct device *dev, struct hdd_vdev_sync **out_vdev_sync);
|
||||
*
|
||||
* Return: Errno
|
||||
*/
|
||||
#define hdd_vdev_sync_create_with_trans(dev, out_vdev_sync) \
|
||||
__hdd_vdev_sync_create_with_trans(dev, out_vdev_sync, __func__)
|
||||
#define osif_vdev_sync_create_with_trans(dev, out_vdev_sync) \
|
||||
__osif_vdev_sync_create_with_trans(dev, out_vdev_sync, __func__)
|
||||
|
||||
qdf_must_check int
|
||||
__hdd_vdev_sync_create_with_trans(struct device *dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
__osif_vdev_sync_create_with_trans(struct device *dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_destroy() - destroy a vdev synchronization context
|
||||
* osif_vdev_sync_destroy() - destroy a vdev synchronization context
|
||||
* @vdev_sync: the context to destroy
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void hdd_vdev_sync_destroy(struct hdd_vdev_sync *vdev_sync);
|
||||
void osif_vdev_sync_destroy(struct osif_vdev_sync *vdev_sync);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_register() - register a vdev for operations/transitions
|
||||
* osif_vdev_sync_register() - register a vdev for operations/transitions
|
||||
* @net_dev: the net_device to use as the operation/transition lookup key
|
||||
* @vdev_sync: the vdev synchronization context to register
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void hdd_vdev_sync_register(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync *vdev_sync);
|
||||
void osif_vdev_sync_register(struct net_device *net_dev,
|
||||
struct osif_vdev_sync *vdev_sync);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_unregister() - unregister a vdev for operations/transitions
|
||||
* osif_vdev_sync_unregister() - unregister a vdev for operations/transitions
|
||||
* @net_dev: the net_device originally used to register the vdev_sync context
|
||||
*
|
||||
* Return: the vdev synchronization context that was registered for @net_dev
|
||||
*/
|
||||
struct hdd_vdev_sync *hdd_vdev_sync_unregister(struct net_device *net_dev);
|
||||
struct osif_vdev_sync *osif_vdev_sync_unregister(struct net_device *net_dev);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_trans_start() - attempt to start a transition on @net_dev
|
||||
* osif_vdev_sync_trans_start() - attempt to start a transition on @net_dev
|
||||
* @net_dev: the net_device to transition
|
||||
* @out_vdev_sync: out parameter for the synchronization context registered with
|
||||
* @net_dev, populated on success
|
||||
*
|
||||
* Return: Errno
|
||||
*/
|
||||
#define hdd_vdev_sync_trans_start(net_dev, out_vdev_sync) \
|
||||
__hdd_vdev_sync_trans_start(net_dev, out_vdev_sync, __func__)
|
||||
#define osif_vdev_sync_trans_start(net_dev, out_vdev_sync) \
|
||||
__osif_vdev_sync_trans_start(net_dev, out_vdev_sync, __func__)
|
||||
|
||||
qdf_must_check int
|
||||
__hdd_vdev_sync_trans_start(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
__osif_vdev_sync_trans_start(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_trans_start_wait() - attempt to start a transition on @net_dev,
|
||||
* blocking if a conflicting transition is in flight
|
||||
* osif_vdev_sync_trans_start_wait() - attempt to start a transition on
|
||||
* @net_dev, blocking if a conflicting transition is in flight
|
||||
* @net_dev: the net_device to transition
|
||||
* @out_vdev_sync: out parameter for the synchronization context registered with
|
||||
* @net_dev, populated on success
|
||||
*
|
||||
* Return: Errno
|
||||
*/
|
||||
#define hdd_vdev_sync_trans_start_wait(net_dev, out_vdev_sync) \
|
||||
__hdd_vdev_sync_trans_start_wait(net_dev, out_vdev_sync, __func__)
|
||||
#define osif_vdev_sync_trans_start_wait(net_dev, out_vdev_sync) \
|
||||
__osif_vdev_sync_trans_start_wait(net_dev, out_vdev_sync, __func__)
|
||||
|
||||
qdf_must_check int
|
||||
__hdd_vdev_sync_trans_start_wait(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
__osif_vdev_sync_trans_start_wait(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_trans_stop() - stop a transition associated with @vdev_sync
|
||||
* osif_vdev_sync_trans_stop() - stop a transition associated with @vdev_sync
|
||||
* @vdev_sync: the synchonization context tracking the transition
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void hdd_vdev_sync_trans_stop(struct hdd_vdev_sync *vdev_sync);
|
||||
void osif_vdev_sync_trans_stop(struct osif_vdev_sync *vdev_sync);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_assert_trans_protected() - assert that @net_dev is currently
|
||||
* osif_vdev_sync_assert_trans_protected() - assert that @net_dev is currently
|
||||
* protected by a transition
|
||||
* @net_dev: the net_device to check
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void hdd_vdev_sync_assert_trans_protected(struct net_device *net_dev);
|
||||
void osif_vdev_sync_assert_trans_protected(struct net_device *net_dev);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_op_start() - attempt to start an operation on @net_dev
|
||||
* osif_vdev_sync_op_start() - attempt to start an operation on @net_dev
|
||||
* @net_dev: the net_device to operate against
|
||||
* @out_vdev_sync: out parameter for the synchronization context registered with
|
||||
* @net_dev, populated on success
|
||||
*
|
||||
* Return: Errno
|
||||
*/
|
||||
#define hdd_vdev_sync_op_start(net_dev, out_vdev_sync) \
|
||||
__hdd_vdev_sync_op_start(net_dev, out_vdev_sync, __func__)
|
||||
#define osif_vdev_sync_op_start(net_dev, out_vdev_sync) \
|
||||
__osif_vdev_sync_op_start(net_dev, out_vdev_sync, __func__)
|
||||
|
||||
qdf_must_check int
|
||||
__hdd_vdev_sync_op_start(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *func);
|
||||
__osif_vdev_sync_op_start(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *func);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_op_stop() - stop an operation associated with @vdev_sync
|
||||
* osif_vdev_sync_op_stop() - stop an operation associated with @vdev_sync
|
||||
* @vdev_sync: the synchonization context tracking the operation
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
#define hdd_vdev_sync_op_stop(net_dev) \
|
||||
__hdd_vdev_sync_op_stop(net_dev, __func__)
|
||||
#define osif_vdev_sync_op_stop(net_dev) \
|
||||
__osif_vdev_sync_op_stop(net_dev, __func__)
|
||||
|
||||
void __hdd_vdev_sync_op_stop(struct hdd_vdev_sync *vdev_sync,
|
||||
const char *func);
|
||||
void __osif_vdev_sync_op_stop(struct osif_vdev_sync *vdev_sync,
|
||||
const char *func);
|
||||
|
||||
/**
|
||||
* hdd_vdev_sync_wait_for_ops() - wait until all @vdev_sync operations complete
|
||||
* osif_vdev_sync_wait_for_ops() - wait until all @vdev_sync operations complete
|
||||
* @vdev_sync: the synchonization context tracking the operations
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void hdd_vdev_sync_wait_for_ops(struct hdd_vdev_sync *vdev_sync);
|
||||
void osif_vdev_sync_wait_for_ops(struct osif_vdev_sync *vdev_sync);
|
||||
|
||||
#endif /* __OSIF_VDEV_SYNC_H */
|
||||
|
||||
|
@ -20,13 +20,13 @@
|
||||
#include "__osif_vdev_sync.h"
|
||||
#include "osif_sync.h"
|
||||
|
||||
void hdd_dsc_init(void)
|
||||
void osif_sync_init(void)
|
||||
{
|
||||
osif_psoc_sync_init();
|
||||
osif_vdev_sync_init();
|
||||
}
|
||||
|
||||
void hdd_dsc_deinit(void)
|
||||
void osif_sync_deinit(void)
|
||||
{
|
||||
osif_vdev_sync_deinit();
|
||||
osif_psoc_sync_deinit();
|
||||
|
@ -27,35 +27,36 @@
|
||||
#include "qdf_util.h"
|
||||
|
||||
/**
|
||||
* struct hdd_vdev_sync - a vdev synchronization context
|
||||
* struct osif_vdev_sync - a vdev synchronization context
|
||||
* @net_dev: the net_device used as a lookup key
|
||||
* @dsc_vdev: the dsc_vdev used for synchronization
|
||||
* @in_use: indicates if the context is being used
|
||||
*/
|
||||
struct hdd_vdev_sync {
|
||||
struct osif_vdev_sync {
|
||||
struct net_device *net_dev;
|
||||
struct dsc_vdev *dsc_vdev;
|
||||
bool in_use;
|
||||
};
|
||||
|
||||
static struct hdd_vdev_sync __hdd_vdev_sync_arr[WLAN_MAX_VDEVS];
|
||||
static qdf_spinlock_t __hdd_vdev_sync_lock;
|
||||
static struct osif_vdev_sync __osif_vdev_sync_arr[WLAN_MAX_VDEVS];
|
||||
static qdf_spinlock_t __osif_vdev_sync_lock;
|
||||
|
||||
#define hdd_vdev_sync_lock_create() qdf_spinlock_create(&__hdd_vdev_sync_lock)
|
||||
#define hdd_vdev_sync_lock_destroy() qdf_spinlock_destroy(&__hdd_vdev_sync_lock)
|
||||
#define hdd_vdev_sync_lock() qdf_spin_lock_bh(&__hdd_vdev_sync_lock)
|
||||
#define hdd_vdev_sync_unlock() qdf_spin_unlock_bh(&__hdd_vdev_sync_lock)
|
||||
#define hdd_vdev_sync_lock_assert() \
|
||||
QDF_BUG(qdf_spin_is_locked(&__hdd_vdev_sync_lock))
|
||||
#define osif_vdev_sync_lock_create() qdf_spinlock_create(&__osif_vdev_sync_lock)
|
||||
#define osif_vdev_sync_lock_destroy() \
|
||||
qdf_spinlock_destroy(&__osif_vdev_sync_lock)
|
||||
#define osif_vdev_sync_lock() qdf_spin_lock_bh(&__osif_vdev_sync_lock)
|
||||
#define osif_vdev_sync_unlock() qdf_spin_unlock_bh(&__osif_vdev_sync_lock)
|
||||
#define osif_vdev_sync_lock_assert() \
|
||||
QDF_BUG(qdf_spin_is_locked(&__osif_vdev_sync_lock))
|
||||
|
||||
static struct hdd_vdev_sync *hdd_vdev_sync_lookup(struct net_device *net_dev)
|
||||
static struct osif_vdev_sync *osif_vdev_sync_lookup(struct net_device *net_dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
hdd_vdev_sync_lock_assert();
|
||||
osif_vdev_sync_lock_assert();
|
||||
|
||||
for (i = 0; i < QDF_ARRAY_SIZE(__hdd_vdev_sync_arr); i++) {
|
||||
struct hdd_vdev_sync *vdev_sync = __hdd_vdev_sync_arr + i;
|
||||
for (i = 0; i < QDF_ARRAY_SIZE(__osif_vdev_sync_arr); i++) {
|
||||
struct osif_vdev_sync *vdev_sync = __osif_vdev_sync_arr + i;
|
||||
|
||||
if (vdev_sync->net_dev == net_dev)
|
||||
return vdev_sync;
|
||||
@ -64,14 +65,14 @@ static struct hdd_vdev_sync *hdd_vdev_sync_lookup(struct net_device *net_dev)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct hdd_vdev_sync *hdd_vdev_sync_get(void)
|
||||
static struct osif_vdev_sync *osif_vdev_sync_get(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
hdd_vdev_sync_lock_assert();
|
||||
osif_vdev_sync_lock_assert();
|
||||
|
||||
for (i = 0; i < QDF_ARRAY_SIZE(__hdd_vdev_sync_arr); i++) {
|
||||
struct hdd_vdev_sync *vdev_sync = __hdd_vdev_sync_arr + i;
|
||||
for (i = 0; i < QDF_ARRAY_SIZE(__osif_vdev_sync_arr); i++) {
|
||||
struct osif_vdev_sync *vdev_sync = __osif_vdev_sync_arr + i;
|
||||
|
||||
if (!vdev_sync->in_use) {
|
||||
vdev_sync->in_use = true;
|
||||
@ -82,17 +83,17 @@ static struct hdd_vdev_sync *hdd_vdev_sync_get(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void hdd_vdev_sync_put(struct hdd_vdev_sync *vdev_sync)
|
||||
static void osif_vdev_sync_put(struct osif_vdev_sync *vdev_sync)
|
||||
{
|
||||
hdd_vdev_sync_lock_assert();
|
||||
osif_vdev_sync_lock_assert();
|
||||
|
||||
qdf_mem_zero(vdev_sync, sizeof(*vdev_sync));
|
||||
}
|
||||
|
||||
int hdd_vdev_sync_create(struct device *dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync)
|
||||
int osif_vdev_sync_create(struct device *dev,
|
||||
struct osif_vdev_sync **out_vdev_sync)
|
||||
{
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
QDF_STATUS status;
|
||||
|
||||
QDF_BUG(dev);
|
||||
@ -103,9 +104,9 @@ int hdd_vdev_sync_create(struct device *dev,
|
||||
if (!out_vdev_sync)
|
||||
return -EINVAL;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
vdev_sync = hdd_vdev_sync_get();
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
vdev_sync = osif_vdev_sync_get();
|
||||
osif_vdev_sync_unlock();
|
||||
if (!vdev_sync)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -118,22 +119,22 @@ int hdd_vdev_sync_create(struct device *dev,
|
||||
return 0;
|
||||
|
||||
sync_put:
|
||||
hdd_vdev_sync_lock();
|
||||
hdd_vdev_sync_put(vdev_sync);
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
osif_vdev_sync_put(vdev_sync);
|
||||
osif_vdev_sync_unlock();
|
||||
|
||||
return qdf_status_to_os_return(status);
|
||||
}
|
||||
|
||||
int __hdd_vdev_sync_create_with_trans(struct device *dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
int __osif_vdev_sync_create_with_trans(struct device *dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
{
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
QDF_STATUS status;
|
||||
int errno;
|
||||
|
||||
errno = hdd_vdev_sync_create(dev, &vdev_sync);
|
||||
errno = osif_vdev_sync_create(dev, &vdev_sync);
|
||||
if (errno)
|
||||
return errno;
|
||||
|
||||
@ -146,12 +147,12 @@ int __hdd_vdev_sync_create_with_trans(struct device *dev,
|
||||
return 0;
|
||||
|
||||
sync_destroy:
|
||||
hdd_vdev_sync_destroy(vdev_sync);
|
||||
osif_vdev_sync_destroy(vdev_sync);
|
||||
|
||||
return qdf_status_to_os_return(status);
|
||||
}
|
||||
|
||||
void hdd_vdev_sync_destroy(struct hdd_vdev_sync *vdev_sync)
|
||||
void osif_vdev_sync_destroy(struct osif_vdev_sync *vdev_sync)
|
||||
{
|
||||
QDF_BUG(vdev_sync);
|
||||
if (!vdev_sync)
|
||||
@ -159,56 +160,57 @@ void hdd_vdev_sync_destroy(struct hdd_vdev_sync *vdev_sync)
|
||||
|
||||
dsc_vdev_destroy(&vdev_sync->dsc_vdev);
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
hdd_vdev_sync_put(vdev_sync);
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
osif_vdev_sync_put(vdev_sync);
|
||||
osif_vdev_sync_unlock();
|
||||
}
|
||||
|
||||
void hdd_vdev_sync_register(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync *vdev_sync)
|
||||
void osif_vdev_sync_register(struct net_device *net_dev,
|
||||
struct osif_vdev_sync *vdev_sync)
|
||||
{
|
||||
QDF_BUG(net_dev);
|
||||
QDF_BUG(vdev_sync);
|
||||
if (!vdev_sync)
|
||||
return;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
osif_vdev_sync_lock();
|
||||
vdev_sync->net_dev = net_dev;
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_unlock();
|
||||
}
|
||||
|
||||
struct hdd_vdev_sync *hdd_vdev_sync_unregister(struct net_device *net_dev)
|
||||
struct osif_vdev_sync *osif_vdev_sync_unregister(struct net_device *net_dev)
|
||||
{
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
|
||||
QDF_BUG(net_dev);
|
||||
if (!net_dev)
|
||||
return NULL;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
vdev_sync = hdd_vdev_sync_lookup(net_dev);
|
||||
osif_vdev_sync_lock();
|
||||
vdev_sync = osif_vdev_sync_lookup(net_dev);
|
||||
if (vdev_sync)
|
||||
vdev_sync->net_dev = NULL;
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_unlock();
|
||||
|
||||
return vdev_sync;
|
||||
}
|
||||
|
||||
typedef QDF_STATUS (*vdev_start_func)(struct dsc_vdev *, const char *);
|
||||
|
||||
static int __hdd_vdev_sync_start_callback(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc,
|
||||
vdev_start_func vdev_start_cb)
|
||||
static int
|
||||
__osif_vdev_sync_start_callback(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc,
|
||||
vdev_start_func vdev_start_cb)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
|
||||
hdd_vdev_sync_lock_assert();
|
||||
osif_vdev_sync_lock_assert();
|
||||
|
||||
*out_vdev_sync = NULL;
|
||||
|
||||
vdev_sync = hdd_vdev_sync_lookup(net_dev);
|
||||
vdev_sync = osif_vdev_sync_lookup(net_dev);
|
||||
if (!vdev_sync)
|
||||
return -EAGAIN;
|
||||
|
||||
@ -221,85 +223,85 @@ static int __hdd_vdev_sync_start_callback(struct net_device *net_dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __hdd_vdev_sync_trans_start(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
int __osif_vdev_sync_trans_start(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
{
|
||||
int errno;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
errno = __hdd_vdev_sync_start_callback(net_dev, out_vdev_sync, desc,
|
||||
dsc_vdev_trans_start);
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
errno = __osif_vdev_sync_start_callback(net_dev, out_vdev_sync, desc,
|
||||
dsc_vdev_trans_start);
|
||||
osif_vdev_sync_unlock();
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
||||
int __hdd_vdev_sync_trans_start_wait(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
int __osif_vdev_sync_trans_start_wait(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *desc)
|
||||
{
|
||||
int errno;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
errno = __hdd_vdev_sync_start_callback(net_dev, out_vdev_sync, desc,
|
||||
dsc_vdev_trans_start_wait);
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
errno = __osif_vdev_sync_start_callback(net_dev, out_vdev_sync, desc,
|
||||
dsc_vdev_trans_start_wait);
|
||||
osif_vdev_sync_unlock();
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
||||
void hdd_vdev_sync_trans_stop(struct hdd_vdev_sync *vdev_sync)
|
||||
void osif_vdev_sync_trans_stop(struct osif_vdev_sync *vdev_sync)
|
||||
{
|
||||
dsc_vdev_trans_stop(vdev_sync->dsc_vdev);
|
||||
}
|
||||
|
||||
void hdd_vdev_sync_assert_trans_protected(struct net_device *net_dev)
|
||||
void osif_vdev_sync_assert_trans_protected(struct net_device *net_dev)
|
||||
{
|
||||
struct hdd_vdev_sync *vdev_sync;
|
||||
struct osif_vdev_sync *vdev_sync;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
osif_vdev_sync_lock();
|
||||
|
||||
vdev_sync = hdd_vdev_sync_lookup(net_dev);
|
||||
vdev_sync = osif_vdev_sync_lookup(net_dev);
|
||||
QDF_BUG(vdev_sync);
|
||||
if (vdev_sync)
|
||||
dsc_vdev_assert_trans_protected(vdev_sync->dsc_vdev);
|
||||
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_unlock();
|
||||
}
|
||||
|
||||
int __hdd_vdev_sync_op_start(struct net_device *net_dev,
|
||||
struct hdd_vdev_sync **out_vdev_sync,
|
||||
const char *func)
|
||||
int __osif_vdev_sync_op_start(struct net_device *net_dev,
|
||||
struct osif_vdev_sync **out_vdev_sync,
|
||||
const char *func)
|
||||
{
|
||||
int errno;
|
||||
|
||||
hdd_vdev_sync_lock();
|
||||
errno = __hdd_vdev_sync_start_callback(net_dev, out_vdev_sync, func,
|
||||
_dsc_vdev_op_start);
|
||||
hdd_vdev_sync_unlock();
|
||||
osif_vdev_sync_lock();
|
||||
errno = __osif_vdev_sync_start_callback(net_dev, out_vdev_sync, func,
|
||||
_dsc_vdev_op_start);
|
||||
osif_vdev_sync_unlock();
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
||||
void __hdd_vdev_sync_op_stop(struct hdd_vdev_sync *vdev_sync,
|
||||
const char *func)
|
||||
void __osif_vdev_sync_op_stop(struct osif_vdev_sync *vdev_sync,
|
||||
const char *func)
|
||||
{
|
||||
_dsc_vdev_op_stop(vdev_sync->dsc_vdev, func);
|
||||
}
|
||||
|
||||
void hdd_vdev_sync_wait_for_ops(struct hdd_vdev_sync *vdev_sync)
|
||||
void osif_vdev_sync_wait_for_ops(struct osif_vdev_sync *vdev_sync)
|
||||
{
|
||||
dsc_vdev_wait_for_ops(vdev_sync->dsc_vdev);
|
||||
}
|
||||
|
||||
void osif_vdev_sync_init(void)
|
||||
{
|
||||
hdd_vdev_sync_lock_create();
|
||||
osif_vdev_sync_lock_create();
|
||||
}
|
||||
|
||||
void osif_vdev_sync_deinit(void)
|
||||
{
|
||||
hdd_vdev_sync_lock_destroy();
|
||||
osif_vdev_sync_lock_destroy();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user