summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-04-04 09:00:36 -0400
committerDavid Howells <dhowells@redhat.com>2016-06-22 04:10:00 -0400
commit85f32278bd98fa89dff528b0baea4ae6eea4cc5d (patch)
tree7e71d9130a56ded6ae6b5d944aaa5214e8d9b540
parent19ffa01c9c45861ad6b181323e0d36904298e326 (diff)
rxrpc: Replace conn->trans->{local,peer} with conn->params.{local,peer}
Replace accesses of conn->trans->{local,peer} with conn->params.{local,peer} thus making it easier for a future commit to remove the rxrpc_transport struct. This also reduces the number of memory accesses involved. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--net/rxrpc/call_event.c12
-rw-r--r--net/rxrpc/call_object.c28
-rw-r--r--net/rxrpc/conn_event.c6
-rw-r--r--net/rxrpc/input.c2
-rw-r--r--net/rxrpc/output.c2
-rw-r--r--net/rxrpc/proc.c22
-rw-r--r--net/rxrpc/recvmsg.c4
-rw-r--r--net/rxrpc/rxkad.c12
-rw-r--r--net/rxrpc/security.c2
9 files changed, 44 insertions, 46 deletions
diff --git a/net/rxrpc/call_event.c b/net/rxrpc/call_event.c
index 1571dfb95aa3..b43faf573ed3 100644
--- a/net/rxrpc/call_event.c
+++ b/net/rxrpc/call_event.c
@@ -545,7 +545,7 @@ static void rxrpc_extract_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
545 545
546 mtu = min(ntohl(ackinfo.rxMTU), ntohl(ackinfo.maxMTU)); 546 mtu = min(ntohl(ackinfo.rxMTU), ntohl(ackinfo.maxMTU));
547 547
548 peer = call->conn->trans->peer; 548 peer = call->conn->params.peer;
549 if (mtu < peer->maxdata) { 549 if (mtu < peer->maxdata) {
550 spin_lock_bh(&peer->lock); 550 spin_lock_bh(&peer->lock);
551 peer->maxdata = mtu; 551 peer->maxdata = mtu;
@@ -836,8 +836,8 @@ void rxrpc_process_call(struct work_struct *work)
836 836
837 /* there's a good chance we're going to have to send a message, so set 837 /* there's a good chance we're going to have to send a message, so set
838 * one up in advance */ 838 * one up in advance */
839 msg.msg_name = &call->conn->trans->peer->srx.transport; 839 msg.msg_name = &call->conn->params.peer->srx.transport;
840 msg.msg_namelen = call->conn->trans->peer->srx.transport_len; 840 msg.msg_namelen = call->conn->params.peer->srx.transport_len;
841 msg.msg_control = NULL; 841 msg.msg_control = NULL;
842 msg.msg_controllen = 0; 842 msg.msg_controllen = 0;
843 msg.msg_flags = 0; 843 msg.msg_flags = 0;
@@ -1151,8 +1151,8 @@ send_ACK_with_skew:
1151 ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) - 1151 ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) -
1152 ntohl(ack.serial)); 1152 ntohl(ack.serial));
1153send_ACK: 1153send_ACK:
1154 mtu = call->conn->trans->peer->if_mtu; 1154 mtu = call->conn->params.peer->if_mtu;
1155 mtu -= call->conn->trans->peer->hdrsize; 1155 mtu -= call->conn->params.peer->hdrsize;
1156 ackinfo.maxMTU = htonl(mtu); 1156 ackinfo.maxMTU = htonl(mtu);
1157 ackinfo.rwind = htonl(rxrpc_rx_window_size); 1157 ackinfo.rwind = htonl(rxrpc_rx_window_size);
1158 1158
@@ -1206,7 +1206,7 @@ send_message_2:
1206 len += iov[1].iov_len; 1206 len += iov[1].iov_len;
1207 } 1207 }
1208 1208
1209 ret = kernel_sendmsg(call->conn->trans->local->socket, 1209 ret = kernel_sendmsg(call->conn->params.local->socket,
1210 &msg, iov, ioc, len); 1210 &msg, iov, ioc, len);
1211 if (ret < 0) { 1211 if (ret < 0) {
1212 _debug("sendmsg failed: %d", ret); 1212 _debug("sendmsg failed: %d", ret);
diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c
index b7c6011c71bb..5c2dceaf6a9c 100644
--- a/net/rxrpc/call_object.c
+++ b/net/rxrpc/call_object.c
@@ -122,7 +122,7 @@ static void rxrpc_call_hash_add(struct rxrpc_call *call)
122 key = rxrpc_call_hashfunc(call->in_clientflag, call->cid, 122 key = rxrpc_call_hashfunc(call->in_clientflag, call->cid,
123 call->call_id, call->epoch, 123 call->call_id, call->epoch,
124 call->service_id, call->family, 124 call->service_id, call->family,
125 call->conn->trans->local, addr_size, 125 call->conn->params.local, addr_size,
126 call->peer_ip.ipv6_addr); 126 call->peer_ip.ipv6_addr);
127 /* Store the full key in the call */ 127 /* Store the full key in the call */
128 call->hash_key = key; 128 call->hash_key = key;
@@ -320,11 +320,11 @@ static struct rxrpc_call *rxrpc_alloc_client_call(
320 switch (call->family) { 320 switch (call->family) {
321 case AF_INET: 321 case AF_INET:
322 call->peer_ip.ipv4_addr = 322 call->peer_ip.ipv4_addr =
323 trans->peer->srx.transport.sin.sin_addr.s_addr; 323 call->conn->params.peer->srx.transport.sin.sin_addr.s_addr;
324 break; 324 break;
325 case AF_INET6: 325 case AF_INET6:
326 memcpy(call->peer_ip.ipv6_addr, 326 memcpy(call->peer_ip.ipv6_addr,
327 trans->peer->srx.transport.sin6.sin6_addr.in6_u.u6_addr8, 327 call->conn->params.peer->srx.transport.sin6.sin6_addr.in6_u.u6_addr8,
328 sizeof(call->peer_ip.ipv6_addr)); 328 sizeof(call->peer_ip.ipv6_addr));
329 break; 329 break;
330 } 330 }
@@ -334,9 +334,9 @@ static struct rxrpc_call *rxrpc_alloc_client_call(
334 /* Add the new call to the hashtable */ 334 /* Add the new call to the hashtable */
335 rxrpc_call_hash_add(call); 335 rxrpc_call_hash_add(call);
336 336
337 spin_lock(&call->conn->trans->peer->lock); 337 spin_lock(&call->conn->params.peer->lock);
338 hlist_add_head(&call->error_link, &call->conn->trans->peer->error_targets); 338 hlist_add_head(&call->error_link, &call->conn->params.peer->error_targets);
339 spin_unlock(&call->conn->trans->peer->lock); 339 spin_unlock(&call->conn->params.peer->lock);
340 340
341 call->lifetimer.expires = jiffies + rxrpc_max_call_lifetime; 341 call->lifetimer.expires = jiffies + rxrpc_max_call_lifetime;
342 add_timer(&call->lifetimer); 342 add_timer(&call->lifetimer);
@@ -517,9 +517,9 @@ struct rxrpc_call *rxrpc_incoming_call(struct rxrpc_sock *rx,
517 atomic_inc(&conn->usage); 517 atomic_inc(&conn->usage);
518 write_unlock_bh(&conn->lock); 518 write_unlock_bh(&conn->lock);
519 519
520 spin_lock(&conn->trans->peer->lock); 520 spin_lock(&conn->params.peer->lock);
521 hlist_add_head(&call->error_link, &conn->trans->peer->error_targets); 521 hlist_add_head(&call->error_link, &conn->params.peer->error_targets);
522 spin_unlock(&conn->trans->peer->lock); 522 spin_unlock(&conn->params.peer->lock);
523 523
524 write_lock_bh(&rxrpc_call_lock); 524 write_lock_bh(&rxrpc_call_lock);
525 list_add_tail(&call->link, &rxrpc_calls); 525 list_add_tail(&call->link, &rxrpc_calls);
@@ -527,15 +527,15 @@ struct rxrpc_call *rxrpc_incoming_call(struct rxrpc_sock *rx,
527 527
528 /* Record copies of information for hashtable lookup */ 528 /* Record copies of information for hashtable lookup */
529 call->family = rx->family; 529 call->family = rx->family;
530 call->local = conn->trans->local; 530 call->local = conn->params.local;
531 switch (call->family) { 531 switch (call->family) {
532 case AF_INET: 532 case AF_INET:
533 call->peer_ip.ipv4_addr = 533 call->peer_ip.ipv4_addr =
534 conn->trans->peer->srx.transport.sin.sin_addr.s_addr; 534 conn->params.peer->srx.transport.sin.sin_addr.s_addr;
535 break; 535 break;
536 case AF_INET6: 536 case AF_INET6:
537 memcpy(call->peer_ip.ipv6_addr, 537 memcpy(call->peer_ip.ipv6_addr,
538 conn->trans->peer->srx.transport.sin6.sin6_addr.in6_u.u6_addr8, 538 conn->params.peer->srx.transport.sin6.sin6_addr.in6_u.u6_addr8,
539 sizeof(call->peer_ip.ipv6_addr)); 539 sizeof(call->peer_ip.ipv6_addr));
540 break; 540 break;
541 default: 541 default:
@@ -813,9 +813,9 @@ static void rxrpc_cleanup_call(struct rxrpc_call *call)
813 } 813 }
814 814
815 if (call->conn) { 815 if (call->conn) {
816 spin_lock(&call->conn->trans->peer->lock); 816 spin_lock(&call->conn->params.peer->lock);
817 hlist_del_init(&call->error_link); 817 hlist_del_init(&call->error_link);
818 spin_unlock(&call->conn->trans->peer->lock); 818 spin_unlock(&call->conn->params.peer->lock);
819 819
820 write_lock_bh(&call->conn->lock); 820 write_lock_bh(&call->conn->lock);
821 rb_erase(&call->conn_node, &call->conn->calls); 821 rb_erase(&call->conn_node, &call->conn->calls);
diff --git a/net/rxrpc/conn_event.c b/net/rxrpc/conn_event.c
index 51e280c662e0..a022439f6f5a 100644
--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -88,8 +88,8 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
88 88
89 rxrpc_abort_calls(conn, RXRPC_CALL_LOCALLY_ABORTED, abort_code); 89 rxrpc_abort_calls(conn, RXRPC_CALL_LOCALLY_ABORTED, abort_code);
90 90
91 msg.msg_name = &conn->trans->peer->srx.transport; 91 msg.msg_name = &conn->params.peer->srx.transport;
92 msg.msg_namelen = conn->trans->peer->srx.transport_len; 92 msg.msg_namelen = conn->params.peer->srx.transport_len;
93 msg.msg_control = NULL; 93 msg.msg_control = NULL;
94 msg.msg_controllen = 0; 94 msg.msg_controllen = 0;
95 msg.msg_flags = 0; 95 msg.msg_flags = 0;
@@ -118,7 +118,7 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
118 whdr.serial = htonl(serial); 118 whdr.serial = htonl(serial);
119 _proto("Tx CONN ABORT %%%u { %d }", serial, conn->local_abort); 119 _proto("Tx CONN ABORT %%%u { %d }", serial, conn->local_abort);
120 120
121 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len); 121 ret = kernel_sendmsg(conn->params.local->socket, &msg, iov, 2, len);
122 if (ret < 0) { 122 if (ret < 0) {
123 _debug("sendmsg failed: %d", ret); 123 _debug("sendmsg failed: %d", ret);
124 return -EAGAIN; 124 return -EAGAIN;
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
index c030abd4d2d8..6af7f40c5030 100644
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -560,7 +560,7 @@ static void rxrpc_post_packet_to_call(struct rxrpc_call *call,
560dead_call: 560dead_call:
561 if (sp->hdr.type != RXRPC_PACKET_TYPE_ABORT) { 561 if (sp->hdr.type != RXRPC_PACKET_TYPE_ABORT) {
562 skb->priority = RX_CALL_DEAD; 562 skb->priority = RX_CALL_DEAD;
563 rxrpc_reject_packet(call->conn->trans->local, skb); 563 rxrpc_reject_packet(call->conn->params.local, skb);
564 goto unlock; 564 goto unlock;
565 } 565 }
566free_unlock: 566free_unlock:
diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c
index 8c51745cccea..becbaa7c0a7c 100644
--- a/net/rxrpc/output.c
+++ b/net/rxrpc/output.c
@@ -583,7 +583,7 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
583 goto maybe_error; 583 goto maybe_error;
584 } 584 }
585 585
586 max = call->conn->trans->peer->maxdata; 586 max = call->conn->params.peer->maxdata;
587 max -= call->conn->security_size; 587 max -= call->conn->security_size;
588 max &= ~(call->conn->size_align - 1UL); 588 max &= ~(call->conn->size_align - 1UL);
589 589
diff --git a/net/rxrpc/proc.c b/net/rxrpc/proc.c
index bbee05850801..9863270691d7 100644
--- a/net/rxrpc/proc.c
+++ b/net/rxrpc/proc.c
@@ -46,7 +46,7 @@ static void rxrpc_call_seq_stop(struct seq_file *seq, void *v)
46 46
47static int rxrpc_call_seq_show(struct seq_file *seq, void *v) 47static int rxrpc_call_seq_show(struct seq_file *seq, void *v)
48{ 48{
49 struct rxrpc_transport *trans; 49 struct rxrpc_connection *conn;
50 struct rxrpc_call *call; 50 struct rxrpc_call *call;
51 char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1]; 51 char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1];
52 52
@@ -59,15 +59,15 @@ static int rxrpc_call_seq_show(struct seq_file *seq, void *v)
59 } 59 }
60 60
61 call = list_entry(v, struct rxrpc_call, link); 61 call = list_entry(v, struct rxrpc_call, link);
62 trans = call->conn->trans; 62 conn = call->conn;
63 63
64 sprintf(lbuff, "%pI4:%u", 64 sprintf(lbuff, "%pI4:%u",
65 &trans->local->srx.transport.sin.sin_addr, 65 &conn->params.local->srx.transport.sin.sin_addr,
66 ntohs(trans->local->srx.transport.sin.sin_port)); 66 ntohs(conn->params.local->srx.transport.sin.sin_port));
67 67
68 sprintf(rbuff, "%pI4:%u", 68 sprintf(rbuff, "%pI4:%u",
69 &trans->peer->srx.transport.sin.sin_addr, 69 &conn->params.peer->srx.transport.sin.sin_addr,
70 ntohs(trans->peer->srx.transport.sin.sin_port)); 70 ntohs(conn->params.peer->srx.transport.sin.sin_port));
71 71
72 seq_printf(seq, 72 seq_printf(seq,
73 "UDP %-22.22s %-22.22s %4x %08x %08x %s %3u" 73 "UDP %-22.22s %-22.22s %4x %08x %08x %s %3u"
@@ -129,7 +129,6 @@ static void rxrpc_connection_seq_stop(struct seq_file *seq, void *v)
129static int rxrpc_connection_seq_show(struct seq_file *seq, void *v) 129static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
130{ 130{
131 struct rxrpc_connection *conn; 131 struct rxrpc_connection *conn;
132 struct rxrpc_transport *trans;
133 char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1]; 132 char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1];
134 133
135 if (v == &rxrpc_connections) { 134 if (v == &rxrpc_connections) {
@@ -142,15 +141,14 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
142 } 141 }
143 142
144 conn = list_entry(v, struct rxrpc_connection, link); 143 conn = list_entry(v, struct rxrpc_connection, link);
145 trans = conn->trans;
146 144
147 sprintf(lbuff, "%pI4:%u", 145 sprintf(lbuff, "%pI4:%u",
148 &trans->local->srx.transport.sin.sin_addr, 146 &conn->params.local->srx.transport.sin.sin_addr,
149 ntohs(trans->local->srx.transport.sin.sin_port)); 147 ntohs(conn->params.local->srx.transport.sin.sin_port));
150 148
151 sprintf(rbuff, "%pI4:%u", 149 sprintf(rbuff, "%pI4:%u",
152 &trans->peer->srx.transport.sin.sin_addr, 150 &conn->params.peer->srx.transport.sin.sin_addr,
153 ntohs(trans->peer->srx.transport.sin.sin_port)); 151 ntohs(conn->params.peer->srx.transport.sin.sin_port));
154 152
155 seq_printf(seq, 153 seq_printf(seq,
156 "UDP %-22.22s %-22.22s %4x %08x %08x %s %3u" 154 "UDP %-22.22s %-22.22s %4x %08x %08x %s %3u"
diff --git a/net/rxrpc/recvmsg.c b/net/rxrpc/recvmsg.c
index c5bac4e0db71..a3fa2ed85d63 100644
--- a/net/rxrpc/recvmsg.c
+++ b/net/rxrpc/recvmsg.c
@@ -147,9 +147,9 @@ int rxrpc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
147 if (!continue_call) { 147 if (!continue_call) {
148 if (msg->msg_name) { 148 if (msg->msg_name) {
149 size_t len = 149 size_t len =
150 sizeof(call->conn->trans->peer->srx); 150 sizeof(call->conn->params.peer->srx);
151 memcpy(msg->msg_name, 151 memcpy(msg->msg_name,
152 &call->conn->trans->peer->srx, len); 152 &call->conn->params.peer->srx, len);
153 msg->msg_namelen = len; 153 msg->msg_namelen = len;
154 } 154 }
155 sock_recv_timestamp(msg, &rx->sk, skb); 155 sock_recv_timestamp(msg, &rx->sk, skb);
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index 134c2713ae23..23c05ec6fa28 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -602,8 +602,8 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
602 challenge.min_level = htonl(0); 602 challenge.min_level = htonl(0);
603 challenge.__padding = 0; 603 challenge.__padding = 0;
604 604
605 msg.msg_name = &conn->trans->peer->srx.transport.sin; 605 msg.msg_name = &conn->params.peer->srx.transport.sin;
606 msg.msg_namelen = sizeof(conn->trans->peer->srx.transport.sin); 606 msg.msg_namelen = sizeof(conn->params.peer->srx.transport.sin);
607 msg.msg_control = NULL; 607 msg.msg_control = NULL;
608 msg.msg_controllen = 0; 608 msg.msg_controllen = 0;
609 msg.msg_flags = 0; 609 msg.msg_flags = 0;
@@ -630,7 +630,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
630 whdr.serial = htonl(serial); 630 whdr.serial = htonl(serial);
631 _proto("Tx CHALLENGE %%%u", serial); 631 _proto("Tx CHALLENGE %%%u", serial);
632 632
633 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len); 633 ret = kernel_sendmsg(conn->params.local->socket, &msg, iov, 2, len);
634 if (ret < 0) { 634 if (ret < 0) {
635 _debug("sendmsg failed: %d", ret); 635 _debug("sendmsg failed: %d", ret);
636 return -EAGAIN; 636 return -EAGAIN;
@@ -657,8 +657,8 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
657 657
658 _enter(""); 658 _enter("");
659 659
660 msg.msg_name = &conn->trans->peer->srx.transport.sin; 660 msg.msg_name = &conn->params.peer->srx.transport.sin;
661 msg.msg_namelen = sizeof(conn->trans->peer->srx.transport.sin); 661 msg.msg_namelen = sizeof(conn->params.peer->srx.transport.sin);
662 msg.msg_control = NULL; 662 msg.msg_control = NULL;
663 msg.msg_controllen = 0; 663 msg.msg_controllen = 0;
664 msg.msg_flags = 0; 664 msg.msg_flags = 0;
@@ -684,7 +684,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
684 whdr.serial = htonl(serial); 684 whdr.serial = htonl(serial);
685 _proto("Tx RESPONSE %%%u", serial); 685 _proto("Tx RESPONSE %%%u", serial);
686 686
687 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len); 687 ret = kernel_sendmsg(conn->params.local->socket, &msg, iov, 3, len);
688 if (ret < 0) { 688 if (ret < 0) {
689 _debug("sendmsg failed: %d", ret); 689 _debug("sendmsg failed: %d", ret);
690 return -EAGAIN; 690 return -EAGAIN;
diff --git a/net/rxrpc/security.c b/net/rxrpc/security.c
index 40955d0f2693..814d285ff802 100644
--- a/net/rxrpc/security.c
+++ b/net/rxrpc/security.c
@@ -113,7 +113,7 @@ int rxrpc_init_client_conn_security(struct rxrpc_connection *conn)
113int rxrpc_init_server_conn_security(struct rxrpc_connection *conn) 113int rxrpc_init_server_conn_security(struct rxrpc_connection *conn)
114{ 114{
115 const struct rxrpc_security *sec; 115 const struct rxrpc_security *sec;
116 struct rxrpc_local *local = conn->trans->local; 116 struct rxrpc_local *local = conn->params.local;
117 struct rxrpc_sock *rx; 117 struct rxrpc_sock *rx;
118 struct key *key; 118 struct key *key;
119 key_ref_t kref; 119 key_ref_t kref;