summaryrefslogtreecommitdiff
path: root/src/udev
AgeCommit message (Collapse)Author
2012-11-13udev: properly handle symlink removal by 'change' eventKay Sievers
If a 'change' event is supposed to remove created symlinks, we create a new device structure from the sysfs device and fill it with the list of links, to compute the delta of the old and new list of links to apply. If the device is already 'remove'd by the kernel though, udev fails to create the device structure, so the links are not removed properly. > From: Neil Brown <nfbrown@suse.com> > Date: Thu, 8 Nov 2012 10:39:06 +0100 > Subject: [PATCH] If a 'change' event does not get handled by udev until > after the device has subsequently disappeared, udev mis-handles > it. This can happen with 'md' devices which emit a change > event and then a remove event when they are stopped. It is > normally only noticed if udev is very busy (lots of arrays > being stopped at once) or the machine is otherwise loaded > and reponding slowly. > > There are two problems. > > 1/ udev_device_new_from_syspath() will refuse to create the device > structure if the device does not exist in /sys, and particularly if > the uevent file does not exist. > If a 'db' file does exist, that is sufficient evidence that the device > is genuine and should be created. Equally if we have just received an > event from the kernel about the device, it must be real. > > This patch just disabled the test for the 'uevent' file, it doesn't > try imposing any other tests - it isn't clear that they are really > needed. > > 2/ udev_event_execute_rules() calls udev_device_read_db() on a 'device' > structure that is largely uninitialised and in particular does not > have the 'subsystem' set. udev_device_read_db() needs the subsystem > so it tries to read the 'subsystem' symlink out of sysfs. If the > device is already deleted, this naturally fails. > udev_event_execute_rules() knows the subsystem (as it was in the > event message) so this patch simply sets the subsystem for the device > structure to be loaded to match the subsystem of the device structure > that is handling the event. > > With these two changes, deleted handling of change events will still > correctly remove any symlinks that are not needed any more. Use udev_device_new() instead of allowing udev_device_new_from_syspath() to proceed without a sysfs device.
2012-11-12remove duplicate semicolonsThomas Hindoe Paaboel Andersen
2012-11-12use the same email address everywhereKay Sievers
2012-11-12udev: use usec_t and now()Kay Sievers
2012-11-09udev: net_id - add builtin to retrieve data for network devicesKay Sievers
2012-11-09udev: hwdb - search parents for 'modalias' and dataKay Sievers
2012-11-09udev: update file headersKay Sievers
2012-11-02udev: break over-long linesKay Sievers
2012-10-28udev: add "udevadm hwdb --test=<modalias>"Kay Sievers
2012-10-28udev: get rid of SYSCONFDIRKay Sievers
2012-10-27libudev: import hwdb and export lookup interfaceKay Sievers
2012-10-26keymap: Add HP EliteBook 8440pMartin Pitt
Thanks to Glen Ditchfield <gjditchfield@acm.org>! https://launchpad.net/bugs/1071579
2012-10-26udev: builtin - do not fail builtin initialization if one of them returns an ↵Kay Sievers
error
2012-10-26udev: kmod - fix typoKay Sievers
2012-10-25udev: kmod, hwdb - do not fail if databases are not availableKay Sievers
2012-10-25udev: hwdb - exit if no database is availableKay Sievers
2012-10-25udev: hwdb validate() return when the database is not openedKay Sievers
2012-10-25udev: hwdb - remove run_onceKay Sievers
2012-10-25udev: hwdb - properly initialize search structureKay Sievers
2012-10-25udev: set optind = 0, not the usual 1, to reset getopt_long()s internal stateKay Sievers
2012-10-23udev: add hardware database supportKay Sievers
2012-10-22udev: use strbuf to store rules stringsKay Sievers
2012-10-19keymap: Tolerate invalid entries in keymapsMartin Pitt
Some keymaps apply to a large range of computer models, not all of which have all of the scan codes in the maps. If a single scan code is invalid, do not abort but continue with the next entry in the map. Instead just show the error message for that particular scan code, to help with debugging.
2012-10-19keymap: Fix parsing of hex scan codes in tablesMartin Pitt
Commit b1f87c76b1 changed sscanf from %i to %u, as scan codes are unsigned numbers which can be > 0x7FFFFFFF. However, sscanf doesn't accept hexadecimal numbers for %u. It works fine with %i, so revert this back.
2012-10-19README.keymap.txt: Drop fdi2rules.py documentationMartin Pitt
This was removed ages ago.
2012-10-11udev: path_id - add scm supportSebastian Ott
Add support for scm block devices. Introduced here: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f30664e2 Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
2012-10-10keymap: Fix scan codes > 0x7FFFFFFFMartin Pitt
According to Linux drivers/input/evdev.c, scan codes are unsigned, not int nor uint32_t. Thanks to Dejan Tosovic <dejan@post.com> for reporting this!
2012-10-09udev: support multiple entries for ENV{SYSTEMD_ALIAS} and ENV{SYSTEM_WANTS}Kay Sievers
2012-10-08udev: remove SYMLINK "unique" optionKay Sievers
2012-10-07udev: allow firmware requests to bypass the dependency trackingKay Sievers
The removal of the TIMEOUT= handling in udevd put firmware requests into the devpath parent/child dependency tracking. Drivers which block in module_init() asking userspace for firmware ran into a 30 sec device timeout. The whole firmware loading willl hopefully move into the kernel and the fragile-since-day-one fake async driver-core device dance involving udev can be retired: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=abb139e75c2cdbb955e840d6331cb5863e409d0e
2012-09-27udev: collect - use snprintf()Robert Milasan
2012-09-23udev: free fd before return in accelerometer.cLukas Nykryn
2012-09-23udev: free fd before return in scsi_serial.cLukas Nykryn
2012-09-23udev: free rule structure on errorVáclav Pavlín
2012-09-23udev: check return value of writeVáclav Pavlín
2012-09-23udev: check return value of symlinkVáclav Pavlín
2012-09-23udev: check malloc return in collect/collect.cVáclav Pavlín
Returns from no memory checks updated with log_oom call
2012-09-17udev: add btrfs supportKay Sievers
All "btrfs" file systems will be registered with the kernel when they show up. Incomplete multi-device volumes will set SYSTEMD_READY=0, to prevent access until the volume is complete and fully registered.
2012-09-13man: fix a bunch of typos in docsThomas Hindoe Paaboel Andersen
https://bugs.freedesktop.org/show_bug.cgi?id=54501
2012-08-21dev-setup: make NULL as parameter for dev_setup() equivalent to ""Lennart Poettering
2012-08-21dev-setup: allow a path prefix for use in chrootsDave Reisner
With this adjustment, we can reuse this code elsewhere, such as in nspawn.
2012-08-16keymap: fix map name referenceKay Sievers
2012-08-15keymap: Add Sony VGNMartin Pitt
https://launchpad.net/bugs/939868
2012-08-10udev: export udev_device_new_from_device_id()Kay Sievers
2012-08-08udev: fix typo in copyrightKay Sievers
2012-08-08udev: re-initialize builtins in the daemon process, not in the workerKay Sievers
2012-08-08udev: initialize rules dir timestamps when reading rulesKay Sievers
On Wed, Aug 8, 2012 at 11:48 AM, Michael Schroeder <mls@suse.de> wrote: > if rules are installed in the first 3 seconds after the udev start, > the stamps will all be zero, so the [first] call to check_rules_timestamp() > will just copy the current mtime [and not cause a rules re-load].
2012-08-03keyboard-force-release: Fix previous commitMartin Pitt
Was missing a * for the globbing.
2012-08-03keyboard-force-release: Apply to all Fujitso AMILO modelsMartin Pitt
https://launchpad.net/bugs/1011323 reports more AMILO models which need this quirk; enough to assume that all of them need it, and applying it on working models does not really hurt.
2012-08-03udev: path_id - add comment about the unrteliable rebase logicKay Sievers