Re: rsdl 30 on 2.6.20.2 breaks user space usb

From: Andreas Jellinghaus
Date: Thu Mar 15 2007 - 06:54:25 EST


Serge Belyshev wrote:

> Andreas Jellinghaus <aj@xxxxxxxxxx> writes:
>
>> with plain 2.6.20.2 I get events / called from udev for /proc/bus/usb
>> devices. with rsdl 0.30 added to the kernel I no longer get called for
>> those devices (but I do get called for the new /dev/usbdev devices -
>> except that I can't use them).
>>
>> any idea why and what to do? might be related to a race condition.
>
> sounds like http://bugzilla.kernel.org/show_bug.cgi?id=8166#c32

further debugging shows at least udev->openct is missing an event:
udev events on 2.6.20.2 (without rsdl):
( "$ACTION - $DEVICE - $DEVNAME - $PRODUCT - $$ - $PPID")
add - /proc/bus/usb/002/016 - - 8e6/3438/100 - 6071 - 6065
add - - /dev/usbdev2.16_ep02 - - 6116 - 6113
add - - /dev/usbdev2.16_ep82 - - 6118 - 6114
add - - /dev/usbdev2.16_ep81 - - 6120 - 6115

udev events on 2.6.20.2 (with rsdl):
( "$ACTION - $DEVICE - $DEVNAME - $PRODUCT - $$ - $PPID")
add - - /dev/usbdev2.8_ep02 - - 5287 - 5286
add - - /dev/usbdev2.8_ep82 - - 5290 - 5288
add - - /dev/usbdev2.8_ep81 - - 5291 - 5289

the /proc event is missing. in both cases /proc/ was mounted.

syslog with udev on debugging (only the /proc event from the kernel w/o
rsdl):

Mar 15 11:19:06 localhost udevd[2622]: udev_event_run: seq 2869 forked, pid
[6065], 'add' 'usb', 0 seconds old
Mar 15 11:19:06 localhost udevd-event[6065]: wait_for_sysfs:
file '/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1.5/2-1.5:1.0/bus'
appeared after 0 loops
Mar 15 11:19:06 localhost udevd-event[6065]:
run_program: '/lib/udev/openct_usb'
Mar 15 11:19:07 localhost udevd-event[6065]:
run_program: '/lib/udev/openct_usb' returned with status 0
Mar 15 11:19:07 localhost udevd-event[6065]: pass_env_to_socket: passed 338
bytes to socket '/org/freedesktop/hal/udev_event',
Mar 15 11:19:07 localhost udevd-event[6065]: run_program: '/sbin/modprobe -Q
usb:v08E6p3438d0100dc00dsc00dp00ic0Bisc00ip00'
Mar 15 11:19:07 localhost udevd-event[6065]: run_program: '/sbin/modprobe'
returned with status 1
Mar 15 11:19:07 localhost udevd-event[6065]: pass_env_to_socket: passed -1
bytes to socket '/org/kernel/udev/monitor',
Mar 15 11:19:07 localhost udevd-event[6065]: udev_event_run: seq 2869
finished
Mar 15 11:19:07 localhost udevd[2622]: udev_done: seq 2869, pid [6065] exit
with 1, 1 seconds old

there is something similar in syslog (on the rsdl kernel):
Mar 15 11:24:32 localhost udevd[2607]: udev_event_run: seq 2717 forked, pid
[5284], 'add' 'usb', 0 seconds old
Mar 15 11:24:32 localhost udevd-event[5284]: wait_for_sysfs:
file '/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1.5/2-1.5:1.0/bus'
appeared after 0 loops
Mar 15 11:24:32 localhost udevd-event[5284]: pass_env_to_socket: passed 338
bytes to socket '/org/freedesktop/hal/udev_event',
Mar 15 11:24:32 localhost udevd-event[5284]: run_program: '/sbin/modprobe -Q
usb:v08E6p3438d0100dc00dsc00dp00ic0Bisc00ip00'
Mar 15 11:24:32 localhost udevd-event[5284]: run_program: '/sbin/modprobe'
returned with status 1
Mar 15 11:24:32 localhost udevd-event[5284]: pass_env_to_socket: passed -1
bytes to socket '/org/kernel/udev/monitor',
Mar 15 11:24:32 localhost udevd-event[5284]: udev_event_run: seq 2717
finished
Mar 15 11:24:32 localhost udevd[2607]: udev_done: seq 2717, pid [5284] exit
with 1, 0 seconds old

so I guess it might be a udev bug, as it wait_for_sysfs in both cases,
but doesn't trigger openct if the kernel has rsdl. as the hardware is the
same and the openct rules for udev didn't change.

Thanks, I'm taking the issue to the hotplug mailing list.

Regards, Andreas

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/