rt2x00: Fix in_atomic() usage
rt73usb and rt2500usb used in_atomic to determine
if a configuration step should be rescheduled or not.
Since in_atomic() is not a valid method to determine
if sleeping is allowed we should fix the way this is handled
by adding a new flag to rt2x00.
In addition mark LED class support for the drivers broken
since that also uses the broken in_atomic() method but
so far no solution exists to have LED triggers work only
in scheduled context.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index 5e2d81a..a9930a0 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -80,7 +80,6 @@
struct ieee80211_bss_conf *bss_conf)
{
struct rt2x00lib_erp erp;
- int retval;
memset(&erp, 0, sizeof(erp));
@@ -101,14 +100,7 @@
erp.ack_consume_time += PREAMBLE;
}
- retval = rt2x00dev->ops->lib->config_erp(rt2x00dev, &erp);
-
- if (retval) {
- spin_lock(&intf->lock);
- intf->delayed_flags |= DELAYED_CONFIG_ERP;
- queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->intf_work);
- spin_unlock(&intf->lock);
- }
+ rt2x00dev->ops->lib->config_erp(rt2x00dev, &erp);
}
void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,