1. 14 Jan, 2015 1 commit
    • Amit Virdi's avatar
      usb: dwc3: gadget: Fix TRB preparation during SG · ec512fb8
      Amit Virdi authored
      When scatter gather (SG) is used, multiple TRBs are prepared from one DWC3
      request (dwc3_request). So while preparing TRBs, the 'last' flag should be set
      only when it is the last TRB being prepared from the last dwc3_request entry.
      
      The current implementation uses list_is_last to check if the dwc3_request is the
      last entry from the request_list. However, list_is_last returns false for the
      last entry too. This is because, while preparing the first TRB from a request,
      the function dwc3_prepare_one_trb modifies the request's next and prev pointers
      while moving the URB to req_queued. Hence, list_is_last always returns false no
      matter what.
      
      The correct way is not to access the modified pointers of dwc3_request but to
      use list_empty macro instead.
      
      Fixes: e5ba5ec8 (usb: dwc3: gadget: fix scatter gather implementation)
      Signed-off-by: default avatarAmit Virdi <amit.virdi@st.com>
      Cc: <stable@vger.kernel.org> # v3.9+
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      ec512fb8
  2. 13 Jan, 2015 1 commit
    • Arnd Bergmann's avatar
      usb: phy: mv-usb: fix usb_phy build errors · 90bdf403
      Arnd Bergmann authored
      The driver was recently adapted to a core API change, but the
      change was incomplete, missing out the suspend helper and
      leaving an extraneous local variable around:
      
      usb/phy/phy-mv-usb.c: In function 'mv_otg_update_state':
      usb/phy/phy-mv-usb.c:341:18: warning: unused variable 'phy' [-Wunused-variable]
      
      usb/phy/phy-mv-usb.c: In function 'mv_otg_suspend':
      usb/phy/phy-mv-usb.c:861:16: error: 'struct usb_phy' has no member named 'state'
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: e47d9254 ("usb: move the OTG state from the USB PHY to the OTG structure")
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      90bdf403
  3. 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
  4. 23 Dec, 2014 1 commit
    • 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
  5. 22 Dec, 2014 12 commits
    • 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
  6. 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
  7. 20 Dec, 2014 14 commits
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · a4e1328a
      Linus Torvalds authored
      Pull more i2c updates from Wolfram Sang:
       "Included are two bugfixes needing some bigger refactoring (sh_mobile:
        deferred probe with DMA, mv64xxx: fix offload support) and one
        deprecated driver removal I thought would go in via ppc but I
        misunderstood.  It has a proper ack from BenH"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: sh_mobile: fix uninitialized var when debug is enabled
        macintosh: therm_pm72: delete deprecated driver
        i2c: sh_mobile: I2C_SH_MOBILE should depend on HAS_DMA
        i2c: sh_mobile: rework deferred probing
        i2c: sh_mobile: refactor DMA setup
        i2c: mv64xxx: rework offload support to fix several problems
        i2c: mv64xxx: use BIT() macro for register value definitions
      a4e1328a
    • Linus Torvalds's avatar
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · cdce6ac2
      Linus Torvalds authored
      Pull SCSI update from James Bottomley:
       "This is a much shorter set of patches that were on the go but didn't
        make it in to the early pull request for the merge window.  It's
        really a set of bug fixes plus some final cleanup work on the new tag
        queue API"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        storvsc: ring buffer failures may result in I/O freeze
        ipr: set scsi_level correctly for disk arrays
        ipr: add support for async scanning to speed up boot
        scsi_debug: fix missing "break;" in SDEBUG_UA_CAPACITY_CHANGED case
        scsi_debug: take sdebug_host_list_lock when changing capacity
        scsi_debug: improve driver description in Kconfig
        scsi_debug: fix compare and write errors
        qla2xxx: fix race in handling rport deletion during recovery causes panic
        scsi: blacklist RSOC for Microsoft iSCSI target devices
        scsi: fix random memory corruption with scsi-mq + T10 PI
        Revert "[SCSI] mpt3sas: Remove phys on topology change"
        Revert "[SCSI] mpt2sas: Remove phys on topology change."
        esas2r: Correct typos of "validate" in a comment
        fc: FCP_PTA_SIMPLE is 0
        ibmvfc: remove unused tag variable
        scsi: remove MSG_*_TAG defines
        scsi: remove scsi_set_tag_type
        scsi: remove scsi_get_tag_type
        scsi: never drop to untagged mode during queue ramp down
        scsi: remove ->change_queue_type method
      cdce6ac2
    • Linus Torvalds's avatar
      Merge tag 'pm-config-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5d6a5468
      Linus Torvalds authored
      Pull CONFIG_PM_RUNTIME elimination from Rafael Wysocki:
       "This removes the last few uses of CONFIG_PM_RUNTIME introduced
        recently and makes that config option finally go away.
      
        CONFIG_PM will be available directly from the menu now and also it
        will be selected automatically if CONFIG_SUSPEND or CONFIG_HIBERNATION
        is set"
      
      * tag 'pm-config-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: Eliminate CONFIG_PM_RUNTIME
        tty: 8250_omap: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        sound: sst-haswell-pcm: Replace CONFIG_PM_RUNTIME with CONFIG_PM
        spi: Replace CONFIG_PM_RUNTIME with CONFIG_PM
      5d6a5468
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 787140ad
      Linus Torvalds authored
      Pull misc kbuild changes from Michal Marek:
       "There are only a few things in the misc branch:
      
         - Fix for bugon.cocci semantic patch
         - Kdevelop4 files are .gitignored
         - Put make binrpm-pkg on diet"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        scripts/package: binrpm-pkg do not create source and devel package
        .gitignore: Add Kdevelop4 project files
        bugon.cocci: fix Options at the macro
      787140ad
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · d08372ca
      Linus Torvalds authored
      Pull kbuild updates from Michal Marek:
       "Here are the kbuild changes for v3.19-rc1:
      
         - Cleanups and deduplication in the main Makefile and
           scripts/Makefile.*
         - Sort the output of *config targets in make help
         - Old <linux/version.h> is always removed to avoid a surprise during
           bisecting
         - Warning fix in kconfig"
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kbuild: remove redundant -rR flag of hdr-inst
        kbuild: Fix make help-<board series> on powerpc
        kbuild: Automatically remove stale <linux/version.h> file
        kconfig: Fix warning "‘jump’ may be used uninitialized"
        Makefile: sort list of defconfig targets in make help output
        kbuild: Remove duplicate $(cmd) definition in Makefile.clean
        kbuild: collect shorthands into scripts/Kbuild.include
      d08372ca
    • Wolfram Sang's avatar
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · ecb5ec04
      Linus Torvalds authored
      Pull vfs pile #3 from Al Viro:
       "Assorted fixes and patches from the last cycle"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        [regression] chunk lost from bd9b51
        vfs: make mounts and mountstats honor root dir like mountinfo does
        vfs: cleanup show_mountinfo
        init: fix read-write root mount
        unfuck binfmt_misc.c (broken by commit e6084d4a)
        vm_area_operations: kill ->migrate()
        new helper: iter_is_iovec()
        move_extent_per_page(): get rid of unused w_flags
        lustre: get rid of playing with ->fs
        btrfs: filp_open() returns ERR_PTR() on failure, not NULL...
      ecb5ec04
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.19-rc1-fixes' of... · 298647e3
      Linus Torvalds authored
      Merge tag 'ecryptfs-3.19-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull eCryptfs fixes from Tyler Hicks:
       "Fixes for filename decryption and encrypted view plus a cleanup
      
         - The filename decryption routines were, at times, writing a zero
           byte one character past the end of the filename buffer
      
         - The encrypted view feature attempted, and failed, to roll its own
           form of enforcing a read-only mount instead of letting the VFS
           enforce it"
      
      * tag 'ecryptfs-3.19-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: Remove buggy and unnecessary write in file name decode routine
        eCryptfs: Remove unnecessary casts when parsing packet lengths
        eCryptfs: Force RO mount when encrypted view is enabled
      298647e3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 5c68eac6
      Linus Torvalds authored
      Pull more btrfs updates from Chris Mason:
       "This is part two of our merge window patches.
      
        These are all from Filipe, and fix some really hard to find races that
        can cause corruptions.  Most of them involved block group removal
        (balance) or discard"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: remove non-sense btrfs_error_discard_extent() function
        Btrfs: fix fs corruption on transaction abort if device supports discard
        Btrfs: always clear a block group node when removing it from the tree
        Btrfs: ensure deletion from pinned_chunks list is protected
      5c68eac6
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 20e471fd
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are a few fixes that have landed after the previous pull request.
        All are driver specific fixes including:
      
         - error/int value fixes in OXFW,
         - Intel Skylake HD-audio HDMI codec support,
         - Additional HD-audio Realtek codecs and AD1986A codec fixes/quirks,
         - a few more DSD support and a quirk for Arcam rPAC in usb-audio,
         - a typo fix for Scarlett 6i6,
         - fixes for new ASIHPI firmware,
         - ASoC Exynos7 cleanups,
         - Intel ACPI support, and
         - a fix for PCM512 register cache sync"
      
      * tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
        ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
        ALSA: hda/realtek - New codec support for ALC298
        ALSA: asihpi: update to HPI version 4.14
        ALSA: asihpi: increase tuner pad cache size
        ALSA: asihpi: relax firmware version check
        ALSA: usb-audio: Fix Scarlett 6i6 initialization typo
        ALSA: hda - Add quirk for Packard Bell EasyNote MX65
        ALSA: usb-audio: add native DSD support for Matrix Audio DACs
        ALSA: hda/realtek - New codec support for ALC256
        ALSA: hda/realtek - Add new Dell desktop for ALC3234 headset mode
        ASoC: Intel: fix possible acpi enumeration panic
        ALSA: hda/hdmi - apply Haswell fix-ups to Skylake display codec
        ASoC: Intel: fix return value check in sst_acpi_probe()
        ALSA: hda - Make add_stereo_mix_input flag tristate
        ALSA: hda - Create capture source ctls when stereo mix input is added
        ALSA: hda - Fix typos in snd_hda_get_int_hint() kerneldoc comments
        ALSA: hda - add codec ID for Skylake display audio codec
        ALSA: oxfw: some signedness bugs
        ALSA: oxfw: fix detect_loud_models() return value
        ASoC: rt5677: add REGMAP_I2C and REGMAP_IRQ dependency
        ...
      20e471fd
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · ed55635e
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "The highlights this merge window include:
      
         - Allow target fabric drivers to function as built-in.  (Roland)
         - Fix tcm_loop multi-TPG endpoint nexus bug.  (Hannes)
         - Move per device config_item_type into se_subsystem_api, allowing
           configfs attributes to be defined at module_init time.  (Jerome +
           nab)
         - Convert existing IBLOCK/FILEIO/RAMDISK/PSCSI/TCMU drivers to use
           external configfs attributes.  (nab)
         - A number of iser-target fixes related to active session + network
           portal shutdown stability during extended stress testing.  (Sagi +
           Slava)
         - Dynamic allocation of T10-PI contexts for iser-target, fixing a
           potentially bogus iscsi_np->tpg_np pointer reference in >= v3.14
           code.  (Sagi)
         - iser-target performance + scalability improvements.  (Sagi)
         - Fixes for SPC-4 Persistent Reservation AllRegistrants spec
           compliance.  (Ilias + James + nab)
         - Avoid potential short kern_sendmsg() in iscsi-target for now until
           Al's conversion to use msghdr iteration is merged post -rc1.
           (Viro)
      
        Also, Sagi has requested a number of iser-target patches (9) that
        address stability issues he's encountered during extended stress
        testing be considered for v3.10.y + v3.14.y code.  Given the amount of
        LOC involved, it will certainly require extra backporting effort.
      
        Apologies in advance to Greg-KH & Co on this.  Sagi and I will be
        working post-merge to ensure they each get applied correctly"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (53 commits)
        target: Allow AllRegistrants to re-RESERVE existing reservation
        uapi/linux/target_core_user.h: fix headers_install.sh badness
        iscsi-target: Fail connection on short sendmsg writes
        iscsi-target: nullify session in failed login sequence
        target: Avoid dropping AllRegistrants reservation during unregister
        target: Fix R_HOLDER bit usage for AllRegistrants
        iscsi-target: Drop left-over bogus iscsi_np->tpg_np
        iser-target: Fix wc->wr_id cast warning
        iser-target: Remove code duplication
        iser-target: Adjust log levels and prettify some prints
        iser-target: Use debug_level parameter to control logging level
        iser-target: Fix logout sequence
        iser-target: Don't wait for session commands from completion context
        iser-target: Reduce CQ lock contention by batch polling
        iser-target: Introduce isert_poll_budget
        iser-target: Remove an atomic operation from the IO path
        iser-target: Remove redundant call to isert_conn_terminate
        iser-target: Use single CQ for TX and RX
        iser-target: Centralize completion elements to a context
        iser-target: Cast wr_id with uintptr_t instead of unsinged long
        ...
      ed55635e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel · 5be95b7e
      Linus Torvalds authored
      Pull arch/hexagon updates from Richard Kuo:
       "Build cleanup and a few misc fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
        Hexagon: fix signal delivery for debug traps
        Hexagon: set ARCH_DMA_MINALIGN
        Hexagon: fix alignment of init_task in RW_DATA_SECTION
        hexagon: Fix build failures in linux-next
      5be95b7e
    • Linus Torvalds's avatar
      Merge tag 'cris-changes-for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris · 971d9e07
      Linus Torvalds authored
      Pull arch/chris updates from Jesper Nilsson:
       "Mostly cleanup and build fixes for CRISv32 allmodconfig
      
        God Jul och Gott Nytt år!"
      
      * tag 'cris-changes-for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
        CRISv32: Remove last remnants of ETRAX_SPI_MMC_BOARD
        CRISv32: ETRAXFS: Fix recursive spinlock
        CRISv32: Select MTDRAM for axisflashmap
        CRISv32: Implement early console
        CRIS: Use KALLSYMs if available in call stack dump
        CRISv32: Fix declaration mismatch
        CRISv32: Rewrite of synchronous serial port driver
        CRIS: Update init memory handling
        CRISv32: Better handling of watchdog bite
        CRIS: Export missing function symbols
        CRIS: Export ioremap_nocache
        CRIS: Fix headers_install
        CRISv32: Add missing include for mm.h
        CRISv32: Drop obsolete file for SPI driver
      971d9e07
    • Linus Torvalds's avatar
      Merge tag 'please-pull-misc-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · acab1f88
      Linus Torvalds authored
      Pull ia64 __get_cpu_var removal from Tony Luck:
       "__get_cpu_var removed from rest of tree, drop reference from comments
        in arch/ia64"
      
      * tag 'please-pull-misc-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Update comment that references __get_cpu_var
      acab1f88
  8. 19 Dec, 2014 6 commits