chiark / gitweb /
17 years ago[PATCH] udevd race conditions and performance, assorted cleanups [Thu, 1 Apr 2004 07:03:07 +0000 (23:03 -0800)]
[PATCH] udevd race conditions and performance, assorted cleanups

This patch covers a number of areas:

1) sysfs.h is fixed up to use the common dbg() macro.  This fixes the
case where DEBUG is defined but USE_LOG isn't.

2) udevstart.c is modified to include the proper headers, rather than
getting them indirectly which can break depending on Makefile flags

3) udevd.c gets some major changes:
a) I added a pipe from the signal handler.  This fixes the race
conditions that I mentioned earlier.  Basically, the point of the pipe
is to force the select() call to return immediately if a signal handler
fired before we actually started the select() call.  This then lets us
run the appropriate code based on flags set in the signal handler proper.
b) I added a number of flags to coalesce calls to common routines.  This
should make things slightly more efficient.
c) since most calls will tend to come in with a sequence number larger
than what has been received, I switched msg_queue_insert() to scan the
msg_list backwards to improve performance.


17 years ago[PATCH] udevinfo patch [Thu, 1 Apr 2004 07:00:45 +0000 (23:00 -0800)]
[PATCH] udevinfo patch

On Fri, Mar 26, 2004 at 06:36:32PM +0500, Ananth N Mavinakayanahalli wrote:
> On Fri, Mar 26, 2004 at 11:24:39AM +0100, Kay Sievers wrote:
> > On Fri, Mar 26, 2004 at 11:21:29AM +0500, Ananth N Mavinakayanahalli wrote:
> > > On Fri, Mar 26, 2004 at 04:47:35AM +0100, Kay Sievers wrote:
> > > > On Fri, Mar 26, 2004 at 01:26:46AM +0100, Carl-Daniel Hailfinger wrote:
> > > > > Greg KH wrote:
> > > > > > On Tue, Mar 23, 2004 at 01:51:01PM -0800, Daniel Stekloff wrote:
> > > >
> > > > No, it breaks the net device handling. I think we should change
> > > > libsysfs instead, not to return a class device for '/block', if
> > > > we want to fix it.
> > >
> > > /sys/block is considered a sysfs "class" and not a class_device. So,
> > > going by udevinfo's help, -p expects path to a class_device and _not_
> > > a class itself and hence option /sys/block with -p is not a valid query.
> > >
> > > Kay?
> >
> > Yes, it's invalid, but we shouldn't print major minor for a invalid
> > path. sysfs_open_class_device_path("/block") returns a device. If this is
> > the right behavior for libsysfs, I will change the get_device_type("/block")
> > not to return a 'b'-type.
> Libsysfs validates the path given to it for opening a class_device to be
> a valid directory; it does not however validate if the path is a valid
> class_device path. So, in the case of udevinfo, a 'b' type should not
> be returned if the path is just /sys/block or /sys/block/

This may prevent it.

17 years ago[PATCH] Add README for chassis_id [Thu, 1 Apr 2004 06:56:51 +0000 (22:56 -0800)]
[PATCH] Add README for chassis_id

17 years ago[PATCH] fix SEGV in libsysfs/dlist.c [Thu, 1 Apr 2004 06:56:45 +0000 (22:56 -0800)]
[PATCH] fix SEGV in libsysfs/dlist.c

Hi all, Greg,

libsysfs/dlist.c: _dlist_mark_move()

is missing checks for empty lists and may (and indeed, does) crash when=20
called with empty dlists.

17 years ago[PATCH] clean up chassis_id coding style. [Thu, 1 Apr 2004 02:27:02 +0000 (18:27 -0800)]
[PATCH] clean up chassis_id coding style.

17 years ago[PATCH] Add chassis_id program to extras directory [Thu, 1 Apr 2004 02:18:58 +0000 (18:18 -0800)]
[PATCH] Add chassis_id program to extras directory

17 years ago[PATCH] clean up the OSDL document formatting a bit [Thu, 1 Apr 2004 02:17:38 +0000 (18:17 -0800)]
[PATCH] clean up the OSDL document formatting a bit

17 years ago[PATCH] add OSDL documentation for persistent naming [Thu, 1 Apr 2004 02:11:27 +0000 (18:11 -0800)]
[PATCH] add OSDL documentation for persistent naming

17 years ago[PATCH] add netlink rules to devfs and gentoo rules files. [Tue, 30 Mar 2004 03:52:56 +0000 (19:52 -0800)]
[PATCH] add netlink rules to devfs and gentoo rules files.

17 years ago[PATCH] added USB device rules to rules files. [Tue, 30 Mar 2004 03:46:40 +0000 (19:46 -0800)]
[PATCH] added USB device rules to rules files.

17 years ago[PATCH] clean up the gentoo rules file a bit more, adding dri rules. [Tue, 30 Mar 2004 02:38:53 +0000 (18:38 -0800)]
[PATCH] clean up the gentoo rules file a bit more, adding dri rules.

17 years ago[PATCH] fix up udev.rules to handle oss rules better. [Tue, 30 Mar 2004 02:33:48 +0000 (18:33 -0800)]
[PATCH] fix up udev.rules to handle oss rules better.

Patch from Jordan <>

17 years ago[PATCH] 023_bk mark [Sat, 27 Mar 2004 09:23:21 +0000 (01:23 -0800)]
[PATCH] 023_bk mark

17 years ago[PATCH] dev_d.c file sorting and cleanup [Sat, 27 Mar 2004 09:21:46 +0000 (01:21 -0800)]
[PATCH] dev_d.c file sorting and cleanup

On Thu, Mar 25, 2004 at 02:52:13AM +0100, Kay Sievers wrote:
> Please have look if it still works for you, I only did a very quick
> test.

Here is a unified version, with all the functions moved to udev_lib.c.
We have a generic function now, to call a given fnct(char *) for every
file ending with a specific suffix, sorted in lexical order. We use it
to execute the dev.d/ files and read our rules.d/ files. The binary
should be a bit smaller now.

I've also changed it, to not do the dev.d/ exec for net devices.

17 years ago[PATCH] apply all_partitions rule to main block device only [Sat, 27 Mar 2004 09:21:43 +0000 (01:21 -0800)]
[PATCH] apply all_partitions rule to main block device only

Rules with NAME{all_partitions}= are now applied only to the parent of a
block device. We no longer need to exclude the partitions or sg* devices.

17 years ago[PATCH] small fix
md@Linux.IT [Sat, 27 Mar 2004 09:21:41 +0000 (01:21 -0800)]
[PATCH] small fix

The file may not exist and errors would be spewed on the console.

17 years ago[PATCH] fix udev.spec file for where udevtest should be placed. [Thu, 25 Mar 2004 08:14:47 +0000 (00:14 -0800)]
[PATCH] fix udev.spec file for where udevtest should be placed.

17 years ago[PATCH] v023 release 023 [Thu, 25 Mar 2004 08:08:46 +0000 (00:08 -0800)]
[PATCH] v023 release

17 years ago[PATCH] create the /etc/dev.d/ directories in 'make install' [Thu, 25 Mar 2004 08:03:28 +0000 (00:03 -0800)]
[PATCH] create the /etc/dev.d/ directories in 'make install'

17 years ago[PATCH] actually have udev run files ending in .dev in the /etc/dev.d/ directory... [Thu, 25 Mar 2004 07:31:04 +0000 (23:31 -0800)]
[PATCH] actually have udev run files ending in .dev in the /etc/dev.d/ directory as documented.

17 years ago[PATCH] hmm, handle net devices with udev? [Thu, 25 Mar 2004 07:19:39 +0000 (23:19 -0800)]
[PATCH] hmm, handle net devices with udev?

Hmm, Arndt Bergmann sent a patch like this one a few weeks ago and
I want to bring the question back, if we want to handle net device
naming with udev.

With this patch it is actually possible to specify something like this
in udev.rules:

  KERNEL="dummy*", SYSFS{address}="00:00:00:00:00:00", SYSFS{features}="0x0", NAME="blind%n"
  KERNEL="eth*", SYSFS{address}="00:0d:60:77:30:91", NAME="private"

and you will get:

  [root@pim udev.kay]# cat /proc/net/dev
  Inter-|   Receive                                                | Transmit
   face |bytes    packets errs drop fifo frame compressed multicast|bytes   packets errs drop fifo colls carrier compressed
       lo:    1500     30    0    0    0     0          0         0    1500      30    0    0    0     0       0          0
  private:  278393   1114    0    0    0     0          0         0  153204    1468    0    0    0     0       0          0
     sit0:       0      0    0    0    0     0          0         0       0       0    0    0    0     0       0          0
   blind0:       0      0    0    0    0     0          0         0       0       0    0    0    0     0       0          0

The udevinfo program is also working:

  [root@pim udev.kay]# ./udevinfo -a -p /sys/class/net/private
    looking at class device '/sys/class/net/private':

  follow the class device's "device"
    looking at the device chain at '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:01.0':

The matching device will be renamed to the given name. The device name
will not be put into the udev database, cause the kernel renames the
device and the sysfs name disappears.

I like it, cause it plugs in nicely. We have all the naming features
and sysfs queries and walks inside of  udev. The sysfs timing races
are already solved and the management tools are working for net devices
too. nameif can only match the MAC address now. udev can match any sysfs
value of the device tree the net device is connected to.
But right, net devices do not have device nodes :)

17 years ago[PATCH] added RFC-dev.d document detailing how /etc/dev.d/ works. [Thu, 25 Mar 2004 07:11:08 +0000 (23:11 -0800)]
[PATCH] added RFC-dev.d document detailing how /etc/dev.d/ works.

17 years ago[PATCH] fixed up udev.spec to handle selinux stuff properly now. [Thu, 25 Mar 2004 06:49:03 +0000 (22:49 -0800)]
[PATCH] fixed up udev.spec to handle selinux stuff properly now.

17 years ago[PATCH] remove USE_DBUS and USE_SELINUX flags from the README as they are no longer... [Thu, 25 Mar 2004 06:47:15 +0000 (22:47 -0800)]
[PATCH] remove USE_DBUS and USE_SELINUX flags from the README as they are no longer present.

17 years ago[PATCH] remove selinux stuff from the main Makefile [Thu, 25 Mar 2004 06:46:29 +0000 (22:46 -0800)]
[PATCH] remove selinux stuff from the main Makefile

17 years ago[PATCH] move udev_selinux into extras/selinux [Thu, 25 Mar 2004 06:41:45 +0000 (22:41 -0800)]
[PATCH] move udev_selinux into extras/selinux

17 years ago[PATCH] fix dbus build in the udev.spec file. [Thu, 25 Mar 2004 05:42:40 +0000 (21:42 -0800)]
[PATCH] fix dbus build in the udev.spec file.

17 years ago[PATCH] remove dbus stuff from main Makefile [Thu, 25 Mar 2004 05:39:33 +0000 (21:39 -0800)]
[PATCH] remove dbus stuff from main Makefile

Not needed now that it's in extras.

17 years ago[PATCH] move udev_dbus to extras/dbus [Thu, 25 Mar 2004 05:37:34 +0000 (21:37 -0800)]
[PATCH] move udev_dbus to extras/dbus

Should build now, but might have linking problems.

17 years ago[PATCH] udev_dbus can now compile properly, but linnking is another story... [Thu, 25 Mar 2004 05:23:42 +0000 (21:23 -0800)]
[PATCH] udev_dbus can now compile properly, but linnking is another story...

17 years ago[PATCH] remove udev_dbus.h from Makefile [Thu, 25 Mar 2004 05:21:21 +0000 (21:21 -0800)]
[PATCH] remove udev_dbus.h from Makefile

17 years ago[PATCH] first cut at standalone udev_selinux program. [Thu, 25 Mar 2004 05:18:36 +0000 (21:18 -0800)]
[PATCH] first cut at standalone udev_selinux program.

Will not work, need to finish working on this on a system with selinux installed...

17 years ago[PATCH] remove selinux support from udev core as it's no longer needed. [Thu, 25 Mar 2004 05:14:08 +0000 (21:14 -0800)]
[PATCH] remove selinux support from udev core as it's no longer needed.

17 years ago[PATCH] first cut at standalone udev_dbus program. [Thu, 25 Mar 2004 05:12:10 +0000 (21:12 -0800)]
[PATCH] first cut at standalone udev_dbus program.

Will not work, need to finish working on this on a system with dbus installed...

17 years ago[PATCH] add get_devnode() helper to udev_lib for udev_dbus program [Thu, 25 Mar 2004 05:11:36 +0000 (21:11 -0800)]
[PATCH] add get_devnode() helper to udev_lib for udev_dbus program

17 years ago[PATCH] remove dbus code from core udev code as it's no longer needed to be there. [Thu, 25 Mar 2004 05:11:13 +0000 (21:11 -0800)]
[PATCH] remove dbus code from core udev code as it's no longer needed to be there.

17 years ago[PATCH] add /etc/dev.d/ support for udev add and remove events. [Thu, 25 Mar 2004 04:46:58 +0000 (20:46 -0800)]
[PATCH] add /etc/dev.d/ support for udev add and remove events.

17 years ago[PATCH] fix build error in namedev.c caused by previous patch. [Thu, 25 Mar 2004 01:50:40 +0000 (17:50 -0800)]
[PATCH] fix build error in namedev.c caused by previous patch.

17 years ago[PATCH] udevinfo patch [Thu, 25 Mar 2004 01:34:38 +0000 (17:34 -0800)]
[PATCH] udevinfo patch

I think this is what you want for udevinfo. Patched against the latest BK
tree. I tested it and it seemed to work.

One other question, shouldn't udevinfo.c:print_all_attributes() check to
make sure attr->method is SYSFS_METHOD_SHOW along with checking to see
if attr->value != NULL or doesn't that matter?

Here's the libsysfs fix for print_device_chain():

17 years ago[PATCH] correct apply_format() for symlink only rules [Thu, 25 Mar 2004 01:34:00 +0000 (17:34 -0800)]
[PATCH] correct apply_format() for symlink only rules

Patch from Andrey, which restores the ability to use RESULT values in a
"symlink only" rule. We need to call apply_format() directly after
the matching rule, otherwise the RESULT value may be lost.

17 years ago[PATCH] don't init namedev on remove [Wed, 24 Mar 2004 02:54:34 +0000 (18:54 -0800)]
[PATCH] don't init namedev on remove

Is there any reason to parse the rules for a remove event?
Without it, our test script needs only 2.1 seconds instead of 2.5,
so we have 19 percent more time for testing now :)

17 years ago[PATCH] uninitialized variable for mknod and friend [Wed, 24 Mar 2004 02:52:52 +0000 (18:52 -0800)]
[PATCH] uninitialized variable for mknod and friend

mknod gets an uninitialized variable, which leads to interesting file
modes. the bug is in namedev, devices with no match must not use the
uninitialized stuff were dev points to.

17 years ago[PATCH] 022_bk tag [Wed, 24 Mar 2004 02:49:56 +0000 (18:49 -0800)]
[PATCH] 022_bk tag

17 years ago[PATCH] fix 'make spotless' to really do that in klibc. [Wed, 24 Mar 2004 02:43:49 +0000 (18:43 -0800)]
[PATCH] fix 'make spotless' to really do that in klibc.

bah, this took me forever to figure out why I couldn't build with klibc on
on box...

17 years ago[PATCH] first stupid try for a rule compose gui [Wed, 24 Mar 2004 02:24:25 +0000 (18:24 -0800)]
[PATCH] first stupid try for a rule compose gui

On Mon, Mar 15, 2004 at 09:28:17PM +0100, Kay Sievers wrote:
> Here is a first simple and pretty stupid try to make a simple tool for
> composing of a udev rule.
> It reads the udevdb to get all currently handled devices and presents a
> list, where you can choose the device to compose the rule for.
> The composed rule is just printed out in a window, nothing else by now.
> Do we want something like this?
> Nevermind, I always wanted to know, how this newt thing works :)

Here is the next step, I still can't sleep and there are to many patches
pending to make something useful :)
Cause nobody wanted to play with me, I've made a screenshot.
The device list is sorted in alphabetical order now and if there are only
a few recently discovered devices, they are placed on top of the list.

For those who want to have a look:

The patch applies on top of today's mmap() patch. The db format is
changed to have the file and line number of the applied rule. So it
should be easy to edit the matching rule with this beast. It compiles
with "make all udevruler".

17 years ago[PATCH] add a question/answer about automounting usb devices to the FAQ. [Wed, 24 Mar 2004 02:21:45 +0000 (18:21 -0800)]
[PATCH] add a question/answer about automounting usb devices to the FAQ.

Thanks to bert hubert <> for the text.

17 years ago[PATCH] SCSI logical and physical names for udev [Tue, 23 Mar 2004 06:43:07 +0000 (22:43 -0800)]
[PATCH] SCSI logical and physical names for udev

  Hi, Greg. Appended is, a script for udev to implement
devfs-style names for SCSI hard discs, CD-ROM's and generic devices.
This has been tested with both hard discs and CD-ROM's. The SCSI
generic support should be OK for when there is sysfs/udev support for
SCSI generic devices. SCSI tapes are not yet implemented because I
don't have one to test with.

In addition, this script supports physical names, based on PCI bus
location, both longhand (/udev/bus/pci/...) and shorthand

17 years ago[PATCH] Increase the name size as requested by Richard Gooch <> [Tue, 23 Mar 2004 06:39:39 +0000 (22:39 -0800)]
[PATCH] Increase the name size as requested by Richard Gooch <>

17 years ago[PATCH] fix udevtest to build properly after the big udev_lib change. [Tue, 23 Mar 2004 06:32:34 +0000 (22:32 -0800)]
[PATCH] fix udevtest to build properly after the big udev_lib change.

17 years ago[PATCH] replace fgets() with mmap() and introduce udev_lib.[hc] [Tue, 23 Mar 2004 06:22:20 +0000 (22:22 -0800)]
[PATCH] replace fgets() with mmap() and introduce udev_lib.[hc]

Here we replace the various fgets() with a mmap() call for the config
file reading, due to the reported performance problems with klibc.

Thanks to Patrick's testing, it makes a very small, close to nothing
speed gain for libc users, but a 6 times speed increase for klibc users
with a 1000 line config file.

I've created a udev_lib.[hc] for this and also moved all the generic
stuff from udev.h in there and uninlined the functions.

17 years ago[PATCH] Trivial man page typo fixes to udev [Tue, 23 Mar 2004 06:19:37 +0000 (22:19 -0800)]
[PATCH] Trivial man page typo fixes to udev

 Fix minor man page typo's.

17 years ago[PATCH] make udevtest a real program :) [Tue, 23 Mar 2004 06:18:34 +0000 (22:18 -0800)]
[PATCH] make udevtest a real program :)

Here are the missing pieces for udevtest. A simple man page is added,
the blacklist is removed, cause it can't work without having a subsystem.
The Makefile removes all manpages now with a uninstall and installs
udevtest in /usr/bin/.
Any old version from /sbin/ should be deleted by hand.

The only expected argument is the sysfs devpath, here I changed it to be
more tolerant to the input. The path may now be specified with or
without a leading slash and optionally with the /sys moutpoint prepended.

I hope this will end the confusion about the use of this program :)

17 years ago[PATCH] 022 release 022 [Sat, 13 Mar 2004 07:53:38 +0000 (23:53 -0800)]
[PATCH] 022 release

17 years ago[PATCH] make spotless [Sat, 13 Mar 2004 07:52:21 +0000 (23:52 -0800)]
[PATCH] make spotless

klibc has a target make spotless, this patch makes it possible to clean
the whole udev tree and start from scratch.

17 years ago[PATCH] fix HOWTO-udev_for_dev for udevdir [Sat, 13 Mar 2004 07:52:17 +0000 (23:52 -0800)]
[PATCH] fix HOWTO-udev_for_dev for udevdir

17 years ago[PATCH] cleanup [Sat, 13 Mar 2004 02:18:58 +0000 (18:18 -0800)]
[PATCH] cleanup

Here is a small name change, so all expected values are named exp_*

17 years ago[PATCH] add big major tests to [Sat, 13 Mar 2004 02:00:39 +0000 (18:00 -0800)]
[PATCH] add big major tests to

17 years ago[PATCH] add a test for a minor over 255 [Sat, 13 Mar 2004 01:39:59 +0000 (17:39 -0800)]
[PATCH] add a test for a minor over 255

17 years ago[PATCH] print out major:minor and perm test "ok" if is ok. [Sat, 13 Mar 2004 01:27:44 +0000 (17:27 -0800)]
[PATCH] print out major:minor and perm test "ok" if is ok.

17 years ago[PATCH] make perm and major:minor test errors be reported properly. [Sat, 13 Mar 2004 01:19:50 +0000 (17:19 -0800)]
[PATCH] make perm and major:minor test errors be reported properly.

17 years ago[PATCH] add dev node test to [Sat, 13 Mar 2004 01:13:59 +0000 (17:13 -0800)]
[PATCH] add dev node test to

> Nice, that's a good start.  Now we need to check the major:minor values
> too somehow...

I better do it immediately, before you put it in the empty TODO :)

Patch is a bit big, cause spaces are changed to tabs to get
space for the longer names.

17 years ago[PATCH] remove extra ; in namedev_parse.c [Sat, 13 Mar 2004 00:43:31 +0000 (16:43 -0800)]
[PATCH] remove extra ; in namedev_parse.c

Thanks to Olaf Hering <> for pointing this out.

17 years ago[PATCH] udev* segfaults with new klibc [Fri, 12 Mar 2004 09:06:55 +0000 (01:06 -0800)]
[PATCH] udev* segfaults with new klibc

current klibc uses regparm on i386. This leads to nice segfaults in all
udev apps. Using the content of the just included MCONFIG file fixes it.

17 years ago[PATCH] fix a type in docs/libsysfs.txt [Fri, 12 Mar 2004 08:58:38 +0000 (00:58 -0800)]
[PATCH] fix a type in docs/libsysfs.txt

Mary Edie Merideth noticed this typo. I think this is what it was supposed
to be. Judging by the pattern.

17 years ago[PATCH] add permission tests [Fri, 12 Mar 2004 08:58:33 +0000 (00:58 -0800)]
[PATCH] add permission tests

> Any chance on being able to add a test for this kind of stuff to the
> script?

Sure, not brilliant but seems to work :)
Only numeric id's are supported so far.

17 years ago[PATCH] more Libsysfs updates [Fri, 12 Mar 2004 08:57:36 +0000 (00:57 -0800)]
[PATCH] more Libsysfs updates

On Thu, Mar 11, 2004 at 02:36:23PM +0100, Kay Sievers wrote:
> On Thu, 2004-03-11 at 15:02, Ananth N Mavinakayanahalli wrote:
> > On Thu, Mar 11, 2004 at 02:04:36PM +0100, Kay Sievers wrote:
> > > On Thu, Mar 11, 2004 at 11:53:50AM +0500, Ananth N Mavinakayanahalli wrote:
> > >
> > > > +#define safestrcpy(to, from) strncpy(to, from, sizeof(to)-1)
> > > > +#define safestrcat(to, from) strncat(to, from, sizeof(to) - strlen(to)-1)
> > >
> > > These strings are not terminated with '\0' if from is longer than
> > > the sizeof to.
> >
> > Did not do it on purpose as the "to" elements are either calloc'd or memset to
> > '0' explicitly in the library. Thats the reason I mentioned "scaled down" :)
> Ahh, sounds good.
> > > > +#define safestrncpy(to, from, maxsize) \
> > > > +do { \
> > > > + to[maxsize-1] = '\0'; \
> > > > + strncpy(to, from, maxsize-1); \
> > > > +} while (0)
> > > > +
> > > > +#define safestrncat(to, from, maxsize) \
> > > > +do { \
> > > > + to[maxsize-1] = '\0'; \
> > > > + strncat(to, from, maxsize - strlen(to)-1); \
> > > > +} while (0)
> > >
> > > We all expect a similar behavior like strncat/strncpy according to the
> > > names, but these macros are limiting by the target size and do not limit
> > > the count of chars copied.
> > > This is confusing I think and suggest using a different name like
> > > 'safestrcopymax()' or something.
> >
> > Good point.. will make the change
> Nice. I've had these *n* names too and I forgot about the logic and only
> 10 days later I introduced a ugly bug cause I can't limit the count of
> copied chars :)

Inlined is the patch for this... applies on the earlier _BIG_ patch.

17 years ago[PATCH] Libsysfs updates [Fri, 12 Mar 2004 08:57:30 +0000 (00:57 -0800)]
[PATCH] Libsysfs updates

Please find attached a _BIG_ patch to update udev's libsysfs. Patch applies
on udev-021 and contains:

1. Updates to get udev's libsysfs to the latest (to be released) level.
2. Changes for C++ compatibility (use "char" and not "unsigned char"
unless absolutely necessary).
3. More importantly, take care of buffer overflows. Libsysfs now uses a
        scaled down version of Kay's "safe" macros.

Tested using a usb-storage device.

I will send you a doc update shortly.

17 years ago[PATCH] "symlink only" test [Thu, 11 Mar 2004 09:39:53 +0000 (01:39 -0800)]
[PATCH] "symlink only" test

Here is a test for the "symlink only" rule.

Any reason to do the apply_format() inside the loop?
I've changed it.

17 years ago[PATCH] callout part selector tweak [Thu, 11 Mar 2004 09:37:18 +0000 (01:37 -0800)]
[PATCH] callout part selector tweak

Martin Schwenke <> asked for this feature and posted a

 The following patch almost let's me have the following configuration:

  PROGRAM="/sbin/aliaser %b %k %n %M %m", RESULT="?*", NAME="%c{1}", SYMLINK="%c{2+}"

 allowing me to specify an arbitrary number of symlinks by saying
 "giveme the second and later words"."

Here is the actual version with tests and a few words in the man page.

17 years ago[PATCH] cleanup callout fork [Thu, 11 Mar 2004 09:36:12 +0000 (01:36 -0800)]
[PATCH] cleanup callout fork

Here I change the callout fork logic.
The current cersion is unable to read a pipe which is not flushed at once,
Now we read until it's closed.

The maximum argument count is calculated by the strlen now. We have 100
chars for our result buffer so we can't have more than 50 parameters.
So it's much more clear what will happen now and not some magic boundary
where we use shell behind it.

Parameter can be combined to one by using apostrophes.

this on works now:
  BUS="scsi", PROGRAM="/bin/sh -c 'echo foo3 foo4 foo5 foo6 foo7 foo8 foo9 | sed  s/foo9/bar9/'", KERNEL="sda3", NAME="%c{7}"

Two new test are also added.

17 years ago[PATCH] Added multipath-tools 0.1.1 release [Thu, 11 Mar 2004 06:40:39 +0000 (22:40 -0800)]
[PATCH] Added multipath-tools 0.1.1 release

17 years ago[PATCH] deleted current extras/multipath directory [Thu, 11 Mar 2004 06:38:58 +0000 (22:38 -0800)]
[PATCH] deleted current extras/multipath directory

17 years ago[PATCH] allow to specify node permissions in the rule [Thu, 11 Mar 2004 06:35:37 +0000 (22:35 -0800)]
[PATCH] allow to specify node permissions in the rule

This allows to set the permissions along with the rule.

This is not a general replacement for the permissions config, but it
may be easier sometimes for the user to specify the permissions along
with the rule, cause the permissions config file wants the final node
name to match, which seems sometimes a bit difficult to guess, if
format % chars are used in the NAME field.

Any value not given in the rule is still be read from the permissions
file or set to the default. This one will also work:

  BUS="usb", KERNEL="video*", NAME="my-%k", OWNER="$local"

A few words to man page are also added and add_perm_dev() is moved into
namedev_parse.c where it belongs to.

17 years ago[PATCH] Added line to udev.permissions.redhat [Wed, 10 Mar 2004 03:55:17 +0000 (19:55 -0800)]
[PATCH] Added line to udev.permissions.redhat

Added this line to have xterms provide a prompt.

17 years ago[PATCH] man page beauty [Wed, 10 Mar 2004 03:50:30 +0000 (19:50 -0800)]
[PATCH] man page beauty

Thanks to Christian Gierke, he sent me a beauty patch for our man pages.
Some typos are fixed and a few word are clarified.

17 years ago[PATCH] put symlink only rules to the man page [Wed, 10 Mar 2004 03:50:22 +0000 (19:50 -0800)]
[PATCH] put symlink only rules to the man page

Here we mention the "symlink only - add it to another rule" feature
to the man page. Andrey, does this describe what you have implemented :)

17 years ago[PATCH] rename strn*() macros to strmax [Wed, 10 Mar 2004 03:50:15 +0000 (19:50 -0800)]
[PATCH] rename strn*() macros to strmax

Hey, I wrote the strn*() macros just 10 days ago and yesterday this trap
caught me with the %c{x} bug.
The names are misleading cause we all expect that the from field is limited by
the size argument, but we actually limit the overall size of the destination
string to prevent a overflow.

Here we rename all strn*() macros to str*max(). That should be
more self-explanatory.

17 years ago[PATCH] udevstart fixes
md@Linux.IT [Fri, 5 Mar 2004 03:10:02 +0000 (19:10 -0800)]
[PATCH] udevstart fixes

udevstart_no_retval: currently udevstart will always return rc=22
because of the error handling code. I completely removed it because it
is not used, and returning a generic error to the init script is not
much useful anyway.

17 years ago[PATCH] Include more examples in the docs area for gentoo and redhat [Fri, 5 Mar 2004 02:59:18 +0000 (18:59 -0800)]
[PATCH] Include more examples in the docs area for gentoo and redhat

Here's a patch that puts the udev.rules and udev.permissions files in the
docs dir. This should help people out who install with just the rpm.

17 years ago[PATCH] conditional remove of trailing sysfs whitespace [Fri, 5 Mar 2004 02:59:13 +0000 (18:59 -0800)]
[PATCH] conditional remove of trailing sysfs whitespace

Hey, it may never happen, that one wants to distinguish attributes by
trailing spaces, but we should not lose the control over it, just for
being lazy :)

Here we remove the trailing spaces of the sysfs attribute only if the
configured value to match doesn't have any trailing spaces by itself.
So if you put a attribute in a rule with spaces at the end, the sysfs
attribute _must_ match exactly.

Is that cool for everyone?

As usual, 2 tests are added for it with a artificial sysfs file and
a few words to the man page.

17 years ago[PATCH] clarify udevinfo text [Fri, 5 Mar 2004 02:58:02 +0000 (18:58 -0800)]
[PATCH] clarify udevinfo text

Make udevinfo attribute printing note so clear,
that's nearly impossible to misunderstand it in the future.

17 years ago[PATCH] better fix for NAME="foo-%c{N}" gets a truncated name [Fri, 5 Mar 2004 02:55:34 +0000 (18:55 -0800)]
[PATCH] better fix for NAME="foo-%c{N}" gets a truncated name

On Wed, Mar 03, 2004 at 04:56:34PM -0800, Greg KH wrote:
> On Wed, Mar 03, 2004 at 03:57:04PM -0800, Patrick Mansfield wrote:
> >
> > Here is a patch for some new tests.
> Applied, thanks.

Here is a small improvement, which looks much better.

Hey Pat, thanks a lot for finding the recent bug, hope this one will
not break it again :)

17 years ago[PATCH] Small fix to remove extra "will" in man page [Thu, 4 Mar 2004 09:17:08 +0000 (01:17 -0800)]
[PATCH] Small fix to remove extra "will" in man page

  remove extraneous word.

17 years ago[PATCH] overall trivial trivial cleanup [Thu, 4 Mar 2004 08:57:29 +0000 (00:57 -0800)]
[PATCH] overall trivial trivial cleanup

Here I try to make the style a bit more consistant in the different
files, so that new patches just copy the 'right' one :)

Some "magic" numbers are replaced and udevtest.c is catched up with udev.

17 years ago[PATCH] add tests for NAME="foo-%c{N}" [Thu, 4 Mar 2004 08:55:22 +0000 (00:55 -0800)]
[PATCH] add tests for NAME="foo-%c{N}"

Here is a patch for some new tests.

17 years ago[PATCH] fix NAME="foo-%c{N}" gets a truncated name [Thu, 4 Mar 2004 08:54:13 +0000 (00:54 -0800)]
[PATCH] fix NAME="foo-%c{N}" gets a truncated name

On Wed, Mar 03, 2004 at 02:43:34PM -0800, Patrick Mansfield wrote:
> Here is a fix and a new test for the problem Atul hit, where if we have a
> NAME based on a result of the form:
>  NAME="foo-%c{7}"
> udev truncates the name. Without any prefix (the foo- in this example),
> the rule was working OK.

Here is a fix for the fix :)

Sorry, I broke it yesterday.

17 years ago[PATCH] 021_bk mark [Thu, 4 Mar 2004 08:52:05 +0000 (00:52 -0800)]
[PATCH] 021_bk mark

17 years ago[PATCH] fix the build for older versions of gcc [Thu, 4 Mar 2004 08:51:28 +0000 (00:51 -0800)]
[PATCH] fix the build for older versions of gcc

17 years ago[PATCH] cleanup mult field string handling [Thu, 4 Mar 2004 02:16:35 +0000 (18:16 -0800)]
[PATCH] cleanup mult field string handling

Here I try to cleanup our various multifield iteration over the strings.
Inspired by our nice list.h we now have a macro to iterate over the string
and process the parts of it:
It makes the code more readable and we don't change the string while we
process it like the former strsep() does.


  foreach_strpart(dev->symlink, " ", pos, len) {
   if (strncmp(&dev->symlink[pos], find_name, len) != 0)


For the callout part selector %c{2} we separate now not only by space but
also newline and return characters, cause some programs may give multiline
values back. A possible RESULT match must contain wildcards for these

Also a bug in the recent udevinfo symlink query feature is fixed.

17 years ago[PATCH] 021 release 021 [Wed, 3 Mar 2004 08:01:22 +0000 (00:01 -0800)]
[PATCH] 021 release

17 years ago[PATCH] fix udev.spec to find udevinfo now that it has moved to /usr/bin [Wed, 3 Mar 2004 07:51:50 +0000 (23:51 -0800)]
[PATCH] fix udev.spec to find udevinfo now that it has moved to /usr/bin

17 years ago[PATCH] install udevinfo in /usr/bin [Wed, 3 Mar 2004 07:49:08 +0000 (23:49 -0800)]
[PATCH] install udevinfo in /usr/bin

Here we rename the former tiny $(HELPER) to $(INFO)
cause it's no longer only a helper :)
And install it in /usr/bin instead of /sbin cause any user
may want to call it and we don't need it on startup.

17 years ago[PATCH] blacklist pcmcia_socket [Wed, 3 Mar 2004 07:49:04 +0000 (23:49 -0800)]
[PATCH] blacklist pcmcia_socket

Is this something for the blacklist?

|-- pcmcia_socket0
|   |-- device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:00.0
|   `-- driver -> ../../../bus/pci/drivers/yenta_cardbus
`-- pcmcia_socket1
    |-- device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:00.1
        `-- driver -> ../../../bus/pci/drivers/yenta_cardbus

17 years ago[PATCH] Fix another problem with Makefile installing initscript [Wed, 3 Mar 2004 07:47:22 +0000 (23:47 -0800)]
[PATCH] Fix another problem with Makefile installing initscript

17 years ago[PATCH] fix the Makefile to install the init script into the proper directory [Wed, 3 Mar 2004 07:33:52 +0000 (23:33 -0800)]
[PATCH] fix the Makefile to install the init script into the proper directory


17 years ago[PATCH] make spec file turn off selinux support by default. [Wed, 3 Mar 2004 06:54:00 +0000 (22:54 -0800)]
[PATCH] make spec file turn off selinux support by default.

17 years ago[PATCH] 020 release 020 [Wed, 3 Mar 2004 06:51:13 +0000 (22:51 -0800)]
[PATCH] 020 release

17 years ago[PATCH] update the TODO list as we already have a devfs config file. [Wed, 3 Mar 2004 06:46:24 +0000 (22:46 -0800)]
[PATCH] update the TODO list as we already have a devfs config file.

17 years ago[PATCH] make start_udev use udevstart binary [Wed, 3 Mar 2004 06:45:22 +0000 (22:45 -0800)]
[PATCH] make start_udev use udevstart binary

17 years ago[PATCH] man page udevstart [Wed, 3 Mar 2004 06:43:00 +0000 (22:43 -0800)]
[PATCH] man page udevstart