init_completion() --> init_waitqueue_head()
初始化等待队列头(wait_queue_head_t): 将wait_queue_head_t.task_list域中的两个指针指向其自身(wait_queue_head_t.task_list)
----------------------------------------------------------------
void init_waitqueue_head(wait_queue_head_t *q)
{
spin_lock_init(&q->lock);
INIT_LIST_HEAD(&q->task_list);
}
static inline void INIT_LIST_HEAD(struct list_head *list)
{
list->next = list;
list->prev = list;
}
转载自:http://hi.baidu.com/zengzhaonong/blog/item/ca578e2342b81a46ad34de8d.html