Add a patch from Alexander Holler to fix segfault with ipsec interfaces
[openwrt.git] / package / openwrt / mtd.c
index a0eeb79..f0c127b 100644 (file)
@@ -19,6 +19,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
  * $Id$
+ *
+ * code is based on linux-mtd example code
  */
 
 #include <limits.h>
@@ -237,7 +239,6 @@ void usage(void)
        "       erase                   erase all data on device\n"
        "       write <imagefile>       write imagefile to device\n"
        "Following options are available:\n"
-       "       -u                      unlock device before accessing it\n"
        "       -r                      reboot after successful command\n"
        "       -e <device>             erase <device> before executing the command\n\n"
        "Example: To write linux.trx to mtd4 labeled as linux and reboot afterwards\n"
@@ -257,19 +258,9 @@ int main (int argc, char **argv)
        
        erase[0] = NULL;
        boot = 0;
-       unlock = 0;
 
-       printf("mtd: Modify data within a Memory Technology Device.\n"
-       "Copyright (C) 2005 Waldemar Brodkorb <wbx@dass-it.de>,\n"
-       "                   Felix Fietkau <nbd@vd-s.ath.cx>\n"
-       "Documented by Mike Strates [dumpedcore] <mike@dilaudid.net>\n"
-       "mtd has ABSOLUTELY NO WARRANTY and is licensed under the GNU GPL.\n\n");
-       
-       while ((ch = getopt(argc, argv, "ure:")) != -1)
+       while ((ch = getopt(argc, argv, "re:")) != -1)
                switch (ch) {
-                       case 'u':
-                               unlock = 1;
-                               break;
                        case 'r':
                                boot = 1;
                                break;
@@ -314,12 +305,10 @@ int main (int argc, char **argv)
                i++;
        }
        
-       if (unlock) 
-               mtd_unlock(device);
+       mtd_unlock(device);
 
        switch (cmd) {
                case CMD_UNLOCK:
-                       mtd_unlock(device);
                        break;
                case CMD_ERASE:
                        mtd_erase(device);
@@ -330,7 +319,7 @@ int main (int argc, char **argv)
        }
 
        if (boot)
-               reboot(0);
+               kill(1, 15); // send SIGTERM to init for reboot
 
        return 0;
 }
This page took 0.026917 seconds and 4 git commands to generate.