From: Allan Stephens Date: Thu, 7 Apr 2011 18:20:45 +0000 (-0400) Subject: tipc: Remove deferred queue head caching during broadcast message reception X-Git-Tag: firefly_0821_release~3680^2~4273^2~251^2~16 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=693d03ae3c2bafd7caca1cf4ade9f23f107e33c1;p=firefly-linux-kernel-4.4.55.git tipc: Remove deferred queue head caching during broadcast message reception Modifies TIPC's incoming broadcast packet handler so that it no longer pre-reads information about the deferred packet queue, since the cached value is unreliable once the associated node lock has been released. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker --- diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index bc01ca6891e4..8d298526a5c1 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c @@ -467,7 +467,6 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf) /* Handle in-sequence broadcast message */ receive: - deferred = node->bclink.deferred_head; next_in = mod(node->bclink.last_in + 1); seqno = msg_seqno(msg); @@ -500,6 +499,7 @@ receive: } buf = NULL; tipc_node_lock(node); + deferred = node->bclink.deferred_head; if (deferred && (buf_seqno(deferred) == mod(next_in + 1))) { buf = deferred; msg = buf_msg(buf);