mtd/drivers/mtd mtd_blkdevs-24.c,1.2,1.3

David Woodhouse dwmw2 at infradead.org
Tue May 20 17:29:40 EDT 2003


Update of /home/cvs/mtd/drivers/mtd
In directory phoenix.infradead.org:/tmp/cvs-serv10023

Modified Files:
	mtd_blkdevs-24.c 
Log Message:
Remove O(1) scheduler stuff. This is for 2.4, not 2.4++.
Set gd.nr_real to maximum -- it doesn't handle sparse minors properly.
Avoid MTD_ABSENT devices.


Index: mtd_blkdevs-24.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/mtd_blkdevs-24.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mtd_blkdevs-24.c	20 May 2003 17:17:26 -0000	1.2
+++ mtd_blkdevs-24.c	20 May 2003 21:29:37 -0000	1.3
@@ -123,10 +123,10 @@
 	   actually want to deal with signals. We can't just call 
 	   exit_sighand() since that'll cause an oops when we finally
 	   do exit. */
-	spin_lock_irq(&current->sighand->siglock);
+	spin_lock_irq(&current->sigmask_lock);
 	sigfillset(&current->blocked);
-	recalc_sigpending();
-	spin_unlock_irq(&current->sighand->siglock);
+	recalc_sigpending(current);
+	spin_unlock_irq(&current->sigmask_lock);
 
 	daemonize();
 
@@ -452,7 +452,6 @@
 
 	tr->blkcore_priv->sizes[new->devnum << tr->part_bits] = new->size;
 	tr->blkcore_priv->part_table[new->devnum << tr->part_bits].nr_sects = new->size;
-	tr->blkcore_priv->gd.nr_real++;
 
 	if (tr->part_bits) {
 		grok_partitions(&tr->blkcore_priv->gd, new->devnum,
@@ -500,7 +499,6 @@
 		tr->blkcore_priv->part_table[i].nr_sects = 0;
 		tr->blkcore_priv->part_table[i].start_sect = 0;
 	}
-	tr->blkcore_priv->gd.nr_real--;
 		
 	return 0;
 }
@@ -525,6 +523,9 @@
 {
 	struct list_head *this;
 
+	if (mtd->type == MTD_ABSENT)
+		return;
+
 	list_for_each(this, &blktrans_majors) {
 		struct mtd_blktrans_ops *tr = list_entry(this, struct mtd_blktrans_ops, list);
 
@@ -590,6 +591,7 @@
 	tr->blkcore_priv->gd.max_p = (1<<tr->part_bits) - 1;
 	tr->blkcore_priv->gd.part = tr->blkcore_priv->part_table;
 	tr->blkcore_priv->gd.sizes = tr->blkcore_priv->sizes;
+	tr->blkcore_priv->gd.nr_real = 256 >> tr->part_bits;
 
 	spin_lock_init(&tr->blkcore_priv->devs_lock);
 
@@ -600,7 +602,7 @@
 	list_add(&tr->list, &blktrans_majors);
 
 	for (i=0; i<MAX_MTD_DEVICES; i++) {
-		if (mtd_table[i])
+		if (mtd_table[i] && mtd_table[i]->type != MTD_ABSENT)
 			tr->add_mtd(tr, mtd_table[i]);
 	}
 	up(&mtd_table_mutex);




More information about the linux-mtd-cvs mailing list