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

Commit 9469c7b4 authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki Committed by David S. Miller
Browse files

[NET]: Use typesafe inet_twsk() inline function instead of cast.

parent 496c98df
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -311,7 +311,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info)
	}
	}


	if (sk->sk_state == DCCP_TIME_WAIT) {
	if (sk->sk_state == DCCP_TIME_WAIT) {
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		return;
		return;
	}
	}


@@ -614,7 +614,7 @@ static struct sock *dccp_v4_hnd_req(struct sock *sk, struct sk_buff *skb)
			bh_lock_sock(nsk);
			bh_lock_sock(nsk);
			return nsk;
			return nsk;
		}
		}
		inet_twsk_put((struct inet_timewait_sock *)nsk);
		inet_twsk_put(inet_twsk(nsk));
		return NULL;
		return NULL;
	}
	}


@@ -980,7 +980,7 @@ static int dccp_v4_rcv(struct sk_buff *skb)
	goto discard_it;
	goto discard_it;


do_time_wait:
do_time_wait:
	inet_twsk_put((struct inet_timewait_sock *)sk);
	inet_twsk_put(inet_twsk(sk));
	goto no_dccp_socket;
	goto no_dccp_socket;
}
}


+3 −3
Original line number Original line Diff line number Diff line
@@ -285,7 +285,7 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
	}
	}


	if (sk->sk_state == DCCP_TIME_WAIT) {
	if (sk->sk_state == DCCP_TIME_WAIT) {
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		return;
		return;
	}
	}


@@ -663,7 +663,7 @@ static struct sock *dccp_v6_hnd_req(struct sock *sk,struct sk_buff *skb)
			bh_lock_sock(nsk);
			bh_lock_sock(nsk);
			return nsk;
			return nsk;
		}
		}
		inet_twsk_put((struct inet_timewait_sock *)nsk);
		inet_twsk_put(inet_twsk(nsk));
		return NULL;
		return NULL;
	}
	}


@@ -1109,7 +1109,7 @@ static int dccp_v6_rcv(struct sk_buff **pskb)
	goto discard_it;
	goto discard_it;


do_time_wait:
do_time_wait:
	inet_twsk_put((struct inet_timewait_sock *)sk);
	inet_twsk_put(inet_twsk(sk));
	goto no_dccp_socket;
	goto no_dccp_socket;
}
}


+7 −9
Original line number Original line Diff line number Diff line
@@ -355,7 +355,7 @@ void tcp_v4_err(struct sk_buff *skb, u32 info)
		return;
		return;
	}
	}
	if (sk->sk_state == TCP_TIME_WAIT) {
	if (sk->sk_state == TCP_TIME_WAIT) {
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		return;
		return;
	}
	}


@@ -960,7 +960,7 @@ static struct sock *tcp_v4_hnd_req(struct sock *sk, struct sk_buff *skb)
			bh_lock_sock(nsk);
			bh_lock_sock(nsk);
			return nsk;
			return nsk;
		}
		}
		inet_twsk_put((struct inet_timewait_sock *)nsk);
		inet_twsk_put(inet_twsk(nsk));
		return NULL;
		return NULL;
	}
	}


@@ -1154,26 +1154,24 @@ int tcp_v4_rcv(struct sk_buff *skb)


do_time_wait:
do_time_wait:
	if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
	if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
		inet_twsk_put((struct inet_timewait_sock *) sk);
		inet_twsk_put(inet_twsk(sk));
		goto discard_it;
		goto discard_it;
	}
	}


	if (skb->len < (th->doff << 2) || tcp_checksum_complete(skb)) {
	if (skb->len < (th->doff << 2) || tcp_checksum_complete(skb)) {
		TCP_INC_STATS_BH(TCP_MIB_INERRS);
		TCP_INC_STATS_BH(TCP_MIB_INERRS);
		inet_twsk_put((struct inet_timewait_sock *) sk);
		inet_twsk_put(inet_twsk(sk));
		goto discard_it;
		goto discard_it;
	}
	}
	switch (tcp_timewait_state_process((struct inet_timewait_sock *)sk,
	switch (tcp_timewait_state_process(inet_twsk(sk), skb, th)) {
					   skb, th)) {
	case TCP_TW_SYN: {
	case TCP_TW_SYN: {
		struct sock *sk2 = inet_lookup_listener(&tcp_hashinfo,
		struct sock *sk2 = inet_lookup_listener(&tcp_hashinfo,
							skb->nh.iph->daddr,
							skb->nh.iph->daddr,
							th->dest,
							th->dest,
							inet_iif(skb));
							inet_iif(skb));
		if (sk2) {
		if (sk2) {
			inet_twsk_deschedule((struct inet_timewait_sock *)sk,
			inet_twsk_deschedule(inet_twsk(sk), &tcp_death_row);
					     &tcp_death_row);
			inet_twsk_put(inet_twsk(sk));
			inet_twsk_put((struct inet_timewait_sock *)sk);
			sk = sk2;
			sk = sk2;
			goto process;
			goto process;
		}
		}
+5 −6
Original line number Original line Diff line number Diff line
@@ -329,7 +329,7 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
	}
	}


	if (sk->sk_state == TCP_TIME_WAIT) {
	if (sk->sk_state == TCP_TIME_WAIT) {
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		return;
		return;
	}
	}


@@ -749,7 +749,7 @@ static struct sock *tcp_v6_hnd_req(struct sock *sk,struct sk_buff *skb)
			bh_lock_sock(nsk);
			bh_lock_sock(nsk);
			return nsk;
			return nsk;
		}
		}
		inet_twsk_put((struct inet_timewait_sock *)nsk);
		inet_twsk_put(inet_twsk(nsk));
		return NULL;
		return NULL;
	}
	}


@@ -1283,18 +1283,17 @@ static int tcp_v6_rcv(struct sk_buff **pskb)


do_time_wait:
do_time_wait:
	if (!xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) {
	if (!xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) {
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		goto discard_it;
		goto discard_it;
	}
	}


	if (skb->len < (th->doff<<2) || tcp_checksum_complete(skb)) {
	if (skb->len < (th->doff<<2) || tcp_checksum_complete(skb)) {
		TCP_INC_STATS_BH(TCP_MIB_INERRS);
		TCP_INC_STATS_BH(TCP_MIB_INERRS);
		inet_twsk_put((struct inet_timewait_sock *)sk);
		inet_twsk_put(inet_twsk(sk));
		goto discard_it;
		goto discard_it;
	}
	}


	switch (tcp_timewait_state_process((struct inet_timewait_sock *)sk,
	switch (tcp_timewait_state_process(inet_twsk(sk), skb, th)) {
					   skb, th)) {
	case TCP_TW_SYN:
	case TCP_TW_SYN:
	{
	{
		struct sock *sk2;
		struct sock *sk2;