Re: resend, finish_wait with list_empty_careful maybe fragile or buggy

2018-03-12 Thread 焦晓冬
+ CC Boqun in case you are interested in this topic Best Regards, Trol > Sorry, this is a resend because the previous one was messed > up by my editor and hard to be read. > > void finish_wait(struct wait_queue_head *wq_head, > struct wait_queue_entry *wq_entry) > { >

Re: resend, finish_wait with list_empty_careful maybe fragile or buggy

2018-03-11 Thread 焦晓冬
> Sorry, this is a resend because the previous one was messed > up by my editor and hard to be read. > > void finish_wait( > struct wait_queue_head *wq_head, > struct wait_queue_entry *wq_entry) > { > > ->if (!list_empty_careful(&wq_entry->entry)) { > ->spin_lock_irqsave(&wq

resend, finish_wait with list_empty_careful maybe fragile or buggy

2018-03-11 Thread 焦晓冬
Sorry, this is a resend because the previous one was messed up by my editor and hard to be read. void finish_wait( struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry) { ->if (!list_empty_careful(&wq_entry->entry)) { ->spin_lock_irqsave(&wq_head->lock, flags)

finish_wait with list_empty_careful maybe fragile or buggy

2018-03-11 Thread 焦晓冬
void finish_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry) { ->if (!list_empty_careful(&wq_entry->entry)) { ->spin_lock_irqsave(&wq_head->lock, flags); ->list_del_init(&wq_entry->entry); ->spin_unlock_irqrestore(&wq_head->lock, flags);