chiark / gitweb /
libudev: do not set DEVNAME= twice
authorKay Sievers <kay.sievers@vrfy.org>
Sat, 21 Jan 2012 05:00:17 +0000 (06:00 +0100)
committerKay Sievers <kay.sievers@vrfy.org>
Sat, 21 Jan 2012 05:18:32 +0000 (06:18 +0100)
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.

Makefile.am
NEWS
src/libudev-device.c

index 3271bdb..e292600 100644 (file)
@@ -77,7 +77,7 @@ SED_PROCESS = \
 # libudev
 # ------------------------------------------------------------------------------
 LIBUDEV_CURRENT=13
-LIBUDEV_REVISION=0
+LIBUDEV_REVISION=1
 LIBUDEV_AGE=13
 
 SUBDIRS += src/docs
diff --git a/NEWS b/NEWS
index 0973d80..a0ed539 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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.
index a3356cf..10f28b8 100644 (file)
@@ -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);