2008-06-04 13:16:18 +00:00
|
|
|
--- a/net80211/ieee80211_rate.c
|
|
|
|
+++ b/net80211/ieee80211_rate.c
|
2008-11-02 13:04:36 +00:00
|
|
|
@@ -100,8 +100,18 @@ struct ath_ratectrl *ieee80211_rate_atta
|
2007-05-13 16:24:11 +00:00
|
|
|
ieee80211_load_module(buf);
|
|
|
|
|
|
|
|
if (!ratectls[id].attach) {
|
|
|
|
- printk(KERN_ERR "Error loading module \"%s\"\n", buf);
|
|
|
|
- return NULL;
|
|
|
|
+ /* pick the first available rate control module */
|
|
|
|
+ printk(KERN_INFO "Rate control module \"%s\" not available\n", buf);
|
2009-05-30 17:53:24 +00:00
|
|
|
+ for (id = 0; id < IEEE80211_RATE_MAX - 1; id++) {
|
2007-05-13 16:24:11 +00:00
|
|
|
+ if (ratectls[id].attach)
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ if (!ratectls[id].attach) {
|
|
|
|
+ printk(KERN_ERR "No rate control module available");
|
|
|
|
+ return NULL;
|
|
|
|
+ } else {
|
|
|
|
+ printk(KERN_INFO "Using \"%s\" instead.\n", module_names[id]);
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
ctl = ratectls[id].attach(sc);
|