diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/wimax/op-rfkill.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/wimax/op-rfkill.c b/net/wimax/op-rfkill.c index 40e1210cdbd8..94d339c345d2 100644 --- a/net/wimax/op-rfkill.c +++ b/net/wimax/op-rfkill.c | |||
@@ -305,8 +305,15 @@ int wimax_rfkill(struct wimax_dev *wimax_dev, enum wimax_rf_state state) | |||
305 | d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state); | 305 | d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state); |
306 | mutex_lock(&wimax_dev->mutex); | 306 | mutex_lock(&wimax_dev->mutex); |
307 | result = wimax_dev_is_ready(wimax_dev); | 307 | result = wimax_dev_is_ready(wimax_dev); |
308 | if (result < 0) | 308 | if (result < 0) { |
309 | /* While initializing, < 1.4.3 wimax-tools versions use | ||
310 | * this call to check if the device is a valid WiMAX | ||
311 | * device; so we allow it to proceed always, | ||
312 | * considering the radios are all off. */ | ||
313 | if (result == -ENOMEDIUM && state == WIMAX_RF_QUERY) | ||
314 | result = WIMAX_RF_OFF << 1 | WIMAX_RF_OFF; | ||
309 | goto error_not_ready; | 315 | goto error_not_ready; |
316 | } | ||
310 | switch (state) { | 317 | switch (state) { |
311 | case WIMAX_RF_ON: | 318 | case WIMAX_RF_ON: |
312 | case WIMAX_RF_OFF: | 319 | case WIMAX_RF_OFF: |