wil6210: remove reference to preset_chandef
The field preset_chandef of wireless_dev must not be accessed by the driver because it is private to cfg80211. Store the monitor channel locally in wil6210_priv instead. Signed-off-by: Lior David <qca_liord@qca.qualcomm.com> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
83957bc3ae
commit
7d3e4dbe57
|
@ -956,9 +956,8 @@ static int wil_cfg80211_set_channel(struct wiphy *wiphy,
|
|||
struct cfg80211_chan_def *chandef)
|
||||
{
|
||||
struct wil6210_priv *wil = wiphy_to_wil(wiphy);
|
||||
struct wireless_dev *wdev = wil_to_wdev(wil);
|
||||
|
||||
wdev->preset_chandef = *chandef;
|
||||
wil->monitor_chandef = *chandef;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -869,7 +869,6 @@ static ssize_t wil_write_file_txmgmt(struct file *file, const char __user *buf,
|
|||
|
||||
params.buf = frame;
|
||||
params.len = len;
|
||||
params.chan = wdev->preset_chandef.chan;
|
||||
|
||||
rc = wil_cfg80211_mgmt_tx(wiphy, wdev, ¶ms, NULL);
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ void *wil_if_alloc(struct device *dev)
|
|||
wdev->iftype = NL80211_IFTYPE_STATION; /* TODO */
|
||||
/* default monitor channel */
|
||||
ch = wdev->wiphy->bands[NL80211_BAND_60GHZ]->channels;
|
||||
cfg80211_chandef_create(&wdev->preset_chandef, ch, NL80211_CHAN_NO_HT);
|
||||
cfg80211_chandef_create(&wil->monitor_chandef, ch, NL80211_CHAN_NO_HT);
|
||||
|
||||
ndev = alloc_netdev(0, "wlan%d", NET_NAME_UNKNOWN, wil_dev_setup);
|
||||
if (!ndev) {
|
||||
|
|
|
@ -348,7 +348,6 @@ static int wil_vring_alloc_skb(struct wil6210_priv *wil, struct vring *vring,
|
|||
static void wil_rx_add_radiotap_header(struct wil6210_priv *wil,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct wireless_dev *wdev = wil->wdev;
|
||||
struct wil6210_rtap {
|
||||
struct ieee80211_radiotap_header rthdr;
|
||||
/* fields should be in the order of bits in rthdr.it_present */
|
||||
|
@ -375,7 +374,7 @@ static void wil_rx_add_radiotap_header(struct wil6210_priv *wil,
|
|||
int rtap_len = sizeof(struct wil6210_rtap);
|
||||
int phy_length = 0; /* phy info header size, bytes */
|
||||
static char phy_data[128];
|
||||
struct ieee80211_channel *ch = wdev->preset_chandef.chan;
|
||||
struct ieee80211_channel *ch = wil->monitor_chandef.chan;
|
||||
|
||||
if (rtap_include_phy_info) {
|
||||
rtap_len = sizeof(*rtap_vendor) + sizeof(*d);
|
||||
|
|
|
@ -655,6 +655,7 @@ struct wil6210_priv {
|
|||
unsigned long last_fw_recovery; /* jiffies of last fw recovery */
|
||||
wait_queue_head_t wq; /* for all wait_event() use */
|
||||
/* profile */
|
||||
struct cfg80211_chan_def monitor_chandef;
|
||||
u32 monitor_flags;
|
||||
u32 privacy; /* secure connection? */
|
||||
u8 hidden_ssid; /* relevant in AP mode */
|
||||
|
|
|
@ -1782,7 +1782,7 @@ int wmi_rx_chain_add(struct wil6210_priv *wil, struct vring *vring)
|
|||
int rc;
|
||||
|
||||
if (wdev->iftype == NL80211_IFTYPE_MONITOR) {
|
||||
struct ieee80211_channel *ch = wdev->preset_chandef.chan;
|
||||
struct ieee80211_channel *ch = wil->monitor_chandef.chan;
|
||||
|
||||
cmd.sniffer_cfg.mode = cpu_to_le32(WMI_SNIFFER_ON);
|
||||
if (ch)
|
||||
|
|
Loading…
Reference in New Issue