Comment 3 for bug 410198

Revision history for this message
Andy Whitcroft (apw) wrote :

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.