summaryrefslogtreecommitdiff
path: root/udevstart.c
diff options
context:
space:
mode:
authorgreg@kroah.com <greg@kroah.com>2004-09-10 21:44:15 -0700
committerGreg KH <gregkh@suse.de>2005-04-26 21:37:00 -0700
commit70f630f64b4fd86af12ecb882c25ca8bce76b90c (patch)
tree114d6c05b33072bbd5da02c331cab1ce9f839a36 /udevstart.c
parent41bc97a0aded14db263b60f7902cc482c28fcfd9 (diff)
[PATCH] add a "first" list to udevstart and make it contain the class/mem/ devices
Seems some programs really want /dev/null to work properly :)
Diffstat (limited to 'udevstart.c')
-rw-r--r--udevstart.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/udevstart.c b/udevstart.c
index cb1c78888c..9c1d69503d 100644
--- a/udevstart.c
+++ b/udevstart.c
@@ -80,15 +80,33 @@ static char *last_list[] = {
NULL,
};
+/* list of devices that we should run first due to any one of a number of reasons */
+static char *first_list[] = {
+ "/class/mem", /* people tend to like their memory devices around first... */
+ NULL,
+};
+
static void exec_list(struct list_head *device_list)
{
struct device *loop_device;
struct device *tmp_device;
+ int i;
+
+ /* handle the "first" type devices first */
+ list_for_each_entry_safe(loop_device, tmp_device, device_list, list) {
+ for (i=0; first_list[i] != NULL; i++) {
+ if (strncmp(loop_device->path, first_list[i], strlen(first_list[i])) == 0) {
+ udev_add_device(loop_device->path, loop_device->subsys, NOFAKE);
+ list_del(&loop_device->list);
+ free(loop_device);
+ break;
+ }
+ }
+ }
/* handle the devices we are allowed to, excluding the "last" type devices */
list_for_each_entry_safe(loop_device, tmp_device, device_list, list) {
int found = 0;
- int i;
for (i=0; last_list[i] != NULL; i++) {
if (strncmp(loop_device->path, last_list[i], strlen(last_list[i])) == 0) {
found = 1;