Re: rsdl 30 on 2.6.20.2 breaks user space usb

Andreas Jellinghaus <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.usb.devel
Message-ID <[email protected]>
Serge Belyshev wrote:

> Andreas Jellinghaus <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.