From: Nick Piggin This fixes all known bugs with as in mm2. That constitutes small fixes for 2 WARNs getting triggered. It looks like Prakash's lost interrupt problem was due to as spewing bazillions of warnings, and he must have had his kernel.printk configured not to show them or something. I have to just get final confirmation from him that this final cut of the patch fixes his problem too. drivers/block/as-iosched.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN drivers/block/as-iosched.c~as-fix-all-known-bugs drivers/block/as-iosched.c --- 25/drivers/block/as-iosched.c~as-fix-all-known-bugs 2003-11-07 20:36:21.000000000 -0800 +++ 25-akpm/drivers/block/as-iosched.c 2003-11-07 20:36:21.000000000 -0800 @@ -915,7 +915,7 @@ static void as_completed_request(request } if (!blk_fs_request(rq)) - return; + goto out; if (ad->changed_batch && ad->nr_dispatched == 1) { kblockd_schedule_work(&ad->antic_work); @@ -1458,8 +1458,10 @@ as_insert_request(request_queue_t *q, st /* barriers must flush the reorder queue */ if (unlikely(rq->flags & (REQ_SOFTBARRIER | REQ_HARDBARRIER) - && where == ELEVATOR_INSERT_SORT)) + && where == ELEVATOR_INSERT_SORT)) { + WARN_ON(1); where = ELEVATOR_INSERT_BACK; + } switch (where) { case ELEVATOR_INSERT_BACK: _