diff --git a/os_if/linux/wlan_osif_priv.h b/os_if/linux/wlan_osif_priv.h index f3eb7603d6..44df0416b1 100644 --- a/os_if/linux/wlan_osif_priv.h +++ b/os_if/linux/wlan_osif_priv.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017,2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -20,6 +20,8 @@ #ifndef _WLAN_OSIF_PRIV_H_ #define _WLAN_OSIF_PRIV_H_ +#include "qdf_net_if.h" + struct osif_scan_pdev; struct osif_tdls_vdev; @@ -28,11 +30,13 @@ struct osif_tdls_vdev; * @wiphy: wiphy handle * @legacy_osif_priv: legacy osif private handle * @scan_priv: Scan related data used by cfg80211 scan + * @nif: pdev net device */ struct pdev_osif_priv { struct wiphy *wiphy; void *legacy_osif_priv; struct osif_scan_pdev *osif_scan; + struct qdf_net_if *nif; }; /** diff --git a/qdf/inc/qdf_net_if.h b/qdf/inc/qdf_net_if.h index e0e190929a..5d24ea1abb 100644 --- a/qdf/inc/qdf_net_if.h +++ b/qdf/inc/qdf_net_if.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -48,4 +48,12 @@ qdf_net_if_create_dummy_if(struct qdf_net_if *nif) return __qdf_net_if_create_dummy_if(nif); } #endif + +/** + * qdf_net_if_get_devname() - Retrieve netdevice name + * @nif: Abstraction of netdevice + * + * Return: netdevice name + */ +char *qdf_net_if_get_devname(struct qdf_net_if *nif); #endif /* __QDF_NET_IF_H */ diff --git a/qdf/linux/src/qdf_net_if.c b/qdf/linux/src/qdf_net_if.c index a247c74bf5..41bca1dc69 100644 --- a/qdf/linux/src/qdf_net_if.c +++ b/qdf/linux/src/qdf_net_if.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018,2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -41,3 +41,19 @@ qdf_net_if_create_dummy_if(struct qdf_net_if *nif) } qdf_export_symbol(qdf_net_if_create_dummy_if); + +/** + * qdf_net_if_get_devname() - Retrieve netdevice name + * @nif: Abstraction of netdevice + * + * Return: netdevice name + */ +char *qdf_net_if_get_devname(struct qdf_net_if *nif) +{ + if (!nif) + return NULL; + + return (((struct net_device *)nif)->name); +} + +qdf_export_symbol(qdf_net_if_get_devname); diff --git a/umac/cfr/core/src/cfr_common.c b/umac/cfr/core/src/cfr_common.c index ff6a7a960f..4a77184e4a 100644 --- a/umac/cfr/core/src/cfr_common.c +++ b/umac/cfr/core/src/cfr_common.c @@ -24,10 +24,7 @@ #include #include #include -#ifndef CFR_USE_FIXED_FOLDER -#include -#endif - +#include QDF_STATUS wlan_cfr_psoc_obj_create_handler(struct wlan_objmgr_psoc *psoc, void *arg) @@ -172,44 +169,44 @@ wlan_cfr_peer_obj_destroy_handler(struct wlan_objmgr_peer *peer, void *arg) } #ifdef CFR_USE_FIXED_FOLDER -static const char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) +static char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) { - const char *default_name = "wlan"; + char *default_name = "wlan"; return default_name; } #else -static const char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) +/** + * cfr_get_dev_name() - Get net device name from pdev + * @pdev: objmgr pdev + * + * Return: netdev name + */ +static char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) { - struct pdev_cfr *pa = NULL; - char folder[32]; - struct net_device *pdev_netdev; - struct ol_ath_softc_net80211 *scn; - struct target_pdev_info *tgt_hdl; - const char *default_name = "wlan"; + struct pdev_osif_priv *pdev_ospriv; + struct qdf_net_if *nif; - if (!pdev) { - cfr_err("PDEV is NULL\n"); - return default_name; + pdev_ospriv = wlan_pdev_get_ospriv(pdev); + if (!pdev_ospriv) { + cfr_err("pdev_ospriv is NULL\n"); + return NULL; } - tgt_hdl = wlan_pdev_get_tgt_if_handle(pdev); - - if (!tgt_hdl) { - cfr_err("target_pdev_info is NULL\n"); - return default_name; + nif = pdev_ospriv->nif; + if (!nif) { + cfr_err("pdev nif is NULL\n"); + return NULL; } - scn = target_pdev_get_feature_ptr(tgt_hdl); - pdev_netdev = scn->netdev; - - return pdev_netdev->name; + return qdf_net_if_get_devname(nif); } #endif QDF_STATUS cfr_streamfs_init(struct wlan_objmgr_pdev *pdev) { struct pdev_cfr *pa = NULL; + char *devname; char folder[32]; if (!pdev) { @@ -229,7 +226,13 @@ QDF_STATUS cfr_streamfs_init(struct wlan_objmgr_pdev *pdev) return QDF_STATUS_E_FAILURE; } - snprintf(folder, sizeof(folder), "cfr%s", cfr_get_dev_name(pdev)); + devname = cfr_get_dev_name(pdev); + if (!devname) { + cfr_err("devname is NULL\n"); + return QDF_STATUS_E_FAILURE; + } + + snprintf(folder, sizeof(folder), "cfr%s", devname); pa->dir_ptr = qdf_streamfs_create_dir((const char *)folder, NULL);