Openmoko Bug #2232: unplugging with gadgetfs causes panic: "softlockup: blocked tasks"

Openmoko Public Trac bugs at docs.openmoko.org
Fri Feb 13 23:58:48 CET 2009


#2232: unplugging with gadgetfs causes panic: "softlockup: blocked tasks"
-----------------------------+----------------------------------------------
 Reporter:  lindi            |          Owner:  openmoko-kernel
     Type:  defect           |         Status:  new            
 Priority:  normal           |      Milestone:                 
Component:  System Software  |        Version:  unspecified    
 Severity:  normal           |       Keywords:                 
 Haspatch:  0                |      Blockedby:                 
Estimated:                   |    Patchreview:                 
 Blocking:                   |   Reproducible:                 
-----------------------------+----------------------------------------------
 Steps to reproduce:
 1) tar xzf testcase1.tar.gz
 2) configure gadgetfs on freerunner:
 2.1) sudo ifconfig usb0 down
 2.2) sudo rmmod g_ether
 2.3) sudo modprobe gadgetfs
 2.4) sudo mkdir /dev/gadget
 2.5) sudo mount -t gadgetfs gadgetfs /dev/gadget
 3) run gadgetfs example on freerunner:
 3.1) cd sink
 3.2) gcc -Wall -g -o usb usb.c usbstring.c -lpthread
 3.3) sudo ./usb -r 1.3 -p 1
 4) verify that lsusb on PC side shows the same contents as sink-source-
 reader/sink.lsusb
 5) run driver example on PC:
 5.1) cd sink-source-reader
 5.2) make
 5.3) sudo ./reader1 0x0525 0xa4a4
 6) unplug freerunner from PC and add a hub between freerunner and PC, do
 not kill "sink" process while doing this.
 7) run lsusb again

 Expected results:
 7) gadgetfs survives unplugging and replugging usb cable and lsusb again
 shows our device

 Actual results:
 7) kernel on freerunner crashes with

 {{{
 INFO: task usb:20196 blocked for more than 120 seconds.
 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 usb           D c03a6cbc     0 20196  20111
 [<c03a6900>] (schedule+0x0/0x430) from [<bf01c504>] (ep_io+0x1fc/0x24c
 [gadgetfs])
 [<bf01c308>] (ep_io+0x0/0x24c [gadgetfs]) from [<bf01cf1c>]
 (ep_write+0x104/0x120 [gadgetfs])
 [<bf01ce18>] (ep_write+0x0/0x120 [gadgetfs]) from [<c00b21d4>]
 (vfs_write+0xb8/0x148)
  r8:c0034048 r7:00001c00 r6:c6e8df78 r5:40972200 r4:c6c590c0
 [<c00b211c>] (vfs_write+0x0/0x148) from [<c00b232c>] (sys_write+0x4c/0x7c)
  r7:00000004 r6:c6c590c0 r5:00000000 r4:00000000
 [<c00b22e0>] (sys_write+0x0/0x7c) from [<c0033ea0>]
 (ret_fast_syscall+0x0/0x2c)
  r6:4004b000 r5:40974490 r4:409744d8
 no locks held by usb/20196.
 Kernel panic - not syncing: softlockup: blocked tasks
 fbcon_event_notify action=12, data=c782de04
 jbt6k74 spi2.0: **** jbt6k74 unblank
 BUG: scheduling while atomic: watchdog/0/4/0x00000003
 6 locks held by watchdog/0/4:
  #0:  (tasklist_lock){....}, at: [<c00828c4>]
 check_hung_uninterruptible_tasks+0x4c/0x17c
  #1:  ((fb_notifier_list).rwsem){....}, at: [<c006f814>]
 __blocking_notifier_call_chain+0x38/0x6c
  #2:  (&new_bd->ops_lock){....}, at: [<c01c5f30>]
 fb_notifier_callback+0x38/0xb8
  #3:  (&new_bd->update_lock){....}, at: [<c01c5f78>]
 fb_notifier_callback+0x80/0xb8
  #4:  (&pcf->lock){....}, at: [<c01f7c9c>] pcf50633_reg_read+0x28/0x4c
  #5:  (&adap->bus_lock){....}, at: [<c027795c>] i2c_transfer+0x68/0x12c
 Modules linked in: gadgetfs s3c2410_wdt [last unloaded: g_ether]

 (please see attached kernel.log for complete output)
 }}}

 More info:
 1) I am using andy-tracking b8b36e5ec3db71d5 on freerunner and regular
 linux 2.6.27.6 on a 32-bit x86 system.

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2232>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the buglog mailing list