diff options
Diffstat (limited to 'net/sctp/sm_sideeffect.c')
-rw-r--r-- | net/sctp/sm_sideeffect.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 135567493119..b37a7adeb150 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c | |||
@@ -464,7 +464,7 @@ static void sctp_cmd_init_failed(sctp_cmd_seq_t *commands, | |||
464 | struct sctp_ulpevent *event; | 464 | struct sctp_ulpevent *event; |
465 | 465 | ||
466 | event = sctp_ulpevent_make_assoc_change(asoc,0, SCTP_CANT_STR_ASSOC, | 466 | event = sctp_ulpevent_make_assoc_change(asoc,0, SCTP_CANT_STR_ASSOC, |
467 | (__u16)error, 0, 0, | 467 | (__u16)error, 0, 0, NULL, |
468 | GFP_ATOMIC); | 468 | GFP_ATOMIC); |
469 | 469 | ||
470 | if (event) | 470 | if (event) |
@@ -492,8 +492,13 @@ static void sctp_cmd_assoc_failed(sctp_cmd_seq_t *commands, | |||
492 | /* Cancel any partial delivery in progress. */ | 492 | /* Cancel any partial delivery in progress. */ |
493 | sctp_ulpq_abort_pd(&asoc->ulpq, GFP_ATOMIC); | 493 | sctp_ulpq_abort_pd(&asoc->ulpq, GFP_ATOMIC); |
494 | 494 | ||
495 | event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST, | 495 | if (event_type == SCTP_EVENT_T_CHUNK && subtype.chunk == SCTP_CID_ABORT) |
496 | (__u16)error, 0, 0, | 496 | event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST, |
497 | (__u16)error, 0, 0, chunk, | ||
498 | GFP_ATOMIC); | ||
499 | else | ||
500 | event = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_LOST, | ||
501 | (__u16)error, 0, 0, NULL, | ||
497 | GFP_ATOMIC); | 502 | GFP_ATOMIC); |
498 | if (event) | 503 | if (event) |
499 | sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, | 504 | sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, |
@@ -1004,7 +1009,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, | |||
1004 | status, state, event_type, subtype.chunk); | 1009 | status, state, event_type, subtype.chunk); |
1005 | BUG(); | 1010 | BUG(); |
1006 | break; | 1011 | break; |
1007 | }; | 1012 | } |
1008 | 1013 | ||
1009 | bail: | 1014 | bail: |
1010 | return error; | 1015 | return error; |
@@ -1484,7 +1489,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, | |||
1484 | printk(KERN_WARNING "Impossible command: %u, %p\n", | 1489 | printk(KERN_WARNING "Impossible command: %u, %p\n", |
1485 | cmd->verb, cmd->obj.ptr); | 1490 | cmd->verb, cmd->obj.ptr); |
1486 | break; | 1491 | break; |
1487 | }; | 1492 | } |
1493 | |||
1488 | if (error) | 1494 | if (error) |
1489 | break; | 1495 | break; |
1490 | } | 1496 | } |