Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5bbef20 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

[IPV6]: Replace sk_buff ** with sk_buff * in input handlers



With all the users of the double pointers removed from the IPv6 input path,
this patch converts all occurances of sk_buff ** to sk_buff * in IPv6 input
handlers.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a224be76
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -249,7 +249,7 @@ extern int ip6_ra_control(struct sock *sk, int sel,
					       void (*destructor)(struct sock *));
					       void (*destructor)(struct sock *));




extern int			ipv6_parse_hopopts(struct sk_buff **skbp);
extern int			ipv6_parse_hopopts(struct sk_buff *skb);


extern struct ipv6_txoptions *  ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
extern struct ipv6_txoptions *  ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
extern struct ipv6_txoptions *	ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
extern struct ipv6_txoptions *	ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
+1 −1
Original line number Original line Diff line number Diff line
@@ -45,7 +45,7 @@ struct net_protocol {
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
struct inet6_protocol 
struct inet6_protocol 
{
{
	int	(*handler)(struct sk_buff **skb);
	int	(*handler)(struct sk_buff *skb);


	void	(*err_handler)(struct sk_buff *skb,
	void	(*err_handler)(struct sk_buff *skb,
			       struct inet6_skb_parm *opt,
			       struct inet6_skb_parm *opt,
+1 −1
Original line number Original line Diff line number Diff line
@@ -1051,7 +1051,7 @@ extern int xfrm4_output(struct sk_buff *skb);
extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family);
extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family);
extern int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family);
extern int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family);
extern int xfrm6_rcv_spi(struct sk_buff *skb, __be32 spi);
extern int xfrm6_rcv_spi(struct sk_buff *skb, __be32 spi);
extern int xfrm6_rcv(struct sk_buff **pskb);
extern int xfrm6_rcv(struct sk_buff *skb);
extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
			    xfrm_address_t *saddr, u8 proto);
			    xfrm_address_t *saddr, u8 proto);
extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family);
extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family);
+1 −2
Original line number Original line Diff line number Diff line
@@ -767,10 +767,9 @@ discard:
	return 0;
	return 0;
}
}


static int dccp_v6_rcv(struct sk_buff **pskb)
static int dccp_v6_rcv(struct sk_buff *skb)
{
{
	const struct dccp_hdr *dh;
	const struct dccp_hdr *dh;
	struct sk_buff *skb = *pskb;
	struct sock *sk;
	struct sock *sk;
	int min_cov;
	int min_cov;


+14 −27
Original line number Original line Diff line number Diff line
@@ -102,7 +102,7 @@ EXPORT_SYMBOL_GPL(ipv6_find_tlv);


struct tlvtype_proc {
struct tlvtype_proc {
	int	type;
	int	type;
	int	(*func)(struct sk_buff **skbp, int offset);
	int	(*func)(struct sk_buff *skb, int offset);
};
};


/*********************
/*********************
@@ -111,10 +111,8 @@ struct tlvtype_proc {


/* An unknown option is detected, decide what to do */
/* An unknown option is detected, decide what to do */


static int ip6_tlvopt_unknown(struct sk_buff **skbp, int optoff)
static int ip6_tlvopt_unknown(struct sk_buff *skb, int optoff)
{
{
	struct sk_buff *skb = *skbp;

	switch ((skb_network_header(skb)[optoff] & 0xC0) >> 6) {
	switch ((skb_network_header(skb)[optoff] & 0xC0) >> 6) {
	case 0: /* ignore */
	case 0: /* ignore */
		return 1;
		return 1;
@@ -139,9 +137,8 @@ static int ip6_tlvopt_unknown(struct sk_buff **skbp, int optoff)


/* Parse tlv encoded option header (hop-by-hop or destination) */
/* Parse tlv encoded option header (hop-by-hop or destination) */


static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff **skbp)
static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff *skb)
{
{
	struct sk_buff *skb = *skbp;
	struct tlvtype_proc *curr;
	struct tlvtype_proc *curr;
	const unsigned char *nh = skb_network_header(skb);
	const unsigned char *nh = skb_network_header(skb);
	int off = skb_network_header_len(skb);
	int off = skb_network_header_len(skb);
@@ -172,13 +169,13 @@ static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff **skbp)
					/* type specific length/alignment
					/* type specific length/alignment
					   checks will be performed in the
					   checks will be performed in the
					   func(). */
					   func(). */
					if (curr->func(skbp, off) == 0)
					if (curr->func(skb, off) == 0)
						return 0;
						return 0;
					break;
					break;
				}
				}
			}
			}
			if (curr->type < 0) {
			if (curr->type < 0) {
				if (ip6_tlvopt_unknown(skbp, off) == 0)
				if (ip6_tlvopt_unknown(skb, off) == 0)
					return 0;
					return 0;
			}
			}
			break;
			break;
@@ -198,9 +195,8 @@ bad:
 *****************************/
 *****************************/


#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
static int ipv6_dest_hao(struct sk_buff **skbp, int optoff)
static int ipv6_dest_hao(struct sk_buff *skb, int optoff)
{
{
	struct sk_buff *skb = *skbp;
	struct ipv6_destopt_hao *hao;
	struct ipv6_destopt_hao *hao;
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct ipv6hdr *ipv6h = ipv6_hdr(skb);
	struct ipv6hdr *ipv6h = ipv6_hdr(skb);
@@ -271,9 +267,8 @@ static struct tlvtype_proc tlvprocdestopt_lst[] = {
	{-1,			NULL}
	{-1,			NULL}
};
};


static int ipv6_destopt_rcv(struct sk_buff **skbp)
static int ipv6_destopt_rcv(struct sk_buff *skb)
{
{
	struct sk_buff *skb = *skbp;
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct inet6_skb_parm *opt = IP6CB(skb);
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
	__u16 dstbuf;
	__u16 dstbuf;
@@ -295,9 +290,8 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp)
#endif
#endif


	dst = dst_clone(skb->dst);
	dst = dst_clone(skb->dst);
	if (ip6_parse_tlv(tlvprocdestopt_lst, skbp)) {
	if (ip6_parse_tlv(tlvprocdestopt_lst, skb)) {
		dst_release(dst);
		dst_release(dst);
		skb = *skbp;
		skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
		skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
		opt = IP6CB(skb);
		opt = IP6CB(skb);
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
@@ -328,10 +322,8 @@ void __init ipv6_destopt_init(void)
  NONE header. No data in packet.
  NONE header. No data in packet.
 ********************************/
 ********************************/


static int ipv6_nodata_rcv(struct sk_buff **skbp)
static int ipv6_nodata_rcv(struct sk_buff *skb)
{
{
	struct sk_buff *skb = *skbp;

	kfree_skb(skb);
	kfree_skb(skb);
	return 0;
	return 0;
}
}
@@ -351,9 +343,8 @@ void __init ipv6_nodata_init(void)
  Routing header.
  Routing header.
 ********************************/
 ********************************/


static int ipv6_rthdr_rcv(struct sk_buff **skbp)
static int ipv6_rthdr_rcv(struct sk_buff *skb)
{
{
	struct sk_buff *skb = *skbp;
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct in6_addr *addr = NULL;
	struct in6_addr *addr = NULL;
	struct in6_addr daddr;
	struct in6_addr daddr;
@@ -565,9 +556,8 @@ static inline struct inet6_dev *ipv6_skb_idev(struct sk_buff *skb)


/* Router Alert as of RFC 2711 */
/* Router Alert as of RFC 2711 */


static int ipv6_hop_ra(struct sk_buff **skbp, int optoff)
static int ipv6_hop_ra(struct sk_buff *skb, int optoff)
{
{
	struct sk_buff *skb = *skbp;
	const unsigned char *nh = skb_network_header(skb);
	const unsigned char *nh = skb_network_header(skb);


	if (nh[optoff + 1] == 2) {
	if (nh[optoff + 1] == 2) {
@@ -582,9 +572,8 @@ static int ipv6_hop_ra(struct sk_buff **skbp, int optoff)


/* Jumbo payload */
/* Jumbo payload */


static int ipv6_hop_jumbo(struct sk_buff **skbp, int optoff)
static int ipv6_hop_jumbo(struct sk_buff *skb, int optoff)
{
{
	struct sk_buff *skb = *skbp;
	const unsigned char *nh = skb_network_header(skb);
	const unsigned char *nh = skb_network_header(skb);
	u32 pkt_len;
	u32 pkt_len;


@@ -635,9 +624,8 @@ static struct tlvtype_proc tlvprochopopt_lst[] = {
	{ -1, }
	{ -1, }
};
};


int ipv6_parse_hopopts(struct sk_buff **skbp)
int ipv6_parse_hopopts(struct sk_buff *skb)
{
{
	struct sk_buff *skb = *skbp;
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct inet6_skb_parm *opt = IP6CB(skb);


	/*
	/*
@@ -654,8 +642,7 @@ int ipv6_parse_hopopts(struct sk_buff **skbp)
	}
	}


	opt->hop = sizeof(struct ipv6hdr);
	opt->hop = sizeof(struct ipv6hdr);
	if (ip6_parse_tlv(tlvprochopopt_lst, skbp)) {
	if (ip6_parse_tlv(tlvprochopopt_lst, skb)) {
		skb = *skbp;
		skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
		skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
		opt = IP6CB(skb);
		opt = IP6CB(skb);
		opt->nhoff = sizeof(struct ipv6hdr);
		opt->nhoff = sizeof(struct ipv6hdr);
Loading