Re: libata-core.c: unsafe cancel_delayed_work() usage?

From: Jeff Garzik
Date: Tue May 01 2007 - 19:35:36 EST


Oleg Nesterov wrote:
On 04/27, Andrew Morton wrote:
It'd be good if people could take some time to sit down and re-review the
code which we presently have. I plan on sending it all off for 2.6.22 and
there might be some glitches but it seems to have a good track record so
far.

Alan, the usage of cancel_delayed_work() in drivers/ata/libata-core.c looks
suspicious to me, both ->hotplug_task and ->port_task can re-arm themselves,
so cancel_delayed_work + flush_workqueue (or cancel_work_sync) is not enough.

Could you confirm/nack my understanding?

For all rearming workqueues, one must use cancel-rearming-blahblah.

Jeff



-
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/