diff options
author | Mayank Rana <mrana@codeaurora.org> | 2016-01-20 13:48:49 -0800 |
---|---|---|
committer | Kyle Yan <kyan@codeaurora.org> | 2016-06-13 16:18:16 -0700 |
commit | 402fc23f0c2d395fe52bdfdd2169c5682ed75d6f (patch) | |
tree | e6870b3c93e40cb0f3ec24155aba45e68338db0d /sound/soc | |
parent | 83d67838548b0c174ef56001c45de17322a07e53 (diff) |
usb: hcd: Fix double free with bandwidth_mutex on cable disconnect
Roothub's (udev->dev) can be asynchronously suspended due to
power.async_suspend is set to true i.e. at time of system suspend and
resume, these devices' (usb1 and usb2) kobject count is decremented
and incremented respectively. hcd_release() API expects that shared_hcd
is being released first before hcd. Due to additional reference count
at time of system resume, it results into hcd_release() is called
first with hcd (primary) and then shared_hcd. With this,
usb_hcd_is_primary_hcd() API is returning true for both hcd and
shared_hcd which results into double free of bandwidth_mutex. Fix this
issue by identifying hcd to release bandwidth_mutex without depending
on which order hcd_release() is called with hcd and share_hcd.
CRs-Fixed: 955531
Change-Id: I6bfcfd54525fa6472bd848d4c112fff0c9462355
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Diffstat (limited to 'sound/soc')
0 files changed, 0 insertions, 0 deletions