summaryrefslogtreecommitdiffstats
path: root/net/tipc/bcast.c
diff options
context:
space:
mode:
authorAllan Stephens2011-05-23 19:14:18 +0200
committerPaul Gortmaker2011-06-24 22:18:15 +0200
commit5e726900380cfff50436ca6c5e08b35b3357d82a (patch)
treecac273bd08cc73d1923c6458b98f04fd2939bff9 /net/tipc/bcast.c
parentMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/jkirsher... (diff)
downloadkernel-qcow2-linux-5e726900380cfff50436ca6c5e08b35b3357d82a.tar.gz
kernel-qcow2-linux-5e726900380cfff50436ca6c5e08b35b3357d82a.tar.xz
kernel-qcow2-linux-5e726900380cfff50436ca6c5e08b35b3357d82a.zip
tipc: Convert fatal broadcast sanity check to non-fatal check
Modifies the existing broadcast link sanity check that detects an attempt to send a message off-node when there are no available destinations so that it no longer causes a kernel panic; instead, the check now issues a warning and stack trace and then returns without sending the message anywhere. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'net/tipc/bcast.c')
-rw-r--r--net/tipc/bcast.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index fa68d1e9ff4b..759b318b5ffb 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -552,12 +552,16 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
if (likely(!msg_non_seq(buf_msg(buf)))) {
struct tipc_msg *msg;
- assert(tipc_bcast_nmap.count != 0);
bcbuf_set_acks(buf, tipc_bcast_nmap.count);
msg = buf_msg(buf);
msg_set_non_seq(msg, 1);
msg_set_mc_netid(msg, tipc_net_id);
bcl->stats.sent_info++;
+
+ if (WARN_ON(!tipc_bcast_nmap.count)) {
+ dump_stack();
+ return 0;
+ }
}
/* Send buffer over bearers until all targets reached */