1. 23 1月, 2011 1 次提交
  2. 03 1月, 2011 1 次提交
  3. 24 12月, 2010 1 次提交
    • T
      usb: don't use flush_scheduled_work() · 569ff2de
      Tejun Heo 提交于
      flush_scheduled_work() is being deprecated.  Directly flush or cancel
      work items instead.
      
      * u_ether, isp1301_omap, speedtch conversions are straight-forward.
      
      * ochi-hcd should only flush when quirk_nec() is true as otherwise the
        work wouldn't have been initialized.
      
      * In oti6858, cancel_delayed_work() + flush_scheduled_work() ->
        cancel_delayed_work_sync().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Duncan Sands <duncan.sands@free.fr>
      Cc: linux-usb@vger.kernel.org
      569ff2de
  4. 17 12月, 2010 7 次提交
  5. 11 12月, 2010 14 次提交
  6. 10 12月, 2010 1 次提交
  7. 04 12月, 2010 1 次提交
    • R
      usb: g_audio: Fix crash at driver removal · df4fedea
      Richard Röjfors 提交于
      If g_audio fails to open the sound control device, it crashes at removal:
      
      Insertion:
      [ 4143.836536] g_audio gadget: unable to open sound control device file: /dev/snd/controlC0
      [ 4143.836543] g_audio gadget: we need at least one control device
      [ 4143.836551] g_audio gadget: Linux USB Audio Gadget, version: Dec 18, 2008
      [ 4143.836558] g_audio gadget: g_audio ready
      
      Removal:
      [ 4146.802643] BUG: unable to handle kernel paging request at 00023018
      [ 4146.802655] IP: [<c10af9f5>] filp_close+0xa/0x5b
      [ 4146.802674] *pdpt = 0000000015426001 *pde = 0000000000000000
      [ 4146.802684] Oops: 0000 [#1] PREEMPT SMP
      [ 4146.802692] last sysfs file: /sys/power/state
      [ 4146.802701] Modules linked in: g_audio(-) ioh_udc fuse asix usbnet [last unloaded: g_audio]
      [ 4146.802719]
      [ 4146.802728] Pid: 1394, comm: rmmod Not tainted 2.6.33.5-26.1-ivi #1 To be filled by O.E.M./To be filled by O.E.M.
      [ 4146.802738] EIP: 0060:[<c10af9f5>] EFLAGS: 00010206 CPU: 0
      [ 4146.802746] EIP is at filp_close+0xa/0x5b
      [ 4146.802753] EAX: 00023000 EBX: 00023000 ECX: 00000046 EDX: df842680
      [ 4146.802760] ESI: e071cd4c EDI: df842680 EBP: ddbbbef0 ESP: ddbbbee4
      [ 4146.802768]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      [ 4146.802776] Process rmmod (pid: 1394, ti=ddbba000 task=dd95a4f0 task.ti=ddbba000)
      [ 4146.802782] Stack:
      [ 4146.802787]  d540c280 e071cd4c df2bc000 ddbbbefc e071b82c df11e440 ddbbbf04 e071c622
      [ 4146.802804] <0> ddbbbf28 e071c47f 00000008 e071cd74 df11e464 df2bc01c df2bc000 e071ce68
      [ 4146.802822] <0> 00000880 ddbbbf38 e07fd1b8 e071cef0 00000000 ddbbbf40 e071b9f4 ddbbbf48
      [ 4146.802842] Call Trace:
      [ 4146.802857]  [<e071b82c>] ? gaudio_cleanup+0x87/0xe0 [g_audio]
      [ 4146.802869]  [<e071c622>] ? audio_unbind+0x8/0xc [g_audio]
      [ 4146.802881]  [<e071c47f>] ? composite_unbind+0x8d/0xcb [g_audio]
      [ 4146.802895]  [<e07fd1b8>] ? usb_gadget_unregister_driver+0x7b/0xc0 [ioh_udc]
      [ 4146.802908]  [<e071b9f4>] ? usb_composite_unregister+0x15/0x17 [g_audio]
      [ 4146.802920]  [<e071c633>] ? cleanup+0xd/0xf [g_audio]
      [ 4146.802932]  [<c105a938>] ? sys_delete_module+0x185/0x1dd
      [ 4146.802944]  [<c101c3ea>] ? do_page_fault+0x248/0x276
      [ 4146.802956]  [<c10027d0>] ? sysenter_do_call+0x12/0x26
      [ 4146.802962] Code: 12 5f 3a 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 44 73 03 89 73 44 89 f8 e8 f1 61 3a 00 5b 5e 5f 5d c3 55 89 e5 57 89 d7 56 53 89 c3 <8b> 40 18 85 c0 75 0f 68 32 15 5e c1 31 f6 e8 52 39 3a 00 5a eb
      [ 4146.803058] EIP: [<c10af9f5>] filp_close+0xa/0x5b SS:ESP 0068:ddbbbee4
      [ 4146.803071] CR2: 0000000000023018
      [ 4146.803112] ---[ end trace 0989a7e023da0434 ]---
      
      This patch makes sure not to assign the_card if gaudio_open_snd_dev fails,
      since the parent function will deallocate the card.
      
      Also make sure all filp's in gaudio_open_snd_dev is assigned NULL upon error
      and gaudio_close_snd_dev only cleanups when the filp's are non-NULL.
      Signed-off-by: NRichard Röjfors <richard.rojfors@pelagicore.com>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      df4fedea
  8. 03 12月, 2010 1 次提交
  9. 01 12月, 2010 3 次提交
  10. 18 11月, 2010 2 次提交
  11. 17 11月, 2010 5 次提交
  12. 13 11月, 2010 1 次提交
    • T
      block: check bdev_read_only() from blkdev_get() · 75f1dc0d
      Tejun Heo 提交于
      bdev read-only status can be queried using bdev_read_only() and may
      change while the device is being opened.  Enforce it by checking it
      from blkdev_get() after open succeeds.
      
      This makes bdev_read_only() check in open_bdev_exclusive() and
      fsg_lun_open() unnecessary.  Drop them.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: linux-usb@vger.kernel.org
      75f1dc0d
  13. 11 11月, 2010 2 次提交
    • J
      usb: subtle increased memory usage in u_serial · 28609d40
      Jim Sung 提交于
      OK, the USB gadget serial driver actually has a couple of problems.  On
      gs_open(), it always allocates and queues an additional QUEUE_SIZE (16)
      worth of requests, so with a loop like this:
      
          i=1 ; while echo $i > /dev/ttyGS0 ; do let i++ ; done
      
      eventually we run into OOM (Out of Memory).
      
      Technically, it is not a leak as everything gets freed up when the USB
      connection is broken, but not on gs_close().
      
      With a USB device/gadget controller driver that has limited resources
      (e.g., Marvell has a this MAX_XDS_FOR_TR_CALLS of 64 for transmit and
      receive), so even after 4
      
          stty -F /dev/ttyGS0
      
      we cannot transmit anymore.  We can still receive (not necessarily
      reliably) as now we have 16 * 4 = 64 descriptors/buffers ready, but the
      device is otherwise not usable.
      Signed-off-by: NJim Sung <jsung@syncadence.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      28609d40
    • A
      usb: gadget: goku_udc: add registered flag bit, fixing build · 4b4cd731
      Andy Whitcroft 提交于
      The commit below cleaned up error handling, in part by introducing a
      registered flag bit.  This however was not added to the device
      structure leding to build failures:
      
        commit 319feaab
        Author: Dan Carpenter <error27@gmail.com>
        Date:   Tue Oct 5 18:55:34 2010 +0200
      
          usb: gadget: goku_udc: Fix error path
      
      Add the missing registered flag bit.
      Signed-off-by: NAndy Whitcroft <apw@canonical.com>
      Acked-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4b4cd731