A blk_put_queue() was missing on the error path of alloc_dev(). --- diff/drivers/md/dm.c 2003-12-29 10:13:15.000000000 +0000 +++ source/drivers/md/dm.c 2003-12-29 10:13:26.000000000 +0000 @@ -691,6 +691,7 @@ bad3: mempool_destroy(md->io_pool); bad2: + blk_put_queue(md->queue); free_minor(minor); bad1: kfree(md);