OSDN Git Service

net/af_iucv: don't track individual TX skbs for TRANS_HIPER sockets
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 28 Jan 2021 11:41:07 +0000 (12:41 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 Jan 2021 04:36:21 +0000 (20:36 -0800)
commit80bc97aa0aaab974bbbfb99a78d7515414004616
tree021fec1df4314cb606ef54de3a24516ca22420b0
parentef6af7bdb9e6c14eae8dc5fe852aefe1e089c85c
net/af_iucv: don't track individual TX skbs for TRANS_HIPER sockets

Stop maintaining the skb_send_q list for TRANS_HIPER sockets.

Not only is it extra overhead, but keeping around a list of skb clones
means that we later also have to match the ->sk_txnotify() calls
against these clones and free them accordingly.
The current matching logic (comparing the skbs' shinfo location) is
frustratingly fragile, and breaks if the skb's head is mangled in any
sort of way while passing from dev_queue_xmit() to the device's
HW queue.

Also adjust the interface for ->sk_txnotify(), to make clear that we
don't actually care about any skb internals.

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>
drivers/s390/net/qeth_core_main.c
include/net/iucv/af_iucv.h
net/iucv/af_iucv.c