summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-09-14 18:13:56 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-09-14 18:13:56 +0200
commitcba2b0cd7ba7368eb209be50d8be237cf7778eab (patch)
tree071a46dbfd2dbc9ef88f456681cfc22db1be2fa1
parentadb6e09ac85ed644b3f4e0b7ce8d2188b9d0f72f (diff)
downloadcryptodev-linux-cba2b0cd7ba7368eb209be50d8be237cf7778eab.tar.gz
cryptodev-linux-cba2b0cd7ba7368eb209be50d8be237cf7778eab.tar.xz
cryptodev-linux-cba2b0cd7ba7368eb209be50d8be237cf7778eab.zip
DUMP_DSK
-rw-r--r--cryptodev_main.c21
1 files changed, 21 insertions, 0 deletions
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;
}