conn_event.c (30df927b936b2ef21eb07dce9c141c7897609643) conn_event.c (f2cce89a074e6d2991dddc94f6b6ebe1576b8459)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* connection-level event handling
3 *
4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
6 */
7
8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

--- 398 unchanged lines hidden (view full) ---

407{
408 struct sk_buff *skb;
409 u32 abort_code = RX_PROTOCOL_ERROR;
410 int ret;
411
412 if (test_and_clear_bit(RXRPC_CONN_EV_CHALLENGE, &conn->events))
413 rxrpc_secure_connection(conn);
414
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* connection-level event handling
3 *
4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
6 */
7
8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

--- 398 unchanged lines hidden (view full) ---

407{
408 struct sk_buff *skb;
409 u32 abort_code = RX_PROTOCOL_ERROR;
410 int ret;
411
412 if (test_and_clear_bit(RXRPC_CONN_EV_CHALLENGE, &conn->events))
413 rxrpc_secure_connection(conn);
414
415 /* Process delayed ACKs whose time has come. */
416 if (conn->flags & RXRPC_CONN_FINAL_ACK_MASK)
417 rxrpc_process_delayed_final_acks(conn, false);
418
419 /* go through the conn-level event packets, releasing the ref on this
420 * connection that each one has when we've finished with it */
421 while ((skb = skb_dequeue(&conn->rx_queue))) {
422 rxrpc_see_skb(skb, rxrpc_skb_see_conn_work);
423 ret = rxrpc_process_event(conn, skb, &abort_code);
424 switch (ret) {
425 case -EPROTO:
426 case -EKEYEXPIRED:

--- 83 unchanged lines hidden (view full) ---

510 return 0;
511
512 default:
513 trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
514 tracepoint_string("bad_conn_pkt"));
515 return -EPROTO;
516 }
517}
415 /* go through the conn-level event packets, releasing the ref on this
416 * connection that each one has when we've finished with it */
417 while ((skb = skb_dequeue(&conn->rx_queue))) {
418 rxrpc_see_skb(skb, rxrpc_skb_see_conn_work);
419 ret = rxrpc_process_event(conn, skb, &abort_code);
420 switch (ret) {
421 case -EPROTO:
422 case -EKEYEXPIRED:

--- 83 unchanged lines hidden (view full) ---

506 return 0;
507
508 default:
509 trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
510 tracepoint_string("bad_conn_pkt"));
511 return -EPROTO;
512 }
513}
514
515/*
516 * Input a connection event.
517 */
518void rxrpc_input_conn_event(struct rxrpc_connection *conn, struct sk_buff *skb)
519{
520 /* Process delayed ACKs whose time has come. */
521 if (conn->flags & RXRPC_CONN_FINAL_ACK_MASK)
522 rxrpc_process_delayed_final_acks(conn, false);
523}