From mboxrd@z Thu Jan 1 00:00:00 1970 From: laijs@cn.fujitsu.com (Lai Jiangshan) Date: Sun, 14 Oct 2012 00:08:33 +0800 Subject: [lttng-dev] [PATCH 3/4] test: test for the proper pointer In-Reply-To: <1350144514-4132-1-git-send-email-laijs@cn.fujitsu.com> References: <1350144514-4132-1-git-send-email-laijs@cn.fujitsu.com> Message-ID: <1350144514-4132-3-git-send-email-laijs@cn.fujitsu.com> We should use "if (qnode)" instead of "if (node)" in case of the struct cds_lfq_node_rcu is not the first field of struct node. Signed-off-by: Lai Jiangshan --- tests/test_urcu_lfq.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/test_urcu_lfq.c b/tests/test_urcu_lfq.c index 66ddd41..0fcbf55 100644 --- a/tests/test_urcu_lfq.c +++ b/tests/test_urcu_lfq.c @@ -243,14 +243,15 @@ void *thr_dequeuer(void *_count) for (;;) { struct cds_lfq_node_rcu *qnode; - struct test *node; rcu_read_lock(); qnode = cds_lfq_dequeue_rcu(&q); - node = caa_container_of(qnode, struct test, list); rcu_read_unlock(); - if (node) { + if (qnode) { + struct test *node; + + node = caa_container_of(qnode, struct test, list); call_rcu(&node->rcu, free_node_cb); URCU_TLS(nr_successful_dequeues)++; } -- 1.7.7.6