diff options
Diffstat (limited to 'net/ipv6/esp6.c')
| -rw-r--r-- | net/ipv6/esp6.c | 15 | 
1 files changed, 2 insertions, 13 deletions
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c index 7371886d4f9f..34a9a5b9ed00 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c @@ -36,6 +36,7 @@  #include <net/tcp.h>  #include <net/espintcp.h>  #include <net/inet6_hashtables.h> +#include <linux/skbuff_ref.h>  #include <linux/highmem.h> @@ -131,7 +132,7 @@ static void esp_ssg_unref(struct xfrm_state *x, void *tmp, struct sk_buff *skb)  	 */  	if (req->src != req->dst)  		for (sg = sg_next(req->src); sg; sg = sg_next(sg)) -			skb_page_unref(skb, sg_page(sg), false); +			skb_page_unref(sg_page(sg), skb->pp_recycle);  }  #ifdef CONFIG_INET6_ESPINTCP @@ -383,7 +384,6 @@ static struct ip_esp_hdr *esp6_output_udp_encap(struct sk_buff *skb,  					       __be16 dport)  {  	struct udphdr *uh; -	__be32 *udpdata32;  	unsigned int len;  	len = skb->len + esp->tailen - skb_transport_offset(skb); @@ -398,12 +398,6 @@ static struct ip_esp_hdr *esp6_output_udp_encap(struct sk_buff *skb,  	*skb_mac_header(skb) = IPPROTO_UDP; -	if (encap_type == UDP_ENCAP_ESPINUDP_NON_IKE) { -		udpdata32 = (__be32 *)(uh + 1); -		udpdata32[0] = udpdata32[1] = 0; -		return (struct ip_esp_hdr *)(udpdata32 + 2); -	} -  	return (struct ip_esp_hdr *)(uh + 1);  } @@ -459,7 +453,6 @@ static int esp6_output_encap(struct xfrm_state *x, struct sk_buff *skb,  	switch (encap_type) {  	default:  	case UDP_ENCAP_ESPINUDP: -	case UDP_ENCAP_ESPINUDP_NON_IKE:  		esph = esp6_output_udp_encap(skb, encap_type, esp, sport, dport);  		break;  	case TCP_ENCAP_ESPINTCP: @@ -822,7 +815,6 @@ int esp6_input_done2(struct sk_buff *skb, int err)  			source = th->source;  			break;  		case UDP_ENCAP_ESPINUDP: -		case UDP_ENCAP_ESPINUDP_NON_IKE:  			source = uh->source;  			break;  		default: @@ -1232,9 +1224,6 @@ static int esp6_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)  		case UDP_ENCAP_ESPINUDP:  			x->props.header_len += sizeof(struct udphdr);  			break; -		case UDP_ENCAP_ESPINUDP_NON_IKE: -			x->props.header_len += sizeof(struct udphdr) + 2 * sizeof(u32); -			break;  #ifdef CONFIG_INET6_ESPINTCP  		case TCP_ENCAP_ESPINTCP:  			/* only the length field, TCP encap is done by  |