On do, 23 mei 2019 11:41:22 +0200, Oleksij Rempel wrote: > This patch series is a preparation and actual session queue support. > From now, we are able to use full available wmem of the socket and > queue all requests if it is needed. The stack will process > all queued requests in the FIFO order and notify user space application > about error or completion over the errqueue interface. I don't understand why it is necessary to queue single messages into a FIFO and notify user space later on? Are you sure that different sockets still send asynchronous from each other as long as TP/ETP is not involved? > > As usual, reviews and tests are welcome. > > Oleksij Rempel (17): > j1939: store session type in to session and start to use it > j1939: transport: do not send packets from j1939_tp_send > j1939: transport: seed retry timeout for (E)TP sessions > j1939: pack simple messages in to a session > j1939: socket: use min_t where possible > j1939: transport: fix broken refcounting on j1939_xtp_rx_rts_current > error > j1939: move struct j1939_sock to the header file > j1939: transport: return proper error on skb underrun. > j1939: split j1939_tp_send > j1939: transport: cancel session on j1939_tp_txnext error > j1939: transport: abort not started session if requested > j1939: add session state > j1939: transport: better protect j1939_session_insert with lock > j1939: implement session queue > j1939: rename j1939_sk_send_multi to j1939_sk_send_loop > j1939: rename tp_sessionq to active_session_list > j1939: rename jsk_fifo to sk_session_queue_entry > > net/can/j1939/j1939-priv.h | 78 +++++++- > net/can/j1939/main.c | 2 + > net/can/j1939/socket.c | 238 +++++++++++++---------- > net/can/j1939/transport.c | 384 ++++++++++++++++++------------------- > 4 files changed, 388 insertions(+), 314 deletions(-) > > -- > 2.20.1 >