On 07.01.2025 14:32:17, Alexander Hölzl wrote: > The J1939 standard requires the transmission of messages of length 0. > For example the proprietary messages are specified with a data length > of 0 to 1785. The transmission of such messages was not possible. > Sending such a message resulted in no error being returned but no > corresponding can frame being generated. What does your patch do? Please describe it here. Marc > Signed-off-by: Alexander Hölzl <alexander.hoelzl@xxxxxxx> > --- > net/can/j1939/socket.c | 4 ++-- > net/can/j1939/transport.c | 5 +++-- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/net/can/j1939/socket.c b/net/can/j1939/socket.c > index 305dd72c844c..17226b2341d0 100644 > --- a/net/can/j1939/socket.c > +++ b/net/can/j1939/socket.c > @@ -1132,7 +1132,7 @@ static int j1939_sk_send_loop(struct j1939_priv *priv, struct sock *sk, > > todo_size = size; > > - while (todo_size) { > + do { > struct j1939_sk_buff_cb *skcb; > > segment_size = min_t(size_t, J1939_MAX_TP_PACKET_SIZE, > @@ -1177,7 +1177,7 @@ static int j1939_sk_send_loop(struct j1939_priv *priv, struct sock *sk, > > todo_size -= segment_size; > session->total_queued_size += segment_size; > - } > + } while (todo_size); > > switch (ret) { > case 0: /* OK */ > diff --git a/net/can/j1939/transport.c b/net/can/j1939/transport.c > index 319f47df3330..99832e60c08d 100644 > --- a/net/can/j1939/transport.c > +++ b/net/can/j1939/transport.c > @@ -382,8 +382,9 @@ sk_buff *j1939_session_skb_get_by_offset(struct j1939_session *session, > skb_queue_walk(&session->skb_queue, do_skb) { > do_skcb = j1939_skb_to_cb(do_skb); > > - if (offset_start >= do_skcb->offset && > - offset_start < (do_skcb->offset + do_skb->len)) { > + if ((offset_start >= do_skcb->offset && > + offset_start < (do_skcb->offset + do_skb->len)) || > + (offset_start == 0 && do_skcb->offset == 0 && do_skb->len == 0)) { > skb = do_skb; > } > } > -- > 2.43.0 > > > -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung Nürnberg | Phone: +49-5121-206917-129 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
Attachment:
signature.asc
Description: PGP signature