Shan Wei wrote: > Wei Yongjun wrote, at 05/11/2010 02:43 PM: >> commit fbdf501c9374966a56829ecca3a7f25d2b49a305 >> sctp: Do no select unconfirmed transports for retransmissions >> >> added code to make sure that we do not select unconfirmed paths >> for data transmission. This caused a problem when there are only >> 2 paths, 1 unconfirmed and 1 unreachable. In that case, the next >> retransmit path returned is NULL and that causes a kernel crash. >> >> commit d598b166ced20d9b9281ea3527c0e18405ddb803 >> sctp: Make sure we always return valid retransmit path >> try to fix it, but if DEBUG is configured, the oops is still >> exists. >> >> Signed-off-by: Wei Yongjun <yjwei@xxxxxxxxxxxxxx> >> --- >> net/sctp/associola.c | 15 ++++++++------- >> 1 files changed, 8 insertions(+), 7 deletions(-) >> >> diff --git a/net/sctp/associola.c b/net/sctp/associola.c >> index 3912420..1f49af5 100644 >> --- a/net/sctp/associola.c >> +++ b/net/sctp/associola.c >> @@ -1323,15 +1323,16 @@ void sctp_assoc_update_retran_path(struct sctp_association *asoc) >> } >> } >> >> - if (t) >> + if (t) { >> asoc->peer.retran_path = t; >> >> - SCTP_DEBUG_PRINTK_IPADDR("sctp_assoc_update_retran_path:association" >> - " %p addr: ", >> - " port: %d\n", >> - asoc, >> - (&t->ipaddr), >> - ntohs(t->ipaddr.v4.sin_port)); >> + SCTP_DEBUG_PRINTK_IPADDR("sctp_assoc_update_retran_path:" > > Try __func__ to simplify code. > >> + "association %p addr: ", >> + " port: %d\n", >> + asoc, >> + (&t->ipaddr), >> + ntohs(t->ipaddr.v4.sin_port)); >> + } > > How about providing debug infos if t is NULL? > something like "failed to update retran path", or "no change to retran path". > > Tested-by: Shan Wei <shanwei@xxxxxxxxxxxxxx> > Sorry, I didn't run with debug enabled.... Actually, we should probably just refer back to retran_path so that DEBUG output still shows which path we are retransmitting on. -vlad -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html