Patchwork [net-next,06/14] tipc: Prevent crash when broadcast link cannot send to all nodes

login
register
mail settings
Submitter Paul Gortmaker
Date Aug. 17, 2010, 9 p.m.
Message ID <1282078816-11844-7-git-send-email-paul.gortmaker@windriver.com>
Download mbox | patch
Permalink /patch/61965/
State Accepted
Delegated to: David Miller
Headers show

Comments

Paul Gortmaker - Aug. 17, 2010, 9 p.m.
From: Allan Stephens <allan.stephens@windriver.com>

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>
---
 net/tipc/bcast.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

Patch

diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index a008c66..42b1737 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -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;
 }
 
 /**