rfkill: remove user_claim stuff
Almost all drivers do not support user_claim, so remove it completely and always report -EOPNOTSUPP to userspace. Since userspace cannot really drive rfkill _anyway_ (due to the odd restrictions imposed by the documentation) having this code is just pointless. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c1c6b14b22
commit
621cac8529
12 changed files with 8 additions and 71 deletions
|
@ -200,7 +200,7 @@ static void __rfkill_switch_all(const enum rfkill_type type,
|
|||
|
||||
rfkill_global_states[type].current_state = state;
|
||||
list_for_each_entry(rfkill, &rfkill_list, node) {
|
||||
if ((!rfkill->user_claim) && (rfkill->type == type)) {
|
||||
if (rfkill->type == type) {
|
||||
mutex_lock(&rfkill->mutex);
|
||||
rfkill_toggle_radio(rfkill, state, 0);
|
||||
mutex_unlock(&rfkill->mutex);
|
||||
|
@ -447,53 +447,14 @@ static ssize_t rfkill_claim_show(struct device *dev,
|
|||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct rfkill *rfkill = to_rfkill(dev);
|
||||
|
||||
return sprintf(buf, "%d\n", rfkill->user_claim);
|
||||
return sprintf(buf, "%d\n", 0);
|
||||
}
|
||||
|
||||
static ssize_t rfkill_claim_store(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct rfkill *rfkill = to_rfkill(dev);
|
||||
unsigned long claim_tmp;
|
||||
bool claim;
|
||||
int error;
|
||||
|
||||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
if (rfkill->user_claim_unsupported)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
error = strict_strtoul(buf, 0, &claim_tmp);
|
||||
if (error)
|
||||
return error;
|
||||
claim = !!claim_tmp;
|
||||
|
||||
/*
|
||||
* Take the global lock to make sure the kernel is not in
|
||||
* the middle of rfkill_switch_all
|
||||
*/
|
||||
error = mutex_lock_killable(&rfkill_global_mutex);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
if (rfkill->user_claim != claim) {
|
||||
if (!claim && !rfkill_epo_lock_active) {
|
||||
mutex_lock(&rfkill->mutex);
|
||||
rfkill_toggle_radio(rfkill,
|
||||
rfkill_global_states[rfkill->type].current_state,
|
||||
0);
|
||||
mutex_unlock(&rfkill->mutex);
|
||||
}
|
||||
rfkill->user_claim = claim;
|
||||
}
|
||||
|
||||
mutex_unlock(&rfkill_global_mutex);
|
||||
|
||||
return error ? error : count;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static struct device_attribute rfkill_dev_attrs[] = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue