summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2016-04-29 14:16:51 -0700
committerDavid S. Miller <davem@davemloft.net>2016-05-02 17:02:26 -0400
commit860fbbc343bf05a71b31555579ff4878194be01b (patch)
tree71ef7cf3e62607570fdb1cde52615703d220a30b
parente61da9e259ef887bd516ab08dfdf1c1261017e8e (diff)
downloadop-kernel-dev-860fbbc343bf05a71b31555579ff4878194be01b.zip
op-kernel-dev-860fbbc343bf05a71b31555579ff4878194be01b.tar.gz
sctp: prepare for socket backlog behavior change
sctp_inq_push() will soon be called without BH being blocked when generic socket code flushes the socket backlog. It is very possible SCTP can be converted to not rely on BH, but this needs to be done by SCTP experts. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sctp/inqueue.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c
index b335ffc..9d87bba 100644
--- a/net/sctp/inqueue.c
+++ b/net/sctp/inqueue.c
@@ -89,10 +89,12 @@ void sctp_inq_push(struct sctp_inq *q, struct sctp_chunk *chunk)
* Eventually, we should clean up inqueue to not rely
* on the BH related data structures.
*/
+ local_bh_disable();
list_add_tail(&chunk->list, &q->in_chunk_list);
if (chunk->asoc)
chunk->asoc->stats.ipackets++;
q->immediate.func(&q->immediate);
+ local_bh_enable();
}
/* Peek at the next chunk on the inqeue. */
OpenPOWER on IntegriCloud