Re: [Bugme-new] [Bug 9482] New: kernel GPF in 2.6.24 (g09f345da)

From: Andrew Morton
Date: Mon Dec 03 2007 - 17:48:20 EST


On Mon, 3 Dec 2007 16:38:37 -0500
"Ed L. Cashin" <ecashin@xxxxxxxxxx> wrote:

> > --- lx/lib/percpu_counter.c.20071130 2007-12-03 15:43:19.000000000 -0500
> > +++ lx/lib/percpu_counter.c 2007-12-03 15:47:38.000000000 -0500
> > @@ -33,7 +33,9 @@ void __percpu_counter_add(struct percpu_
> > s64 count;
> > s32 *pcount;
> > int cpu = get_cpu();
> > + u64 badval = 0xffffffffffffffffULL;
> >
> > + BUG_ON(!cpu_possible(cpu));
> > pcount = per_cpu_ptr(fbc->counters, cpu);
> > count = *pcount + amount;
> > if (count >= batch || count <= -batch) {
>
> It appears that the fbc->counters pointer is NULL.

Does this fix?

--- a/drivers/block/aoe/aoeblk.c~a
+++ a/drivers/block/aoe/aoeblk.c
@@ -6,6 +6,7 @@

#include <linux/hdreg.h>
#include <linux/blkdev.h>
+#include <linux/backing-dev.h>
#include <linux/fs.h>
#include <linux/ioctl.h>
#include <linux/genhd.h>
@@ -228,6 +229,7 @@ aoeblk_gdalloc(void *vp)

spin_lock_irqsave(&d->lock, flags);
blk_queue_make_request(&d->blkq, aoeblk_make_request);
+ bdi_init(&d->blkq.backing_dev_info);
gd->major = AOE_MAJOR;
gd->first_minor = d->sysminor * AOE_PARTITIONS;
gd->fops = &aoe_bdops;
_


<wonders whether blk_queue_make_request() should be running bdi_init()?>
--
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/