mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
[LLC]: Fix sap refcounting
Thanks to Leslie Harlley Watter <leslie@watter.org> for reporting the problem an testing this patch. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2342c990bb
commit
2e1f47c74c
@ -187,8 +187,10 @@ static int llc_ui_release(struct socket *sock)
|
|||||||
llc->laddr.lsap, llc->daddr.lsap);
|
llc->laddr.lsap, llc->daddr.lsap);
|
||||||
if (!llc_send_disc(sk))
|
if (!llc_send_disc(sk))
|
||||||
llc_ui_wait_for_disc(sk, sk->sk_rcvtimeo);
|
llc_ui_wait_for_disc(sk, sk->sk_rcvtimeo);
|
||||||
if (!sock_flag(sk, SOCK_ZAPPED))
|
if (!sock_flag(sk, SOCK_ZAPPED)) {
|
||||||
|
llc_sap_put(llc->sap);
|
||||||
llc_sap_remove_socket(llc->sap, sk);
|
llc_sap_remove_socket(llc->sap, sk);
|
||||||
|
}
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
if (llc->dev)
|
if (llc->dev)
|
||||||
dev_put(llc->dev);
|
dev_put(llc->dev);
|
||||||
|
@ -127,7 +127,6 @@ struct llc_sap *llc_sap_open(unsigned char lsap,
|
|||||||
goto out;
|
goto out;
|
||||||
sap->laddr.lsap = lsap;
|
sap->laddr.lsap = lsap;
|
||||||
sap->rcv_func = func;
|
sap->rcv_func = func;
|
||||||
llc_sap_hold(sap);
|
|
||||||
llc_add_sap(sap);
|
llc_add_sap(sap);
|
||||||
out:
|
out:
|
||||||
write_unlock_bh(&llc_sap_list_lock);
|
write_unlock_bh(&llc_sap_list_lock);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user