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