diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 990a584932355bd8689f976b79bbe76dfaf3674e..de54f02f10a9b83450c8bc5b3915581834ea6fa7 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -432,7 +432,7 @@ static void tcp_options_write(__be32 *ptr, struct tcp_sock *tp,
 
 		if (tp->rx_opt.dsack) {
 			tp->rx_opt.dsack = 0;
-			tp->rx_opt.eff_sacks--;
+			tp->rx_opt.eff_sacks = tp->rx_opt.num_sacks;
 		}
 	}
 }