[PATCH 5/9] mtd: Allow dynamic major/minor number for mtd block devices

Richard Purdie rpurdie at openedhand.com
Fri Mar 2 10:54:49 EST 2007


Allow mtd block devices to have a dynamically allocated major/minor 
numbers if tr->major == 0.

Signed-off-by: Richard Purdie <rpurdie at openedhand.com>

---
 drivers/mtd/mtd_blkdevs.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Index: linux/drivers/mtd/mtd_blkdevs.c
===================================================================
--- linux.orig/drivers/mtd/mtd_blkdevs.c	2007-02-28 18:16:52.000000000 +0000
+++ linux/drivers/mtd/mtd_blkdevs.c	2007-03-02 14:46:29.000000000 +0000
@@ -380,13 +380,16 @@ int register_mtd_blktrans(struct mtd_blk
 	mutex_lock(&mtd_table_mutex);
 
 	ret = register_blkdev(tr->major, tr->name);
-	if (ret) {
+	if (ret < 0) {
 		printk(KERN_WARNING "Unable to register %s block device on major %d: %d\n",
 		       tr->name, tr->major, ret);
 		kfree(tr->blkcore_priv);
 		mutex_unlock(&mtd_table_mutex);
 		return ret;
 	}
+	if (!tr->major)
+		tr->major = ret;
+
 	spin_lock_init(&tr->blkcore_priv->queue_lock);
 	init_completion(&tr->blkcore_priv->thread_dead);
 	init_waitqueue_head(&tr->blkcore_priv->thread_wq);






More information about the linux-mtd mailing list