From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752552AbdLFQiF (ORCPT ); Wed, 6 Dec 2017 11:38:05 -0500 Received: from mga11.intel.com ([192.55.52.93]:5970 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751208AbdLFQiA (ORCPT ); Wed, 6 Dec 2017 11:38:00 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,368,1508828400"; d="scan'208";a="654184" From: Flavio Ceolin To: linux-kernel@vger.kernel.org Cc: Flavio Ceolin , Andrzej Pietrasiewicz , Jacek Anaszewski , Mauro Carvalho Chehab , linux-arm-kernel@lists.infradead.org (open list:ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT), linux-media@vger.kernel.org (open list:ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT) Subject: [PATCH] media: s5p-jpeg: Fix off-by-one problem Date: Wed, 6 Dec 2017 08:37:45 -0800 Message-Id: <20171206163746.8456-1-flavio.ceolin@intel.com> X-Mailer: git-send-email 2.9.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org s5p_jpeg_runtime_resume() does not call clk_disable_unprepare() for jpeg->clocks[0] when one of the clk_prepare_enable() fails. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Flavio Ceolin --- drivers/media/platform/s5p-jpeg/jpeg-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index faac816..79b63da 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -3086,7 +3086,7 @@ static int s5p_jpeg_runtime_resume(struct device *dev) for (i = 0; i < jpeg->variant->num_clocks; i++) { ret = clk_prepare_enable(jpeg->clocks[i]); if (ret) { - while (--i > 0) + while (--i >= 0) clk_disable_unprepare(jpeg->clocks[i]); return ret; } -- 2.9.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: flavio.ceolin@intel.com (Flavio Ceolin) Date: Wed, 6 Dec 2017 08:37:45 -0800 Subject: [PATCH] media: s5p-jpeg: Fix off-by-one problem Message-ID: <20171206163746.8456-1-flavio.ceolin@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org s5p_jpeg_runtime_resume() does not call clk_disable_unprepare() for jpeg->clocks[0] when one of the clk_prepare_enable() fails. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Flavio Ceolin --- drivers/media/platform/s5p-jpeg/jpeg-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index faac816..79b63da 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -3086,7 +3086,7 @@ static int s5p_jpeg_runtime_resume(struct device *dev) for (i = 0; i < jpeg->variant->num_clocks; i++) { ret = clk_prepare_enable(jpeg->clocks[i]); if (ret) { - while (--i > 0) + while (--i >= 0) clk_disable_unprepare(jpeg->clocks[i]); return ret; } -- 2.9.5