A blk_put_queue() was missing on the error path of alloc_dev(). --- diff/drivers/md/dm.c 2003-09-30 17:26:54.000000000 +0100 +++ source/drivers/md/dm.c 2003-09-30 17:25:52.000000000 +0100 @@ -695,6 +695,7 @@ bad3: mempool_destroy(md->io_pool); bad2: + blk_put_queue(md->queue); free_minor(minor); bad1: kfree(md);