From cba2b0cd7ba7368eb209be50d8be237cf7778eab Mon Sep 17 00:00:00 2001 From: Miloslav Trmač Date: Tue, 14 Sep 2010 18:13:56 +0200 Subject: DUMP_DSK --- cryptodev_main.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/cryptodev_main.c b/cryptodev_main.c index 71bd5a8..f90dd45 100644 --- a/cryptodev_main.c +++ b/cryptodev_main.c @@ -101,6 +101,13 @@ struct data_sock { unsigned index; }; +static void __dump_data_sock(int line, const struct data_sock *dsk) +{ + printk(KERN_DEBUG "@%d: %p: cnt %d, master %p, index %u\n", line, dsk, + atomic_read(&dsk->sk.sk_refcnt), dsk->master, dsk->index); +} +#define DUMP_DSK(DSK) (__dump_data_sock(__LINE__, (DSK))) + /* A socket holding a crypto_tfm. */ struct alg_sock { struct sock sk; @@ -238,6 +245,7 @@ static int data_release(struct socket *sock) return 0; dsk = data_sk(sk); + DUMP_DSK(dsk); local_bh_disable(); sock_prot_inuse_add(sock_net(sk), &data_proto, -1); @@ -245,8 +253,10 @@ static int data_release(struct socket *sock) BUG_ON(dsk->master == NULL); sock_put(&dsk->master->sk); + DUMP_DSK(dsk); sock_put(sk); + DUMP_DSK(dsk); } static int do_data_sendmsg(struct kiocb *iocb, struct alg_sock *ask, @@ -288,6 +298,7 @@ static int data_sendmsg(struct kiocb *iocb, struct socket *sock, struct data_sock *dsk; dsk = data_sk(sock->sk); + DUMP_DSK(dsk); BUG_ON(dsk->master == NULL); return do_data_sendmsg(iocb, dsk->master, dsk->index, m, total_len); } @@ -330,6 +341,7 @@ static int data_recvmsg(struct kiocb *iocb, struct socket *sock, struct data_sock *dsk; dsk = data_sk(sock->sk); + DUMP_DSK(dsk); BUG_ON(dsk->master == NULL); return do_data_recvmsg(iocb, dsk->master, dsk->index, m, total_len, flags); @@ -383,6 +395,7 @@ static int alg_release(struct socket *sock) ask->slaves[i] = NULL; BUG_ON(dsk == NULL); + DUMP_DSK(dsk); if (i >= ask->accept_idx) { // FIXME: cleaner - on last sock_put local_bh_disable(); sock_prot_inuse_add(sock_net(&dsk->sk), &data_proto, @@ -390,6 +403,7 @@ static int alg_release(struct socket *sock) local_bh_enable(); } sock_put(&dsk->sk); + DUMP_DSK(dsk); } if (ask->hash.init != 0) @@ -450,12 +464,16 @@ static int alg_accept(struct socket *sock, struct socket *newsock, int flags) dsk = ask->slaves[ask->accept_idx]; ask->accept_idx++; + DUMP_DSK(dsk); sock_hold(&ask->sk); + DUMP_DSK(dsk); dsk->master = ask; sock_hold(&dsk->sk); + DUMP_DSK(dsk); sock_graft(&dsk->sk, newsock); + DUMP_DSK(dsk); return 0; } @@ -493,6 +511,7 @@ static int alg_listen(struct socket *sock, int len) dsk = data_sk(newsk); dsk->index = i; + DUMP_DSK(dsk); ask->slaves[i] = dsk; } @@ -509,6 +528,7 @@ err_partial: ask->slaves[i] = NULL; BUG_ON(dsk == NULL); + DUMP_DSK(dsk); // FIXME: cleaner - on last sock_put local_bh_disable(); @@ -516,6 +536,7 @@ err_partial: local_bh_enable(); sock_put(&dsk->sk); + DUMP_DSK(dsk); } return -ENOMEM; } -- cgit