aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2012-01-21 06:00:17 +0100
committerKay Sievers <kay.sievers@vrfy.org>2012-01-21 06:18:32 +0100
commitd2b795f2b942a2532c396c7e55d6cd8369cae7fc (patch)
tree1724f337cc1503afce0628481ed7b3c57ed7a658
parent430959910f1b9b67c2553f5f46c0487b0f8a3a00 (diff)
downloadudev-d2b795f2b942a2532c396c7e55d6cd8369cae7fc.tar.gz
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.am2
-rw-r--r--NEWS16
-rw-r--r--src/libudev-device.c19
3 files changed, 30 insertions, 7 deletions
diff --git a/Makefile.am b/Makefile.am
index 3271bdb5..e2926005 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
diff --git a/NEWS b/NEWS
index 0973d806..a0ed5394 100644
--- 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.
diff --git a/src/libudev-device.c b/src/libudev-device.c
index a3356cfd..10f28b8c 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);