diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2012-01-21 06:00:17 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2012-01-21 06:18:32 +0100 |
commit | d2b795f2b942a2532c396c7e55d6cd8369cae7fc (patch) | |
tree | 1724f337cc1503afce0628481ed7b3c57ed7a658 | |
parent | 430959910f1b9b67c2553f5f46c0487b0f8a3a00 (diff) |
libudev: do not set DEVNAME= twice
When we read the 'uevent' file we need to make sure, that we do not
read the relative DEVNAME= path provided by the kernel and overwrite
the absolute path udev expects here.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | NEWS | 16 | ||||
-rw-r--r-- | src/libudev-device.c | 19 |
3 files changed, 30 insertions, 7 deletions
diff --git a/Makefile.am b/Makefile.am index 3271bdb54c..e292600565 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,7 +77,7 @@ SED_PROCESS = \ # libudev # ------------------------------------------------------------------------------ LIBUDEV_CURRENT=13 -LIBUDEV_REVISION=0 +LIBUDEV_REVISION=1 LIBUDEV_AGE=13 SUBDIRS += src/docs @@ -1,3 +1,19 @@ +udev 178 +======== +Bugfix for the firmware loading behavior with kernel modules which +try to load firmware in the module_init() path. The blocked event +runs into a timout now, which should allow the firmware to be loaded. + +Bugfix for a wrong DEVNAME= export, which breaks at least the udev-acl +tool. + +Bugfix for missing ID_ properties for GPT partitions. + +The RUN+="socket:.." option is deprecated and should not be used. A warning +during rules parsing is printed now. Services which listen to udev events, +need to subscribe to the netlink messages with libudev and not let udev block +in the rules execution until the message is delivered. + udev 177 ======== Bugfix for rule_generator instalation. diff --git a/src/libudev-device.c b/src/libudev-device.c index a3356cfd18..10f28b8cd5 100644 --- a/src/libudev-device.c +++ b/src/libudev-device.c @@ -548,16 +548,23 @@ int udev_device_read_uevent_file(struct udev_device *udev_device) continue; pos[0] = '\0'; - if (strncmp(line, "DEVTYPE=", 8) == 0) + if (strncmp(line, "DEVTYPE=", 8) == 0) { udev_device_set_devtype(udev_device, &line[8]); - else if (strncmp(line, "MAJOR=", 6) == 0) + continue; + } + if (strncmp(line, "IFINDEX=", 8) == 0) { + udev_device_set_ifindex(udev_device, strtoull(&line[8], NULL, 10)); + continue; + } + if (strncmp(line, "DEVNAME=", 8) == 0) { + udev_device_set_devnode(udev_device, &line[8]); + continue; + } + + if (strncmp(line, "MAJOR=", 6) == 0) maj = strtoull(&line[6], NULL, 10); else if (strncmp(line, "MINOR=", 6) == 0) min = strtoull(&line[6], NULL, 10); - else if (strncmp(line, "IFINDEX=", 8) == 0) - udev_device_set_ifindex(udev_device, strtoull(&line[8], NULL, 10)); - else if (strncmp(line, "DEVNAME=", 8) == 0) - udev_device_set_devnode(udev_device, &line[8]); else if (strncmp(line, "DEVMODE=", 8) == 0) udev_device->devnode_mode = strtoul(&line[8], NULL, 8); |