x86/efistub: Avoid placing the kernel below LOAD_PHYSICAL_ADDR
[platform/kernel/linux-starfive.git] / net / rxrpc / call_object.c
index 3e5cc70..f10b37c 100644 (file)
@@ -224,6 +224,13 @@ static struct rxrpc_call *rxrpc_alloc_client_call(struct rxrpc_sock *rx,
        if (cp->exclusive)
                __set_bit(RXRPC_CALL_EXCLUSIVE, &call->flags);
 
+       if (p->timeouts.normal)
+               call->next_rx_timo = min(msecs_to_jiffies(p->timeouts.normal), 1UL);
+       if (p->timeouts.idle)
+               call->next_req_timo = min(msecs_to_jiffies(p->timeouts.idle), 1UL);
+       if (p->timeouts.hard)
+               call->hard_timo = p->timeouts.hard * HZ;
+
        ret = rxrpc_init_client_call_security(call);
        if (ret < 0) {
                rxrpc_prefail_call(call, RXRPC_CALL_LOCAL_ERROR, ret);
@@ -255,7 +262,7 @@ void rxrpc_start_call_timer(struct rxrpc_call *call)
        call->keepalive_at = j;
        call->expect_rx_by = j;
        call->expect_req_by = j;
-       call->expect_term_by = j;
+       call->expect_term_by = j + call->hard_timo;
        call->timer.expires = now;
 }
 
@@ -538,8 +545,8 @@ void rxrpc_get_call(struct rxrpc_call *call, enum rxrpc_call_trace why)
  */
 static void rxrpc_cleanup_ring(struct rxrpc_call *call)
 {
-       skb_queue_purge(&call->recvmsg_queue);
-       skb_queue_purge(&call->rx_oos_queue);
+       rxrpc_purge_queue(&call->recvmsg_queue);
+       rxrpc_purge_queue(&call->rx_oos_queue);
 }
 
 /*