summaryrefslogtreecommitdiff
path: root/src/udev/udevd.c
AgeCommit message (Collapse)Author
2014-04-13udev: serialize/synchronize block device event handling with file locksKay Sievers
2014-04-13udev: remove seqnum API and all assumptions about seqnumsKay Sievers
The way the kernel namespaces have been implemented breaks assumptions udev made regarding uevent sequence numbers. Creating devices in a namespace "steals" uevents and its sequence numbers from the host. It confuses the "udevadmin settle" logic, which might block until util a timeout is reached, even when no uevent is pending. Remove any assumptions about sequence numbers and deprecate libudev's API exposing these numbers; none of that can reliably be used anymore when namespaces are involved.
2014-02-13everywhere: always use O_CLOEXEC where it makes senseLennart Poettering
2014-02-13everywhere: make use of new0() and macro() macros, and stop using perror()Lennart Poettering
2014-01-31use memzero(foo, length); for all memset(foo, 0, length); callsGreg KH
In trying to track down a stupid linker bug, I noticed a bunch of memset() calls that should be using memzero() to make it more "obvious" that the options are correct (i.e. 0 is not the length, but the data to set). So fix up all current calls to memset(foo, 0, length) to memzero(foo, length).
2013-12-29udev: LOG_PRIORITY -> LOG_LEVELKay Sievers
2013-12-24log: log_error() and friends add a newline after each line anyway, so avoid ↵Lennart Poettering
including it in the log strings
2013-11-12udev: declare some symbols staticKay Sievers
2013-11-06util: unify reading of /proc/cmdlineLennart Poettering
Instead of individually checking for containers in each user do this once in a new call proc_cmdline() that read the file only if we are not in a container.
2013-10-13udev: use initialization instead of zeroing in one placeZbigniew Jędrzejewski-Szmek
2013-08-22Revert "udevd: simplify sigterm check"Colin Walters
This reverts commit 47e737dc13bf4251ae5a2249ec29b34503ed92e1 - it introduced a use-after-free. The only way the code would get simpler is with a cleanup function, but eh, not worth it for just this one bit. Reviewed by kay on IRC.
2013-08-15udevd: simplify sigterm checkKay Sievers
2013-08-09udevd: respect the log-level set in /etc/udev/udev.confTom Gundersen
A regression introduced when we moved to systemd's logging is that the only way to adjust the log-level of the udev daemon is via the env var, kernel commandline or the commandline. This reintroduces support for specifying this in the configuration file.
2013-07-16udev: export tags of "dead" device nodes to /run/udev/static_node-tags/Tom Gundersen
Based on a patch by Kay Sievers. A tag is exported at boot as a symlinks to the device node in the folder /run/udev/static_node-tags/<tagname>/, if the device node exists. These tags are cleaned up by udevadm info --cleanup-db, but are otherwise never removed.
2013-07-08static-nodes: move creation of static nodes from udevd to tmpfilesTom Gundersen
As of kmod v14, it is possible to export the static node information from /lib/modules/`uname -r`/modules.devname in tmpfiles.d(5) format. Use this functionality to let systemd-tmpfilesd create the static device nodes at boot, and drop the functionality from systemd-udevd. As an effect of this we can move from systemd-udevd to systemd-tmpfiles-setup-dev: * the conditional CAP_MKNOD (replaced by checking if /sys is mounted rw) * ordering before local-fs-pre.target (see 89d09e1b5c65a2d97840f682e0932c8bb499f166)
2013-04-16nspawn: introduce the new /machine/ tree in the cgroup tree and move ↵Lennart Poettering
containers there Containers will now carry a label (normally derived from the root directory name, but configurable by the user), and the container's root cgroup is /machine/<label>. This label is called "machine name", and can cover both containers and VMs (as soon as libvirt also makes use of /machine/). libsystemd-login can be used to query the machine name from a process. This patch also includes numerous clean-ups for the cgroup code.
2013-04-03util: rename write_one_line_file() to write_string_file()Lennart Poettering
You can write much more than just one line with this call (and we frequently do), so let's correct the naming.
2013-03-28udev: check return value of uname.Václav Pavlín
2013-03-28build-sys: fix HAVE/ENABLE_FIRMWAREKay Sievers
https://bugs.freedesktop.org/show_bug.cgi?id=62864
2013-03-25udevd.c: set udev children_max according to CPU countHarald Hoyer
Setting children_max according to RAM leads to too much concurrent I/O.
2013-03-18udev: ifdef all firmware special handlingKay Sievers
2013-03-03udev: remove database conversion codeKay Sievers
2013-02-14honor SELinux labels, when creating and writing config filesHarald Hoyer
Also split out some fileio functions to fileio.c and provide a SELinux aware pendant in fileio-label.c see https://bugzilla.redhat.com/show_bug.cgi?id=881577
2013-02-13use streq instead of strcmpThomas Hindoe Paaboel Andersen
2013-01-09udev: move string copy functions to shared/Kay Sievers
2012-12-22udevd: add missing ':' to getopt_long 'e'Lukas Nykryn
Parameter -e is set without additional argument in getopt and this leads to segfault when calling 'systemd-udevd -e'.
2012-11-12use the same email address everywhereKay Sievers
2012-11-12udev: use usec_t and now()Kay 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-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-08udev: re-initialize builtins in the daemon process, not in the workerKay Sievers
2012-07-30udev: set log.c's log level from udev's kernel command line optionKay Sievers
2012-07-14udev: avoid creating /dev/kmsg with fopen() to support CONFIG_PRINTK=nKay Sievers
2012-07-13log: correct usage of logging API at a few placesLennart Poettering
2012-07-05udev: add some O_CLOEXECKay Sievers
2012-07-02udev: static nodes - fix default permissions if no rules is givenKay Sievers
<falconindy> kay: just curious -- it looks like nodes created by udev from modules.devname all have 000 perms, and there's nothing in udev that attempts to change this. is it intended? <falconindy> c--------- 1 root root 10, 223 Jul 1 23:10 uinput <kay> falconindy: we might miss the default of 0600 <falconindy> seems like it <kay> falconindy: stuff that has a rule works i guess <kay> falconindy: i'll add the 0600 now
2012-07-02udevd: fix bogus mkdir invocationDave Reisner
The filename parameter passed to mkdir can't contain anything but a garbage value at this point. This was meant to be the full pathname to the new udev DB, as the mkdir_parents() call before it won't create the trailing child directory. [replace mkdir_parents() + mkdir() with mkdir_p() -- kay]
2012-07-02udevd: use ROOTPREFIX to create path to modules.devnameDave Reisner
2012-06-27udev: use the matching binary name "systemd-udevd" in log messagesKay Sievers
2012-06-04udev: kernel cmdline - accept rd.* parametersKay Sievers
2012-06-04udev: reset /proc/self/oom_score_adj in worker processesKay Sievers
Only the main daemon process should be excluded from OOM handling, not the worker processes or their child processes.
2012-06-04udev: limit minimum worker count to 16Kay Sievers
2012-06-04udev: lower the starting children_max -> drop the minimum required RAM from ↵Lauri Kasanen
23mb to 5mb Udev was the limiting factor for us on low-RAM systems. Given an average RSS of 180kb, 128 workers would require ~23mb of RAM. Now, please consider what happens when there is only, say, 15mb free. Udev protects itself from OOM, and the kernel can do nothing but panic. 28 workers * 0.18mb = ~5mb. This change should not affect more powerful systems much, given that they still get the addition from the amount of RAM.
2012-05-31Revert "label: fix systemd-udev labeling of /run directory."Kay Sievers
This reverts commit 9b5af248f04b6cad8a5bca836e89a39e9f6823d9. Udev now explicitely labels only files/directories in /dev. The selinux array API is not released and will not work on other distros at this moment.
2012-05-31udev: do not selinux label files in /run/udevKay Sievers
2012-05-31mkdir: append _label to all mkdir() calls that explicitly set the selinux ↵Kay Sievers
context
2012-05-31label: fix systemd-udev labeling of /run directory.Daniel J Walsh
systemd-udev is currently incorrectly labeling /run/udev/* content because it is using selinux prefix labeling of /dev. This patch will allow systemd-udev to use prefix labeling of /dev and /run.
2012-04-29udev: use container_of() macroLucas De Marchi