Received: by 10.223.185.116 with SMTP id b49csp2240205wrg; Sat, 24 Feb 2018 14:45:17 -0800 (PST) X-Google-Smtp-Source: AH8x227r4f/+wn9GShjgTzqFhEajHHl0R4Bf41U0uy14r1YiZf9DJQLGkL2iF9pHH3JYeck675sK X-Received: by 2002:a17:902:b43:: with SMTP id 61-v6mr6192995plq.270.1519512317274; Sat, 24 Feb 2018 14:45:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519512317; cv=none; d=google.com; s=arc-20160816; b=lh/0IXHxhsUuOppDwXd2JnE9uxz3e7rYZ23aPzeMuUXwRI9wF6GW8HlYoB97T4kZQM B8KXalUHIpTrJokGXrIBQvHAdsaGRqyhVzVlKJbgb2XWQmPzWDyCBJqDNcBETD84moYT jppIZkwqVEXFUVsaUpOLhDWmtlUlzM5hNfdmlcxjcVgDGWx0uJa5abhMr9xJYe94N1rp AvbMikkpza5S3+AQO4tBDaCAj9mKG2jhkisXW6HlqyAwPRqWWsuFy7yfjEXtlyBihz0i wfvkcpddNk9TgTrPvXMu45l4RdSoFSeP6v9HcZBgHJW1fpOfFPMBkBw8HLuDwQkOXfAH s5tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date :arc-authentication-results; bh=/mkOYltqxXKf2E6fLvvOOD8/d5IKsd6i3QbE1RP20rY=; b=CjxpuyfYzvV0peRfsb9ABhpxmMg0oWZECWGQBQzrSE7u8Z+CmMRXCU7K77558wJ2bz 0wlUawgp5RZoaCVhy1h2vrZ3JaCfEopndAVbfNANJF5QoAjwq7Xw5I44GYcDqJG6zAhZ cXiVWJ2swmr7wjuW/TtKtwGzfrd2CPXJrobc/PMy0wp57lvUmltPk5loc2juG2chOYYN vLilfwNO35IF3bVDEc18GsGhE31kpm7BMaOLcx5FG9C+7PqAsLdae5kYOqCNqxdH7wnM O2hEbv6oQEq27ILmjqEKmACeLdZ6wVIDxyzpEy2F3ku32+KrlY7plzskARM9rLUevvMX L/Gw== 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 k15si3465686pgc.482.2018.02.24.14.45.03; Sat, 24 Feb 2018 14:45:17 -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 S1751688AbeBXWnr (ORCPT + 99 others); Sat, 24 Feb 2018 17:43:47 -0500 Received: from agrajag.zerfleddert.de ([88.198.237.222]:33100 "EHLO agrajag.zerfleddert.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751669AbeBXWnq (ORCPT ); Sat, 24 Feb 2018 17:43:46 -0500 Received: by agrajag.zerfleddert.de (Postfix, from userid 1000) id 474B35B2057B; Sat, 24 Feb 2018 23:43:45 +0100 (CET) Date: Sat, 24 Feb 2018 23:43:45 +0100 From: Tobias Jordan To: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Wolfram Sang Subject: [PATCH] i2c: imx-lpi2c: Fix PM device usage count Message-ID: <20180224224345.owigkyvxarlcfpnu@agrajag.zerfleddert.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pm_runtime_get_sync() increases the device's usage count even when reporting an error, so add a call to pm_runtime_put_noidle() in the error branch. Fixes: 13d6eb20fc79 ("i2c: imx-lpi2c: add runtime pm support") Signed-off-by: Tobias Jordan --- This is one of a number of patches for problems found using coccinelle scripting in the SIL2LinuxMP project. The patch has been compile-tested; it's based on linux-next-20180223. For a discussion of the corresponding issue, see https://marc.info/?l=linux-pm&m=151904483924999&w=2 drivers/i2c/busses/i2c-imx-lpi2c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c index e6da2c7a9a3e..793050da3ae3 100644 --- a/drivers/i2c/busses/i2c-imx-lpi2c.c +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c @@ -278,8 +278,10 @@ static int lpi2c_imx_master_enable(struct lpi2c_imx_struct *lpi2c_imx) int ret; ret = pm_runtime_get_sync(lpi2c_imx->adapter.dev.parent); - if (ret < 0) + if (ret < 0) { + pm_runtime_put_noidle(lpi2c_imx->adapter.dev.parent); return ret; + } temp = MCR_RST; writel(temp, lpi2c_imx->base + LPI2C_MCR); -- 2.11.0