chiark / gitweb /
remove asmlinkage
[elogind.git] / udev / udevd.c
index d1a226673e6df8244ce8e5bbb071539ccb84657d..419c486ddd4fca09a341fb5d551337090c7e95ce 100644 (file)
@@ -67,10 +67,10 @@ static int debug_trace;
 static struct udev_rules *rules;
 static struct udev_ctrl *udev_ctrl;
 static struct udev_monitor *kernel_monitor;
-static volatile int sigchilds_waiting;
-static volatile int udev_exit;
-static volatile int reload_config;
-static volatile int signal_received;
+static volatile sig_atomic_t sigchilds_waiting;
+static volatile sig_atomic_t udev_exit;
+static volatile sig_atomic_t reload_config;
+static volatile sig_atomic_t signal_received;
 static volatile pid_t settle_pid;
 static int run_exec_q;
 static int stop_exec_q;
@@ -172,10 +172,10 @@ static void event_queue_delete(struct udev_event *event)
        udev_event_unref(event);
 }
 
-static void asmlinkage event_sig_handler(int signum)
+static void event_sig_handler(int signum)
 {
        if (signum == SIGALRM)
-               exit(1);
+               _exit(1);
 }
 
 static void event_fork(struct udev_event *event)
@@ -202,7 +202,7 @@ static void event_fork(struct udev_event *event)
 
                /* set signal handlers */
                memset(&act, 0x00, sizeof(act));
-               act.sa_handler = (void (*)(int)) event_sig_handler;
+               act.sa_handler = event_sig_handler;
                sigemptyset (&act.sa_mask);
                act.sa_flags = 0;
                sigaction(SIGALRM, &act, NULL);
@@ -339,7 +339,7 @@ static int compare_devpath(const char *running, const char *waiting)
        return 0;
 }
 
-/* lookup event for identical, parent, child, or physical device */
+/* lookup event for identical, parent, child device */
 static int devpath_busy(struct udev_event *event)
 {
        struct udev_list_node *loop;
@@ -390,19 +390,6 @@ static int devpath_busy(struct udev_event *event)
                        event->delaying_seqnum = udev_device_get_seqnum(loop_event->dev);
                        return 5;
                }
-
-               /* check physical device event (special case of parent) */
-               if (udev_device_get_physdevpath(event->dev) != NULL &&
-                   strcmp(udev_device_get_action(event->dev), "add") == 0)
-                       if (compare_devpath(udev_device_get_devpath(loop_event->dev),
-                                           udev_device_get_physdevpath(event->dev)) != 0) {
-                               dbg(event->udev, "%llu, physical device event still pending %llu (%s)\n",
-                                   udev_device_get_seqnum(event->dev),
-                                   udev_device_get_seqnum(loop_event->dev),
-                                   udev_device_get_devpath(loop_event->dev));
-                               event->delaying_seqnum = udev_device_get_seqnum(loop_event->dev);
-                               return 6;
-                       }
        }
        return 0;
 }
@@ -583,7 +570,7 @@ static int handle_inotify(struct udev *udev)
        return 0;
 }
 
-static void asmlinkage sig_handler(int signum)
+static void sig_handler(int signum)
 {
        switch (signum) {
                case SIGINT:
@@ -708,28 +695,6 @@ static void export_initial_seqnum(struct udev *udev)
        }
 }
 
-/* create the nodes the we depend on to properly start up */
-static void setup_initial_nodes(struct udev *udev)
-{
-       struct udev_device *dev;
-
-       dev = udev_device_new_from_subsystem_sysname(udev, "mem", "null");
-       if (dev != NULL) {
-               udev_node_mknod(dev, "null", makedev(0,0), 0666, 0, 0);
-               udev_device_unref(dev);
-       }
-       dev = udev_device_new_from_subsystem_sysname(udev, "mem", "kmsg");
-       if (dev != NULL) {
-               udev_node_mknod(dev, "kmsg", makedev(0,0), 0660, 0, 0);
-               udev_device_unref(dev);
-       }
-       dev = udev_device_new_from_subsystem_sysname(udev, "tty", "console");
-       if (dev != NULL) {
-               udev_node_mknod(dev, "console", makedev(0,0), 0600, 0, 0);
-               udev_device_unref(dev);
-       }
-}
-
 static void startup_log(struct udev *udev)
 {
        FILE *f;
@@ -836,8 +801,6 @@ int main(int argc, char *argv[])
                goto exit;
        }
 
-       setup_initial_nodes(udev);
-
        /* make sure std{in,out,err} fd's are in a sane state */
        fd = open("/dev/null", O_RDWR);
        if (fd < 0) {
@@ -931,7 +894,7 @@ int main(int argc, char *argv[])
 
        /* set signal handlers */
        memset(&act, 0x00, sizeof(struct sigaction));
-       act.sa_handler = (void (*)(int)) sig_handler;
+       act.sa_handler = sig_handler;
        sigemptyset(&act.sa_mask);
        act.sa_flags = SA_RESTART;
        sigaction(SIGINT, &act, NULL);