<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/tipc/link.c, branch linux-3.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-03-27T17:08:37Z</updated>
<entry>
<title>tipc: tipc: convert node list and node hlist to RCU lists</title>
<updated>2014-03-27T17:08:37Z</updated>
<author>
<name>Ying Xue</name>
</author>
<published>2014-03-27T04:54:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c7a762e70637a256229f9dc9ca793908e8bd01b'/>
<id>urn:sha1:6c7a762e70637a256229f9dc9ca793908e8bd01b</id>
<content type='text'>
Convert tipc_node_list list and node_htable hash list to RCU lists.
On read side, the two lists are protected with RCU read lock, and
on update side, node_list_lock is applied to them.

Signed-off-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Reviewed-by: Erik Hugne &lt;erik.hugne@ericsson.com&gt;
Reviewed-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: remove active flag from tipc_bearer structure</title>
<updated>2014-03-27T17:08:37Z</updated>
<author>
<name>Ying Xue</name>
</author>
<published>2014-03-27T04:54:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f47de12b06c95cfc38c1c79986210c7620f264c4'/>
<id>urn:sha1:f47de12b06c95cfc38c1c79986210c7620f264c4</id>
<content type='text'>
After the allocation of tipc_bearer structure instance is converted
from statical way to dynamical way, we identify whether a certain
tipc_bearer structure pointer is valid by checking whether the pointer
is NULL or not. So the active flag in tipc_bearer structure becomes
redundant.

Signed-off-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Reviewed-by: Erik Hugne &lt;erik.hugne@ericsson.com&gt;
Reviewed-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: eliminate upcall function pointers between port and socket</title>
<updated>2014-03-12T19:53:49Z</updated>
<author>
<name>Jon Paul Maloy</name>
</author>
<published>2014-03-12T15:31:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=24be34b5a0c9114541891d29dff1152bb1a8df34'/>
<id>urn:sha1:24be34b5a0c9114541891d29dff1152bb1a8df34</id>
<content type='text'>
Due to the original one-to-many relation between port and user API
layers, upcalls to the API have been performed via function pointers,
installed in struct tipc_port at creation. Since this relation now
always is one-to-one, we can instead use ordinary function calls.

We remove the function pointers 'dispatcher' and ´wakeup' from
struct tipc_port, and replace them with calls to the renamed
functions tipc_sk_rcv() and tipc_sk_wakeup().

At the same time we change the name and signature of the functions
tipc_createport() and tipc_deleteport() to reflect their new role
as mere initialization/destruction functions.

Signed-off-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Reviewed-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Reviewed-by: Erik Hugne &lt;erik.hugne@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: failed transmissions should return error</title>
<updated>2014-02-19T21:40:57Z</updated>
<author>
<name>Erik Hugne</name>
</author>
<published>2014-02-19T07:37:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63fa01c147b98eaf5e5e4620c3c7bea8e9ddbbc1'/>
<id>urn:sha1:63fa01c147b98eaf5e5e4620c3c7bea8e9ddbbc1</id>
<content type='text'>
When a message could not be sent out because the destination node
or link could not be found, the full message size is returned from
sendmsg() as if it had been sent successfully. An application will
then get a false indication that it's making forward progress. This
problem has existed since the initial commit in 2.6.16.

We change this to return -ENETUNREACH if the message cannot be
delivered due to the destination node/link being unavailable. We
also get rid of the redundant tipc_reject_msg call since freeing
the buffer and doing a tipc_port_iovec_reject accomplishes exactly
the same thing.

Signed-off-by: Erik Hugne &lt;erik.hugne@ericsson.com&gt;
Reviewed-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-02-19T06:24:22Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2014-02-19T06:24:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e8d6421cff2c24fe0b345711e7a21af02e8bcf5'/>
<id>urn:sha1:1e8d6421cff2c24fe0b345711e7a21af02e8bcf5</id>
<content type='text'>
Conflicts:
	drivers/net/bonding/bond_3ad.h
	drivers/net/bonding/bond_main.c

Two minor conflicts in bonding, both of which were overlapping
changes.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: align tipc function names with common naming practice in the network</title>
<updated>2014-02-18T22:31:59Z</updated>
<author>
<name>Ying Xue</name>
</author>
<published>2014-02-18T08:06:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=247f0f3c3176c55b46cb9a20011d3d6757634815'/>
<id>urn:sha1:247f0f3c3176c55b46cb9a20011d3d6757634815</id>
<content type='text'>
Rename the following functions, which are shorter and more in line
with common naming practice in the network subsystem.

tipc_bclink_send_msg-&gt;tipc_bclink_xmit
tipc_bclink_recv_pkt-&gt;tipc_bclink_rcv
tipc_disc_recv_msg-&gt;tipc_disc_rcv
tipc_link_send_proto_msg-&gt;tipc_link_proto_xmit
link_recv_proto_msg-&gt;tipc_link_proto_rcv
link_send_sections_long-&gt;tipc_link_iovec_long_xmit
tipc_link_send_sections_fast-&gt;tipc_link_iovec_xmit_fast
tipc_link_send_sync-&gt;tipc_link_sync_xmit
tipc_link_recv_sync-&gt;tipc_link_sync_rcv
tipc_link_send_buf-&gt;__tipc_link_xmit
tipc_link_send-&gt;tipc_link_xmit
tipc_link_send_names-&gt;tipc_link_names_xmit
tipc_named_recv-&gt;tipc_named_rcv
tipc_link_recv_bundle-&gt;tipc_link_bundle_rcv
tipc_link_dup_send_queue-&gt;tipc_link_dup_queue_xmit
link_send_long_buf-&gt;tipc_link_frag_xmit

tipc_multicast-&gt;tipc_port_mcast_xmit
tipc_port_recv_mcast-&gt;tipc_port_mcast_rcv
tipc_port_reject_sections-&gt;tipc_port_iovec_reject
tipc_port_recv_proto_msg-&gt;tipc_port_proto_rcv
tipc_connect-&gt;tipc_port_connect
__tipc_connect-&gt;__tipc_port_connect
__tipc_disconnect-&gt;__tipc_port_disconnect
tipc_disconnect-&gt;tipc_port_disconnect
tipc_shutdown-&gt;tipc_port_shutdown
tipc_port_recv_msg-&gt;tipc_port_rcv
tipc_port_recv_sections-&gt;tipc_port_iovec_rcv

release-&gt;tipc_release
accept-&gt;tipc_accept
bind-&gt;tipc_bind
get_name-&gt;tipc_getname
poll-&gt;tipc_poll
send_msg-&gt;tipc_sendmsg
send_packet-&gt;tipc_send_packet
send_stream-&gt;tipc_send_stream
recv_msg-&gt;tipc_recvmsg
recv_stream-&gt;tipc_recv_stream
connect-&gt;tipc_connect
listen-&gt;tipc_listen
shutdown-&gt;tipc_shutdown
setsockopt-&gt;tipc_setsockopt
getsockopt-&gt;tipc_getsockopt

Above changes have no impact on current users of the functions.

Signed-off-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Reviewed-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: correct usage of spin_lock() vs spin_lock_bh()</title>
<updated>2014-02-17T05:26:34Z</updated>
<author>
<name>Jon Paul Maloy</name>
</author>
<published>2014-02-14T21:40:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a11607f5a145818e097c64c72c839bcf6907e110'/>
<id>urn:sha1:a11607f5a145818e097c64c72c839bcf6907e110</id>
<content type='text'>
I commit e099e86c9e24fe9aff36773600543eb31d8954d
("tipc: add node_lock protection to link lookup function")
we are calling spin_lock(&amp;node-&gt;lock) directly instead of indirectly
via the tipc_node_lock(node) function. However, tipc_node_lock() is
using spin_lock_bh(), not spin_lock(), something leading to
unbalanced usage in one place, and a smatch warning.

We fix this by consistently using tipc_node_lock()/unlock() in
in the places touched by the mentioned commit.

Signed-off-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: add node_lock protection to link lookup function</title>
<updated>2014-02-13T22:57:07Z</updated>
<author>
<name>Jon Paul Maloy</name>
</author>
<published>2014-02-13T22:29:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e099e86c9e24fe9aff36773600543eb31d8954d1'/>
<id>urn:sha1:e099e86c9e24fe9aff36773600543eb31d8954d1</id>
<content type='text'>
In an earlier commit, ("tipc: remove links list from bearer struct")
we described three issues that need to be pre-emptively resolved before
we can remove tipc_net_lock. Here we resolve issue a) described in that
commit:

"a) In access method #2, we access the link before taking the
    protecting node_lock. This will not work once net_lock is gone,
    so we will have to change the access order. We will deal with
    this in a later commit in this series."

Here, we change that access order, by ensuring that the function
link_find_link() returns only a safe reference for finding
the link, i.e., a node pointer and an index into its 'links' array,
not the link pointer itself. We also change all callers of this
function to first take the node lock before they can check if there
still is a valid link pointer at the returned index. Since the
function now returns a node pointer rather than a link pointer,
we rename it to the more appropriate 'tipc_link_find_owner().

Signed-off-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Reviewed-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: delay delete of link when failover is needed</title>
<updated>2014-02-13T22:57:07Z</updated>
<author>
<name>Jon Paul Maloy</name>
</author>
<published>2014-02-13T22:29:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7d33939f475d403e79124e3143d7951dcfe8629f'/>
<id>urn:sha1:7d33939f475d403e79124e3143d7951dcfe8629f</id>
<content type='text'>
When a bearer is disabled, all its attached links are deleted.
Ideally, we should do link failover to redundant links on other bearers,
if there are any, in such cases. This would be consistent with current
behavior when a link is reset, but not deleted. However, due to the
complexity involved, and the (wrongly) perceived low demand for this
feature, it was never implemented until now.

We mark the doomed link for deletion with a new flag, but wait until the
failover process is finished before we actually delete it. With the
improved link tunnelling/failover code introduced earlier in this commit
series, it is now easy to identify a spot in the code where the failover
is finished and it is safe to delete the marked link. Moreover, the test
for the flag and the deletion can be done synchronously, and outside the
most time critical data path.

Signed-off-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Reviewed-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>tipc: changes to general packet reception algorithm</title>
<updated>2014-02-13T22:57:06Z</updated>
<author>
<name>Jon Paul Maloy</name>
</author>
<published>2014-02-13T22:29:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5377831eb64c1b8a7b911dc79aec73a930e95da'/>
<id>urn:sha1:a5377831eb64c1b8a7b911dc79aec73a930e95da</id>
<content type='text'>
We change the order of checking for destination users when processing
incoming packets. By placing the checks for users that may potentially
replace the processed buffer, i.e., CHANGEOVER_PROTOCOL and
MSG_FRAGMENTER, in a separate step before we check for the true end
users, we get rid of a label and a 'goto', at the same time making the
code more comprehensible and easy to follow.

This commit does not change any functionality, it is just a cosmetic
code reshuffle.

Signed-off-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Reviewed-by: Ying Xue &lt;ying.xue@windriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
