Re: cfq build breakage

From: Andrew Morton
Date: Tue Jun 28 2005 - 01:43:08 EST


Jens Axboe <axboe@xxxxxxx> wrote:
>
> On Mon, Jun 27 2005, Andrew Morton wrote:
> > Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
> > >
> > >
> > > In latest git tree...
> > >
> > > CC [M] drivers/block/cfq-iosched.o
> > > drivers/block/cfq-iosched.c: In function `cfq_put_queue':
> > > drivers/block/cfq-iosched.c:303: sorry, unimplemented: inlining failed
> > > in call to 'cfq_pending_requests': function body not available
> > > drivers/block/cfq-iosched.c:1080: sorry, unimplemented: called from here
> > > drivers/block/cfq-iosched.c: In function `__cfq_may_queue':
> > > drivers/block/cfq-iosched.c:1955: warning: the address of
> > > `cfq_cfqq_must_alloc_slice', will always evaluate as `true'
> > > make[2]: *** [drivers/block/cfq-iosched.o] Error 1
> > > make[1]: *** [drivers/block] Error 2
> > > make: *** [drivers] Error 2
> >
> > hm. The inline thing is trivial, but the misuse of
> > cfq_cfqq_must_alloc_slice() means that we now wander into untested
> > territory.
>
> Indeed, which compiler errors on that?

4.0 and later, I guess.

> > @@ -1969,7 +1968,7 @@ __cfq_may_queue(struct cfq_data *cfqd, s
> > * only allow 1 ELV_MQUEUE_MUST per slice, otherwise we
> > * can quickly flood the queue with writes from a single task
> > */
> > - if (rw == READ || !cfq_cfqq_must_alloc_slice) {
> > + if (rw == READ || !cfq_cfqq_must_alloc_slice(cfqq)) {
> > cfq_mark_cfqq_must_alloc_slice(cfqq);
> > return ELV_MQUEUE_MUST;
> > }
>
> thanks, clearly a typo but inside if 0.

But the other instance was inside `#if 1'. This fixup will change behaviour.
-
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/