fix a small race condition in the madwifi queue handling
[openwrt-10.03/.git] / package / madwifi / patches / 105-ratectl_attach.patch
1 Index: madwifi-dfs-r3053/net80211/ieee80211_rate.c
2 ===================================================================
3 --- madwifi-dfs-r3053.orig/net80211/ieee80211_rate.c    2007-12-13 05:25:10.722236492 +0100
4 +++ madwifi-dfs-r3053/net80211/ieee80211_rate.c 2007-12-13 05:25:11.798297814 +0100
5 @@ -100,8 +100,18 @@
6                 ieee80211_load_module(buf);
7  
8         if (!ratectls[id].attach) {
9 -               printk(KERN_ERR "Error loading module \"%s\"\n", buf);
10 -               return NULL;
11 +               /* pick the first available rate control module */
12 +               printk(KERN_INFO "Rate control module \"%s\" not available\n", buf);
13 +               for (id = 0; id < IEEE80211_RATE_MAX; id++) {
14 +                       if (ratectls[id].attach)
15 +                               break;
16 +               }
17 +               if (!ratectls[id].attach) {
18 +                       printk(KERN_ERR "No rate control module available");
19 +                       return NULL;
20 +               } else {
21 +                       printk(KERN_INFO "Using \"%s\" instead.\n", module_names[id]);
22 +               }
23         }
24  
25         ctl = ratectls[id].attach(sc);