tls_device.c (ed32f8d42cee118b075e4372a55c7739a11094b2) | tls_device.c (b54c9d5bd6e38edac9ce3a3f95f14a1292b5268d) |
---|---|
1/* Copyright (c) 2018, Mellanox Technologies All rights reserved. 2 * 3 * This software is available to you under a choice of one of two 4 * licenses. You may choose to be licensed under the terms of the GNU 5 * General Public License (GPL) Version 2, available from the file 6 * COPYING in the main directory of this source tree, or the 7 * OpenIB.org BSD license below: 8 * --- 229 unchanged lines hidden (view full) --- 238 239static void tls_append_frag(struct tls_record_info *record, 240 struct page_frag *pfrag, 241 int size) 242{ 243 skb_frag_t *frag; 244 245 frag = &record->frags[record->num_frags - 1]; | 1/* Copyright (c) 2018, Mellanox Technologies All rights reserved. 2 * 3 * This software is available to you under a choice of one of two 4 * licenses. You may choose to be licensed under the terms of the GNU 5 * General Public License (GPL) Version 2, available from the file 6 * COPYING in the main directory of this source tree, or the 7 * OpenIB.org BSD license below: 8 * --- 229 unchanged lines hidden (view full) --- 238 239static void tls_append_frag(struct tls_record_info *record, 240 struct page_frag *pfrag, 241 int size) 242{ 243 skb_frag_t *frag; 244 245 frag = &record->frags[record->num_frags - 1]; |
246 if (frag->page.p == pfrag->page && 247 frag->page_offset + frag->size == pfrag->offset) { 248 frag->size += size; | 246 if (skb_frag_page(frag) == pfrag->page && 247 skb_frag_off(frag) + skb_frag_size(frag) == pfrag->offset) { 248 skb_frag_size_add(frag, size); |
249 } else { 250 ++frag; | 249 } else { 250 ++frag; |
251 frag->page.p = pfrag->page; 252 frag->page_offset = pfrag->offset; 253 frag->size = size; | 251 __skb_frag_set_page(frag, pfrag->page); 252 skb_frag_off_set(frag, pfrag->offset); 253 skb_frag_size_set(frag, size); |
254 ++record->num_frags; 255 get_page(pfrag->page); 256 } 257 258 pfrag->offset += size; 259 record->len += size; 260} 261 --- 34 unchanged lines hidden (view full) --- 296 tls_device_resync_tx(sk, ctx, tp->write_seq); 297 298 tls_advance_record_sn(sk, prot, &ctx->tx); 299 300 for (i = 0; i < record->num_frags; i++) { 301 frag = &record->frags[i]; 302 sg_unmark_end(&offload_ctx->sg_tx_data[i]); 303 sg_set_page(&offload_ctx->sg_tx_data[i], skb_frag_page(frag), | 254 ++record->num_frags; 255 get_page(pfrag->page); 256 } 257 258 pfrag->offset += size; 259 record->len += size; 260} 261 --- 34 unchanged lines hidden (view full) --- 296 tls_device_resync_tx(sk, ctx, tp->write_seq); 297 298 tls_advance_record_sn(sk, prot, &ctx->tx); 299 300 for (i = 0; i < record->num_frags; i++) { 301 frag = &record->frags[i]; 302 sg_unmark_end(&offload_ctx->sg_tx_data[i]); 303 sg_set_page(&offload_ctx->sg_tx_data[i], skb_frag_page(frag), |
304 frag->size, frag->page_offset); 305 sk_mem_charge(sk, frag->size); | 304 skb_frag_size(frag), skb_frag_off(frag)); 305 sk_mem_charge(sk, skb_frag_size(frag)); |
306 get_page(skb_frag_page(frag)); 307 } 308 sg_mark_end(&offload_ctx->sg_tx_data[record->num_frags - 1]); 309 310 /* all ready, send */ 311 return tls_push_sg(sk, ctx, offload_ctx->sg_tx_data, 0, flags); 312} 313 --- 5 unchanged lines hidden (view full) --- 319 skb_frag_t *frag; 320 321 record = kmalloc(sizeof(*record), GFP_KERNEL); 322 if (!record) 323 return -ENOMEM; 324 325 frag = &record->frags[0]; 326 __skb_frag_set_page(frag, pfrag->page); | 306 get_page(skb_frag_page(frag)); 307 } 308 sg_mark_end(&offload_ctx->sg_tx_data[record->num_frags - 1]); 309 310 /* all ready, send */ 311 return tls_push_sg(sk, ctx, offload_ctx->sg_tx_data, 0, flags); 312} 313 --- 5 unchanged lines hidden (view full) --- 319 skb_frag_t *frag; 320 321 record = kmalloc(sizeof(*record), GFP_KERNEL); 322 if (!record) 323 return -ENOMEM; 324 325 frag = &record->frags[0]; 326 __skb_frag_set_page(frag, pfrag->page); |
327 frag->page_offset = pfrag->offset; | 327 skb_frag_off_set(frag, pfrag->offset); |
328 skb_frag_size_set(frag, prepend_size); 329 330 get_page(pfrag->page); 331 pfrag->offset += prepend_size; 332 333 record->num_frags = 1; 334 record->len = prepend_size; 335 offload_ctx->open_record = record; --- 844 unchanged lines hidden --- | 328 skb_frag_size_set(frag, prepend_size); 329 330 get_page(pfrag->page); 331 pfrag->offset += prepend_size; 332 333 record->num_frags = 1; 334 record->len = prepend_size; 335 offload_ctx->open_record = record; --- 844 unchanged lines hidden --- |