diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 72199d1..8d841f1 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -930,6 +930,8 @@
 					   const union sctp_addr *paddr)
 {
 	struct sctp_transport *transport;
+	union sctp_addr tmp;
+	flip_to_n(&tmp, laddr);
 
 	sctp_read_lock(&asoc->base.addr_lock);
 
@@ -939,7 +941,7 @@
 		if (!transport)
 			goto out;
 
-		if (sctp_bind_addr_match(&asoc->base.bind_addr, laddr,
+		if (sctp_bind_addr_match(&asoc->base.bind_addr, &tmp,
 					 sctp_sk(asoc->base.sk)))
 			goto out;
 	}
@@ -1342,12 +1344,10 @@
 			    const union sctp_addr *laddr)
 {
 	int found;
-	union sctp_addr tmp;
 
-	flip_to_h(&tmp, laddr);
 	sctp_read_lock(&asoc->base.addr_lock);
 	if ((asoc->base.bind_addr.port == ntohs(laddr->v4.sin_port)) &&
-	    sctp_bind_addr_match(&asoc->base.bind_addr, &tmp,
+	    sctp_bind_addr_match(&asoc->base.bind_addr, laddr,
 			         sctp_sk(asoc->base.sk))) {
 		found = 1;
 		goto out;
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index 9085e53..442d891 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -307,12 +307,10 @@
 {
 	struct sctp_sockaddr_entry *laddr;
 	struct list_head *pos;
-	union sctp_addr tmp;
 
-	flip_to_n(&tmp, addr);
 	list_for_each(pos, &bp->address_list) {
 		laddr = list_entry(pos, struct sctp_sockaddr_entry, list);
-		if (opt->pf->cmp_addr(&laddr->a, &tmp, opt))
+		if (opt->pf->cmp_addr(&laddr->a, addr, opt))
  			return 1;
 	}
 
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 75904b0..d77fe92 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -228,10 +228,12 @@
 					       const union sctp_addr *laddr)
 {
 	struct sctp_endpoint *retval;
+	union sctp_addr tmp;
+	flip_to_n(&tmp, laddr);
 
 	sctp_read_lock(&ep->base.addr_lock);
 	if (ep->base.bind_addr.port == laddr->v4.sin_port) {
-		if (sctp_bind_addr_match(&ep->base.bind_addr, laddr,
+		if (sctp_bind_addr_match(&ep->base.bind_addr, &tmp,
 					 sctp_sk(ep->base.sk))) {
 			retval = ep;
 			goto out;
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index e03ba90..d42953e 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -4635,11 +4635,9 @@
 {
 	struct sctp_bind_hashbucket *head; /* hash list */
 	struct sctp_bind_bucket *pp; /* hash list port iterator */
-	union sctp_addr tmp;
 	unsigned short snum;
 	int ret;
 
-	flip_to_h(&tmp, addr);
 	snum = ntohs(addr->v4.sin_port);
 
 	SCTP_DEBUG_PRINTK("sctp_get_port() begins, snum=%d\n", snum);
@@ -4737,7 +4735,7 @@
 			if (reuse && sk2->sk_reuse)
 				continue;
 
-			if (sctp_bind_addr_match(&ep2->base.bind_addr, &tmp,
+			if (sctp_bind_addr_match(&ep2->base.bind_addr, addr,
 						 sctp_sk(sk))) {
 				ret = (long)sk2;
 				goto fail_unlock;
