Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3601266imu; Fri, 18 Jan 2019 13:20:28 -0800 (PST) X-Google-Smtp-Source: ALg8bN6qM5A9dW9Cy0/PgNF7xhwUr81joJPctJfBNR3wu+NP80p71STW8YJyRv2QXMEAsAnqAcW0 X-Received: by 2002:a65:4142:: with SMTP id x2mr18735399pgp.356.1547846428398; Fri, 18 Jan 2019 13:20:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547846428; cv=none; d=google.com; s=arc-20160816; b=bx4ANyDXgwu0R3oZtW+ICDlqDV+tI8my5ZkDuN4PiOP1hHZ3ymLar3Ln5Fkb1Vn/oj 9xfB6rwMZkFugRvL7YqoYY32hVkYXuFzzmrxAa+9GtPV70AfHbBYB5zIr3FNwroMAe9W 9xgXUXklxlL+mJeB7IB88Rgt0T/o+kzayt3Oo4g35Dw0t1Ynnr/4kAohAqW1HLID5h1S EnXoggO8DvFGaLILLCguoFuyKAH1Ph7zl+T3strHuKl3Yxif5BCsqbbo6d6z3Gqv4O2N ubt3ms0qzBm+fyFP+MgtnmViV21+p+nJ4ii3pvDQuojxH/RVnUibytrIewIJ/b9XK9iQ sQKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=UfnAGOS/e+IFZjoRg80PCHAD6iBN9VEXEYbn2roei/k=; b=f+nIZ6rkOzkOc5m6MOmUWA34gI6F2sP7XmOv96F3ghwAY1N8pw0u2q8dOq1ESRH/3y zAhKFRAfdHz6fcja0q+DOX/7Vc4W3dIfm7p70LvjHQkjZbQr9JhPcEXVPEll7pcSgmAl QZ6U/5ynsMH6eGjsbS0ELJNFzVlx20ndcm+VEyhvV8sifdeyq8PaEyPNAdr+yhdGpSNI 5kCGBRL6iRVTCWHZcbgSycmagHxjs7zrzx34E+S1u2Z8YjufBLzMWcDeDKl8qTRvX8rf XFs8MYDgrQAWY57uF+SBLWrluVDzLH0Fbo/waGazdlOFs3Q2qtsfWMQ5WhnX7SfJ+wlP YTog== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l23si5299919pgh.533.2019.01.18.13.20.05; Fri, 18 Jan 2019 13:20:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729640AbfARVSI (ORCPT + 99 others); Fri, 18 Jan 2019 16:18:08 -0500 Received: from mail.ispras.ru ([83.149.199.45]:47094 "EHLO mail.ispras.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729616AbfARVSH (ORCPT ); Fri, 18 Jan 2019 16:18:07 -0500 Received: from localhost.localdomain (ppp85-140-181-158.pppoe.mtu-net.ru [85.140.181.158]) by mail.ispras.ru (Postfix) with ESMTPSA id 77C56540082; Sat, 19 Jan 2019 00:18:04 +0300 (MSK) From: Alexey Khoroshilov To: Marek Szyprowski , Felipe Balbi Cc: Alexey Khoroshilov , Kukjin Kim , Krzysztof Kozlowski , linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org Subject: [PATCH] usb: dwc3: exynos: Fix error handling of clk_prepare_enable Date: Sat, 19 Jan 2019 00:17:37 +0300 Message-Id: <1547846257-19970-1-git-send-email-khoroshilov@ispras.ru> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If clk_prepare_enable() fails in dwc3_exynos_probe(), exynos->clks[0] is left undisabled because of usage preincrement in while condition. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Fixes: 9f2168367a0a ("usb: dwc3: exynos: Rework clock handling and prepare for new variants") --- drivers/usb/dwc3/dwc3-exynos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/dwc3-exynos.c b/drivers/usb/dwc3/dwc3-exynos.c index cb7fcd7c0ad8..e7f6cff27b9a 100644 --- a/drivers/usb/dwc3/dwc3-exynos.c +++ b/drivers/usb/dwc3/dwc3-exynos.c @@ -78,7 +78,7 @@ static int dwc3_exynos_probe(struct platform_device *pdev) for (i = 0; i < exynos->num_clks; i++) { ret = clk_prepare_enable(exynos->clks[i]); if (ret) { - while (--i > 0) + while (i-- > 0) clk_disable_unprepare(exynos->clks[i]); return ret; } -- 2.7.4