diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/debugfs.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/debugfs.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/debugfs.c b/drivers/net/wireless/wl12xx/debugfs.c index 8f88ad6496f9..3309fea2e90e 100644 --- a/drivers/net/wireless/wl12xx/debugfs.c +++ b/drivers/net/wireless/wl12xx/debugfs.c | |||
@@ -620,11 +620,19 @@ static ssize_t beacon_filtering_write(struct file *file, | |||
620 | size_t count, loff_t *ppos) | 620 | size_t count, loff_t *ppos) |
621 | { | 621 | { |
622 | struct wl1271 *wl = file->private_data; | 622 | struct wl1271 *wl = file->private_data; |
623 | struct ieee80211_vif *vif; | ||
624 | struct wl12xx_vif *wlvif; | ||
623 | char buf[10]; | 625 | char buf[10]; |
624 | size_t len; | 626 | size_t len; |
625 | unsigned long value; | 627 | unsigned long value; |
626 | int ret; | 628 | int ret; |
627 | 629 | ||
630 | if (!wl->vif) | ||
631 | return -EINVAL; | ||
632 | |||
633 | vif = wl->vif; | ||
634 | wlvif = wl12xx_vif_to_data(vif); | ||
635 | |||
628 | len = min(count, sizeof(buf) - 1); | 636 | len = min(count, sizeof(buf) - 1); |
629 | if (copy_from_user(buf, user_buf, len)) | 637 | if (copy_from_user(buf, user_buf, len)) |
630 | return -EFAULT; | 638 | return -EFAULT; |
@@ -642,7 +650,7 @@ static ssize_t beacon_filtering_write(struct file *file, | |||
642 | if (ret < 0) | 650 | if (ret < 0) |
643 | goto out; | 651 | goto out; |
644 | 652 | ||
645 | ret = wl1271_acx_beacon_filter_opt(wl, !!value); | 653 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, !!value); |
646 | 654 | ||
647 | wl1271_ps_elp_sleep(wl); | 655 | wl1271_ps_elp_sleep(wl); |
648 | out: | 656 | out: |