]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.14.41/wl18xx-show-rx_frames_per_rates-as-an-array-as-it-really-is.patch
Linux 4.14.107
[thirdparty/kernel/stable-queue.git] / releases / 3.14.41 / wl18xx-show-rx_frames_per_rates-as-an-array-as-it-really-is.patch
1 From a3fa71c40f1853d0c27e8f5bc01a722a705d9682 Mon Sep 17 00:00:00 2001
2 From: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
3 Date: Fri, 13 Mar 2015 15:17:14 +0800
4 Subject: wl18xx: show rx_frames_per_rates as an array as it really is
5
6 From: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
7
8 commit a3fa71c40f1853d0c27e8f5bc01a722a705d9682 upstream.
9
10 In struct wl18xx_acx_rx_rate_stat, rx_frames_per_rates field is an
11 array, not a number. This means WL18XX_DEBUGFS_FWSTATS_FILE can't be
12 used to display this field in debugfs (it would display a pointer, not
13 the actual data). Use WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY instead.
14
15 This bug has been found by adding a __printf attribute to
16 wl1271_format_buffer. gcc complained about "format '%u' expects
17 argument of type 'unsigned int', but argument 5 has type 'u32 *'".
18
19 Fixes: c5d94169e818 ("wl18xx: use new fw stats structures")
20 Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
21 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
22 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23
24 ---
25 drivers/net/wireless/ti/wl18xx/debugfs.c | 2 +-
26 drivers/net/wireless/ti/wlcore/debugfs.h | 4 ++--
27 2 files changed, 3 insertions(+), 3 deletions(-)
28
29 --- a/drivers/net/wireless/ti/wl18xx/debugfs.c
30 +++ b/drivers/net/wireless/ti/wl18xx/debugfs.c
31 @@ -136,7 +136,7 @@ WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, p
32 WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, accum_arp_pend_requests, "%u");
33 WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, max_arp_queue_dep, "%u");
34
35 -WL18XX_DEBUGFS_FWSTATS_FILE(rx_rate, rx_frames_per_rates, "%u");
36 +WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(rx_rate, rx_frames_per_rates, 50);
37
38 WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(aggr_size, tx_agg_vs_rate,
39 AGGR_STATS_TX_AGG*AGGR_STATS_TX_RATE);
40 --- a/drivers/net/wireless/ti/wlcore/debugfs.h
41 +++ b/drivers/net/wireless/ti/wlcore/debugfs.h
42 @@ -26,8 +26,8 @@
43
44 #include "wlcore.h"
45
46 -int wl1271_format_buffer(char __user *userbuf, size_t count,
47 - loff_t *ppos, char *fmt, ...);
48 +__printf(4, 5) int wl1271_format_buffer(char __user *userbuf, size_t count,
49 + loff_t *ppos, char *fmt, ...);
50
51 int wl1271_debugfs_init(struct wl1271 *wl);
52 void wl1271_debugfs_exit(struct wl1271 *wl);