Messages in this thread | | | Date | Fri, 29 Jun 2007 21:23:32 +0400 | From | Oleg Nesterov <> | Subject | Re: 2.6.22-rc6 spurious hangs |
| |
On 06/29, Dmitry Torokhov wrote: > > Well, not really maintainer but I think the short term soluton (at > least for the RC part) is to alter cinergyt2_query_rc to take > cinergyt2->sem only around cinergyt2_command(). Ther rest of the > polling function need not be protected as it does nto tun concurently > with itself.
Can't comment, because I know nothing about this stuff.
But, unless I misread this patch, it doesn't solve the problem. cinergyt2_release() calls flush_scheduled_work() under ->sem, but ->query_work takes it too, no?
Quoting myself, > > I think cinergyt2_query() and cinergyt2_query_rc() should not use > ->disconnect_pending at all. cinergyt2_disconnect() should set > ->disconnect_pending = 1 and cancel both delayed_works. > > cinergyt2_release() checks !->disconnect_pending and does the cancel > without mutex.
Possible?
Oleg.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |