diff options
Diffstat (limited to 'drivers/net/wireless/libertas/debugfs.c')
-rw-r--r-- | drivers/net/wireless/libertas/debugfs.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c index 893a55ca344a..8a7e9319c9e5 100644 --- a/drivers/net/wireless/libertas/debugfs.c +++ b/drivers/net/wireless/libertas/debugfs.c | |||
@@ -117,6 +117,11 @@ static ssize_t lbs_sleepparams_write(struct file *file, | |||
117 | if (!buf) | 117 | if (!buf) |
118 | return -ENOMEM; | 118 | return -ENOMEM; |
119 | 119 | ||
120 | if (!lbs_is_cmd_allowed(priv)) { | ||
121 | ret = -EBUSY; | ||
122 | goto out_unlock; | ||
123 | } | ||
124 | |||
120 | buf_size = min(count, len - 1); | 125 | buf_size = min(count, len - 1); |
121 | if (copy_from_user(buf, user_buf, buf_size)) { | 126 | if (copy_from_user(buf, user_buf, buf_size)) { |
122 | ret = -EFAULT; | 127 | ret = -EFAULT; |
@@ -157,6 +162,11 @@ static ssize_t lbs_sleepparams_read(struct file *file, char __user *userbuf, | |||
157 | if (!buf) | 162 | if (!buf) |
158 | return -ENOMEM; | 163 | return -ENOMEM; |
159 | 164 | ||
165 | if (!lbs_is_cmd_allowed(priv)) { | ||
166 | ret = -EBUSY; | ||
167 | goto out_unlock; | ||
168 | } | ||
169 | |||
160 | ret = lbs_cmd_802_11_sleep_params(priv, CMD_ACT_GET, &sp); | 170 | ret = lbs_cmd_802_11_sleep_params(priv, CMD_ACT_GET, &sp); |
161 | if (ret) | 171 | if (ret) |
162 | goto out_unlock; | 172 | goto out_unlock; |
@@ -223,6 +233,9 @@ static ssize_t lbs_threshold_read(uint16_t tlv_type, uint16_t event_mask, | |||
223 | u8 freq; | 233 | u8 freq; |
224 | int events = 0; | 234 | int events = 0; |
225 | 235 | ||
236 | if (!lbs_is_cmd_allowed(priv)) | ||
237 | return -EBUSY; | ||
238 | |||
226 | buf = (char *)get_zeroed_page(GFP_KERNEL); | 239 | buf = (char *)get_zeroed_page(GFP_KERNEL); |
227 | if (!buf) | 240 | if (!buf) |
228 | return -ENOMEM; | 241 | return -ENOMEM; |
@@ -275,6 +288,9 @@ static ssize_t lbs_threshold_write(uint16_t tlv_type, uint16_t event_mask, | |||
275 | char *buf; | 288 | char *buf; |
276 | int ret; | 289 | int ret; |
277 | 290 | ||
291 | if (!lbs_is_cmd_allowed(priv)) | ||
292 | return -EBUSY; | ||
293 | |||
278 | buf = (char *)get_zeroed_page(GFP_KERNEL); | 294 | buf = (char *)get_zeroed_page(GFP_KERNEL); |
279 | if (!buf) | 295 | if (!buf) |
280 | return -ENOMEM; | 296 | return -ENOMEM; |
@@ -444,6 +460,11 @@ static ssize_t lbs_rdmac_read(struct file *file, char __user *userbuf, | |||
444 | if (!buf) | 460 | if (!buf) |
445 | return -ENOMEM; | 461 | return -ENOMEM; |
446 | 462 | ||
463 | if (!lbs_is_cmd_allowed(priv)) { | ||
464 | free_page(addr); | ||
465 | return -EBUSY; | ||
466 | } | ||
467 | |||
447 | offval.offset = priv->mac_offset; | 468 | offval.offset = priv->mac_offset; |
448 | offval.value = 0; | 469 | offval.value = 0; |
449 | 470 | ||
@@ -496,6 +517,11 @@ static ssize_t lbs_wrmac_write(struct file *file, | |||
496 | if (!buf) | 517 | if (!buf) |
497 | return -ENOMEM; | 518 | return -ENOMEM; |
498 | 519 | ||
520 | if (!lbs_is_cmd_allowed(priv)) { | ||
521 | res = -EBUSY; | ||
522 | goto out_unlock; | ||
523 | } | ||
524 | |||
499 | buf_size = min(count, len - 1); | 525 | buf_size = min(count, len - 1); |
500 | if (copy_from_user(buf, userbuf, buf_size)) { | 526 | if (copy_from_user(buf, userbuf, buf_size)) { |
501 | res = -EFAULT; | 527 | res = -EFAULT; |
@@ -532,6 +558,11 @@ static ssize_t lbs_rdbbp_read(struct file *file, char __user *userbuf, | |||
532 | if (!buf) | 558 | if (!buf) |
533 | return -ENOMEM; | 559 | return -ENOMEM; |
534 | 560 | ||
561 | if (!lbs_is_cmd_allowed(priv)) { | ||
562 | free_page(addr); | ||
563 | return -EBUSY; | ||
564 | } | ||
565 | |||
535 | offval.offset = priv->bbp_offset; | 566 | offval.offset = priv->bbp_offset; |
536 | offval.value = 0; | 567 | offval.value = 0; |
537 | 568 | ||
@@ -585,6 +616,11 @@ static ssize_t lbs_wrbbp_write(struct file *file, | |||
585 | if (!buf) | 616 | if (!buf) |
586 | return -ENOMEM; | 617 | return -ENOMEM; |
587 | 618 | ||
619 | if (!lbs_is_cmd_allowed(priv)) { | ||
620 | res = -EBUSY; | ||
621 | goto out_unlock; | ||
622 | } | ||
623 | |||
588 | buf_size = min(count, len - 1); | 624 | buf_size = min(count, len - 1); |
589 | if (copy_from_user(buf, userbuf, buf_size)) { | 625 | if (copy_from_user(buf, userbuf, buf_size)) { |
590 | res = -EFAULT; | 626 | res = -EFAULT; |
@@ -621,6 +657,11 @@ static ssize_t lbs_rdrf_read(struct file *file, char __user *userbuf, | |||
621 | if (!buf) | 657 | if (!buf) |
622 | return -ENOMEM; | 658 | return -ENOMEM; |
623 | 659 | ||
660 | if (!lbs_is_cmd_allowed(priv)) { | ||
661 | free_page(addr); | ||
662 | return -EBUSY; | ||
663 | } | ||
664 | |||
624 | offval.offset = priv->rf_offset; | 665 | offval.offset = priv->rf_offset; |
625 | offval.value = 0; | 666 | offval.value = 0; |
626 | 667 | ||
@@ -674,6 +715,11 @@ static ssize_t lbs_wrrf_write(struct file *file, | |||
674 | if (!buf) | 715 | if (!buf) |
675 | return -ENOMEM; | 716 | return -ENOMEM; |
676 | 717 | ||
718 | if (!lbs_is_cmd_allowed(priv)) { | ||
719 | res = -EBUSY; | ||
720 | goto out_unlock; | ||
721 | } | ||
722 | |||
677 | buf_size = min(count, len - 1); | 723 | buf_size = min(count, len - 1); |
678 | if (copy_from_user(buf, userbuf, buf_size)) { | 724 | if (copy_from_user(buf, userbuf, buf_size)) { |
679 | res = -EFAULT; | 725 | res = -EFAULT; |