diff --git a/net/mac80211/rc80211_pid.h b/net/mac80211/rc80211_pid.h index 425eb708182ad050dd672f3c7ef9568441f0a6a2..81aa4ea19958e6ddb13da395d63fa6ce0b55a067 100644 --- a/net/mac80211/rc80211_pid.h +++ b/net/mac80211/rc80211_pid.h @@ -38,7 +38,7 @@ * link quality is good, the controller will fail to adjust failed frames * percentage to the target. This is intentional. */ -#define RC_PID_TARGET_PF (11 << RC_PID_ARITH_SHIFT) +#define RC_PID_TARGET_PF 11 /* Rate behaviour normalization quantity over time. */ #define RC_PID_NORM_OFFSET 3 diff --git a/net/mac80211/rc80211_pid_algo.c b/net/mac80211/rc80211_pid_algo.c index 631e46888267457604cc40f7bab08ca9917d59c2..b84e51480c844f90f818519155bf3bdc9fa1a75c 100644 --- a/net/mac80211/rc80211_pid_algo.c +++ b/net/mac80211/rc80211_pid_algo.c @@ -210,7 +210,7 @@ static void rate_control_pid_sample(struct rc_pid_info *pinfo, rate_control_pid_normalize(pinfo, mode->num_rates); /* Compute the proportional, integral and derivative errors. */ - err_prop = pinfo->target - pf; + err_prop = (pinfo->target << RC_PID_ARITH_SHIFT) - pf; err_avg = spinfo->err_avg_sc >> pinfo->smoothing_shift; spinfo->err_avg_sc = spinfo->err_avg_sc - err_avg + err_prop;