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