add reboot fix for mtd (thanks, wbx)
authorFelix Fietkau <nbd@openwrt.org>
Sun, 26 Nov 2006 01:03:21 +0000 (01:03 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 26 Nov 2006 01:03:21 +0000 (01:03 +0000)
SVN-Revision: 5645

openwrt/package/mtd/Makefile
openwrt/package/mtd/mtd.c

index 75e6e7de483d69494ebbff2dd5064dc55ee6b7f8..4e0ac28671db7c676001f460d7b3e7fe03f8ae52 100644 (file)
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME := mtd
-PKG_RELEASE := 4
+PKG_RELEASE := 5
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 1e9d316e4c510d7b97aee3a170533aca8d820916..37bd4edc8014d16a1e6a14190ca5fcd35a432b24 100644 (file)
@@ -28,6 +28,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <sys/ioctl.h>
+#include <sys/syscall.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <error.h>
@@ -41,6 +43,7 @@
 #include <string.h>
 
 #include <linux/mtd/mtd.h>
+#include <linux/reboot.h>
 
 #define TRX_MAGIC       0x30524448      /* "HDR0" */
 #define BUFSIZE (16 * 1024)
@@ -473,8 +476,9 @@ int main (int argc, char **argv)
 
        sync();
        
-       if (boot)
-               kill(1, 15); // send SIGTERM to init for reboot
-
+       if (boot) {
+               fflush(stdout);
+               syscall(SYS_reboot,LINUX_REBOOT_MAGIC1,LINUX_REBOOT_MAGIC2,LINUX_REBOOT_CMD_RESTART,NULL);
+       }
        return 0;
 }