On Thu, Nov 20 2008, Stephen Rothwell wrote: > Hi Jens, > > On Wed, 19 Nov 2008 11:58:33 +0100 Jens Axboe <jens.axboe@xxxxxxxxxx> wrote: > > > > ;-) I'm aware of that, I meant the 'timer' data argument. But you are > > right, it's probably q->queue_lock being NULL here or we would have > > oopsed earlier. There's no code line. > > > > > address of the spinlock (though I need to check more to be sure) as it > > > crashed inside _spin_lock_irqsave. > > > > Do you know what device this might be? It still makes no sense, if the > > timer was added, we went through the normal IO paths and we would have > > crashed on NULL ->queue_lock much earlier. > > I don't know much more, but I may find out tomorrow with Paul's help. > However it bisects down to commit > 279430a72bb6e83d335b4219e9af5557e2ff3350 "block: leave the request > timeout timer running even on an empty list" and reverting that commit on > next-20081118 makes the spinlock lockup go away. Are you removing devices or modules? We have a bug there it seems, does this help? diff --git a/block/blk-core.c b/block/blk-core.c index 04267d6..44f547c 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -391,6 +391,7 @@ EXPORT_SYMBOL(blk_stop_queue); void blk_sync_queue(struct request_queue *q) { del_timer_sync(&q->unplug_timer); + del_timer_sync(&q->timeout); kblockd_flush_work(&q->unplug_work); } EXPORT_SYMBOL(blk_sync_queue); -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html