aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/sm_statefuns.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/sm_statefuns.c')
-rw-r--r--net/sctp/sm_statefuns.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index a907bab0963d..55a61aa69662 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -3165,7 +3165,6 @@ sctp_disposition_t sctp_sf_operr_notify(const struct sctp_endpoint *ep,
3165 sctp_cmd_seq_t *commands) 3165 sctp_cmd_seq_t *commands)
3166{ 3166{
3167 struct sctp_chunk *chunk = arg; 3167 struct sctp_chunk *chunk = arg;
3168 struct sctp_ulpevent *ev;
3169 3168
3170 if (!sctp_vtag_verify(chunk, asoc)) 3169 if (!sctp_vtag_verify(chunk, asoc))
3171 return sctp_sf_pdiscard(ep, asoc, type, arg, commands); 3170 return sctp_sf_pdiscard(ep, asoc, type, arg, commands);
@@ -3175,21 +3174,10 @@ sctp_disposition_t sctp_sf_operr_notify(const struct sctp_endpoint *ep,
3175 return sctp_sf_violation_chunklen(ep, asoc, type, arg, 3174 return sctp_sf_violation_chunklen(ep, asoc, type, arg,
3176 commands); 3175 commands);
3177 3176
3178 while (chunk->chunk_end > chunk->skb->data) { 3177 sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_OPERR,
3179 ev = sctp_ulpevent_make_remote_error(asoc, chunk, 0, 3178 SCTP_CHUNK(chunk));
3180 GFP_ATOMIC);
3181 if (!ev)
3182 goto nomem;
3183 3179
3184 sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP,
3185 SCTP_ULPEVENT(ev));
3186 sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_OPERR,
3187 SCTP_CHUNK(chunk));
3188 }
3189 return SCTP_DISPOSITION_CONSUME; 3180 return SCTP_DISPOSITION_CONSUME;
3190
3191nomem:
3192 return SCTP_DISPOSITION_NOMEM;
3193} 3181}
3194 3182
3195/* 3183/*