aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2010-08-17 07:00:08 -0400
committerDavid S. Miller <davem@davemloft.net>2010-08-17 20:31:54 -0400
commit7e3e5d0950559d1118dccbdff3c765fffcf04fd5 (patch)
tree9741b0dcae188721790b9f384e3b7d8d518951b5 /net
parentb02b69c8a403859ec72090742727e853d606a325 (diff)
tipc: Prevent crash when broadcast link cannot send to all nodes
Allow TIPC's broadcast link to continue operation when it is unable to send a message to all nodes in the cluster. Previously, the broadcast link attempted to put the broadcast pseudo-bearer into a blocked state; however, this caused a crash because the associated bearer structure is only partially initialized. Further investigation has revealed some conceptual problems with blocking the pseudo-bearer; consequently, this functionality has been disabled for the time being and the undelivered message is eventually resent by the broadcast link's existing message retransmission mechanism (if possible). Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/tipc/bcast.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index a008c6689305..42b1737f0dcf 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -609,11 +609,13 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
609 bcbearer->remains = bcbearer->remains_new; 609 bcbearer->remains = bcbearer->remains_new;
610 } 610 }
611 611
612 /* Unable to reach all targets */ 612 /*
613 * Unable to reach all targets (indicate success, since currently
614 * there isn't code in place to properly block & unblock the
615 * pseudo-bearer used by the broadcast link)
616 */
613 617
614 bcbearer->bearer.publ.blocked = 1; 618 return TIPC_OK;
615 bcl->stats.bearer_congs++;
616 return 1;
617} 619}
618 620
619/** 621/**