Commit 5d7785de authored by Guangguan Wang's avatar Guangguan Wang Committed by Litao Jiao
Browse files

anolis: net/smc: move sk_acceptq_{removed,add} into accept_q_lock's protection

anolis inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I79GVV
CVE: NA

Reference: https://gitee.com/anolis/cloud-kernel/commit/6e1f0188d9f54412ce05aedbdbc7c2daa8411eaf



--------------------------------

ANBZ: #1742

Move sk_acceptq_{removed,add} into accept_q_lock's protection.

Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
Acked-by: default avatarTony Lu <tonylu@linux.alibaba.com>
Link: https://gitee.com/anolis/cloud-kernel/pulls/577


Signed-off-by: default avatarGengbiao Shen <shengengbiao@sangfor.com.cn>
parent f4c6318f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1239,8 +1239,8 @@ static void smc_accept_enqueue(struct sock *parent, struct sock *sk)
	sock_hold(sk); /* sock_put in smc_accept_unlink () */
	spin_lock(&par->accept_q_lock);
	list_add_tail(&smc_sk(sk)->accept_q, &par->accept_q);
	spin_unlock(&par->accept_q_lock);
	sk_acceptq_added(parent);
	spin_unlock(&par->accept_q_lock);
}

/* remove a socket from the accept queue of its parental listening socket */
@@ -1250,8 +1250,8 @@ static void smc_accept_unlink(struct sock *sk)

	spin_lock(&par->accept_q_lock);
	list_del_init(&smc_sk(sk)->accept_q);
	spin_unlock(&par->accept_q_lock);
	sk_acceptq_removed(&smc_sk(sk)->listen_smc->sk);
	spin_unlock(&par->accept_q_lock);
	sock_put(sk); /* sock_hold in smc_accept_enqueue */
}