Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111199
b: refs/heads/master
c: 96c8760
h: refs/heads/master
i:
  111197: 8812aaa
  111195: a7f3c73
  111191: a2681d0
  111183: 4cf077d
  111167: 86471e5
v: v3
  • Loading branch information
Henrique de Moraes Holschuh authored and John W. Linville committed Aug 22, 2008
1 parent 6366b04 commit f7002c5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77fba13ccc3a2a3db100892a4a6cc5e2f8290cc7
refs/heads/master: 96c87607ac8f9b0e641d11ba6e57f8ec0214ea1c
1 change: 1 addition & 0 deletions trunk/include/linux/rfkill.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ enum rfkill_state {
RFKILL_STATE_SOFT_BLOCKED = 0, /* Radio output blocked */
RFKILL_STATE_UNBLOCKED = 1, /* Radio output allowed */
RFKILL_STATE_HARD_BLOCKED = 2, /* Output blocked, non-overrideable */
RFKILL_STATE_MAX, /* marker for last valid state */
};

/*
Expand Down
11 changes: 8 additions & 3 deletions trunk/net/rfkill/rfkill.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@ static int rfkill_toggle_radio(struct rfkill *rfkill,
* BLOCK even a transmitter that is already in state
* RFKILL_STATE_HARD_BLOCKED */
break;
default:
return -EINVAL;
}

if (force || state != rfkill->state) {
Expand Down Expand Up @@ -234,6 +236,9 @@ static void __rfkill_switch_all(const enum rfkill_type type,
{
struct rfkill *rfkill;

if (unlikely(state >= RFKILL_STATE_MAX))
return;

rfkill_global_states[type].current_state = state;
list_for_each_entry(rfkill, &rfkill_list, node) {
if ((!rfkill->user_claim) && (rfkill->type == type)) {
Expand Down Expand Up @@ -329,9 +334,7 @@ int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state)
{
enum rfkill_state oldstate;

if (state != RFKILL_STATE_SOFT_BLOCKED &&
state != RFKILL_STATE_UNBLOCKED &&
state != RFKILL_STATE_HARD_BLOCKED)
if (unlikely(state >= RFKILL_STATE_MAX))
return -EINVAL;

mutex_lock(&rfkill->mutex);
Expand Down Expand Up @@ -727,6 +730,8 @@ int __must_check rfkill_register(struct rfkill *rfkill)
return -EINVAL;
if (rfkill->type >= RFKILL_TYPE_MAX)
return -EINVAL;
if (rfkill->state >= RFKILL_STATE_MAX)
return -EINVAL;

snprintf(dev->bus_id, sizeof(dev->bus_id),
"rfkill%ld", (long)atomic_inc_return(&rfkill_no) - 1);
Expand Down

0 comments on commit f7002c5

Please sign in to comment.