wil6210: fix overwriting max_assoc_sta module param
Save the parameter of max_assoc_sta per device. On fw_ready event calculate the max_assoc_sta and save it per device, do not overwrite the max_assoc_sta module param. Signed-off-by: Ahmad Masri <amasri@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
@@ -178,7 +178,7 @@ static int ring_show(struct seq_file *s, void *data)
|
||||
|
||||
snprintf(name, sizeof(name), "tx_%2d", i);
|
||||
|
||||
if (cid < max_assoc_sta)
|
||||
if (cid < wil->max_assoc_sta)
|
||||
seq_printf(s,
|
||||
"\n%pM CID %d TID %d 1x%s BACK([%u] %u TU A%s) [%3d|%3d] idle %s\n",
|
||||
wil->sta[cid].addr, cid, tid,
|
||||
@@ -839,7 +839,7 @@ static ssize_t wil_write_back(struct file *file, const char __user *buf,
|
||||
"BACK: del_rx require at least 2 params\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (p1 < 0 || p1 >= max_assoc_sta) {
|
||||
if (p1 < 0 || p1 >= wil->max_assoc_sta) {
|
||||
wil_err(wil, "BACK: invalid CID %d\n", p1);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -1290,7 +1290,7 @@ static int bf_show(struct seq_file *s, void *data)
|
||||
|
||||
memset(&reply, 0, sizeof(reply));
|
||||
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
u32 status;
|
||||
|
||||
cmd.cid = i;
|
||||
@@ -1387,7 +1387,7 @@ static int link_show(struct seq_file *s, void *data)
|
||||
if (!sinfo)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
struct wil_sta_info *p = &wil->sta[i];
|
||||
char *status = "unknown";
|
||||
struct wil6210_vif *vif;
|
||||
@@ -1589,7 +1589,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
|
||||
struct wil6210_priv *wil = s->private;
|
||||
int i, tid, mcs;
|
||||
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
struct wil_sta_info *p = &wil->sta[i];
|
||||
char *status = "unknown";
|
||||
u8 aid = 0;
|
||||
@@ -1698,7 +1698,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
|
||||
struct wil6210_priv *wil = s->private;
|
||||
int i, bin;
|
||||
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
struct wil_sta_info *p = &wil->sta[i];
|
||||
char *status = "unknown";
|
||||
u8 aid = 0;
|
||||
@@ -1787,7 +1787,7 @@ static ssize_t wil_tx_latency_write(struct file *file, const char __user *buf,
|
||||
size_t sz = sizeof(u64) * WIL_NUM_LATENCY_BINS;
|
||||
|
||||
wil->tx_latency_res = val;
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
struct wil_sta_info *sta = &wil->sta[i];
|
||||
|
||||
kfree(sta->tx_latency_bins);
|
||||
@@ -1872,7 +1872,7 @@ static void wil_link_stats_debugfs_show_vif(struct wil6210_vif *vif,
|
||||
}
|
||||
|
||||
seq_printf(s, "TSF %lld\n", vif->fw_stats_tsf);
|
||||
for (i = 0; i < max_assoc_sta; i++) {
|
||||
for (i = 0; i < wil->max_assoc_sta; i++) {
|
||||
if (wil->sta[i].status == wil_sta_unused)
|
||||
continue;
|
||||
if (wil->sta[i].mid != vif->mid)
|
||||
@@ -2488,7 +2488,7 @@ void wil6210_debugfs_remove(struct wil6210_priv *wil)
|
||||
wil->debug = NULL;
|
||||
|
||||
kfree(wil->dbg_data.data_arr);
|
||||
for (i = 0; i < max_assoc_sta; i++)
|
||||
for (i = 0; i < wil->max_assoc_sta; i++)
|
||||
kfree(wil->sta[i].tx_latency_bins);
|
||||
|
||||
/* free pmc memory without sending command to fw, as it will
|
||||
|
Reference in New Issue
Block a user