Lines Matching refs:session

98 static bool j1939_sk_queue_session(struct j1939_session *session)  in j1939_sk_queue_session()  argument
100 struct j1939_sock *jsk = j1939_sk(session->sk); in j1939_sk_queue_session()
105 j1939_session_get(session); in j1939_sk_queue_session()
106 list_add_tail(&session->sk_session_queue_entry, &jsk->sk_session_queue); in j1939_sk_queue_session()
116 struct j1939_session *session = NULL; in j1939_sk_get_incomplete_session() local
120 session = list_last_entry(&jsk->sk_session_queue, in j1939_sk_get_incomplete_session()
123 if (session->total_queued_size == session->total_message_size) in j1939_sk_get_incomplete_session()
124 session = NULL; in j1939_sk_get_incomplete_session()
126 j1939_session_get(session); in j1939_sk_get_incomplete_session()
130 return session; in j1939_sk_get_incomplete_session()
136 struct j1939_session *session, *tmp; in j1939_sk_queue_drop_all() local
140 list_for_each_entry_safe(session, tmp, &jsk->sk_session_queue, in j1939_sk_queue_drop_all()
142 list_del_init(&session->sk_session_queue_entry); in j1939_sk_queue_drop_all()
143 session->err = err; in j1939_sk_queue_drop_all()
144 j1939_session_put(session); in j1939_sk_queue_drop_all()
149 static void j1939_sk_queue_activate_next_locked(struct j1939_session *session) in j1939_sk_queue_activate_next_locked() argument
156 if (!session->sk) in j1939_sk_queue_activate_next_locked()
159 jsk = j1939_sk(session->sk); in j1939_sk_queue_activate_next_locked()
162 err = session->err; in j1939_sk_queue_activate_next_locked()
169 if (first != session) in j1939_sk_queue_activate_next_locked()
198 void j1939_sk_queue_activate_next(struct j1939_session *session) in j1939_sk_queue_activate_next() argument
202 if (!session->sk) in j1939_sk_queue_activate_next()
205 jsk = j1939_sk(session->sk); in j1939_sk_queue_activate_next()
208 j1939_sk_queue_activate_next_locked(session); in j1939_sk_queue_activate_next()
947 j1939_sk_get_timestamping_opt_stats(struct j1939_session *session, in j1939_sk_get_timestamping_opt_stats() argument
957 if (session->skcb.addr.type == J1939_SIMPLE) in j1939_sk_get_timestamping_opt_stats()
958 size = session->total_message_size; in j1939_sk_get_timestamping_opt_stats()
960 size = min(session->pkt.tx_acked * 7, in j1939_sk_get_timestamping_opt_stats()
961 session->total_message_size); in j1939_sk_get_timestamping_opt_stats()
966 session->total_message_size); in j1939_sk_get_timestamping_opt_stats()
968 session->skcb.addr.pgn); in j1939_sk_get_timestamping_opt_stats()
970 session->skcb.addr.src_name, J1939_NLA_PAD); in j1939_sk_get_timestamping_opt_stats()
972 session->skcb.addr.dst_name, J1939_NLA_PAD); in j1939_sk_get_timestamping_opt_stats()
974 session->skcb.addr.sa); in j1939_sk_get_timestamping_opt_stats()
976 session->skcb.addr.da); in j1939_sk_get_timestamping_opt_stats()
985 static void __j1939_sk_errqueue(struct j1939_session *session, struct sock *sk, in __j1939_sk_errqueue() argument
988 struct j1939_priv *priv = session->priv; in __j1939_sk_errqueue()
1025 skb = j1939_sk_get_timestamping_opt_stats(session, type); in __j1939_sk_errqueue()
1049 serr->ee.ee_errno = session->err; in __j1939_sk_errqueue()
1067 serr->ee.ee_errno = session->err; in __j1939_sk_errqueue()
1076 serr->ee.ee_data = session->tskey; in __j1939_sk_errqueue()
1078 netdev_dbg(session->priv->ndev, "%s: 0x%p tskey: %i, state: %s\n", in __j1939_sk_errqueue()
1079 __func__, session, session->tskey, state); in __j1939_sk_errqueue()
1086 void j1939_sk_errqueue(struct j1939_session *session, in j1939_sk_errqueue() argument
1089 struct j1939_priv *priv = session->priv; in j1939_sk_errqueue()
1092 if (session->sk) { in j1939_sk_errqueue()
1094 __j1939_sk_errqueue(session, session->sk, type); in j1939_sk_errqueue()
1101 if (j1939_sk_recv_match_one(jsk, &session->skcb)) in j1939_sk_errqueue()
1102 __j1939_sk_errqueue(session, &jsk->sk, type); in j1939_sk_errqueue()
1124 struct j1939_session *session = j1939_sk_get_incomplete_session(jsk); in j1939_sk_send_loop() local
1129 if (session && in j1939_sk_send_loop()
1130 session->total_message_size != session->total_queued_size + size) { in j1939_sk_send_loop()
1131 j1939_session_put(session); in j1939_sk_send_loop()
1151 if (!session) { in j1939_sk_send_loop()
1156 session = j1939_tp_send(priv, skb, size); in j1939_sk_send_loop()
1157 if (IS_ERR(session)) { in j1939_sk_send_loop()
1158 ret = PTR_ERR(session); in j1939_sk_send_loop()
1161 if (j1939_sk_queue_session(session)) { in j1939_sk_send_loop()
1165 if (!j1939_session_activate(session)) { in j1939_sk_send_loop()
1166 j1939_tp_schedule_txtimer(session, 0); in j1939_sk_send_loop()
1169 session->err = ret; in j1939_sk_send_loop()
1176 skcb->offset = session->total_queued_size; in j1939_sk_send_loop()
1177 j1939_session_skb_queue(session, skb); in j1939_sk_send_loop()
1181 session->total_queued_size += segment_size; in j1939_sk_send_loop()
1203 if (session) in j1939_sk_send_loop()
1204 j1939_session_put(session); in j1939_sk_send_loop()