文件
android_kernel_samsung_sm86…/os_if/linux/wlan_osif_priv.h
Arun Kumar Khandavalli 992242a17a qcacmn: cleanup scan queue in case of SSR & iff going down
When the SSR and interface down happen in parallel,
the driver rejects the interface down since the
recovery is in progress. Kernel ignores the -EAGAIN
request from the driver and as part of NET_DOWN notification
in cfg80211_netdown_notifer the kernel invokes the
___cfg80211_scan_done to free the request but doesn't not send
scan_result indication, since it expects the scan_done work to
get scheduled and then broadcast the request to upperlayer.

The scan done checks currently only if the interface is up replace
it with driver specific internal driver state.

Change-Id: I0e5ac319783b9c1a69e7e19674f76f20da1d1590
CRs-Fixed: 3202812
2022-06-10 21:50:46 -07:00

76 行
2.3 KiB
C

/*
* Copyright (c) 2016-2017,2020-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _WLAN_OSIF_PRIV_H_
#define _WLAN_OSIF_PRIV_H_
#include "qdf_net_if.h"
#include "wlan_cm_public_struct.h"
#include <qca_vendor.h>
struct osif_scan_pdev;
struct osif_tdls_vdev;
/**
* struct pdev_osif_priv - OS private structure
* @wiphy: wiphy handle
* @legacy_osif_priv: legacy osif private handle
* @scan_priv: Scan related data used by cfg80211 scan
* @nif: pdev net device
* @osif_check_netdev_state: check driver internal netdev state
*/
struct pdev_osif_priv {
struct wiphy *wiphy;
void *legacy_osif_priv;
struct osif_scan_pdev *osif_scan;
struct qdf_net_if *nif;
int (*osif_check_netdev_state)(struct net_device *netdev);
};
/**
* struct osif_cm_info - osif connection manager info
* @last_source: Last command request source
* @last_id: Last command from connection manager
* @cmd_id_lock: lock to update and read last command source
* @ext_priv: legacy data pointer.
*/
struct osif_cm_info {
enum wlan_cm_source last_source;
wlan_cm_id last_id;
struct qdf_spinlock cmd_id_lock;
void *ext_priv;
};
/**
* struct vdev_osif_priv - OS private structure of vdev
* @wdev: wireless device handle
* @legacy_osif_priv: legacy osif private handle
* @osif_tdls: osif tdls info
* @cm_info: osif connection manager info
*/
struct vdev_osif_priv {
struct wireless_dev *wdev;
void *legacy_osif_priv;
struct osif_tdls_vdev *osif_tdls;
struct osif_cm_info cm_info;
};
#endif