Age | Commit message (Collapse) | Author |
|
Damm, it's hard to merge a multi-line tree into one flat line at times...
|
|
The /etc/dev.d/input/input.dev was called twice for /dev/input/mouse.
Skip the execution if we get a directory named after the subsystem.
Move UDEV_NO_DEVD where it belongs.
|
|
|
|
This cuts the size of the binaries, as only objects that
are actually used are linked into the binary:
45592 -> 43608 udev
4380 -> 4380 udevsend
10380 -> 4652 udevd
34732 -> 33100 udevinfo
45432 -> 37208 udevtest
|
|
|
|
|
|
|
|
|
|
I just noticed that the DEVNAME enviroment variable isn't being set anymore
in udev 0.046 on device removal, while it was being set in 0.042. We're using
the property tto do umount -l <devices> when a block device is removed. Afaik
there is no other way to associate a device with it's DEVNAME on removal ?
Also are there cases where doing umount -l on the removed devices is wrong?
I guess the device is gone, so there is no sense in keeping it mounted (it's
not like the filesystem is gonna come back in a sane state again)..
Attached (trivial) patch brings back the DEVNAME variable on device removal.
|
|
|
|
If /proc/sys/kernel/hotplug points to /sbin/udevsend we handle the whole
hotplug event with multiplexing /etc/hotplug.d/.
|
|
Move the wait_for_sysfs logic into the udev binary. udev is called for
every hotplug event. It also waits for /devices events.
|
|
|
|
If we don't have "name" or a "subsystem" don't look for it.
|
|
This will prevent a loop, if udev sends events back into the
daemon.
|
|
Fix from Sjoerd Simons <sjoerd@spring.luon.net>, it got lost
on the recent reorganization of the udev processing stages.
|
|
Forked scripts and callouts may want to follow udev's configured behavior
and log only if udev is logging itself.
|
|
|
|
|
|
> I just put const's at some places. It cut down data segments, but
> increased code size.
> Overall still smaller:
>
> -rwxr-xr-x 1 user users 50420 Nov 19 10:53 ../udev-046/udev
> -rwxr-xr-x 1 user users 49556 Nov 19 10:53 udev
> text data bss dec hex filename
> 47245 968 22480 70693 11425 ../udev-046/udev
> 48089 104 22064 70257 11271 udev
>
> Also, the instance of utsname in udev_lib.c is used only once.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Just move the event straight to the exec list and don't try
to compare a NULL pointer.
|
|
|
|
We get an empty line after every debug print from libsysfs,
so don't add a second if we already have one.
|
|
|
|
The slow logging facilites on some systems are a reason for
the reported slowness of udevstart. On one of my boxes udevstart
is down from 9 second to 0.3 seconds.
|
|
Some broken ide drivers are generating high event traffic, with
add/remove events. With this attribute, it can be specified,
that the node is always available. It may be used in conjunction
with the new DRIVER= match to catch specific kernel device drivers.
|
|
This is long ago replaced by the unified key attribute
format SYSFS{attr}="value".
|
|
expect
Newer kernels will tell us if we should wait for the "device" or
the "bus" link. So don't waste the time with our lists or wait
for the timeout.
|
|
Match with a rule against a device with a specific kernel driver.
|
|
This should make it easier to catch e.g all block or net devices with
a single rule.
|
|
|
|
Move the logic when and how to call the dev.d/ scripts into the
main processing path.
|
|
Remove the overwriting of main_argv[] hack and use the values
from the udev object.
Pass the udev object to call_foreach_file().
In the udevstart case, export SUBSYSTEM and UDEVSTART to the
environment.
|
|
|
|
|
|
[kay@pim udev.kay]$ ./udevinfo -r -q symlink -p /class/video4linux/video0
/dev/camera0 /dev/kamera0 /dev/videocam0 /dev/webcam0
[kay@pim udev.kay]$ ./udevinfo -q symlink -p /class/video4linux/video0
camera0 kamera0 videocam0 webcam0
|
|
"udev udevstart" will run udev as udevstart. This makes it easier
to run a test in the source tree without the need to create a
symlink.
|
|
|
|
The option "-s" will get information about the major/minor,
the physical device, the bus value and the driver from sysfs for
all class and block devices:
kay@pim udev.kay]$ ./udevinfo -s
DEVPATH '/sys/block/sda'
SUBSYSTEM 'block'
NAME 'sda'
MAJORMINOR '8:0'
PHYSDEVPATH '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/host2/target2:0:0/2:0:0:0'
PHYSDEVPATHBUS 'scsi'
DRIVER 'sd'
DEVPATH '/sys/class/input/mice'
SUBSYSTEM 'input'
NAME 'mice'
MAJORMINOR '13:63'
DEVPATH '/sys/class/input/mouse0'
SUBSYSTEM 'input'
NAME 'mouse0'
MAJORMINOR '13:32'
...
|
|
Make _all_ hotplug variables available to the forked udev,
the udev callouts and the udev dev.d/ scripts. We put the
whole environment into a buffer and send it over the udevd
socket. udevd recreates *envp[] and passes it to the exec().
|
|
|
|
This makes the udev operation completely lockless by storing a
file for every node in /dev/.udevdb/* This solved the problem
with deadlocking concurrent udev processes waiting for each other
to release the file lock under heavy load.
|
|
|