Lines Matching refs:emsg
185 static int espintcp_sendskb_locked(struct sock *sk, struct espintcp_msg *emsg,
191 ret = skb_send_sock_locked(sk, emsg->skb,
192 emsg->offset, emsg->len);
196 emsg->len -= ret;
197 emsg->offset += ret;
198 } while (emsg->len > 0);
200 kfree_skb(emsg->skb);
201 memset(emsg, 0, sizeof(*emsg));
207 struct espintcp_msg *emsg, int flags)
209 struct sk_msg *skmsg = &emsg->skmsg;
217 size_t size = sg->length - emsg->offset;
218 int offset = sg->offset + emsg->offset;
221 emsg->offset = 0;
230 emsg->offset = offset - sg->offset;
247 memset(emsg, 0, sizeof(*emsg));
255 struct espintcp_msg *emsg = &ctx->partial;
258 if (!emsg->len)
265 if (emsg->skb)
266 err = espintcp_sendskb_locked(sk, emsg, flags);
268 err = espintcp_sendskmsg_locked(sk, emsg, flags);
274 memset(emsg, 0, sizeof(*emsg));
284 struct espintcp_msg *emsg = &ctx->partial;
298 if (emsg->len) {
305 emsg->offset = offset;
306 emsg->len = len;
307 emsg->skb = skb;
319 struct espintcp_msg *emsg = &ctx->partial;
344 sk_msg_init(&emsg->skmsg);
347 err = sk_msg_alloc(sk, &emsg->skmsg, msglen, 0);
361 err = sk_msg_memcopy_from_iter(sk, &pfx_iter, &emsg->skmsg,
366 err = sk_msg_memcopy_from_iter(sk, &msg->msg_iter, &emsg->skmsg, size);
370 end = emsg->skmsg.sg.end;
371 emsg->len = size;
373 sg_mark_end(sk_msg_elem(&emsg->skmsg, end));
385 sk_msg_free(sk, &emsg->skmsg);
386 memset(emsg, 0, sizeof(*emsg));
520 struct espintcp_msg *emsg = &ctx->partial;
533 if (emsg->len) {
534 if (emsg->skb)
535 kfree_skb(emsg->skb);
537 sk_msg_free(sk, &emsg->skmsg);