* Main question: may we further continue forward transmission
  * with the same cwnd?
  */
-static bool tcp_time_to_recover(struct sock *sk, int flag)
+static bool tcp_time_to_recover(const struct tcp_sock *tp)
 {
-       struct tcp_sock *tp = tcp_sk(sk);
-
        /* Has loss detection marked at least one packet lost? */
        return tp->lost_out != 0;
 }
 
                tcp_identify_packet_loss(sk, ack_flag);
                if (icsk->icsk_ca_state != TCP_CA_Recovery) {
-                       if (!tcp_time_to_recover(sk, flag))
+                       if (!tcp_time_to_recover(tp))
                                return;
                        /* Undo reverts the recovery state. If loss is evident,
                         * starts a new recovery (e.g. reordering then loss);
                        tcp_try_undo_dsack(sk);
 
                tcp_identify_packet_loss(sk, ack_flag);
-               if (!tcp_time_to_recover(sk, flag)) {
+               if (!tcp_time_to_recover(tp)) {
                        tcp_try_to_open(sk, flag);
                        return;
                }