inet: rename ir_loc_port to ir_num
authorEric Dumazet <edumazet@google.com>
Thu, 10 Oct 2013 07:04:37 +0000 (00:04 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Oct 2013 18:37:35 +0000 (14:37 -0400)
In commit 634fb979e8f ("inet: includes a sock_common in request_sock")
I forgot that the two ports in sock_common do not have same byte order :

skc_dport is __be16 (network order), but skc_num is __u16 (host order)

So sparse complains because ir_loc_port (mapped into skc_num) is
considered as __u16 while it should be __be16

Let rename ir_loc_port to ireq->ir_num (analogy with inet->inet_num),
and perform appropriate htons/ntohs conversions.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_sock.h
include/net/tcp.h
net/dccp/ipv6.c
net/dccp/minisocks.c
net/dccp/output.c
net/ipv4/inet_connection_sock.c
net/ipv4/syncookies.c
net/ipv4/tcp_output.c
net/ipv6/inet6_connection_sock.c
net/ipv6/syncookies.c
net/ipv6/tcp_ipv6.c

index f91204442efa4ebe7ab238b7c9fd19a95c5f64bc..06da91efbc83017585ddf275b019b1253e3e7c68 100644 (file)
@@ -72,7 +72,7 @@ struct inet_request_sock {
        struct request_sock     req;
 #define ir_loc_addr            req.__req_common.skc_rcv_saddr
 #define ir_rmt_addr            req.__req_common.skc_daddr
-#define ir_loc_port            req.__req_common.skc_num
+#define ir_num                 req.__req_common.skc_num
 #define ir_rmt_port            req.__req_common.skc_dport
 #define ir_v6_rmt_addr         req.__req_common.skc_v6_daddr
 #define ir_v6_loc_addr         req.__req_common.skc_v6_rcv_saddr
index 24a06161d1741e5288a0af672ed65265088a1939..1db3a016bff66cd66df8ad7a55132ae72905c61d 100644 (file)
@@ -1110,7 +1110,7 @@ static inline void tcp_openreq_init(struct request_sock *req,
        ireq->acked = 0;
        ireq->ecn_ok = 0;
        ireq->ir_rmt_port = tcp_hdr(skb)->source;
-       ireq->ir_loc_port = tcp_hdr(skb)->dest;
+       ireq->ir_num = ntohs(tcp_hdr(skb)->dest);
 }
 
 void tcp_enter_memory_pressure(struct sock *sk);
index 5cc5b24a956ee3a390911200e4d58e3b2b2ec4ae..4ac71ff7c2e47c4a3bcec19206845c8afd7ce9e8 100644 (file)
@@ -231,7 +231,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req)
        fl6.flowlabel = 0;
        fl6.flowi6_oif = ireq->ir_iif;
        fl6.fl6_dport = ireq->ir_rmt_port;
-       fl6.fl6_sport = ireq->ir_loc_port;
+       fl6.fl6_sport = htons(ireq->ir_num);
        security_req_classify_flow(req, flowi6_to_flowi(&fl6));
 
 
@@ -509,7 +509,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,
                fl6.saddr = ireq->ir_v6_loc_addr;
                fl6.flowi6_oif = sk->sk_bound_dev_if;
                fl6.fl6_dport = ireq->ir_rmt_port;
-               fl6.fl6_sport = ireq->ir_loc_port;
+               fl6.fl6_sport = htons(ireq->ir_num);
                security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
 
                dst = ip6_dst_lookup_flow(sk, &fl6, final_p, false);
index 66afbcec294128c97442be3ac645600e3e4b349c..9e2f78bc1553e38ed45c66e3c3aba4db302fa0b0 100644 (file)
@@ -266,10 +266,10 @@ int dccp_reqsk_init(struct request_sock *req,
 {
        struct dccp_request_sock *dreq = dccp_rsk(req);
 
-       inet_rsk(req)->ir_rmt_port        = dccp_hdr(skb)->dccph_sport;
-       inet_rsk(req)->ir_loc_port        = dccp_hdr(skb)->dccph_dport;
-       inet_rsk(req)->acked      = 0;
-       dreq->dreq_timestamp_echo = 0;
+       inet_rsk(req)->ir_rmt_port = dccp_hdr(skb)->dccph_sport;
+       inet_rsk(req)->ir_num      = ntohs(dccp_hdr(skb)->dccph_dport);
+       inet_rsk(req)->acked       = 0;
+       dreq->dreq_timestamp_echo  = 0;
 
        /* inherit feature negotiation options from listening socket */
        return dccp_feat_clone_list(&dp->dccps_featneg, &dreq->dreq_featneg);
index 9bf195d1b87add8c78a19e476e056b9f516901fa..8876078859dac20ef543043ae5b98ec42f8731cd 100644 (file)
@@ -424,7 +424,7 @@ struct sk_buff *dccp_make_response(struct sock *sk, struct dst_entry *dst,
        /* Build and checksum header */
        dh = dccp_zeroed_hdr(skb, dccp_header_size);
 
-       dh->dccph_sport = inet_rsk(req)->ir_loc_port;
+       dh->dccph_sport = htons(inet_rsk(req)->ir_num);
        dh->dccph_dport = inet_rsk(req)->ir_rmt_port;
        dh->dccph_doff  = (dccp_header_size +
                           DCCP_SKB_CB(skb)->dccpd_opt_len) / 4;
index 2ffd931d652feefddb3733f395eb51c15d0432cb..fc0e649cc002beb0631c390e6aed5f1ea3fe7390 100644 (file)
@@ -676,8 +676,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
                newicsk->icsk_bind_hash = NULL;
 
                inet_sk(newsk)->inet_dport = inet_rsk(req)->ir_rmt_port;
-               inet_sk(newsk)->inet_num = ntohs(inet_rsk(req)->ir_loc_port);
-               inet_sk(newsk)->inet_sport = inet_rsk(req)->ir_loc_port;
+               inet_sk(newsk)->inet_num = inet_rsk(req)->ir_num;
+               inet_sk(newsk)->inet_sport = htons(inet_rsk(req)->ir_num);
                newsk->sk_write_space = sk_stream_write_space;
 
                newicsk->icsk_retransmits = 0;
index 984e21cf3c5092cb2ae3add18dd5b3cec1202f7e..3b64c59b41099d4c0899d3ffc638740edfaec5e0 100644 (file)
@@ -304,10 +304,10 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
        treq->rcv_isn           = ntohl(th->seq) - 1;
        treq->snt_isn           = cookie;
        req->mss                = mss;
-       ireq->ir_loc_port               = th->dest;
-       ireq->ir_rmt_port               = th->source;
-       ireq->ir_loc_addr               = ip_hdr(skb)->daddr;
-       ireq->ir_rmt_addr               = ip_hdr(skb)->saddr;
+       ireq->ir_num            = ntohs(th->dest);
+       ireq->ir_rmt_port       = th->source;
+       ireq->ir_loc_addr       = ip_hdr(skb)->daddr;
+       ireq->ir_rmt_addr       = ip_hdr(skb)->saddr;
        ireq->ecn_ok            = ecn_ok;
        ireq->snd_wscale        = tcp_opt.snd_wscale;
        ireq->sack_ok           = tcp_opt.sack_ok;
index faec813535221a44df88b9bfc984c4b0d02b298f..2822ad021a48dbf7f9d2bc18b70b059dc51547e0 100644 (file)
@@ -2734,7 +2734,7 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
        th->syn = 1;
        th->ack = 1;
        TCP_ECN_make_synack(req, th);
-       th->source = ireq->ir_loc_port;
+       th->source = htons(ireq->ir_num);
        th->dest = ireq->ir_rmt_port;
        /* Setting of flags are superfluous here for callers (and ECE is
         * not even correctly set)
index 1317c569b58fb86d9c15430b3b38236b7fcda7ce..77bb8afb141d6349e3de622e0f20452552d70344 100644 (file)
@@ -83,7 +83,7 @@ struct dst_entry *inet6_csk_route_req(struct sock *sk,
        fl6->flowi6_oif = ireq->ir_iif;
        fl6->flowi6_mark = sk->sk_mark;
        fl6->fl6_dport = ireq->ir_rmt_port;
-       fl6->fl6_sport = ireq->ir_loc_port;
+       fl6->fl6_sport = htons(ireq->ir_num);
        security_req_classify_flow(req, flowi6_to_flowi(fl6));
 
        dst = ip6_dst_lookup_flow(sk, fl6, final_p, false);
index bc5698f9e4cdc22f49443ca6023e9732d9315729..d04d3f1dd9b7172e8699bbe47db832a6454f985e 100644 (file)
@@ -194,7 +194,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
 
        req->mss = mss;
        ireq->ir_rmt_port = th->source;
-       ireq->ir_loc_port = th->dest;
+       ireq->ir_num = ntohs(th->dest);
        ireq->ir_v6_rmt_addr = ipv6_hdr(skb)->saddr;
        ireq->ir_v6_loc_addr = ipv6_hdr(skb)->daddr;
        if (ipv6_opt_accepted(sk, skb) ||
index db234d609b3390cb2be8d4b34490bd8d92137122..b996ee2005a97ed971a4493a3323e224018685c2 100644 (file)
@@ -1735,7 +1735,7 @@ static void get_openreq6(struct seq_file *seq,
                   i,
                   src->s6_addr32[0], src->s6_addr32[1],
                   src->s6_addr32[2], src->s6_addr32[3],
-                  ntohs(inet_rsk(req)->ir_loc_port),
+                  inet_rsk(req)->ir_num,
                   dest->s6_addr32[0], dest->s6_addr32[1],
                   dest->s6_addr32[2], dest->s6_addr32[3],
                   ntohs(inet_rsk(req)->ir_rmt_port),