Bug 559306

Summary: USB webcam (ov511) causes various system hangs
Product: [openSUSE] openSUSE 11.2 Reporter: Forgotten User 7Vd19u3Vod <forgotten_7Vd19u3Vod>
Component: HotplugAssignee: Brandon Philips <bphilips>
Status: VERIFIED UPSTREAM QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P2 - High CC: hanspeter.schinz, jeffm
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 11.2   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: lsmod on 11.1 before plugging in webcam
lsmod on 11.1 after plugging in webcam
lsmod on 11.2 before plugging in webcam
lsmod on 11.2 after plugging in webcam

Description Forgotten User 7Vd19u3Vod 2009-11-30 21:02:51 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.5) Gecko/20091103 SUSE/3.5.5-1.1.2 Firefox/3.5.5

When I connect my usb webcam to the system I get various problems, described in the following separate bug reports:
- hanging at boot until timeout, see bug 559048
- YaST cannot configure SCSI scanner, bug 559046
- commands sane-find-scanner and scanimage -L hang

I get messages like this in /var/log/messages:
Nov 29 12:03:52 linux-3yrb kernel: [  240.455150] INFO: task modprobe:542 blocked for more than 120 seconds.
Nov 29 12:03:52 linux-3yrb kernel: [  240.455156] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Nov 29 12:03:52 linux-3yrb kernel: [  240.455162] modprobe      D 0000000000000000     0   542      1 0x00000000
Nov 29 12:03:52 linux-3yrb kernel: [  240.455170]  ffff880127981b58 0000000000000086 ffffffff8100d27e 0000000000013a00
Nov 29 12:03:52 linux-3yrb kernel: [  240.455178]  0000000000013a00 ffff88012a19eb78 0000000000013a00 0000000000013a00
Nov 29 12:03:52 linux-3yrb kernel: [  240.455185]  0000000000013a00 0000000000013a00 ffff88012a19eb78 0000000000013a00
Nov 29 12:03:52 linux-3yrb kernel: [  240.455191] Call Trace:
Nov 29 12:03:52 linux-3yrb kernel: [  240.455207]  [<ffffffff81553e88>] __mutex_lock_slowpath+0x118/0x200
Nov 29 12:03:52 linux-3yrb kernel: [  240.455216]  [<ffffffff8155392c>] mutex_lock+0x2c/0x60
Nov 29 12:03:52 linux-3yrb kernel: [  240.455236]  [<ffffffffa0bef5e8>] ov51x_probe+0x558/0x770 [ov511]
Nov 29 12:03:52 linux-3yrb kernel: [  240.455252]  [<ffffffff813b4aee>] usb_probe_interface+0xde/0x260
Nov 29 12:03:52 linux-3yrb kernel: [  240.455261]  [<ffffffff81355e27>] really_probe+0x77/0x230
Nov 29 12:03:52 linux-3yrb kernel: [  240.455269]  [<ffffffff81356024>] driver_probe_device+0x44/0xa0
Nov 29 12:03:52 linux-3yrb kernel: [  240.455276]  [<ffffffff81356133>] __driver_attach+0xb3/0xc0
Nov 29 12:03:52 linux-3yrb kernel: [  240.455282]  [<ffffffff81354ea8>] bus_for_each_dev+0x78/0xc0
Nov 29 12:03:52 linux-3yrb kernel: [  240.455289]  [<ffffffff81355b7c>] driver_attach+0x2c/0x50
Nov 29 12:03:52 linux-3yrb kernel: [  240.455295]  [<ffffffff813553e8>] bus_add_driver+0x208/0x340
Nov 29 12:03:52 linux-3yrb kernel: [  240.455302]  [<ffffffff81356558>] driver_register+0x88/0x160
Nov 29 12:03:52 linux-3yrb kernel: [  240.455309]  [<ffffffff813b3c30>] usb_register_driver+0xd0/0x150
Nov 29 12:03:52 linux-3yrb kernel: [  240.455318]  [<ffffffffa007e032>] usb_ov511_init+0x32/0x63 [ov511]
Nov 29 12:03:52 linux-3yrb kernel: [  240.455332]  [<ffffffff8100906f>] do_one_initcall+0x3f/0x1f0
Nov 29 12:03:52 linux-3yrb kernel: [  240.455340]  [<ffffffff810abc7f>] sys_init_module+0xff/0x270
Nov 29 12:03:52 linux-3yrb kernel: [  240.455347]  [<ffffffff8100c682>] system_call_fastpath+0x16/0x1b
Nov 29 12:03:52 linux-3yrb kernel: [  240.455361]  [<00007fbd13e2286a>] 0x7fbd13e2286a

Without USB webcam connected the above bugs do not show up.

There are no problems with this webcam on openSUSE 11.1 installed on another partition of the same computer

see more details about hardware configuration and log files in bug 559048 and bug 559046

Reproducible: Always

Steps to Reproduce:
I.
1.connect USB webcam to the system
2.boot

II. 
1. connect USB webcam after boot
2. enter command sane-find scanner
3. use YaST scanner configuration module
Actual Results:  
I. boot process hangs as described in bug 559048

II. sane-find-scanner hangs, YaST cannpot detect SCSI scanner

Expected Results:  
I. boot without delay

II. sane-find-scanner finds SCSI scanner and terminates properly
YaST can configure SCSI scanner

Hardware:
- CPU:             AMD Phenom X4 9550 4x2.2GHz (95W) 65nm Quad Core
- Memory:          4GB - 2x2048MB DDR2-800 CL5, Dual Channel 2x1024MB
- Motherboard:     GIGABYTE GA-MA770-DS3, AMD 770 / SB600 chipsets
- Graphics:        NVidia GeForce 7300 GS, 256MB, TV-Out, DVI, PCIe
- Floppy:          1.44MB
- 1.  hard disk:   500GB Seagate 7200 RPM SATA II
- 2.  hard disk:   500GB Seagate 7200 RPM SATA II
- DVD-ROM:         Optiarc DDU 1615 16x/48x, IDE
- DVD-RW:          NEC AD-7200, IDE
- SCSI-Controller: Adaptec 2940 SCSI adapter,            SCSI ID: 7
 - Tape Streamer:   Seagate (CONNER) CTT8000-S SCSI Tr 4, SCSI ID: 4
 - Scanner:         UMAX Astra 610S SCSI                  SCSI ID: 5
- Card Reader:     Apacer AE101, 16 card types
- DVB Controller:  Technotrend/Hauppauge DVB card rev2.1
- Modem:           ELSA MicroLink 56k basic V90
- Webcam:          Lifetec LT 9338 USB Camera
Comment 1 Johannes Meixner 2009-12-01 11:07:55 UTC
*** Bug 559046 has been marked as a duplicate of this bug. ***
Comment 2 Jeff Mahoney 2009-12-01 21:28:49 UTC
Wow. Yup. That driver would definitely hang on every single modprobe ever.
Comment 3 Forgotten User 7Vd19u3Vod 2009-12-05 16:59:39 UTC
modprobe ov511 does not create any problem - I must plug in the webcam to reproduce the bug.


Comparison of behaviour on 11.1 and 11.2 (same machine):

lsmod on 11.1 before plugging in webcam - see attachment
lsmod on 11.1 after plugging in webcam  - see attachment

tail of dmesg after plugging in web cam on 11.1

usb-storage: device scan complete
usb 5-1: new full speed USB device using ohci_hcd and address 2
usb 5-1: configuration #1 chosen from 1 choice
usb 5-1: New USB device found, idVendor=05a9, idProduct=a511
usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
ov511: USB OV511+ video device found
ov511: model: Generic Camera (no ID)
ov511: Sensor is an OV7620
ov511: Device at usb-0000:00:13.4-1 registered to minor 1
usbcore: registered new interface driver ov511
ov511: v1.64 for Linux 2.5 : ov511 USB Camera Driver


lsmod on 11.2 before plugging in webcam - see attachment
lsmod on 11.2 after plugging in webcam  - see attachment

tail of dmesg after plugging in web cam on 11.2

[  279.215022] usb 6-1: new full speed USB device using ohci_hcd and address 2
[  279.358131] usb 6-1: New USB device found, idVendor=05a9, idProduct=a511
[  279.358139] usb 6-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  279.358589] usb 6-1: configuration #1 chosen from 1 choice
[  279.373814] ov511 6-1:1.0: USB OV511+ video device found
[  279.374105] usb 6-1: model: Generic Camera (no ID)
[  279.781192] usb 6-1: Sensor is an OV7620
[  280.685471] ov511 6-1:1.0: Device at usb-0000:00:13.4-1 registered to minor 2
 >>>
>>>  3 minutes later
 >>>
[  480.457162] INFO: task modprobe:6302 blocked for more than 120 seconds.
[  480.457171] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  480.457178] modprobe      D 0000000000000000     0  6302      1 0x00000000
[  480.457188]  ffff880115c11b58 0000000000000082 ffffffff8100d27e 0000000000013a00
[  480.457196]  0000000000013a00 ffff880102c547f8 0000000000013a00 0000000000013a00
[  480.457204]  0000000000013a00 0000000000013a00 ffff880102c547f8 0000000000013a00
[  480.457214] Call Trace:
[  480.457231]  [<ffffffff81553e88>] __mutex_lock_slowpath+0x118/0x200
[  480.457241]  [<ffffffff8155392c>] mutex_lock+0x2c/0x60
[  480.457257]  [<ffffffffa013a5e8>] ov51x_probe+0x558/0x770 [ov511]
[  480.457279]  [<ffffffff813b4aee>] usb_probe_interface+0xde/0x260
[  480.457290]  [<ffffffff81355e27>] really_probe+0x77/0x230
[  480.457299]  [<ffffffff81356024>] driver_probe_device+0x44/0xa0
[  480.457308]  [<ffffffff81356133>] __driver_attach+0xb3/0xc0
[  480.457316]  [<ffffffff81354ea8>] bus_for_each_dev+0x78/0xc0
[  480.457324]  [<ffffffff81355b7c>] driver_attach+0x2c/0x50
[  480.457332]  [<ffffffff813553e8>] bus_add_driver+0x208/0x340
[  480.457341]  [<ffffffff81356558>] driver_register+0x88/0x160
[  480.457349]  [<ffffffff813b3c30>] usb_register_driver+0xd0/0x150
[  480.457359]  [<ffffffffa0004032>] usb_ov511_init+0x32/0x63 [ov511]
[  480.457373]  [<ffffffff8100906f>] do_one_initcall+0x3f/0x1f0
[  480.457382]  [<ffffffff810abc7f>] sys_init_module+0xff/0x270
[  480.457391]  [<ffffffff8100c682>] system_call_fastpath+0x16/0x1b
[  480.457414]  [<00007f466bed386a>] 0x7f466bed386a
Comment 4 Forgotten User 7Vd19u3Vod 2009-12-05 17:00:51 UTC
Created attachment 331184 [details]
lsmod on 11.1 before plugging in webcam
Comment 5 Forgotten User 7Vd19u3Vod 2009-12-05 17:01:43 UTC
Created attachment 331185 [details]
lsmod on 11.1 after plugging in webcam
Comment 6 Forgotten User 7Vd19u3Vod 2009-12-05 17:02:20 UTC
Created attachment 331186 [details]
lsmod on 11.2 before plugging in webcam
Comment 7 Forgotten User 7Vd19u3Vod 2009-12-05 17:02:55 UTC
Created attachment 331187 [details]
lsmod on 11.2 after plugging in webcam
Comment 8 Brandon Philips 2009-12-11 01:07:34 UTC
I sent a fix off to stable@kernel.org and linux-media and I will build a Kernel for you to use in the mean time. Thanks for the report.
Comment 9 Brandon Philips 2009-12-11 01:21:13 UTC
A Kernel with the fix will appear over on http://beta.suse.com/private/bphilips/559306 in the next hour or so.

Closing this issue as fixed upstream.
Comment 10 Forgotten User 7Vd19u3Vod 2009-12-11 14:09:16 UTC
Thank you, I'll give it a try on the weekend.
If this problem is solved, you can close bug 559048 as well, since the hanging until timeout at boot time is caused by this problem
Comment 11 Brandon Philips 2009-12-11 22:39:16 UTC
*** Bug 559048 has been marked as a duplicate of this bug. ***
Comment 12 Forgotten User 7Vd19u3Vod 2009-12-13 15:04:48 UTC
Hello Brandon,

I installed one of your kernels at
http://beta.suse.com/private/bphilips/559306 

alexande@linux-3yrb:~> uname -a
Linux linux-3yrb 2.6.31.7-0-desktop #1 SMP PREEMPT 2009-12-11 02:04:48 +0100 x86_64 x86_64 x86_64 GNU/Linux

You patch works on my system. See below the output of sane-find-scanner after connecting the webcam:

alexande@linux-3yrb:~> sane-find-scanner

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

found SCSI scanner "UMAX Astra 610S V1.3" at /dev/sg9
  # Your SCSI scanner was detected. It may or may not be supported by SANE. Try
  # scanimage -L and read the backend's manpage.

libusb couldn't open USB device /dev/bus/usb/001/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/001/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/001/002: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/001/002: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/002/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/002/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/003/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/003/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/004/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/004/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/005/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/005/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/006/001: Permission denied.
libusb requires write access to USB device nodes.
libusb couldn't open USB device /dev/bus/usb/006/001: Permission denied.
libusb requires write access to USB device nodes.
found USB scanner (vendor=0x05a9, product=0xa511) at libusb:006:002
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

  # You may want to run this program as root to find all devices. Once you
  # found the scanner devices, be sure to adjust access permissions as
  # necessary.
alexande@linux-3yrb:~>

It works. Thanks
Comment 13 Hanspeter Schinz 2010-01-05 23:22:20 UTC
Hello Brandon,
is there already a patch for the new 2.6.31.8-0.1-default kernel?

Thanks and greetings
Hanspeter
Comment 14 Forgotten User 7Vd19u3Vod 2010-01-05 23:28:22 UTC
It definitively does NOT work with the 2.6.31.8-0.1-desktop 64-bit kernel (latest version from online update)
Comment 15 Brandon Philips 2010-01-06 07:04:30 UTC
Sorry, it missed the last update window. It will appear in 2.6.31.10 which is in review now: http://lkml.org/lkml/2010/1/5/328
Comment 16 Forgotten User 7Vd19u3Vod 2010-01-06 10:08:58 UTC
Hello Brandon,
thanks for this info.

Alexander
Comment 17 Forgotten User 7Vd19u3Vod 2010-02-09 20:22:21 UTC
I just installed kernel 2.6.31.12-0.1-desktop from online update. Everything seems t work now.