tipc: Un-inline port routine for processing incoming messages
authorAllan Stephens <allan.stephens@windriver.com>
Wed, 9 Nov 2011 18:29:18 +0000 (13:29 -0500)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Wed, 29 Feb 2012 16:44:32 +0000 (11:44 -0500)
Converts a non-trivial routine from inline to non-inline form
to avoid bloating the TIPC code base with 6 copies of its body.

This change is essentially cosmetic, and doesn't change existing
TIPC behavior.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
net/tipc/port.c
net/tipc/port.h

index b103d76..6adcdf9 100644 (file)
@@ -1133,6 +1133,49 @@ int tipc_shutdown(u32 ref)
        return tipc_disconnect(ref);
 }
 
+/**
+ * tipc_port_recv_msg - receive message from lower layer and deliver to port user
+ */
+
+int tipc_port_recv_msg(struct sk_buff *buf)
+{
+       struct tipc_port *p_ptr;
+       struct tipc_msg *msg = buf_msg(buf);
+       u32 destport = msg_destport(msg);
+       u32 dsz = msg_data_sz(msg);
+       u32 err;
+
+       /* forward unresolved named message */
+       if (unlikely(!destport)) {
+               tipc_net_route_msg(buf);
+               return dsz;
+       }
+
+       /* validate destination & pass to port, otherwise reject message */
+       p_ptr = tipc_port_lock(destport);
+       if (likely(p_ptr)) {
+               if (likely(p_ptr->connected)) {
+                       if ((unlikely(msg_origport(msg) !=
+                                     tipc_peer_port(p_ptr))) ||
+                           (unlikely(msg_orignode(msg) !=
+                                     tipc_peer_node(p_ptr))) ||
+                           (unlikely(!msg_connected(msg)))) {
+                               err = TIPC_ERR_NO_PORT;
+                               tipc_port_unlock(p_ptr);
+                               goto reject;
+                       }
+               }
+               err = p_ptr->dispatcher(p_ptr, buf);
+               tipc_port_unlock(p_ptr);
+               if (likely(!err))
+                       return dsz;
+       } else {
+               err = TIPC_ERR_NO_PORT;
+       }
+reject:
+       return tipc_reject_msg(buf, err);
+}
+
 /*
  *  tipc_port_recv_sections(): Concatenate and deliver sectioned
  *                        message for this node.
index f751807..9b88531 100644 (file)
@@ -205,6 +205,7 @@ int tipc_disconnect_port(struct tipc_port *tp_ptr);
 /*
  * TIPC messaging routines
  */
+int tipc_port_recv_msg(struct sk_buff *buf);
 int tipc_send(u32 portref, unsigned int num_sect, struct iovec const *msg_sect,
              unsigned int total_len);
 
@@ -271,45 +272,4 @@ static inline int tipc_port_congested(struct tipc_port *p_ptr)
        return (p_ptr->sent - p_ptr->acked) >= (TIPC_FLOW_CONTROL_WIN * 2);
 }
 
-/**
- * tipc_port_recv_msg - receive message from lower layer and deliver to port user
- */
-
-static inline int tipc_port_recv_msg(struct sk_buff *buf)
-{
-       struct tipc_port *p_ptr;
-       struct tipc_msg *msg = buf_msg(buf);
-       u32 destport = msg_destport(msg);
-       u32 dsz = msg_data_sz(msg);
-       u32 err;
-
-       /* forward unresolved named message */
-       if (unlikely(!destport)) {
-               tipc_net_route_msg(buf);
-               return dsz;
-       }
-
-       /* validate destination & pass to port, otherwise reject message */
-       p_ptr = tipc_port_lock(destport);
-       if (likely(p_ptr)) {
-               if (likely(p_ptr->connected)) {
-                       if ((unlikely(msg_origport(msg) != tipc_peer_port(p_ptr))) ||
-                           (unlikely(msg_orignode(msg) != tipc_peer_node(p_ptr))) ||
-                           (unlikely(!msg_connected(msg)))) {
-                               err = TIPC_ERR_NO_PORT;
-                               tipc_port_unlock(p_ptr);
-                               goto reject;
-                       }
-               }
-               err = p_ptr->dispatcher(p_ptr, buf);
-               tipc_port_unlock(p_ptr);
-               if (likely(!err))
-                       return dsz;
-       } else {
-               err = TIPC_ERR_NO_PORT;
-       }
-reject:
-       return tipc_reject_msg(buf, err);
-}
-
 #endif