Loading net/nfc/llcp/llcp.c +12 −4 Original line number Original line Diff line number Diff line Loading @@ -68,7 +68,8 @@ static void nfc_llcp_socket_purge(struct nfc_llcp_sock *sock) } } } } static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen, int err) { { struct sock *sk; struct sock *sk; struct hlist_node *tmp; struct hlist_node *tmp; Loading Loading @@ -100,7 +101,10 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) nfc_llcp_accept_unlink(accept_sk); nfc_llcp_accept_unlink(accept_sk); if (err) accept_sk->sk_err = err; accept_sk->sk_state = LLCP_CLOSED; accept_sk->sk_state = LLCP_CLOSED; accept_sk->sk_state_change(sk); bh_unlock_sock(accept_sk); bh_unlock_sock(accept_sk); Loading @@ -123,7 +127,10 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) continue; continue; } } if (err) sk->sk_err = err; sk->sk_state = LLCP_CLOSED; sk->sk_state = LLCP_CLOSED; sk->sk_state_change(sk); bh_unlock_sock(sk); bh_unlock_sock(sk); Loading @@ -150,8 +157,9 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) nfc_llcp_socket_purge(llcp_sock); nfc_llcp_socket_purge(llcp_sock); if (err) sk->sk_err = err; sk->sk_state = LLCP_CLOSED; sk->sk_state = LLCP_CLOSED; sk->sk_state_change(sk); sk->sk_state_change(sk); bh_unlock_sock(sk); bh_unlock_sock(sk); Loading @@ -173,7 +181,7 @@ struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local) static void local_cleanup(struct nfc_llcp_local *local, bool listen) static void local_cleanup(struct nfc_llcp_local *local, bool listen) { { nfc_llcp_socket_release(local, listen); nfc_llcp_socket_release(local, listen, ENXIO); del_timer_sync(&local->link_timer); del_timer_sync(&local->link_timer); skb_queue_purge(&local->tx_queue); skb_queue_purge(&local->tx_queue); cancel_work_sync(&local->tx_work); cancel_work_sync(&local->tx_work); Loading Loading @@ -1382,7 +1390,7 @@ void nfc_llcp_mac_is_down(struct nfc_dev *dev) return; return; /* Close and purge all existing sockets */ /* Close and purge all existing sockets */ nfc_llcp_socket_release(local, true); nfc_llcp_socket_release(local, true, 0); } } void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, Loading Loading
net/nfc/llcp/llcp.c +12 −4 Original line number Original line Diff line number Diff line Loading @@ -68,7 +68,8 @@ static void nfc_llcp_socket_purge(struct nfc_llcp_sock *sock) } } } } static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen, int err) { { struct sock *sk; struct sock *sk; struct hlist_node *tmp; struct hlist_node *tmp; Loading Loading @@ -100,7 +101,10 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) nfc_llcp_accept_unlink(accept_sk); nfc_llcp_accept_unlink(accept_sk); if (err) accept_sk->sk_err = err; accept_sk->sk_state = LLCP_CLOSED; accept_sk->sk_state = LLCP_CLOSED; accept_sk->sk_state_change(sk); bh_unlock_sock(accept_sk); bh_unlock_sock(accept_sk); Loading @@ -123,7 +127,10 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) continue; continue; } } if (err) sk->sk_err = err; sk->sk_state = LLCP_CLOSED; sk->sk_state = LLCP_CLOSED; sk->sk_state_change(sk); bh_unlock_sock(sk); bh_unlock_sock(sk); Loading @@ -150,8 +157,9 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen) nfc_llcp_socket_purge(llcp_sock); nfc_llcp_socket_purge(llcp_sock); if (err) sk->sk_err = err; sk->sk_state = LLCP_CLOSED; sk->sk_state = LLCP_CLOSED; sk->sk_state_change(sk); sk->sk_state_change(sk); bh_unlock_sock(sk); bh_unlock_sock(sk); Loading @@ -173,7 +181,7 @@ struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local) static void local_cleanup(struct nfc_llcp_local *local, bool listen) static void local_cleanup(struct nfc_llcp_local *local, bool listen) { { nfc_llcp_socket_release(local, listen); nfc_llcp_socket_release(local, listen, ENXIO); del_timer_sync(&local->link_timer); del_timer_sync(&local->link_timer); skb_queue_purge(&local->tx_queue); skb_queue_purge(&local->tx_queue); cancel_work_sync(&local->tx_work); cancel_work_sync(&local->tx_work); Loading Loading @@ -1382,7 +1390,7 @@ void nfc_llcp_mac_is_down(struct nfc_dev *dev) return; return; /* Close and purge all existing sockets */ /* Close and purge all existing sockets */ nfc_llcp_socket_release(local, true); nfc_llcp_socket_release(local, true, 0); } } void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx, Loading