aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm-2.4
diff options
context:
space:
mode:
authorMike Baker <mbm@openwrt.org>2007-03-09 18:39:34 +0000
committerMike Baker <mbm@openwrt.org>2007-03-09 18:39:34 +0000
commit4f4432dafaa00c181ff919170935aa25f24ef3aa (patch)
tree297bc0739c760dd60adb504d21fa9d061b9cd3af /target/linux/brcm-2.4
parent27a95ffa471284be028414b2cedd1f04e2c79eb6 (diff)
downloadupstream-4f4432dafaa00c181ff919170935aa25f24ef3aa.tar.gz
upstream-4f4432dafaa00c181ff919170935aa25f24ef3aa.tar.bz2
upstream-4f4432dafaa00c181ff919170935aa25f24ef3aa.zip
more devfs related bugs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6543 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm-2.4')
-rw-r--r--target/linux/brcm-2.4/src/jffs2root.c21
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);
}