kernel oops in del_gendisk with one queue for many disks under 2.6.x
Hello,
the i2o_block driver uses one queue per controller. If there are more
then one disk attached to the controller, the kernel oopses, if the module is removed, while deleting the second disk:
Call Trace:
<ffffffff801da37e>{kobject_del+27}
<ffffffff801da390>{kobject_unregister+9}
<ffffffff8022c344>{elv_unregister_queue+21}
<ffffffff8022fe47>{blk_unregister_queue+33}
<ffffffff80230c21>{unlink_gendisk+9}
<ffffffff801ae60b>{del_gendisk+77}
<ffffffffa0037ef2>{:i2o_block:i2o_block_exit+262}
<ffffffff8014c516>{sys_delete_module+321}
<ffffffff80166c1c>{sys_munmap+70}
<ffffffff801112ba>{system_call+126}
My question is, what is the best solution to the problem?
a) use one queue per disk?
b) set the queue to NULL for the other disks, that are on the same controller?
c) ???
Any help is highly appreciated.
Best regards,
Markus Lidel