linux/drivers/net/wireless
Marty Faltesek f67b107d4c ath10k: cache calibration data when the core is stopped
Commit 0b8e3c4ca2 ("ath10k: move cal data len to hw_params") broke retrieving
the calibration data from cal_data debugfs file. The length of file was always
zero. The reason is:

    static ssize_t ath10k_debug_cal_data_read(struct file *file,
                                          char __user *user_buf,
                                          size_t count, loff_t *ppos)
    {
        struct ath10k *ar = file->private_data;
        void *buf = file->private_data;

This is obviously bogus, private_data cannot contain both struct ath10k and the
buffer. Fix it by caching calibration data to ar->debug.cal_data. This also
allows it to be accessed when the device is not active (interface is down).

The cal_data buffer is fixed size because during the first firmware probe we
don't yet know what will be the lenght of the calibration data. It was simplest
just to use a fixed length. There's a WARN_ON() in
ath10k_debug_cal_data_fetch() if the buffer is too small.

Tested with qca988x and firmware 10.2.4.70.56.

Reported-by: Nikolay Martynov <mar.kolya@gmail.com>
Fixes: 0b8e3c4ca2 ("ath10k: move cal data len to hw_params")
Cc: stable@vger.kernel.org # 4.7+
Signed-off-by: Marty Faltesek <mfaltesek@google.com>
[kvalo@qca.qualcomm.com: improve commit log and minor other changes]
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-10-13 14:06:20 +03:00
..
admtek cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ath ath10k: cache calibration data when the core is stopped 2016-10-13 14:06:20 +03:00
atmel mac80211: Add support for beacon report radio measurement 2016-07-06 14:53:19 +02:00
broadcom brcmfmac: use correct skb freeing helper when deleting flowring 2016-09-27 18:47:55 +03:00
cisco wireless: airo: rename 'register' variable 2016-06-29 18:56:20 +03:00
intel wireless-drivers-next patches for 4.9 2016-09-30 01:31:51 -04:00
intersil hostap: Use memdup_user() to reuse code 2016-09-03 12:54:53 +03:00
marvell mwifiex: code rearrangement in mwifiex_usb_host_to_card() 2016-09-26 20:39:43 +03:00
mediatek mt7601u: use linux/bitfield.h 2016-09-09 12:09:25 +03:00
ralink rt2x00usb: Fix error return code 2016-09-03 13:06:49 +03:00
realtek rtlwifi: Fix regression caused by commit d86e647688 2016-10-13 13:22:13 +03:00
rsi rsi: eliminate superfluous NULL check 2016-06-14 17:17:58 +03:00
st mac80211: Add support for beacon report radio measurement 2016-07-06 14:53:19 +02:00
ti wlcore: sdio: drop kfree for memory allocated with devm_kzalloc 2016-10-05 19:05:14 +03:00
zydas zd1211rw: fix spelling mistake "firmeware" -> "firmware" 2016-09-03 19:59:56 +03:00
Kconfig mac80211_hwsim: move Kconfig entry for sorting alphabetically 2015-11-18 15:23:36 +02:00
mac80211_hwsim.c mac80211_hwsim: statically initialize hwsim_radios list 2016-09-16 14:49:43 +02:00
mac80211_hwsim.h drivers/wireless: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
Makefile ath: unify Kconfig with other vendors 2015-11-18 14:28:31 +02:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c nl80211: support beacon report scanning 2016-07-06 14:51:31 +02:00
wl3501_cs.c wl3501_cs: Add spinlock to wl3501_reset 2016-09-03 13:01:18 +03:00
wl3501.h