aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/net/iucv
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2021-01-28 12:41:06 +0100
committerJakub Kicinski <kuba@kernel.org>2021-01-28 20:36:21 -0800
commitef6af7bdb9e6c14eae8dc5fe852aefe1e089c85c (patch)
tree1e9d200306516e7009f8050e5d373a85e8eaf93e /include/net/iucv
parentnet/af_iucv: don't lookup the socket on TX notification (diff)
downloadwireguard-linux-ef6af7bdb9e6c14eae8dc5fe852aefe1e089c85c.tar.xz
wireguard-linux-ef6af7bdb9e6c14eae8dc5fe852aefe1e089c85c.zip
net/af_iucv: count packets in the xmit path
The TX code keeps track of all skbs that are in-flight but haven't actually been sent out yet. For native IUCV sockets that's not a huge deal, but with TRANS_HIPER sockets it would be much better if we didn't need to maintain a list of skb clones. Note that we actually only care about the _count_ of skbs in this stage of the TX pipeline. So as prep work for removing the skb tracking on TRANS_HIPER sockets, keep track of the skb count in a separate variable and pair any list {enqueue, unlink} with a count {increment, decrement}. Then replace all occurences where we currently look at the skb list's fill level. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net/iucv')
-rw-r--r--include/net/iucv/af_iucv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
index 9259ce2b22f3..0816bcd44dd1 100644
--- a/include/net/iucv/af_iucv.h
+++ b/include/net/iucv/af_iucv.h
@@ -128,6 +128,7 @@ struct iucv_sock {
u8 flags;
u16 msglimit;
u16 msglimit_peer;
+ atomic_t skbs_in_xmit;
atomic_t msg_sent;
atomic_t msg_recv;
atomic_t pendings;