24 lines
		
	
	
		
			716 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			716 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/net80211/ieee80211_rate.c
 | 
						|
+++ b/net80211/ieee80211_rate.c
 | 
						|
@@ -100,8 +100,18 @@ struct ath_ratectrl *ieee80211_rate_atta
 | 
						|
 		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);
 | 
						|
+		for (id = 0; id < IEEE80211_RATE_MAX - 1; id++) {
 | 
						|
+			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);
 |