From: David Howells Date: Fri, 5 May 2023 15:13:07 +0000 (+0100) Subject: fixes X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1e27d1c9414b0f2b3f15cdb4c0eb3bf9181e44a9;p=users%2Fdhowells%2Fkafs-utils.git fixes --- diff --git a/lib/af_rxrpc.C b/lib/af_rxrpc.C index 7079c68..1dc6947 100644 --- a/lib/af_rxrpc.C +++ b/lib/af_rxrpc.C @@ -145,7 +145,7 @@ public: std::list rx_spare_buffers; /* Spare bufferage for receive */ unsigned int rx_nr_buffers; /* Number of buffers on the list */ #define CONN_MSGS 3 -#define CONN_CMSG_SIZE 128 +#define CONN_CMSG_SIZE 4096 #define CONN_NR_IOV 4 struct mmsghdr rx_msgs[CONN_MSGS]; /* Message headers */ struct sockaddr_rxrpc rx_peer[CONN_MSGS]; /* Mass peer address bufferage */ @@ -897,6 +897,16 @@ void af_rxrpc_endpoint::receive(bool nowait) rx_nr_buffers++; } + /* Reset the message descriptors. */ + for (i = 0; i < CONN_MSGS; i++) { + struct mmsghdr *m = &rx_msgs[i]; + struct msghdr *msg = &m->msg_hdr; + + msg->msg_namelen = sizeof(rx_peer[i]); + msg->msg_controllen = CONN_CMSG_SIZE; + msg->msg_flags = 0; + } + /* Receive messages. The descriptor array is already set up and gets * reset as messages are processed. */ @@ -917,11 +927,6 @@ void af_rxrpc_endpoint::receive(bool nowait) debug("Rx DATA: %d [fl:%x]\n", m->msg_len, msg->msg_flags); recv_msg(msg, m->msg_len); - - /* Reset the message descriptor. */ - m->msg_hdr.msg_namelen = sizeof(rx_peer[i]); - m->msg_hdr.msg_controllen = CONN_CMSG_SIZE; - m->msg_hdr.msg_flags = 0; } }