Minor number allocations: (1 << MINORBITS) is not a valid minor. --- diff/drivers/md/dm.c 2004-08-16 10:33:57.671460168 -0500 +++ source/drivers/md/dm.c 2004-08-16 10:34:54.153873536 -0500 @@ -632,7 +632,7 @@ { int r, m; - if (minor > (1 << MINORBITS)) + if (minor >= (1 << MINORBITS)) return -EINVAL; down(&_minor_lock); @@ -682,7 +682,7 @@ goto out; } - if (m > (1 << MINORBITS)) { + if (m >= (1 << MINORBITS)) { idr_remove(&_minor_idr, m); r = -ENOSPC; goto out;