| From 2a1dd08067ae656d8e472d9c5f27c376bb6afdd4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 11 Feb 2019 10:04:26 -0500 |
| Subject: usb: phy: twl6030-usb: fix possible use-after-free on remove |
| |
| From: Sven Van Asbroeck <thesven73@gmail.com> |
| |
| [ Upstream commit 5895d311d28f2605e2f71c1a3e043ed38f3ac9d2 ] |
| |
| In remove(), use cancel_delayed_work_sync() to cancel the |
| delayed work. Otherwise there's a chance that this work |
| will continue to run until after the device has been removed. |
| |
| This issue was detected with the help of Coccinelle. |
| |
| Cc: Tony Lindgren <tony@atomide.com> |
| Cc: Bin Liu <b-liu@ti.com> |
| Fixes: b6a619a883c3 ("usb: phy: Check initial state for twl6030") |
| Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com> |
| Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/phy/phy-twl6030-usb.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/usb/phy/phy-twl6030-usb.c b/drivers/usb/phy/phy-twl6030-usb.c |
| index a72e8d670adc8..cf0b67433ac95 100644 |
| --- a/drivers/usb/phy/phy-twl6030-usb.c |
| +++ b/drivers/usb/phy/phy-twl6030-usb.c |
| @@ -422,7 +422,7 @@ static int twl6030_usb_remove(struct platform_device *pdev) |
| { |
| struct twl6030_usb *twl = platform_get_drvdata(pdev); |
| |
| - cancel_delayed_work(&twl->get_status_work); |
| + cancel_delayed_work_sync(&twl->get_status_work); |
| twl6030_interrupt_mask(TWL6030_USBOTG_INT_MASK, |
| REG_INT_MSK_LINE_C); |
| twl6030_interrupt_mask(TWL6030_USBOTG_INT_MASK, |
| -- |
| 2.20.1 |
| |