From: Jia-Ju Bai Date: Tue, 10 Apr 2018 07:37:06 +0000 (+0800) Subject: usb: isp1760: Replace mdelay with msleep in isp1760_stop X-Git-Tag: v4.18-rc1~136^2~143 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de0611b27d15ddc831d4c47d3b4be592c5587948;p=thirdparty%2Fkernel%2Flinux.git usb: isp1760: Replace mdelay with msleep in isp1760_stop isp1760_stop() is never called in atomic context. The call chain ending up at isp1760_stop() is: [1] isp1760_stop() <- isp1760_shutdown() isp1760_shutdown() is set as ".shutdown" in struct hc_driver. isp1760_stop() is also set as ".stop" in hc_driver. These functions are not called in atomic context. Despite never getting called from atomic context, isp1760_stop() calls mdelay() to busily wait. This is not necessary and can be replaced with msleep() to avoid busy waiting. This is found by a static analysis tool named DCNS written by myself. And I also manually check it Signed-off-by: Jia-Ju Bai Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/isp1760/isp1760-hcd.c b/drivers/usb/isp1760/isp1760-hcd.c index 42672d6ec5255..1045521be2934 100644 --- a/drivers/usb/isp1760/isp1760-hcd.c +++ b/drivers/usb/isp1760/isp1760-hcd.c @@ -2093,7 +2093,7 @@ static void isp1760_stop(struct usb_hcd *hcd) isp1760_hub_control(hcd, ClearPortFeature, USB_PORT_FEAT_POWER, 1, NULL, 0); - mdelay(20); + msleep(20); spin_lock_irq(&priv->lock); ehci_reset(hcd);