1. 12 Jan, 2015 1 commit
  2. 10 Jan, 2015 2 commits
    • Songjun Wu's avatar
      usb: gadget: udc: atmel: fix possible oops when unloading module · 5fb694f9
      Songjun Wu authored
      When unloading the module 'g_hid.ko', the urb request will be dequeued and the
      completion routine will be excuted. If there is no urb packet, the urb request
      will not be added to the endpoint queue and the completion routine pointer in
      urb request is NULL.
      
      Accessing to this NULL function pointer will cause the Oops issue reported
      below.
      
      Add the code to check if the urb request is in the endpoint queue
      or not. If the urb request is not in the endpoint queue, a negative
      error code will be returned.
      
      Here is the Oops log:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = dedf0000
      [00000000] *pgd=3ede5831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 80000007 [#1] ARM
      Modules linked in: g_hid(-) usb_f_hid libcomposite
      CPU: 0 PID: 923 Comm: rmmod Not tainted 3.18.0+ #2
      Hardware name: Atmel SAMA5 (Device Tree)
      task: df6b1100 ti: dedf6000 task.ti: dedf6000
      PC is at 0x0
      LR is at usb_gadget_giveback_request+0xc/0x10
      pc : [<00000000>]    lr : [<c02ace88>]    psr: 60000093
      sp : dedf7eb0  ip : df572634  fp : 00000000
      r10: 00000000  r9 : df52e210  r8 : 60000013
      r7 : df6a9858  r6 : df52e210  r5 : df6a9858  r4 : df572600
      r3 : 00000000  r2 : ffffff98  r1 : df572600  r0 : df6a9868
      Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c53c7d  Table: 3edf0059  DAC: 00000015
      Process rmmod (pid: 923, stack limit = 0xdedf6230)
      Stack: (0xdedf7eb0 to 0xdedf8000)
      7ea0:                                     00000000 c02adbbc df572580 deced608
      7ec0: df572600 df6a9868 df572634 c02aed3c df577c00 c01b8608 00000000 df6be27c
      7ee0: 00200200 00100100 bf0162f4 c000e544 dedf6000 00000000 00000000 bf010c00
      7f00: bf0162cc bf00159c 00000000 df572980 df52e218 00000001 df5729b8 bf0031d0
      [..]
      [<c02ace88>] (usb_gadget_giveback_request) from [<c02adbbc>] (request_complete+0x64/0x88)
      [<c02adbbc>] (request_complete) from [<c02aed3c>] (usba_ep_dequeue+0x70/0x128)
      [<c02aed3c>] (usba_ep_dequeue) from [<bf010c00>] (hidg_unbind+0x50/0x7c [usb_f_hid])
      [<bf010c00>] (hidg_unbind [usb_f_hid]) from [<bf00159c>] (remove_config.isra.6+0x98/0x9c [libcomposite])
      [<bf00159c>] (remove_config.isra.6 [libcomposite]) from [<bf0031d0>] (__composite_unbind+0x34/0x98 [libcomposite])
      [<bf0031d0>] (__composite_unbind [libcomposite]) from [<c02acee0>] (usb_gadget_remove_driver+0x50/0x78)
      [<c02acee0>] (usb_gadget_remove_driver) from [<c02ad570>] (usb_gadget_unregister_driver+0x64/0x94)
      [<c02ad570>] (usb_gadget_unregister_driver) from [<bf0160c0>] (hidg_cleanup+0x10/0x34 [g_hid])
      [<bf0160c0>] (hidg_cleanup [g_hid]) from [<c0056748>] (SyS_delete_module+0x118/0x19c)
      [<c0056748>] (SyS_delete_module) from [<c000e3c0>] (ret_fast_syscall+0x0/0x30)
      Code: bad PC value
      Signed-off-by: default avatarSongjun Wu <songjun.wu@atmel.com>
      [nicolas.ferre@atmel.com: reworked the commit message]
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Fixes: 914a3f3b ("USB: add atmel_usba_udc driver")
      Cc: <stable@vger.kernel.org> # 2.6.x-ish
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      5fb694f9
    • Dan Carpenter's avatar
      usb: gadget: gadgetfs: fix an oops in ep_write() · 42d6cfa0
      Dan Carpenter authored
      We try to free an ERR_PTR on this error path.
      
      Fixes: b44be246 ('usb: gadget: gadgetfs: Free memory allocated by memdup_user()')
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      42d6cfa0
  3. 09 Jan, 2015 15 commits
  4. 24 Dec, 2014 1 commit
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v3.19-rc2' of... · b3ee8bdc
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v3.19-rc2
      
      First set of fixes for current -rc cycle. There are
      a couple of build break fixes after Tony Lindgren's
      recent MUSB patchset, some memory leak fixes also
      with MUSB, a use-after-free fix with the UAC1
      function. Atmel UDC got a fix for a possible hang
      and another for DMA setting, while dwc2 learned to
      kill requests in ->udc_stop() which fixes a few leaks
      too.
      
      One new device support here, dwc3 now supports Intel's
      Sunrise Point.
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      b3ee8bdc
  5. 23 Dec, 2014 4 commits
    • Thierry Reding's avatar
      usb: phy: Restore deferred probing path · c818a94c
      Thierry Reding authored
      Commit 1290a958 ("usb: phy: propagate __of_usb_find_phy()'s error on
      failure") broke platforms that rely on deferred probing to order probing
      of PHY and host controller drivers. The reason is that the commit simply
      propagates errors from __of_usb_find_phy(), which returns -ENODEV if no
      PHY has been registered yet for a given device tree node. The only case
      in which -EPROBE_DEFER would now be returned is if try_module_get() did
      fail, which does not make sense.
      
      The correct thing to do is to return -EPROBE_DEFER if a PHY hasn't been
      registered yet. The only condition under which it makes sense to return
      -ENODEV is if the device tree node representing the PHY has been
      disabled (via the status property) because in that case the PHY will
      never be registered.
      
      This patch addresses the problem by making __of_usb_find_phy() return an
      appropriate error code while keeping in line with the above-mentioned
      commit to propagate error codes rather than overwriting them. At the
      same time the check for a valid PHY is decoupled from the check for the
      try_module_get() call and a separate error code is returned if the
      latter fails.
      
      Fixes: 1290a958 (usb: phy: propagate __of_usb_find_phy()'s error on failure)
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      c818a94c
    • Vignesh R's avatar
      phy: phy-ti-pipe3: fix inconsistent enumeration of PCIe gen2 cards · 0bc09f9c
      Vignesh R authored
      Prior to DRA74x silicon rev 1.1, pcie_pcs register bits 8-15 and bits 16-23
      were used to configure RC delay count for phy1 and phy2 respectively.
      phyid was used as index to distinguish the phys and to configure the delay
      values appropriately.
      
      As of DRA74x silicon rev 1.1, pcie_pcs register definition has changed.
      Bits 16-23 are used to configure delay values for *both* phy1 and phy2.
      
      Hence phyid is no longer required.
      
      So, drop id field from ti_pipe3 structure and its subsequent references
      for configuring pcie_pcs register.
      
      Also, pcie_pcs register now needs to be configured with delay value of 0x96
      at bit positions 16-23. See register description of CTRL_CORE_PCIE_PCS in
      ARM572x TRM, SPRUHZ6, October 2014, section 18.5.2.2, table 18-1804.
      
      This is needed to ensure Gen2 cards are enumerated consistently.
      
      DRA72x silicon behaves same way as DRA74x rev 1.1 as far as this functionality
      is considered.
      
      Test results on DRA74x and DRA72x EVMs:
      
      Before patch
      ------------
      DRA74x ES 1.0: Gen1 cards work, Gen2 cards do not work (expected result due to
      silicon errata)
      DRA74x ES 1.1: Gen1 cards work, Gen2 cards do not work sometimes due to incorrect
      programming of register
      
      DRA72x: Gen1 cards work, Gen2 cards do not work sometimes due to incorrect
      programming of register
      
      After patch
      -----------
      DRA74x ES 1.0: Gen1 cards work, Gen2 cards do not work (expected result due to
      silicon errata)
      DRA74x ES 1.1: Gen1 cards work, Gen2 cards work consistently.
      
      DRA72x: Gen1 and Gen2 cards enumerate consistently.
      Signed-off-by: default avatarVignesh R <vigneshr@ti.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      0bc09f9c
    • Hans de Goede's avatar
      phy-sun4i-usb: Change disconnect threshold value for sun6i · 37240034
      Hans de Goede authored
      The allwinner SDK uses a value of 3 for the disconnect threshold setting on
      sun6i, do the same in the kernel.
      
      In my previous experience with sun5i problems getting the threshold right
      is important to avoid usb2 devices being unplugged sometimes going unnoticed.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      37240034
    • Dan Carpenter's avatar
      phy: miphy28lp: unlock on error in miphy28lp_init() · 4e038e89
      Dan Carpenter authored
      We need to unlock before returning the -EINVAL here.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarGabriel Fernandez <gabriel.fernandez@linaro.org>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      4e038e89
  6. 22 Dec, 2014 14 commits
    • Linus Torvalds's avatar
      Merge tag 'dm-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · aa39477b
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
       "Thre stable fixes and one fix for a regression introduced during 3.19
        merge:
      
         - Fix inability to discard used space when the thin-pool target is in
           out-of-data-space mode and also transition the thin-pool back to
           write mode once free space is made available.
      
         - Fix DM core bio-based end_io bug that prevented proper
           post-processing of the error code returned from the block layer.
      
         - Fix crash in DM thin-pool due to thin device being added to the
           pool's active_thins list before properly initializing the thin
           device's refcount"
      
      * tag 'dm-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: fix missed error code if .end_io isn't implemented by target_type
        dm thin: fix crash by initializing thin device's refcount and completion earlier
        dm thin: fix missing out-of-data-space to write mode transition if blocks are released
        dm thin: fix inability to discard blocks when in out-of-data-space mode
      aa39477b
    • Kirill A. Shutemov's avatar
      Revert "mm/memory.c: share the i_mmap_rwsem" · 48ec833b
      Kirill A. Shutemov authored
      This reverts commit c8475d14.
      
      There are several[1][2] of bug reports which points to this commit as potential
      cause[3].
      
      Let's revert it until we figure out what's going on.
      
      [1] https://lkml.org/lkml/2014/11/14/342
      [2] https://lkml.org/lkml/2014/12/22/213
      [3] https://lkml.org/lkml/2014/12/9/741Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Reported-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Acked-by: default avatarDavidlohr Bueso <dave@stgolabs.net>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      48ec833b
    • Bo Shen's avatar
      usb: gadget: udc: atmel: fix possible IN hang issue · 6785a103
      Bo Shen authored
      When receive data, the RXRDY in status register set by hardware
      after a new packet has been stored in the endpoint FIFO. When it
      is copied from FIFO, this bit is cleared which make the FIFO can
      be accessed again.
      
      In the receive_data() function, this bit RXRDY has been cleared.
      So, after the receive_data() function return, this bit should
      not be cleared again, or else it may cause the accessing FIFO
      corrupt, which will make the data loss.
      
      Fixes: 914a3f3b (USB: add atmel_usba_udc driver)
      Cc: <stable@vger.kernel.org> # 2.6.24+
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarBo Shen <voice.shen@atmel.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      6785a103
    • Bo Shen's avatar
      usb: gadget: udc: atmel: change setting for DMA · f40afddd
      Bo Shen authored
      According to the datasheet, when transfer using DMA, the control
      setting for IN packet only need END_BUF_EN, END_BUF_IE, CH_EN,
      while for OUT packet, need more two bits END_TR_EN and END_TR_IE
      to be configured.
      
      Fixes: 914a3f3b (USB: add atmel_usba_udc driver)
      Cc: <stable@vger.kernel.org> # 2.6.24+
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarBo Shen <voice.shen@atmel.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      f40afddd
    • Heikki Krogerus's avatar
      usb: dwc3: pci: add support for Intel Sunrise Point PCH · 84a2b61b
      Heikki Krogerus authored
      Add PCI IDs for Intel Sunrise Point PCH.
      Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      84a2b61b
    • Mario Schuknecht's avatar
      usb: gadget: gadgetfs: Free memory allocated by memdup_user() · b44be246
      Mario Schuknecht authored
      Commit 3b74c73f switched over to memdup_user()
      in ep_write() function and removed kfree (kbuf).
      memdup_user() function allocates memory which is never freed.
      
      Fixes: 3b74c73f (usb: gadget: inode: switch over to memdup_user())
      Cc: <stable@vger.kernel.org> # v3.15+
      Signed-off-by: default avatarMario Schuknecht <mario.schuknecht@dresearch-fe.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      b44be246
    • Sebastian Andrzej Siewior's avatar
      usb: musb: stuff leak of struct usb_hcd · 68693b8e
      Sebastian Andrzej Siewior authored
      since the split of host+gadget mode in commit 74c2e936 ("usb: musb:
      factor out hcd initalization") we leak the usb_hcd struct. We call now
      musb_host_cleanup() which does basically usb_remove_hcd() and also sets
      the hcd variable to NULL. Doing so makes the finall call to
      musb_host_free() basically a nop and the usb_hcd remains around for ever
      without anowner.
      This patch drops that NULL assignment for that reason.
      
      Fixes: 74c2e936 ("usb: musb: factor out hcd initalization")
      Cc: <stable@vger.kernel.org> # v3.11+
      Cc: Daniel Mack <zonque@gmail.com>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      68693b8e
    • Robert Baldyga's avatar
      usb: dwc2: gadget: kill requests with 'force' in s3c_hsotg_udc_stop() · 62f4f065
      Robert Baldyga authored
      This makes us sure that all requests are completed before we unbind
      gadget. There are assumptions in gadget API that all requests have to
      be completed and leak of complete can break some usb function drivers.
      
      For example unbind of ECM function can cause NULL pointer dereference:
      
      [   26.396595] configfs-gadget gadget: unbind function
      'cdc_ethernet'/e79c4c00
      [   26.414999] Unable to handle kernel NULL pointer dereference at
      virtual address 00000000
      (...)
      [   26.452223] PC is at ecm_unbind+0x6c/0x9c
      [   26.456209] LR is at ecm_unbind+0x68/0x9c
      (...)
      [   26.603696] [<c033fdb4>] (ecm_unbind) from [<c033661c>]
      (purge_configs_funcs+0x94/0xd8)
      [   26.611674] [<c033661c>] (purge_configs_funcs) from [<c0336674>]
      (configfs_composite_unbind+0x14/0x34)
      [   26.620961] [<c0336674>] (configfs_composite_unbind) from
      [<c0337124>] (usb_gadget_remove_driver+0x68/0x9c)
      [   26.630683] [<c0337124>] (usb_gadget_remove_driver) from [<c03376c8>]
      (usb_gadget_unregister_driver+0x64/0x94)
      [   26.640664] [<c03376c8>] (usb_gadget_unregister_driver) from
      [<c0336be8>] (unregister_gadget+0x20/0x3c)
      [   26.650038] [<c0336be8>] (unregister_gadget) from [<c0336c84>]
      (gadget_dev_desc_UDC_store+0x80/0xb8)
      [   26.659152] [<c0336c84>] (gadget_dev_desc_UDC_store) from
      [<c0335120>] (gadget_info_attr_store+0x1c/0x28)
      [   26.668703] [<c0335120>] (gadget_info_attr_store) from [<c012135c>]
      (configfs_write_file+0xe8/0x148)
      [   26.677818] [<c012135c>] (configfs_write_file) from [<c00c8dd4>]
      (vfs_write+0xb0/0x1a0)
      [   26.685801] [<c00c8dd4>] (vfs_write) from [<c00c91b8>]
      (SyS_write+0x44/0x84)
      [   26.692834] [<c00c91b8>] (SyS_write) from [<c000e560>]
      (ret_fast_syscall+0x0/0x30)
      [   26.700381] Code: e30409f8 e34c0069 eb07b88d e59430a8 (e5930000)
      [   26.706485] ---[ end trace f62a082b323838a2 ]---
      
      It's because in some cases request is still running on endpoint during
      unbind and kill_all_requests() called from s3c_hsotg_udc_stop() function
      doesn't cause call of complete() of request. Missing complete() call
      causes ecm->notify_req equals NULL in ecm_unbind() function, and this
      is reason of this bug.
      
      Similar breaks can be observed in another usb function drivers.
      
      This patch fixes this bug forcing usb request completion in when
      s3c_hsotg_ep_disable() is called from s3c_hsotg_udc_stop().
      Acked-by: default avatarPaul Zimmerman <paulz@synopsys.com>
      Signed-off-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      62f4f065
    • Julia Lawall's avatar
      usb: gadget: fix misspelling of current function in string · c9b3bde0
      Julia Lawall authored
      Replace a misspelled function name by %s and then __func__.
      
      This was done using Coccinelle, including the use of Levenshtein distance,
      as proposed by Rasmus Villemoes.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      c9b3bde0
    • Tony Lindgren's avatar
      usb: musb: Fix randconfig build issues for Kconfig options · c0442479
      Tony Lindgren authored
      Commit 82c02f58 ("usb: musb: Allow multiple glue layers to be
      built in") enabled selecting multiple glue layers, which in turn
      exposed things more for randconfig builds. If NOP_USB_XCEIV is
      built-in and TUSB6010 is a loadable module, we will get:
      
      drivers/built-in.o: In function `tusb_remove':
      tusb6010.c:(.text+0x16a817): undefined reference to `usb_phy_generic_unregister'
      drivers/built-in.o: In function `tusb_probe':
      tusb6010.c:(.text+0x16b24e): undefined reference to `usb_phy_generic_register'
      make: *** [vmlinux] Error 1
      
      Let's fix this the same way as commit 70c1ff4b ("usb: musb:
      tusb-dma can't be built-in if tusb is not").
      
      And while at it, let's not allow selecting the glue layers except
      on platforms really using them unless COMPILE_TEST is specified:
      
      - TUSB6010 is in practise only used on omaps
      
      - DSPS is only used on TI platforms
      
      - UX500 is only used on STE platforms
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Reported-by: default avatarJim Davis <jim.epost@gmail.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      c0442479
    • Peter Chen's avatar
      usb: gadget: f_uac1: access freed memory at f_audio_free_inst · 4fde6204
      Peter Chen authored
      At f_audio_free_inst, it tries to access struct gaudio *card which is
      freed at f_audio_free, it causes below oops if the audio device is not
      there (do unload module may trigger the same problem). The gaudio_cleanup
      is related to function, so it is better move to f_audio_free.
      
      root@freescale ~$ modprobe g_audio
      [  751.968931] g_audio gadget: unable to open sound control device file: /dev/snd/controlC0
      [  751.977134] g_audio gadget: we need at least one control device
      [  751.988633] Unable to handle kernel paging request at virtual address 455f448e
      [  751.995963] pgd = bd42c000
      [  751.998681] [455f448e] *pgd=00000000
      [  752.002383] Internal error: Oops: 5 [#1] SMP ARM
      [  752.007008] Modules linked in: usb_f_uac1 g_audio(+) usb_f_mass_storage libcomposite configfs [last unloaded: g_mass_storage]
      [  752.018427] CPU: 0 PID: 692 Comm: modprobe Not tainted 3.18.0-rc4-00345-g842f57ba #10
      [  752.026176] task: bdb3ba80 ti: bd41a000 task.ti: bd41a000
      [  752.031590] PC is at filp_close+0xc/0x84
      [  752.035530] LR is at gaudio_cleanup+0x28/0x54 [usb_f_uac1]
      [  752.041023] pc : [<800ec94c>]    lr : [<7f03c63c>]    psr: 20000013
      [  752.041023] sp : bd41bcc8  ip : bd41bce8  fp : bd41bce4
      [  752.052504] r10: 7f036234  r9 : 7f036220  r8 : 7f036500
      [  752.057732] r7 : bd456480  r6 : 7f036500  r5 : 7f03626c  r4 : bd441000
      [  752.064264] r3 : 7f03b3dc  r2 : 7f03cab0  r1 : 00000000  r0 : 455f4456
      [  752.070798] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      [  752.077938] Control: 10c5387d  Table: bd42c04a  DAC: 00000015
      [  752.083688] Process modprobe (pid: 692, stack limit = 0xbd41a240)
      [  752.089786] Stack: (0xbd41bcc8 to 0xbd41c000)
      [  752.094152] bcc0:                   7f03b3dc bd441000 7f03626c 7f036500 bd41bcfc bd41bce8
      [  752.102337] bce0: 7f03c63c 800ec94c 7f03b3dc bdaa6b00 bd41bd14 bd41bd00 7f03b3f4 7f03c620
      [  752.110521] bd00: 7f03b3dc 7f03cbd4 bd41bd2c bd41bd18 7f00f88c 7f03b3e8 00000000 fffffffe
      [  752.118705] bd20: bd41bd5c bd41bd30 7f0380d8 7f00f874 7f038000 bd456480 7f036364 be392240
      [  752.126889] bd40: 00000000 7f00f620 7f00f638 bd41a008 bd41bd94 bd41bd60 7f00f6d4 7f03800c
      [  752.135073] bd60: 00000001 00000000 8047438c be3a4000 7f036364 7f036364 7f00db28 7f00f620
      [  752.143257] bd80: 7f00f638 bd41a008 bd41bdb4 bd41bd98 804742ac 7f00f644 00000000 809adde0
      [  752.151442] bda0: 7f036364 7f036364 bd41bdcc bd41bdb8 804743c8 80474284 7f03633c 7f036200
      [  752.159626] bdc0: bd41bdf4 bd41bdd0 7f00d5b4 8047435c bd41a000 80974060 7f038158 00000000
      [  752.167811] bde0: 80974060 bdaa9940 bd41be04 bd41bdf8 7f03816c 7f00d518 bd41be8c bd41be08
      [  752.175995] be00: 80008a5c 7f038164 be001f00 7f0363c4 bd41bf48 00000000 bd41be54 bd41be28
      [  752.184179] be20: 800e9498 800e8e74 00000002 00000003 bd4129c0 c0a07000 00000001 7f0363c4
      [  752.192363] be40: bd41bf48 00000000 bd41be74 bd41be58 800de780 800e9320 bd41a000 7f0363d0
      [  752.200547] be60: 00000000 bd41a000 7f0363d0 00000000 bd41beec 7f0363c4 bd41bf48 00000000
      [  752.208731] be80: bd41bf44 bd41be90 80093e54 800089e0 ffff8000 00007fff 80091390 0000065f
      [  752.216915] bea0: 00000000 c0a0834c bd41bf7c 00000086 bd41bf50 00000000 7f03651c 00000086
      [  752.225099] bec0: bd41a010 00c28758 800ddcc4 800ddae0 000000d2 bd412a00 bd41bf24 00000000
      [  752.233283] bee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [  752.241467] bf00: 00000000 00000000 00000000 00000000 00000000 00000000 bd41bf44 000025b0
      [  752.249651] bf20: 00c28a08 00c28758 00000080 8000edc4 bd41a000 00000000 bd41bfa4 bd41bf48
      [  752.257835] bf40: 800943e4 800932ec c0a07000 000025b0 c0a07f8c c0a07ea4 c0a08e5c 0000051c
      [  752.266019] bf60: 0000088c 00000000 00000000 00000000 00000018 00000019 00000010 0000000b
      [  752.274203] bf80: 00000009 00000000 00000000 000025b0 00000000 00c28758 00000000 bd41bfa8
      [  752.282387] bfa0: 8000ec00 8009430c 000025b0 00000000 00c28a08 000025b0 00c28758 00c28980
      [  752.290571] bfc0: 000025b0 00000000 00c28758 00000080 000a6a78 00000007 00c28718 00c28980
      [  752.298756] bfe0: 7ebc1af0 7ebc1ae0 0001a32c 76e9c490 60000010 00c28a08 22013510 ecebffff
      [  752.306933] Backtrace:
      [  752.309414] [<800ec940>] (filp_close) from [<7f03c63c>] (gaudio_cleanup+0x28/0x54 [usb_f_uac1])
      [  752.318115]  r6:7f036500 r5:7f03626c r4:bd441000 r3:7f03b3dc
      [  752.323851] [<7f03c614>] (gaudio_cleanup [usb_f_uac1]) from [<7f03b3f4>] (f_audio_free_inst+0x18/0x68 [usb_f_uac1])
      [  752.334288]  r4:bdaa6b00 r3:7f03b3dc
      [  752.337931] [<7f03b3dc>] (f_audio_free_inst [usb_f_uac1]) from [<7f00f88c>] (usb_put_function_instance+0x24/0x30 [libcomposite])
      [  752.349498]  r4:7f03cbd4 r3:7f03b3dc
      [  752.353127] [<7f00f868>] (usb_put_function_instance [libcomposite]) from [<7f0380d8>] (audio_bind+0xd8/0xfc [g_audio])
      [  752.363824]  r4:fffffffe r3:00000000
      [  752.367456] [<7f038000>] (audio_bind [g_audio]) from [<7f00f6d4>] (composite_bind+0x9c/0x1e8 [libcomposite])
      [  752.377284]  r10:bd41a008 r9:7f00f638 r8:7f00f620 r7:00000000 r6:be392240 r5:7f036364
      [  752.385193]  r4:bd456480 r3:7f038000
      [  752.388825] [<7f00f638>] (composite_bind [libcomposite]) from [<804742ac>] (udc_bind_to_driver+0x34/0xd8)
      [  752.398394]  r10:bd41a008 r9:7f00f638 r8:7f00f620 r7:7f00db28 r6:7f036364 r5:7f036364
      [  752.406302]  r4:be3a4000
      [  752.408860] [<80474278>] (udc_bind_to_driver) from [<804743c8>] (usb_gadget_probe_driver+0x78/0xa8)
      [  752.417908]  r6:7f036364 r5:7f036364 r4:809adde0 r3:00000000
      [  752.423649] [<80474350>] (usb_gadget_probe_driver) from [<7f00d5b4>] (usb_composite_probe+0xa8/0xd4 [libcomposite])
      [  752.434086]  r5:7f036200 r4:7f03633c
      [  752.437713] [<7f00d50c>] (usb_composite_probe [libcomposite]) from [<7f03816c>] (audio_driver_init+0x14/0x1c [g_audio])
      [  752.448498]  r9:bdaa9940 r8:80974060 r7:00000000 r6:7f038158 r5:80974060 r4:bd41a000
      [  752.456330] [<7f038158>] (audio_driver_init [g_audio]) from [<80008a5c>] (do_one_initcall+0x88/0x1d4)
      [  752.465564] [<800089d4>] (do_one_initcall) from [<80093e54>] (load_module+0xb74/0x1020)
      [  752.473571]  r10:00000000 r9:bd41bf48 r8:7f0363c4 r7:bd41beec r6:00000000 r5:7f0363d0
      [  752.481478]  r4:bd41a000
      [  752.484037] [<800932e0>] (load_module) from [<800943e4>] (SyS_init_module+0xe4/0xf8)
      [  752.491781]  r10:00000000 r9:bd41a000 r8:8000edc4 r7:00000080 r6:00c28758 r5:00c28a08
      [  752.499689]  r4:000025b0
      [  752.502252] [<80094300>] (SyS_init_module) from [<8000ec00>] (ret_fast_syscall+0x0/0x48)
      [  752.510345]  r6:00c28758 r5:00000000 r4:000025b0
      [  752.515013] Code: 808475b4 e1a0c00d e92dd878 e24cb004 (e5904038)
      [  752.521223] ---[ end trace 70babe34de4ab99b ]---
      Segmentation fault
      Signed-off-by: default avatarPeter Chen <peter.chen@freescale.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      4fde6204
    • Rasmus Villemoes's avatar
      usb: musb: Fix a few off-by-one lengths · e87c3f80
      Rasmus Villemoes authored
      !strncmp(buf, "force host", 9) is true if and only if buf starts with
      "force hos". This was obviously not what was intended. The same error
      exists for "force full-speed", "force high-speed" and "test
      packet". Using strstarts avoids the error-prone hardcoding of the
      prefix length.
      
      For consistency, also change the other occurences of the !strncmp
      idiom.
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      e87c3f80
    • Felipe Balbi's avatar
      usb: musb: blackfin: fix build break · b1d34783
      Felipe Balbi authored
      commit cc92f681 (usb: musb: Populate new IO
      functions for blackfin) added a typo which
      prevented MUSB's blackfin glue layer from being
      built. Due to lack of tests and compilers for
      that architecture, the typo ended up being
      merged and causing a build regression.
      
      Fix that here
      
      Cc: Tony Lindgren <tony@atomide.com>
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      b1d34783
    • Felipe Balbi's avatar
      usb: musb: debugfs: cope with blackfin's oddities · 449a7e99
      Felipe Balbi authored
      Blackfin's MUSB implementation lacks a bunch of
      registers which they end up not defining a macro
      for. In order to avoid build breaks, let's ifdef
      out some of the registers from our regdump debugfs
      utility so that we don't try to use those on
      Blackfin builds.
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      449a7e99
  7. 21 Dec, 2014 3 commits
    • Linus Torvalds's avatar
      Linux 3.19-rc1 · 97bf6af1
      Linus Torvalds authored
      97bf6af1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux · 60815cf2
      Linus Torvalds authored
      Pull ACCESS_ONCE cleanup preparation from Christian Borntraeger:
       "kernel: Provide READ_ONCE and ASSIGN_ONCE
      
        As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com
        ACCESS_ONCE might fail with specific compilers for non-scalar
        accesses.
      
        Here is a set of patches to tackle that problem.
      
        The first patch introduce READ_ONCE and ASSIGN_ONCE.  If the data
        structure is larger than the machine word size memcpy is used and a
        warning is emitted.  The next patches fix up several in-tree users of
        ACCESS_ONCE on non-scalar types.
      
        This does not yet contain a patch that forces ACCESS_ONCE to work only
        on scalar types.  This is targetted for the next merge window as Linux
        next already contains new offenders regarding ACCESS_ONCE vs.
        non-scalar types"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux:
        s390/kvm: REPLACE barrier fixup with READ_ONCE
        arm/spinlock: Replace ACCESS_ONCE with READ_ONCE
        arm64/spinlock: Replace ACCESS_ONCE READ_ONCE
        mips/gup: Replace ACCESS_ONCE with READ_ONCE
        x86/gup: Replace ACCESS_ONCE with READ_ONCE
        x86/spinlock: Replace ACCESS_ONCE with READ_ONCE
        mm: replace ACCESS_ONCE with READ_ONCE or barriers
        kernel: Provide READ_ONCE and ASSIGN_ONCE
      60815cf2
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux · bfc7249c
      Linus Torvalds authored
      Pull clk framework updates from Mike Turquette:
       "This is much later than usual due to several last minute bugs that had
        to be addressed.  As usual the majority of changes are new drivers and
        modifications to existing drivers.  The core recieved many fixes along
        with the groundwork for several large changes coming in the future
        which will better parition clock providers from clock consumers"
      
      * tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux: (86 commits)
        clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain being gated
        ARM: OMAP3: clock: fix boot breakage in legacy mode
        ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs
        clk: Really fix deadlock with mmap_sem
        clk: mmp: fix sparse non static symbol warning
        clk: Change clk_ops->determine_rate to return a clk_hw as the best parent
        clk: change clk_debugfs_add_file to take a struct clk_hw
        clk: Don't expose __clk_get_accuracy
        clk: Don't try to use a struct clk* after it could have been freed
        clk: Remove unused function __clk_get_prepare_count
        clk: samsung: Fix double add of syscore ops after driver rebind
        clk: samsung: exynos4: set parent of sclk_hdmiphy to hdmi
        clk: samsung: exynos4415: Fix build with PM_SLEEP disabled
        clk: samsung: remove unnecessary inclusion of header files from clk.h
        clk: samsung: remove unnecessary CONFIG_OF from clk.c
        clk: samsung: Spelling s/bwtween/between/
        clk: rockchip: Add support for the mmc clock phases using the framework
        clk: rockchip: add bindings for the mmc clocks
        clk: rockchip: rk3288 export i2s0_clkout for use in DT
        clk: rockchip: use clock ID for DMC (memory controller) on rk3288
        ...
      bfc7249c