We are panicing when trying to register the block queue:
[ 2645.959090] kobject '<NULL>' (ffff880059ca22c0): tried to add an uninitialized object, something is seriously wrong. [ 2645.959104] Pid: 6, comm: events/0 Not tainted 2.6.31-5-generic #24-Ubuntu [ 2645.959107] Call Trace: [ 2645.959139] [<ffffffff8126ca2f>] kobject_add+0x5f/0x70 [ 2645.959151] [<ffffffff8125b4ab>] blk_register_queue+0x8b/0xf0 [ 2645.959155] [<ffffffff8126043f>] add_disk+0x8f/0x160 [ 2645.959161] [<ffffffffa01673c4>] aoeblk_gdalloc+0x164/0x1c0 [aoe] [...]
This implies we have not initialised the device queue object, which is gen_disk->queue, this comes from the aoedev object:
aoeblk_gdalloc(void *vp) { struct aoedev *d = vp; [...] gd->queue = &d->blkq; [...] }
It seems we do not ever initialise the blkq. Looking at other drivers this is typically allocated using blk_init_queue(), whereas in this driver it is allocated directly in the aoedev structure and never initialised appropriatly.
We are panicing when trying to register the block queue:
[ 2645.959090] kobject '<NULL>' (ffff880059ca22c0): tried to add an uninitialized object, something is seriously wrong. a2f>] kobject_ add+0x5f/ 0x70 4ab>] blk_register_ queue+0x8b/ 0xf0 43f>] add_disk+0x8f/0x160 3c4>] aoeblk_ gdalloc+ 0x164/0x1c0 [aoe]
[ 2645.959104] Pid: 6, comm: events/0 Not tainted 2.6.31-5-generic #24-Ubuntu
[ 2645.959107] Call Trace:
[ 2645.959139] [<ffffffff8126c
[ 2645.959151] [<ffffffff8125b
[ 2645.959155] [<ffffffff81260
[ 2645.959161] [<ffffffffa0167
[...]
This implies we have not initialised the device queue object, which
is gen_disk->queue, this comes from the aoedev object:
aoeblk_ gdalloc( void *vp)
{
struct aoedev *d = vp;
[...]
gd->queue = &d->blkq;
[...]
}
It seems we do not ever initialise the blkq. Looking at other drivers
this is typically allocated using blk_init_queue(), whereas in this driver
it is allocated directly in the aoedev structure and never initialised
appropriatly.