浏览代码

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>
Eric Dumazet 9 年之前
父节点
当前提交
860fbbc343
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      net/sctp/inqueue.c

+ 2 - 0
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
 	 * Eventually, we should clean up inqueue to not rely
 	 * on the BH related data structures.
 	 * on the BH related data structures.
 	 */
 	 */
+	local_bh_disable();
 	list_add_tail(&chunk->list, &q->in_chunk_list);
 	list_add_tail(&chunk->list, &q->in_chunk_list);
 	if (chunk->asoc)
 	if (chunk->asoc)
 		chunk->asoc->stats.ipackets++;
 		chunk->asoc->stats.ipackets++;
 	q->immediate.func(&q->immediate);
 	q->immediate.func(&q->immediate);
+	local_bh_enable();
 }
 }
 
 
 /* Peek at the next chunk on the inqeue. */
 /* Peek at the next chunk on the inqeue. */