.. | .. |
---|
73 | 73 | len -= TLS_CIPHER_AES_GCM_128_IV_SIZE; |
---|
74 | 74 | |
---|
75 | 75 | tls_make_aad(aad, len - TLS_CIPHER_AES_GCM_128_TAG_SIZE, |
---|
76 | | - (char *)&rcd_sn, sizeof(rcd_sn), buf[0]); |
---|
| 76 | + (char *)&rcd_sn, sizeof(rcd_sn), buf[0], |
---|
| 77 | + TLS_1_2_VERSION); |
---|
77 | 78 | |
---|
78 | 79 | memcpy(iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE, buf + TLS_HEADER_SIZE, |
---|
79 | 80 | TLS_CIPHER_AES_GCM_128_IV_SIZE); |
---|
.. | .. |
---|
243 | 244 | record = tls_get_record(ctx, tcp_seq, rcd_sn); |
---|
244 | 245 | if (!record) { |
---|
245 | 246 | spin_unlock_irqrestore(&ctx->lock, flags); |
---|
246 | | - WARN(1, "Record not found for seq %u\n", tcp_seq); |
---|
247 | 247 | return -EINVAL; |
---|
248 | 248 | } |
---|
249 | 249 | |
---|
.. | .. |
---|
273 | 273 | |
---|
274 | 274 | __skb_frag_ref(frag); |
---|
275 | 275 | sg_set_page(sg_in + i, skb_frag_page(frag), |
---|
276 | | - skb_frag_size(frag), frag->page_offset); |
---|
| 276 | + skb_frag_size(frag), skb_frag_off(frag)); |
---|
277 | 277 | |
---|
278 | 278 | remaining -= skb_frag_size(frag); |
---|
279 | 279 | |
---|
.. | .. |
---|
412 | 412 | put_page(sg_page(&sg_in[--resync_sgs])); |
---|
413 | 413 | kfree(sg_in); |
---|
414 | 414 | free_orig: |
---|
415 | | - kfree_skb(skb); |
---|
| 415 | + if (nskb) |
---|
| 416 | + consume_skb(skb); |
---|
| 417 | + else |
---|
| 418 | + kfree_skb(skb); |
---|
416 | 419 | return nskb; |
---|
417 | 420 | } |
---|
418 | 421 | |
---|
.. | .. |
---|
427 | 430 | } |
---|
428 | 431 | EXPORT_SYMBOL_GPL(tls_validate_xmit_skb); |
---|
429 | 432 | |
---|
| 433 | +struct sk_buff *tls_validate_xmit_skb_sw(struct sock *sk, |
---|
| 434 | + struct net_device *dev, |
---|
| 435 | + struct sk_buff *skb) |
---|
| 436 | +{ |
---|
| 437 | + return tls_sw_fallback(sk, skb); |
---|
| 438 | +} |
---|
| 439 | + |
---|
| 440 | +struct sk_buff *tls_encrypt_skb(struct sk_buff *skb) |
---|
| 441 | +{ |
---|
| 442 | + return tls_sw_fallback(skb->sk, skb); |
---|
| 443 | +} |
---|
| 444 | +EXPORT_SYMBOL_GPL(tls_encrypt_skb); |
---|
| 445 | + |
---|
430 | 446 | int tls_sw_fallback_init(struct sock *sk, |
---|
431 | 447 | struct tls_offload_context_tx *offload_ctx, |
---|
432 | 448 | struct tls_crypto_info *crypto_info) |
---|