Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: > From: Marty Faltesek <mfaltesek@xxxxxxxxxx> > > Commit 0b8e3c4ca29f ("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@xxxxxxxxx> > Fixes: 0b8e3c4ca29f ("ath10k: move cal data len to hw_params") > Cc: stable@xxxxxxxxxxxxxxx # 4.7+ > Signed-off-by: Marty Faltesek <mfaltesek@xxxxxxxxxx> > [kvalo@xxxxxxxxxxxxxxxx: improve commit log and minor other changes] > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> Patch applied to ath-current branch of ath.git, thanks. f67b107d4ced ath10k: cache calibration data when the core is stopped -- https://patchwork.kernel.org/patch/9369685/ Documentation about submitting wireless patches and checking status from patchwork: https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches