![]() | |||||||||||||
Messages in this thread |
Hi Alan & Bart ! While fixing my hotswap media-bay IDE controller for 2.6, I found a locking problem with IDE (again ? :) in ide_unregister_hw. Basically the problem is that it calls blk_cleanup_queue(), which is unsafe to call with a lock held (it will call flush_workqueue() at one point). Other side effect, flush_workqueue() will re-enable IRQs, thus allowing us to get an IRQ while holding the spinlock -> double lock, but that's just a side effect of calling flush_workqueue in that context. So the call to blk_cleanup_queue() shall be moved outside of the spinlock. I don't know much about the BIO details, is it possible to first unregister_blkdev, then only call blk_cleanup_queue() ? That would help making sure we don't get a request sneaking in ? Ben. - 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/ | ||||||||||||
| Last update: 2005-03-22 13:47 [from the cache] ©2003-2008 | |||||||||||||