--- a/drivers/md/dm-table.c	2003-10-24 13:21:29.000000000 -0500
+++ b/drivers/md/dm-table.c	2003-10-24 13:31:55.000000000 -0500
@@ -123,6 +123,7 @@
 	INIT_LIST_HEAD(&t->devices);
 	atomic_set(&t->holders, 1);
 
+	num_targets = dm_round_up(num_targets, KEYS_PER_NODE);
 
 	/* allocate both the target array and offset array at once */
 	t->highs = (sector_t *) vcalloc(sizeof(struct dm_target) +