Lines Matching refs:emsg
184 static int espintcp_sendskb_locked(struct sock *sk, struct espintcp_msg *emsg, in espintcp_sendskb_locked() argument
190 ret = skb_send_sock_locked(sk, emsg->skb, in espintcp_sendskb_locked()
191 emsg->offset, emsg->len); in espintcp_sendskb_locked()
195 emsg->len -= ret; in espintcp_sendskb_locked()
196 emsg->offset += ret; in espintcp_sendskb_locked()
197 } while (emsg->len > 0); in espintcp_sendskb_locked()
199 kfree_skb(emsg->skb); in espintcp_sendskb_locked()
200 memset(emsg, 0, sizeof(*emsg)); in espintcp_sendskb_locked()
206 struct espintcp_msg *emsg, int flags) in espintcp_sendskmsg_locked() argument
208 struct sk_msg *skmsg = &emsg->skmsg; in espintcp_sendskmsg_locked()
216 size_t size = sg->length - emsg->offset; in espintcp_sendskmsg_locked()
217 int offset = sg->offset + emsg->offset; in espintcp_sendskmsg_locked()
220 emsg->offset = 0; in espintcp_sendskmsg_locked()
229 emsg->offset = offset - sg->offset; in espintcp_sendskmsg_locked()
246 memset(emsg, 0, sizeof(*emsg)); in espintcp_sendskmsg_locked()
254 struct espintcp_msg *emsg = &ctx->partial; in espintcp_push_msgs() local
257 if (!emsg->len) in espintcp_push_msgs()
264 if (emsg->skb) in espintcp_push_msgs()
265 err = espintcp_sendskb_locked(sk, emsg, flags); in espintcp_push_msgs()
267 err = espintcp_sendskmsg_locked(sk, emsg, flags); in espintcp_push_msgs()
273 memset(emsg, 0, sizeof(*emsg)); in espintcp_push_msgs()
283 struct espintcp_msg *emsg = &ctx->partial; in espintcp_push_skb() local
297 if (emsg->len) { in espintcp_push_skb()
304 emsg->offset = offset; in espintcp_push_skb()
305 emsg->len = len; in espintcp_push_skb()
306 emsg->skb = skb; in espintcp_push_skb()
318 struct espintcp_msg *emsg = &ctx->partial; in espintcp_sendmsg() local
343 sk_msg_init(&emsg->skmsg); in espintcp_sendmsg()
346 err = sk_msg_alloc(sk, &emsg->skmsg, msglen, 0); in espintcp_sendmsg()
360 err = sk_msg_memcopy_from_iter(sk, &pfx_iter, &emsg->skmsg, in espintcp_sendmsg()
365 err = sk_msg_memcopy_from_iter(sk, &msg->msg_iter, &emsg->skmsg, size); in espintcp_sendmsg()
369 end = emsg->skmsg.sg.end; in espintcp_sendmsg()
370 emsg->len = size; in espintcp_sendmsg()
372 sg_mark_end(sk_msg_elem(&emsg->skmsg, end)); in espintcp_sendmsg()
384 sk_msg_free(sk, &emsg->skmsg); in espintcp_sendmsg()
385 memset(emsg, 0, sizeof(*emsg)); in espintcp_sendmsg()
522 struct espintcp_msg *emsg = &ctx->partial; in espintcp_close() local
535 if (emsg->len) { in espintcp_close()
536 if (emsg->skb) in espintcp_close()
537 kfree_skb(emsg->skb); in espintcp_close()
539 sk_msg_free(sk, &emsg->skmsg); in espintcp_close()