diff options
Diffstat (limited to 'net/dccp')
| -rw-r--r-- | net/dccp/ccids/ccid2.c | 4 | ||||
| -rw-r--r-- | net/dccp/ccids/ccid3.c | 2 | ||||
| -rw-r--r-- | net/dccp/ccids/lib/tfrc.c | 2 | ||||
| -rw-r--r-- | net/dccp/ccids/lib/tfrc.h | 2 | ||||
| -rw-r--r-- | net/dccp/dccp.h | 4 | ||||
| -rw-r--r-- | net/dccp/diag.c | 20 | ||||
| -rw-r--r-- | net/dccp/feat.c | 16 | ||||
| -rw-r--r-- | net/dccp/ipv4.c | 5 | ||||
| -rw-r--r-- | net/dccp/ipv6.c | 42 | ||||
| -rw-r--r-- | net/dccp/minisocks.c | 8 | ||||
| -rw-r--r-- | net/dccp/options.c | 2 | ||||
| -rw-r--r-- | net/dccp/probe.c | 14 | ||||
| -rw-r--r-- | net/dccp/proto.c | 2 | 
13 files changed, 73 insertions, 50 deletions
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index 67164bb6ae4..f053198e730 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c @@ -29,7 +29,7 @@  #ifdef CONFIG_IP_DCCP_CCID2_DEBUG -static int ccid2_debug; +static bool ccid2_debug;  #define ccid2_pr_debug(format, a...)	DCCP_PR_DEBUG(ccid2_debug, format, ##a)  #else  #define ccid2_pr_debug(format, a...) @@ -174,7 +174,7 @@ out:  /*   *	Congestion window validation (RFC 2861).   */ -static int ccid2_do_cwv = 1; +static bool ccid2_do_cwv = true;  module_param(ccid2_do_cwv, bool, 0644);  MODULE_PARM_DESC(ccid2_do_cwv, "Perform RFC2861 Congestion Window Validation"); diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index 3d604e1349c..56062730720 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c @@ -38,7 +38,7 @@  #include <asm/unaligned.h>  #ifdef CONFIG_IP_DCCP_CCID3_DEBUG -static int ccid3_debug; +static bool ccid3_debug;  #define ccid3_pr_debug(format, a...)	DCCP_PR_DEBUG(ccid3_debug, format, ##a)  #else  #define ccid3_pr_debug(format, a...) diff --git a/net/dccp/ccids/lib/tfrc.c b/net/dccp/ccids/lib/tfrc.c index 1f94b7e01d3..62b5828acde 100644 --- a/net/dccp/ccids/lib/tfrc.c +++ b/net/dccp/ccids/lib/tfrc.c @@ -8,7 +8,7 @@  #include "tfrc.h"  #ifdef CONFIG_IP_DCCP_TFRC_DEBUG -int tfrc_debug; +bool tfrc_debug;  module_param(tfrc_debug, bool, 0644);  MODULE_PARM_DESC(tfrc_debug, "Enable TFRC debug messages");  #endif diff --git a/net/dccp/ccids/lib/tfrc.h b/net/dccp/ccids/lib/tfrc.h index f8ee3f54977..ed698c42a5f 100644 --- a/net/dccp/ccids/lib/tfrc.h +++ b/net/dccp/ccids/lib/tfrc.h @@ -21,7 +21,7 @@  #include "packet_history.h"  #ifdef CONFIG_IP_DCCP_TFRC_DEBUG -extern int tfrc_debug; +extern bool tfrc_debug;  #define tfrc_pr_debug(format, a...)	DCCP_PR_DEBUG(tfrc_debug, format, ##a)  #else  #define tfrc_pr_debug(format, a...) diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h index 583490aaf56..29d6bb629a6 100644 --- a/net/dccp/dccp.h +++ b/net/dccp/dccp.h @@ -39,7 +39,7 @@  						  "%s: " fmt, __func__, ##a)  #ifdef CONFIG_IP_DCCP_DEBUG -extern int dccp_debug; +extern bool dccp_debug;  #define dccp_pr_debug(format, a...)	  DCCP_PR_DEBUG(dccp_debug, format, ##a)  #define dccp_pr_debug_cat(format, a...)   DCCP_PRINTK(dccp_debug, format, ##a)  #define dccp_debug(fmt, a...)		  dccp_pr_debug_cat(KERN_DEBUG fmt, ##a) @@ -357,7 +357,7 @@ static inline int dccp_bad_service_code(const struct sock *sk,  struct dccp_skb_cb {  	union {  		struct inet_skb_parm	h4; -#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) +#if IS_ENABLED(CONFIG_IPV6)  		struct inet6_skb_parm	h6;  #endif  	} header; diff --git a/net/dccp/diag.c b/net/dccp/diag.c index b21f261da75..8f162575337 100644 --- a/net/dccp/diag.c +++ b/net/dccp/diag.c @@ -48,11 +48,23 @@ static void dccp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,  		dccp_get_info(sk, _info);  } +static void dccp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb, +		struct inet_diag_req *r, struct nlattr *bc) +{ +	inet_diag_dump_icsk(&dccp_hashinfo, skb, cb, r, bc); +} + +static int dccp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh, +		struct inet_diag_req *req) +{ +	return inet_diag_dump_one_icsk(&dccp_hashinfo, in_skb, nlh, req); +} +  static const struct inet_diag_handler dccp_diag_handler = { -	.idiag_hashinfo	 = &dccp_hashinfo, +	.dump		 = dccp_diag_dump, +	.dump_one	 = dccp_diag_dump_one,  	.idiag_get_info	 = dccp_diag_get_info, -	.idiag_type	 = DCCPDIAG_GETSOCK, -	.idiag_info_size = sizeof(struct tcp_info), +	.idiag_type	 = IPPROTO_DCCP,  };  static int __init dccp_diag_init(void) @@ -71,4 +83,4 @@ module_exit(dccp_diag_fini);  MODULE_LICENSE("GPL");  MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");  MODULE_DESCRIPTION("DCCP inet_diag handler"); -MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_NETLINK, NETLINK_INET_DIAG, DCCPDIAG_GETSOCK); +MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_NETLINK, NETLINK_SOCK_DIAG, 2-33 /* AF_INET - IPPROTO_DCCP */); diff --git a/net/dccp/feat.c b/net/dccp/feat.c index 23cea0ee310..78a2ad70e1b 100644 --- a/net/dccp/feat.c +++ b/net/dccp/feat.c @@ -490,8 +490,8 @@ static int dccp_feat_push_change(struct list_head *fn_list, u8 feat, u8 local,  	new->feat_num	     = feat;  	new->is_local	     = local;  	new->state	     = FEAT_INITIALISING; -	new->needs_confirm   = 0; -	new->empty_confirm   = 0; +	new->needs_confirm   = false; +	new->empty_confirm   = false;  	new->val	     = *fval;  	new->needs_mandatory = mandatory; @@ -517,12 +517,12 @@ static int dccp_feat_push_confirm(struct list_head *fn_list, u8 feat, u8 local,  	new->feat_num	     = feat;  	new->is_local	     = local;  	new->state	     = FEAT_STABLE;	/* transition in 6.6.2 */ -	new->needs_confirm   = 1; +	new->needs_confirm   = true;  	new->empty_confirm   = (fval == NULL);  	new->val.nn	     = 0;		/* zeroes the whole structure */  	if (!new->empty_confirm)  		new->val     = *fval; -	new->needs_mandatory = 0; +	new->needs_mandatory = false;  	return 0;  } @@ -1155,7 +1155,7 @@ static u8 dccp_feat_change_recv(struct list_head *fn, u8 is_mandatory, u8 opt,  	}  	if (dccp_feat_reconcile(&entry->val, val, len, server, true)) { -		entry->empty_confirm = 0; +		entry->empty_confirm = false;  	} else if (is_mandatory) {  		return DCCP_RESET_CODE_MANDATORY_ERROR;  	} else if (entry->state == FEAT_INITIALISING) { @@ -1171,10 +1171,10 @@ static u8 dccp_feat_change_recv(struct list_head *fn, u8 is_mandatory, u8 opt,  		defval = dccp_feat_default_value(feat);  		if (!dccp_feat_reconcile(&entry->val, &defval, 1, server, true))  			return DCCP_RESET_CODE_OPTION_ERROR; -		entry->empty_confirm = 1; +		entry->empty_confirm = true;  	} -	entry->needs_confirm   = 1; -	entry->needs_mandatory = 0; +	entry->needs_confirm   = true; +	entry->needs_mandatory = false;  	entry->state	       = FEAT_STABLE;  	return 0; diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 3f4e5414c8e..1c67fe8ff90 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c @@ -474,10 +474,11 @@ static struct dst_entry* dccp_v4_route_skb(struct net *net, struct sock *sk,  					   struct sk_buff *skb)  {  	struct rtable *rt; +	const struct iphdr *iph = ip_hdr(skb);  	struct flowi4 fl4 = {  		.flowi4_oif = skb_rtable(skb)->rt_iif, -		.daddr = ip_hdr(skb)->saddr, -		.saddr = ip_hdr(skb)->daddr, +		.daddr = iph->saddr, +		.saddr = iph->daddr,  		.flowi4_tos = RT_CONN_FLAGS(sk),  		.flowi4_proto = sk->sk_protocol,  		.fl4_sport = dccp_hdr(skb)->dccph_dport, diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 17ee85ce148..ce903f747e6 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c @@ -150,8 +150,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,  			 */  			memset(&fl6, 0, sizeof(fl6));  			fl6.flowi6_proto = IPPROTO_DCCP; -			ipv6_addr_copy(&fl6.daddr, &np->daddr); -			ipv6_addr_copy(&fl6.saddr, &np->saddr); +			fl6.daddr = np->daddr; +			fl6.saddr = np->saddr;  			fl6.flowi6_oif = sk->sk_bound_dev_if;  			fl6.fl6_dport = inet->inet_dport;  			fl6.fl6_sport = inet->inet_sport; @@ -244,8 +244,8 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req,  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_DCCP; -	ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); -	ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr); +	fl6.daddr = ireq6->rmt_addr; +	fl6.saddr = ireq6->loc_addr;  	fl6.flowlabel = 0;  	fl6.flowi6_oif = ireq6->iif;  	fl6.fl6_dport = inet_rsk(req)->rmt_port; @@ -270,7 +270,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req,  		dh->dccph_checksum = dccp_v6_csum_finish(skb,  							 &ireq6->loc_addr,  							 &ireq6->rmt_addr); -		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); +		fl6.daddr = ireq6->rmt_addr;  		err = ip6_xmit(sk, skb, &fl6, opt, np->tclass);  		err = net_xmit_eval(err);  	} @@ -313,8 +313,8 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb)  							    &rxip6h->daddr);  	memset(&fl6, 0, sizeof(fl6)); -	ipv6_addr_copy(&fl6.daddr, &rxip6h->saddr); -	ipv6_addr_copy(&fl6.saddr, &rxip6h->daddr); +	fl6.daddr = rxip6h->saddr; +	fl6.saddr = rxip6h->daddr;  	fl6.flowi6_proto = IPPROTO_DCCP;  	fl6.flowi6_oif = inet6_iif(rxskb); @@ -419,8 +419,8 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)  		goto drop_and_free;  	ireq6 = inet6_rsk(req); -	ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr); -	ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr); +	ireq6->rmt_addr = ipv6_hdr(skb)->saddr; +	ireq6->loc_addr = ipv6_hdr(skb)->daddr;  	if (ipv6_opt_accepted(sk, skb) ||  	    np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo || @@ -491,7 +491,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,  		ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr); -		ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr); +		newnp->rcv_saddr = newnp->saddr;  		inet_csk(newsk)->icsk_af_ops = &dccp_ipv6_mapped;  		newsk->sk_backlog_rcv = dccp_v4_do_rcv; @@ -526,9 +526,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,  		memset(&fl6, 0, sizeof(fl6));  		fl6.flowi6_proto = IPPROTO_DCCP; -		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); +		fl6.daddr = ireq6->rmt_addr;  		final_p = fl6_update_dst(&fl6, opt, &final); -		ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr); +		fl6.saddr = ireq6->loc_addr;  		fl6.flowi6_oif = sk->sk_bound_dev_if;  		fl6.fl6_dport = inet_rsk(req)->rmt_port;  		fl6.fl6_sport = inet_rsk(req)->loc_port; @@ -559,9 +559,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,  	memcpy(newnp, np, sizeof(struct ipv6_pinfo)); -	ipv6_addr_copy(&newnp->daddr, &ireq6->rmt_addr); -	ipv6_addr_copy(&newnp->saddr, &ireq6->loc_addr); -	ipv6_addr_copy(&newnp->rcv_saddr, &ireq6->loc_addr); +	newnp->daddr = ireq6->rmt_addr; +	newnp->saddr = ireq6->loc_addr; +	newnp->rcv_saddr = ireq6->loc_addr;  	newsk->sk_bound_dev_if = ireq6->iif;  	/* Now IPv6 options... @@ -877,7 +877,7 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);  			if (flowlabel == NULL)  				return -EINVAL; -			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst); +			usin->sin6_addr = flowlabel->dst;  			fl6_sock_release(flowlabel);  		}  	} @@ -910,7 +910,7 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  			return -EINVAL;  	} -	ipv6_addr_copy(&np->daddr, &usin->sin6_addr); +	np->daddr = usin->sin6_addr;  	np->flow_label = fl6.flowlabel;  	/* @@ -949,8 +949,8 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  		saddr = &np->rcv_saddr;  	fl6.flowi6_proto = IPPROTO_DCCP; -	ipv6_addr_copy(&fl6.daddr, &np->daddr); -	ipv6_addr_copy(&fl6.saddr, saddr ? saddr : &np->saddr); +	fl6.daddr = np->daddr; +	fl6.saddr = saddr ? *saddr : np->saddr;  	fl6.flowi6_oif = sk->sk_bound_dev_if;  	fl6.fl6_dport = usin->sin6_port;  	fl6.fl6_sport = inet->inet_sport; @@ -966,11 +966,11 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  	if (saddr == NULL) {  		saddr = &fl6.saddr; -		ipv6_addr_copy(&np->rcv_saddr, saddr); +		np->rcv_saddr = *saddr;  	}  	/* set the source address */ -	ipv6_addr_copy(&np->saddr, saddr); +	np->saddr = *saddr;  	inet->inet_rcv_saddr = LOOPBACK4_IPV6;  	__ip6_dst_store(sk, dst, NULL, NULL); diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c index d7041a0963a..5a7f90bbffa 100644 --- a/net/dccp/minisocks.c +++ b/net/dccp/minisocks.c @@ -53,15 +53,15 @@ void dccp_time_wait(struct sock *sk, int state, int timeo)  	if (tw != NULL) {  		const struct inet_connection_sock *icsk = inet_csk(sk);  		const int rto = (icsk->icsk_rto << 2) - (icsk->icsk_rto >> 1); -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +#if IS_ENABLED(CONFIG_IPV6)  		if (tw->tw_family == PF_INET6) {  			const struct ipv6_pinfo *np = inet6_sk(sk);  			struct inet6_timewait_sock *tw6;  			tw->tw_ipv6_offset = inet6_tw_offset(sk->sk_prot);  			tw6 = inet6_twsk((struct sock *)tw); -			ipv6_addr_copy(&tw6->tw_v6_daddr, &np->daddr); -			ipv6_addr_copy(&tw6->tw_v6_rcv_saddr, &np->rcv_saddr); +			tw6->tw_v6_daddr = np->daddr; +			tw6->tw_v6_rcv_saddr = np->rcv_saddr;  			tw->tw_ipv6only = np->ipv6only;  		}  #endif @@ -100,7 +100,7 @@ struct sock *dccp_create_openreq_child(struct sock *sk,  	 *   (* Generate a new socket and switch to that socket *)  	 *   Set S := new socket for this port pair  	 */ -	struct sock *newsk = inet_csk_clone(sk, req, GFP_ATOMIC); +	struct sock *newsk = inet_csk_clone_lock(sk, req, GFP_ATOMIC);  	if (newsk != NULL) {  		struct dccp_request_sock *dreq = dccp_rsk(req); diff --git a/net/dccp/options.c b/net/dccp/options.c index 4b2ab657ac8..68fa6b7a3e0 100644 --- a/net/dccp/options.c +++ b/net/dccp/options.c @@ -544,7 +544,7 @@ int dccp_insert_fn_opt(struct sk_buff *skb, u8 type, u8 feat,  	}  	if (unlikely(val == NULL || len == 0)) -		len = repeat_first = 0; +		len = repeat_first = false;  	tot_len = 3 + repeat_first + len;  	if (DCCP_SKB_CB(skb)->dccpd_opt_len + tot_len > DCCP_MAX_OPT_LEN) { diff --git a/net/dccp/probe.c b/net/dccp/probe.c index 33d0e6297c2..0a8d6ebd9b4 100644 --- a/net/dccp/probe.c +++ b/net/dccp/probe.c @@ -152,6 +152,17 @@ static const struct file_operations dccpprobe_fops = {  	.llseek  = noop_llseek,  }; +static __init int setup_jprobe(void) +{ +	int ret = register_jprobe(&dccp_send_probe); + +	if (ret) { +		request_module("dccp"); +		ret = register_jprobe(&dccp_send_probe); +	} +	return ret; +} +  static __init int dccpprobe_init(void)  {  	int ret = -ENOMEM; @@ -163,8 +174,7 @@ static __init int dccpprobe_init(void)  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))  		goto err0; -	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) == 0, -				"dccp"); +	ret = setup_jprobe();  	if (ret)  		goto err1; diff --git a/net/dccp/proto.c b/net/dccp/proto.c index e742f90a685..7065c0ae1e7 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c @@ -1099,7 +1099,7 @@ module_param(thash_entries, int, 0444);  MODULE_PARM_DESC(thash_entries, "Number of ehash buckets");  #ifdef CONFIG_IP_DCCP_DEBUG -int dccp_debug; +bool dccp_debug;  module_param(dccp_debug, bool, 0644);  MODULE_PARM_DESC(dccp_debug, "Enable debug messages");  |