From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933613AbdKCUI7 (ORCPT ); Fri, 3 Nov 2017 16:08:59 -0400 Received: from heliosphere.sirena.org.uk ([172.104.155.198]:50362 "EHLO heliosphere.sirena.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752659AbdKCUIy (ORCPT ); Fri, 3 Nov 2017 16:08:54 -0400 From: Mark Brown To: Baolin Wang Cc: linux-kernel@vger.kernel.org, Mark Brown Subject: [PATCH 1/2] regmap: Also protect hwspinlock in error handling path Date: Fri, 3 Nov 2017 20:08:50 +0000 Message-Id: <20171103200851.10215-1-broonie@kernel.org> X-Mailer: git-send-email 2.15.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The previous patch to allow the hwspinlock code to be disabled missed handling the free in the error path, do so using the better IS_ENABLED() pattern as suggested by Baolin. While we're at it also check that we have a hardware spinlock before freeing it - the core code reports an error when freeing an invalid lock. Suggested-by: Baolin Wang Signed-off-by: Mark Brown --- drivers/base/regmap/regmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index ff6ef6a579c6..5ff549fa880b 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1116,7 +1116,8 @@ struct regmap *__regmap_init(struct device *dev, regmap_range_exit(map); kfree(map->work_buf); err_hwlock: - hwspin_lock_free(map->hwlock); + if (IS_ENABLED(REGMAP_HWSPINLOCK) && map->hwlock) + hwspin_lock_free(map->hwlock); err_map: kfree(map); err: -- 2.15.0