1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-31 16:21:11 +03:00
Commit Graph

108 Commits

Author SHA1 Message Date
kay.sievers@vrfy.org
03cfa1394f [PATCH] correct udev_init_device 2005-04-26 23:39:48 -07:00
kay.sievers@vrfy.org
2a9a19245b [PATCH] determine device type in udev_init_device() 2005-04-26 23:36:13 -07:00
kay.sievers@vrfy.org
5ef4268205 [PATCH] switch device type to enum 2005-04-26 23:36:13 -07:00
kay.sievers@vrfy.org
eabfc97367 [PATCH] handle renamed network interfaces properly if we manage hotplug.d/
If we take over the hotplug call and manage the events we don't need
to call the event fake script in dev.d/. Just set all expected values
to the new network interface name and call hotplug.d/. This way the
device renaming is completely handled inside of udev and userspace
can't get confused.
2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
8b36cc0f17 [PATCH] complete removal of explicit udev permissions config file 2005-04-26 23:17:47 -07:00
kay.sievers@vrfy.org
82ca88904d [PATCH] klibc supports LOG_PID now, so remove our own implementation 2005-04-26 23:17:47 -07:00
Greg KH
18ebc43050 bleah, more merge fixes... 2005-04-26 23:15:56 -07:00
kay.sievers@vrfy.org
bc0410fdb6 [PATCH] export DEVNAME regardless of the state of udev_dev_d 2005-04-26 23:13:48 -07:00
kay.sievers@vrfy.org
7e0bd58475 [PATCH] check earlier if we should run as udevstart 2005-04-26 23:13:48 -07:00
kay.sievers@vrfy.org
8544c9ad4f [PATCH] remove double initialization 2005-04-26 23:13:48 -07:00
kay.sievers@vrfy.org
51737eb8b8 [PATCH] add -V option to udev to print the version number
On Sat, 2004-12-11 at 18:44 +0200, Martin Schlemmer [c] wrote:
> 
> Any suggestions to determining the version of the installed udev?
> This is now during startup, to see if we can make use of using
> udevsend as hotplug agent.  If the system was up, udevinfo could
> be used, but that is in /usr/bin that might be on a seperate /usr.
> I know we might move udevinfo to /bin, but that might be an issue
> for some, and adding a -V switch to /sbin/udev might be a better
> choice.
2005-04-26 23:13:47 -07:00
kay.sievers@vrfy.org
927bda3792 [PATCH] handle /etc/hotplug.d/ only if the event comes from udevd 2005-04-26 23:00:29 -07:00
kay.sievers@vrfy.org
2af003feb2 [PATCH] trivial cleanups and change some comments 2005-04-26 23:00:29 -07:00
kay.sievers@vrfy.org
45a7b668ec [PATCH] remove unused variables
Remove udev.bus, cause it's currently unused and newer kernels will pass
it in the hotplug environment as PHYSDEVBUS.

Remove udev.action, cause it's unused.

Rename udev_set_values() to udev_init_device().
2005-04-26 23:00:29 -07:00
kay.sievers@vrfy.org
9a50eb497f [PATCH] use blacklist on device "remove" and remove dev.d/ call code duplication 2005-04-26 23:00:29 -07:00
kay.sievers@vrfy.org
16ac31aaee [PATCH] don't call the hotplug scripts with a test run 2005-04-26 23:00:29 -07:00
Greg KH
b1e95455d2 fixups to get back to proper patch order
Damm, it's hard to merge a multi-line tree into one flat line at times...
2005-04-26 22:52:57 -07:00
kay.sievers@vrfy.org
7757db1f85 [PATCH] don't call dev.d/ scripts twice, if directory = subsystem
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.
2005-04-26 22:47:02 -07:00
kay.sievers@vrfy.org
9af5bb2f8f [PATCH] rename udev_lib to udev_utils and dev_d to udev_multiplex 2005-04-26 22:44:02 -07:00
greg@kroah.com
aa8666f77b [PATCH] fix spurious valgrind warning in udev. 2005-04-26 22:43:20 -07:00
sjoerd@spring.luon.net
67aca2c509 [PATCH] DEVNAME on device removal
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.
2005-04-26 22:42:36 -07:00
kay.sievers@vrfy.org
d07557b9b6 [PATCH] handle whole hotplug event with udevd/udev
If /proc/sys/kernel/hotplug points to /sbin/udevsend we handle the whole
hotplug event with multiplexing /etc/hotplug.d/.
2005-04-26 22:37:58 -07:00
kay.sievers@vrfy.org
c449b25e3f [PATCH] integrate wait_for_sysfs in udev
Move the wait_for_sysfs logic into the udev binary. udev is called for
every hotplug event. It also waits for /devices events.
2005-04-26 22:37:37 -07:00
kay.sievers@vrfy.org
a97b06483e [PATCH] export DEVNAME on remove event
Fix from Sjoerd Simons <sjoerd@spring.luon.net>, it got lost
on the recent reorganization of the udev processing stages.
2005-04-26 22:35:00 -07:00
kay.sievers@vrfy.org
69d2dbd66f [PATCH] export udev_log flag to the environment
Forked scripts and callouts may want to follow udev's configured behavior
and log only if udev is logging itself.
2005-04-26 22:35:00 -07:00
kay.sievers@vrfy.org
7225821d63 [PATCH] disable logging for udevstart
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.
2005-04-26 22:27:34 -07:00
kay.sievers@vrfy.org
02fa9ae589 [PATCH] rename udevdb* to udev_db* 2005-04-26 22:25:14 -07:00
kay.sievers@vrfy.org
8673dcb842 [PATCH] Make dev.d/ handling a separate processing stage
Move the logic when and how to call the dev.d/ scripts into the
main processing path.
2005-04-26 22:25:09 -07:00
kay.sievers@vrfy.org
af4b05d491 [PATCH] make the udev object available to more processing stages
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.
2005-04-26 22:24:38 -07:00
kay.sievers@vrfy.org
c6478ec1e1 [PATCH] add ACTION to udev object to expose it to the whole process 2005-04-26 22:24:10 -07:00
kay.sievers@vrfy.org
38753167e4 [PATCH] let udev act as udevstart if argv[1] == "udevstart"
"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.
2005-04-26 22:21:20 -07:00
kay.sievers@vrfy.org
2b41e68a08 [PATCH] replace tdb database by simple lockless file database
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.
2005-04-26 22:16:40 -07:00
kay.sievers@vrfy.org
5a73b25fd6 [PATCH] Don't use any syslog() in signal handler, cause it may deadlock. 2005-04-26 22:09:26 -07:00
kay.sievers@vrfy.org
f4949c53e6 [PATCH] Remove the last klibc specific line from the main udev code 2005-04-26 22:08:27 -07:00
kay.sievers@vrfy.org
f071348004 [PATCH] expose sysfs functions for sharing it
This patch exposes the wait_for_sysfs functions to all possible users,
so we need to maintain only one list of exceptions. The last list is
hereby removed from udev.c.
2005-04-26 22:06:44 -07:00
greg@kroah.com
1ceba9360b [PATCH] sparse cleanups on the tree 2005-04-26 22:06:44 -07:00
kay.sievers@vrfy.org
5d24c6ca36 [PATCH] cleanup netif handling and netif-dev.d/ events
Here we supress the dev.d/ execution if we didn't change a network
interface's name with a rule. This should solve the issue of two
running dhclients for the same interface, cause the
/etc/dev.d/net/hotplug.dev script that fakes the hotplug event runs
with every udevstart for every interface and fakes a second identical
hotplug event on bootup.

With this patch netif interfaces are no longer stored in the udevdb.
It is not needed, cause we don't have permissions or symlinks :) and
all information is available in sysfs.

This patch also moves the dev_d execution calls out of the
udev_add/udev_remove. As with the former api-cleanup-patch we have
all processed data in one udev struct and can place the execution
calls where needed.
2005-04-26 22:02:46 -07:00
kay.sievers@vrfy.org
7a947ce515 [PATCH] big cleanup of internal udev api
Here is the first patch to cleanup the internal processing of the
various stages of an udev event. It should not change any behavior,
but if your system depends on udev, please always test it before reboot :)

We pass only one generic structure around between add, remove,
namedev, db and dev_d handling and make all relevant data available
to all internal stages. All udev structures are renamed to "udev".

We replace the fake parameter by a flag in the udev structure.

We open the class device in the main binaries and not in udev_add, to
make it possible to use libsysfs for udevstart directory crawling.

The last sleep parameters are removed.
2005-04-26 22:02:46 -07:00
kay.sievers@vrfy.org
7257cb1845 [PATCH] close the syslog
Seems that we never closed the opened syslog.
Here is a patch to do this in all our binaries.
2005-04-26 22:02:45 -07:00
patmans@us.ibm.com
92307b9e7b [PATCH] move assignments past local variables
I'm using an older C compiler, and it doesn't like assignments mixed with
declarations, but this is also a style cleanup.
2005-04-26 22:02:44 -07:00
kay.sievers@vrfy.org
707680b1cf [PATCH] remove sleeps from udev as it is external now
Here we remove all the sysfs sleep loops from udev as wait_for_sysfs
will do this for us and any other hotplug user. We still keep a small
blacklist of subsystems we don't care about but any missing entry here
will no longer lead to a spinning udev waiting for files.
2005-04-26 22:02:44 -07:00
greg@kroah.com
8dc0e1382d [PATCH] Fix build error with klibc due to recent changes. 2005-04-26 21:58:15 -07:00
greg@kroah.com
f93987240e [PATCH] merge 2005-04-26 21:57:42 -07:00
mbuesch@freenet.de
e5a5b54ab6 [PATCH] fix asmlinkage
This patch fixes the reintroduced bug with the
sig_handler(), if we link against a -mregparm=3 compiled
klibc on i386.
It also fixes some compiler warnings about redefined
asmlinkage on some systems.
Also some (broken?) compilers on distros throw out warnings
if asmlinkage is before "static void". This fixes it, too.
2005-04-26 21:55:39 -07:00
mbuesch@freenet.de
dc117daa28 [PATCH] fix incompatible pointer type warning
This patch fixes two
warning: assignment from incompatible pointer type

asmlinkage is the reason for the warning. We can
simply cast to avoid it.

It also fixes this warning:
warning: implicit declaration of function `umask'
2005-04-26 21:53:22 -07:00
kay.sievers@vrfy.org
7e89a569cc [PATCH] prevent deadlocks on an corrupt udev database
Here is the patch, that should prevent all of the known deadlocks with
corrupt tdb databases we discovered.
Thanks to Frank Steiner <fsteiner-mail@bio.ifi.lmu.de>, who tested all this
endlessly with a NFS mounted /dev. The conclusion is, that udev will not work
on filesystems without proper record locking, but we should prevent the
endless loops anyway. This patch implements:

o recovery from a corrupted udev database. udev will continue
  without database support now, instead of doing nothing. So the node should
  be generated in any case, remove will obviously not work for custom names.

o added iteration limits to the tdb-code at the places we discovered endless
  loops. In the case tdb tries to find more than 100.000 entries with the
  same hash, we better give up :)

o prevent a {all_partitions} loop caused by corrupt db data

o log all tdb errors to syslog

o switch sleep() to usleep() cause we want to use alarm()
2005-04-26 21:47:44 -07:00
kay.sievers@vrfy.org
6d74f9967b [PATCH] handle only block and class devices
Fix a stupid logic bug, I introduced with the udev.c simplification. We
want to look at class and block devices only.
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org
aee380b6d8 [PATCH] Fix naming ethernet devices in udevstart
On Tue, Sep 07, 2004 at 12:46:43PM +0200, Kay Sievers wrote:
> On Mon, 2004-09-06 at 20:18 -0700, Tom Rini wrote:
> > I noticed somewhat recently that my enet devices weren't being renamed
> > on boot anymore.  I don't quite know when this got broken (or rather, if
> > it was supposed to be working.  I swear it worked for me once..), but
> > the following seems to do it.
>
> I think it never worked in the udevstart case. It worked only with the
> hotplug-event-udev, I expect.
>
> > In udev_scan_class(), look for not just
> > %s/%s/dev (which everything with a dev node has), but %s/%s/dev* (both
> > of my enet devices, sis900 & 3c59x only have device) and if that
> > exists, pass this along to udev.
>
> Yeah, network devices don't have a devnode and therefore no "dev", but
> they are all in /sys/class/net/. We may just test if we are there
> instead of the "device" match.

How about something like this. It adds all the net devices without
looking at the attributes and keeps the remaining logic like it is.

It also removes certain levels of indirection and much simplifies the
udevstart process. We surely don't need to open and close the udevdb
for every node while iterating over the list. (We are about 5% faster on
my box)

It's not well tested, so it would be nice if someone can have a look
at it, before a broken udevstart renders any system unbootable.
2005-04-26 21:37:00 -07:00
trini@kernel.crashing.org
2410242aa4 [PATCH] fix UDEV_NO_SLEEP
Move setting UDEV_NO_SLEEP into main().  I thought about moving
udev_init_config() around, but it still must be invoked in both udev and
udevstart cases, and before udev_hotplug() is called.  An alternative
would be to have main() do:
if (is_udevstart) {
	... current ...
} else {
	udev_init_config();
	return udev_hotplug();
}

And move setting UDEV_NO_SLEEP into udev_start().  I can redo it that
way, if you prefer.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00
trini@kernel.crashing.org
eb6c7cd036 [PATCH] Make udev/udevstart be one binary
Hi,

The following patch makes udev/udevstart be a common binary.  First,
doing this grows udev by a total of 1.8kB (ppc32, stripped) whereas
udevstart by itself is 6.4kB.  I know you mentioned being able to
replace udevstart with a script, but at 1.8kB I don't think it'll be
easy to beat this with size there.  Next, the following are by-eye
timings of before, after, and with devfs on a slow, but still usable
embedded platform (config stripped down to more-or-less bare for
ramdisk):
-- Embedded Planet RPX LITE, 64Mhz MPC 823e --
devfs         : 15.333s, 15.253s, 14.988s (15.191s avg)
udev-pristine : 18.675s, 18.079s, 18.418s (18.390s avg)
udev-multi    : 14.587s, 14.747s, 14.868s (14.734s avg)

The patch ends up being rather large to add this, as in doing so I ended
up making all refs (that I hit..) to devpath/subsystem be marked as
'const'.


Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00