Skip to contentSkip to conversation

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

PATCH Daniel Neukomm 3 participants 6 messages Aug 2, 2009 – Aug 12, 2009 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image. The device table file contains among others the fields minor, start, increment and count. If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes 128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

mkfs.ubifs/devtable.c +2 -2
index 236a6e7..e2d96dc 100644
@@ -248,7 +248,7 @@ static int interpret_table_entry(const char *line)
                       goto out_free;
               }
       } else {
-               int i, num = start + increment * count, len = strlen(name) + 20;
+               int i, num = start + count, len = strlen(name) + 20;
               char *nm;
 
               for (i = start; i < num; i++) {
@@ -262,7 +262,7 @@ static int interpret_table_entry(const char *line)
                       nh_elt->mode = mode;
                       nh_elt->uid = uid;
                       nh_elt->gid = gid;
-                       nh_elt->dev = makedev(major, minor + i - start);
+                       nh_elt->dev = makedev(major, minor + (i - start)*increment);
 
                       nm = malloc(len);
                       if (!nm) {
#1 lore raw

mkfs.ubifs/devtable.c

Quoted 18 lines · Daniel Neukomm

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image.
The device table file contains among others the fields minor, start, increment and count.
If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes
128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

/dev/mtd c 640 0 0 90 0 0  2 7
This gives 14 devices /dev/mtdXX instead of  7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

mkfs.ubifs/devtable.c +0 -0
index 236a6e7..e2d96dc 100644

all patches should include signed-off-by tags. please read the Documentation/SubmittingPatches file in the linux kernel source code for some guidelines.
-mike

#2 lore raw
In reply to Daniel Neukomm
Quoted 40 lines · Daniel Neukomm

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image.
The device table file contains among others the fields minor, start, increment and count.
If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes
128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

mkfs.ubifs/devtable.c +1 -1
index 236a6e7..e2d96dc 100644
@@ -248,7 +248,7 @@ static int interpret_table_entry(const char *line)
                        goto out_free;
                }
        } else {
-               int i, num = start + increment * count, len = 
 strlen(name) + 20;
+               int i, num = start + count, len = strlen(name) + 20;
                char *nm;
 
                for (i = start; i < num; i++) {
mkfs.ubifs/devtable.c +1 -1
@@ -262,7 +262,7 @@ static int interpret_table_entry(const char *line)
                        nh_elt->mode = mode;
                        nh_elt->uid = uid;
                        nh_elt->gid = gid;
-                       nh_elt->dev = makedev(major, minor + i - start);
+                       nh_elt->dev = makedev(major, minor + (i - 
 start)*increment);
 
                        nm = malloc(len);
Quoted 1 line
                        if (!nm) {

Hi,

thanks for the patch. Are you planning to re-send it properly with no line-wrapping and with signed-off-by?

Signature · 2 lines
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
#3 lore raw
In reply to Daniel Neukomm
Quoted 12 lines · Daniel Neukomm

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image.
The device table file contains among others the fields minor, start, increment and count.
If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes
128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

Quoted 4 lines

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

Ok, below is how you was supposed to send the patch (without my Signed-off-by, of course). I just applied your patch manually (usually we use git am for this) and tweaked it.

Please, check that I did not do any mistake. After you have confirmed this, I'll push this to the mtd-utils repository.

From: Daniel Neukomm <[email protected]>
Subject: [PATCH] mkfs.ubifs: correct devtable increment handling

With the device table one can add /dev entries to the root file system image. The device table file contains among others the fields minor, start, increment and count. If there is an entry with minor=0 start=0 increment=32 and count=4 the mkfs.ubifs makes 128 device entries, with minor numbers from 0 to 127. The correct version makes 4 entries with minor number 0,32,64,96.

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

---
 mkfs.ubifs/devtable.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
mkfs.ubifs/devtable.c +2 -2
index 236a6e7..dee035d 100644
@@ -248,7 +248,7 @@ static int interpret_table_entry(const char *line)
 			goto out_free;
 		}
 	} else {
-		int i, num = start + increment * count, len = strlen(name) + 20;
+		int i, num = start + count, len = strlen(name) + 20;
 		char *nm;
 
 		for (i = start; i < num; i++) {
@@ -262,7 +262,7 @@ static int interpret_table_entry(const char *line)
 			nh_elt->mode = mode;
 			nh_elt->uid = uid;
 			nh_elt->gid = gid;
-			nh_elt->dev = makedev(major, minor + i - start);
+			nh_elt->dev = makedev(major, minor + (i - start) * increment);
 
 			nm = malloc(len);
 			if (!nm) {
Signature · 5 lines
1.6.0.6

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
#4 lore raw
Quoted 18 lines · Artem Bityutskiy
Quoted 12 lines · Daniel Neukomm

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image.
The device table file contains among others the fields minor, start, increment and count.
If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes
128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

Quoted 4 lines

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

Quoted 6 lines

Ok, below is how you was supposed to send the patch (without my Signed-off-by, of course). I just applied your patch manually (usually we use git am for this) and tweaked it.

Please, check that I did not do any mistake. After you have confirmed this, I'll push this to the mtd-utils repository.

I've pushed it actually to mtd-utils.git. But please, check it anyway.

Signature · 2 lines
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
#5 lore raw
Quoted 19 lines · Artem Bityutskiy
Quoted 18 lines · Artem Bityutskiy
Quoted 16 lines · Daniel Neukomm

patch for mkfs.ubifs devtable.c increment in dev_table is wrongly interpreted

with the device table one can add /dev entries to the root file system image.
The device table file contains among others the fields minor, start, increment and count.
If there is an entry with minor=0 start=0 increment =32 and count=4 the mkfs.ubifs makes
128 device entries, with minor numbers from 0 to 127
The correct version makes 4 entries with minor number 0,32,64,96.

/dev/mtd c 640 0 0 90 0 0 2 7
This gives 14 devices /dev/mtdXX instead of 7 devices.
Due to this error mtd_debug info /dev/mtd3 delivers the information of /dev/mtd1 instead of.

Quoted 9 lines
Quoted 6 lines

Ok, below is how you was supposed to send the patch (without my Signed-off-by, of course). I just applied your patch manually (usually we use git am for this) and tweaked it.

Please, check that I did not do any mistake. After you have confirmed this, I'll push this to the mtd-utils repository.

I've pushed it actually to mtd-utils.git. But please, check it anyway.

The new patch (without line-wrapping) works.
The actual trunk version from mtd-utils repository contains the intented corrections.