Re: 2.6.0-test8, DEBUG_SLAB, oops in as_latter_request()

From: Nick Piggin
Date: Mon Oct 20 2003 - 03:10:16 EST




Jens Axboe wrote:

On Mon, Oct 20 2003, Nick Piggin wrote:


Andrew Morton wrote:


Peter Osterlund <petero2@xxxxxxxxx> wrote:


I was running 2.6.0-test8 compiled with CONFIG_DEBUG_SLAB=y. When
testing the CDRW packet writing driver, I got an oops in
as_latter_request. (Full oops at the end of this message.) It is
repeatable and happens because arq->rb_node.rb_right is uninitialized.


deadline seems to have the same problem.

We may as well squish this with the big hammer?


Thanks for the report, Peter.

The request is a special request, so either blk_attempt_remerge should
never be called on it, or blk_attempt_remerge (or as_latter_request) should
check for this. Its up to Jens.

I would say to stick something like
if (!rq_mergeable(rq))
return;

into blk_attempt_remerge.

I'd say we shouldn't expect drivers to try to get this right.


attempt_merge() already includes such a check. To me it looks really
buggy that elv_latter_request() cannot be called on non-fs requests, I'd
rather get that fixed like Peter suggests. elv_latter_request() should
work on all requests in the io sched queue, period.


I don't have a problem with that. Peter's patch it is.


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