| .. | .. |
|---|
| 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) |
|---|