})
#define sk_common_release(sk) do { \
- sdp_dbg(sk, "%s:%d - sock_put(" SOCK_REF_BORN \
+ sdp_dbg(sk, "%s:%d - sock_put(" SOCK_REF_ALIVE \
") - refcount = %d from withing sk_common_release\n",\
__func__, __LINE__, atomic_read(&(sk)->sk_refcnt));\
sk_common_release(sk); \
#endif
#define SOCK_REF_RESET "RESET"
-#define SOCK_REF_BORN "BORN" /* sock_alloc -> destruct_sock */
+#define SOCK_REF_ALIVE "ALIVE" /* sock_alloc -> destruct_sock */
#define SOCK_REF_CLONE "CLONE"
#define SOCK_REF_CM_TW "CM_TW" /* TIMEWAIT_ENTER -> TIMEWAIT_EXIT */
#define SOCK_REF_SEQ "SEQ" /* during proc read */
out:
bh_unlock_sock(sk);
- sock_put(sk, SOCK_REF_BORN);
+ sock_put(sk, SOCK_REF_ALIVE);
}
static void sdp_init_keepalive_timer(struct sock *sk)
sk->sk_shutdown |= RCV_SHUTDOWN;
sdp_reset(sk);
+ sock_hold(sk, SOCK_REF_ALIVE);
sdp_close(sk,0);
+ sdp_destroy_qp(ssk);
+ ssk->sdp_dev = NULL;
if ((1 << sk->sk_state) &
(TCPF_FIN_WAIT1 | TCPF_CLOSE_WAIT |