Re: 2.6.22-rc6 spurious hangs

From: Oleg Nesterov
Date: Fri Jun 29 2007 - 13:22:53 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/