Subject: Re: next-20081215: kernel BUG at block/cfq-iosched.c:1243

From: Jens Axboe <[email-masked]>
Date: Mon, 15 Dec 2008 21:18:36 +0100

On Mon, Dec 15 2008, Alexander Beregalov wrote:
> 2008/12/15 Jens Axboe <[email-masked]>:
> > On Mon, Dec 15 2008, Alexander Beregalov wrote:
> >> 2008/12/15 Jens Axboe <[email-masked]>:
> >> >> [   23.080733] kernel BUG at block/cfq-iosched.c:1243!
> >> >> [   23.080733] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
> >>
> >> > Odd, is it reproducible? What is your .config?
> >> Yes, it is
> >>
> >> Config is in attach
> >
> > It's weird, because the only change for CFQ in that area is the one
> > below. Does the oops go away if you back this out?
> Yes, it can boot without the patch, no oops.

OK, dumb error. Please try this instead, on top of -next:

diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 8a2485d..e8525fa 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1322,7 +1322,6 @@ static void cfq_exit_single_io_context(struct io_context *ioc,
 		smp_read_barrier_depends();
 		if (cic->key)
 			__cfq_exit_single_io_context(cfqd, cic);
-		__cfq_exit_single_io_context(cfqd, cic);
 
 		spin_unlock_irqrestore(q->queue_lock, flags);
 	}

-- 
Jens Axboe