[SCTP]: sctp_process_init() and sctp_source() switched to net-endian.
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Nov 2006 01:12:25 +0000 (17:12 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:26:51 +0000 (21:26 -0800)
both are done in one go since almost always we have result of
the latter immediately passed to the former.  Possibly non-obvious
note: sctp_process_param() is endian-agnostic

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/endpointola.c
net/sctp/sm_make_chunk.c
net/sctp/sm_statefuns.c

index 4cca7792c961eecb6accae5ebe03c1d63440a025..33a42e90c32f509f7dfb06827ff1a7296d60ddf7 100644 (file)
@@ -346,10 +346,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep)
                 * COOKIE-ECHO chunk.
                 */
                if (NULL == chunk->asoc) {
-                       union sctp_addr tmp;
-                       flip_to_n(&tmp, sctp_source(chunk));
                        asoc = sctp_endpoint_lookup_assoc(ep,
-                                                         &tmp,
+                                                         sctp_source(chunk),
                                                          &transport);
                        chunk->asoc = asoc;
                        chunk->transport = transport;
index b367ad59ed4a327a76c232f79ba8d298be692858..44ddec90995e25a4730a25352dcb8fdc33d16ddd 100644 (file)
@@ -1041,10 +1041,10 @@ const union sctp_addr *sctp_source(const struct sctp_chunk *chunk)
 {
        /* If we have a known transport, use that.  */
        if (chunk->transport) {
-               return &chunk->transport->ipaddr_h;
+               return &chunk->transport->ipaddr;
        } else {
                /* Otherwise, extract it from the IP header.  */
-               return &chunk->source_h;
+               return &chunk->source;
        }
 }
 
@@ -1844,7 +1844,6 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
        struct sctp_transport *transport;
        struct list_head *pos, *temp;
        char *cookie;
-       union sctp_addr tmp;
 
        /* We must include the address that the INIT packet came from.
         * This is the only address that matters for an INIT packet.
@@ -1857,8 +1856,7 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
         * be a a better choice than any of the embedded addresses.
         */
        if (peer_addr) {
-               flip_to_n(&tmp, peer_addr);
-               if(!sctp_assoc_add_peer(asoc, &tmp, gfp, SCTP_ACTIVE))
+               if(!sctp_assoc_add_peer(asoc, peer_addr, gfp, SCTP_ACTIVE))
                        goto nomem;
        }
 
@@ -2419,7 +2417,6 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
        union sctp_addr addr;
        struct list_head *pos;
        union sctp_addr_param *addr_param;
-       union sctp_addr tmp;
 
        addr_param = (union sctp_addr_param *)
                        ((void *)asconf_param + sizeof(sctp_addip_param_t));
@@ -2463,8 +2460,7 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
                 * an Error Cause TLV set to the new error code 'Request to
                 * Delete Source IP Address'
                 */
-               flip_to_n(&tmp, sctp_source(asconf));
-               if (sctp_cmp_addr_exact(&tmp, &addr))
+               if (sctp_cmp_addr_exact(sctp_source(asconf), &addr))
                        return SCTP_ERROR_DEL_SRC_IP;
 
                sctp_assoc_del_peer(asoc, &addr);
index c5362638d67257868d936a1ab6f2848209c60a8c..0848309773a5beb49340548f6e1e068e9efb0704 100644 (file)
@@ -598,7 +598,6 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
        struct sctp_ulpevent *ev, *ai_ev = NULL;
        int error = 0;
        struct sctp_chunk *err_chk_p;
-       union sctp_addr tmp;
 
        /* If the packet is an OOTB packet which is temporarily on the
         * control endpoint, respond with an ABORT.
@@ -666,9 +665,8 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
         */
        peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];
 
-       flip_to_h(&tmp, &chunk->subh.cookie_hdr->c.peer_addr);
        if (!sctp_process_init(new_asoc, chunk->chunk_hdr->type,
-                              &tmp,
+                              &chunk->subh.cookie_hdr->c.peer_addr,
                               peer_init, GFP_ATOMIC))
                goto nomem_init;
 
@@ -5105,7 +5103,6 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
        __u16 sport;
        __u16 dport;
        __u32 vtag;
-       union sctp_addr tmp;
 
        /* Get the source and destination port from the inbound packet.  */
        sport = ntohs(chunk->sctp_hdr->dest);
@@ -5136,8 +5133,7 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
        }
 
        /* Make a transport for the bucket, Eliza... */
-       flip_to_n(&tmp, sctp_source(chunk));
-       transport = sctp_transport_new(&tmp, GFP_ATOMIC);
+       transport = sctp_transport_new(sctp_source(chunk), GFP_ATOMIC);
        if (!transport)
                goto nomem;