Your current kernels configuration (.config and linux/autoconf.h) are always respected when compiling external modules. Because of this if you are using an old kernel which preferred the PID rate control algorithm we cannot force it to use minstrel instead. Minstrel is now the default rate control algorithm and we want you to use it. To let you use it we redefine here the CONFIG_MAC80211_RC_DEFAULT to CONFIG_COMPAT_MAC80211_RC_DEFAULT and define CONFIG_COMPAT_MAC80211_RC_DEFAULT on config.mk. Through the compat autoconf we then get it also defined there at compilation time. --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -24,7 +24,7 @@ struct rate_control_alg { static LIST_HEAD(rate_ctrl_algs); static DEFINE_MUTEX(rate_ctrl_mutex); -static char *ieee80211_default_rc_algo = CONFIG_MAC80211_RC_DEFAULT; +static char *ieee80211_default_rc_algo = CONFIG_COMPAT_MAC80211_RC_DEFAULT; module_param(ieee80211_default_rc_algo, charp, 0644); MODULE_PARM_DESC(ieee80211_default_rc_algo, "Default rate control algorithm for mac80211 to use"); @@ -120,8 +120,8 @@ ieee80211_rate_control_ops_get(const cha ops = ieee80211_try_rate_control_ops_get(ieee80211_default_rc_algo); /* try built-in one if specific alg requested but not found */ - if (!ops && strlen(CONFIG_MAC80211_RC_DEFAULT)) - ops = ieee80211_try_rate_control_ops_get(CONFIG_MAC80211_RC_DEFAULT); + if (!ops && strlen(CONFIG_COMPAT_MAC80211_RC_DEFAULT)) + ops = ieee80211_try_rate_control_ops_get(CONFIG_COMPAT_MAC80211_RC_DEFAULT); kparam_unblock_sysfs_write(ieee80211_default_rc_algo); return ops;