diff options
author | Mike Baker <mbm@openwrt.org> | 2007-03-09 18:39:34 +0000 |
---|---|---|
committer | Mike Baker <mbm@openwrt.org> | 2007-03-09 18:39:34 +0000 |
commit | 4a5cb10be35e55a3c725ae335d2f8532c98a0f55 (patch) | |
tree | e3b13b2a336c844e6cb21024d8c26521a0af1367 /target/linux/brcm-2.4/src/jffs2root.c | |
parent | 65e59861ba1d9e20ab927b49d69ae3a67ae73639 (diff) | |
download | upstream-4a5cb10be35e55a3c725ae335d2f8532c98a0f55.tar.gz upstream-4a5cb10be35e55a3c725ae335d2f8532c98a0f55.tar.bz2 upstream-4a5cb10be35e55a3c725ae335d2f8532c98a0f55.zip |
more devfs related bugs
SVN-Revision: 6543
Diffstat (limited to 'target/linux/brcm-2.4/src/jffs2root.c')
-rw-r--r-- | target/linux/brcm-2.4/src/jffs2root.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/target/linux/brcm-2.4/src/jffs2root.c b/target/linux/brcm-2.4/src/jffs2root.c index 3562eb4624..0afca57472 100644 --- a/target/linux/brcm-2.4/src/jffs2root.c +++ b/target/linux/brcm-2.4/src/jffs2root.c @@ -33,8 +33,6 @@ #include <sys/ioctl.h> #include "mtd.h" -#define FILENAME "/dev/mtdblock/1" - struct trx_header { unsigned magic; /* "HDR0" */ unsigned len; /* Length of file including header */ @@ -78,18 +76,25 @@ int main(int argc, char **argv) struct trx_header *ptr; char *buf; - if (((fd = open(FILENAME, O_RDWR)) < 0) - || ((len = lseek(fd, 0, SEEK_END)) < 0) + if ((fd = open("/dev/mtdblock/1", O_RDWR)) < 0) { + fd = open("/dev/mtdblock1", O_RDWR); + } + + if (((len = lseek(fd, 0, SEEK_END)) < 0) || ((ptr = (struct trx_header *) mmap(0, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) || (ptr->magic != 0x30524448)) { printf("Error reading trx info\n"); exit(-1); } - close (fd); - if (((fd = open("/dev/mtd/1", O_RDWR)) < 0) - || (ioctl(fd, MEMGETINFO, &mtdInfo))) { - fprintf(stderr, "Could not get MTD device info from %s\n", FILENAME); + close(fd); + + if ((fd = open("/dev/mtd/1", O_RDWR)) < 0) { + fd = open("/dev/mtd1", O_RDWR); + } + + if (ioctl(fd, MEMGETINFO, &mtdInfo)) { + fprintf(stderr, "Could not get MTD device info from mtd\n"); close(fd); exit(1); } |