Skip to content

Commit

Permalink
tipc: Prevent crash when broadcast link cannot send to all nodes
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Allan Stephens authored and David S. Miller committed Aug 18, 2010
1 parent b02b69c commit 7e3e5d0
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions net/tipc/bcast.c
Original file line number Diff line number Diff line change
Expand Up @@ -609,11 +609,13 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
bcbearer->remains = bcbearer->remains_new;
}

/* Unable to reach all targets */
/*
* Unable to reach all targets (indicate success, since currently
* there isn't code in place to properly block & unblock the
* pseudo-bearer used by the broadcast link)
*/

bcbearer->bearer.publ.blocked = 1;
bcl->stats.bearer_congs++;
return 1;
return TIPC_OK;
}

/**
Expand Down

0 comments on commit 7e3e5d0

Please sign in to comment.