mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
usb: dwc3: of-simple: fix oops by unbalanced clk disable call
dwc3_of_simple_dev_pm_ops has never been used since commita0d8c4cfdf("usb: dwc3: of-simple: set dev_pm_ops"), but this commit has brought and oops when unbind the device due this sequence: dwc3_of_simple_remove -> clk_disable ... -> pm_runtime_put_sync -> dwc3_of_simple_runtime_suspend -> clk_disable (again) This double call to clk_core_disable causes a kernel oops like this: WARNING: CPU: 1 PID: 4022 at drivers/clk/clk.c:656 clk_core_disable+0x78/0x80 CPU: 1 PID: 4022 Comm: bash Not tainted 4.15.0-rc4+ #44 Hardware name: Google Kevin (DT) pstate: 80000085 (Nzcv daIf -PAN -UAO) pc : clk_core_disable+0x78/0x80 lr : clk_core_disable_lock+0x20/0x38 sp : ffff00000bbf3a90 ... Call trace: clk_core_disable+0x78/0x80 clk_disable+0x1c/0x30 dwc3_of_simple_runtime_suspend+0x30/0x50 pm_generic_runtime_suspend+0x28/0x40 This patch fixes the unbalanced clk disable call by setting the num_clocks variable to zero once the clocks were disabled. Fixes:a0d8c4cfdf("usb: dwc3: of-simple: set dev_pm_ops") Signed-off-by: Enric Balletbo i Serra <[email protected]> Signed-off-by: Felipe Balbi <[email protected]>
This commit is contained in:
parent
7928b2cbe5
commit
bff52352e0
1 changed files with 1 additions and 0 deletions
|
|
@ -143,6 +143,7 @@ static int dwc3_of_simple_remove(struct platform_device *pdev)
|
|||
clk_disable_unprepare(simple->clks[i]);
|
||||
clk_put(simple->clks[i]);
|
||||
}
|
||||
simple->num_clocks = 0;
|
||||
|
||||
reset_control_assert(simple->resets);
|
||||
reset_control_put(simple->resets);
|
||||
|
|
|
|||
Loading…
Reference in a new issue