Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5496595imu; Wed, 19 Dec 2018 12:13:27 -0800 (PST) X-Google-Smtp-Source: AFSGD/Xb2TVyNdrviiR0ghoO1iLlgUr1U8mjxhDAWegy44X4rMkC654vTc1IDz6cSN6D4vIbqX2K X-Received: by 2002:a17:902:6a4:: with SMTP id 33mr20904695plh.99.1545250407652; Wed, 19 Dec 2018 12:13:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545250407; cv=none; d=google.com; s=arc-20160816; b=ZSlozWyPkCCpYT0n/lV9S++j+Kwk2qTYxUk3K/R7+ZJGTet3ANTh1esXrDJZM/H0BE sLKPPXr256txbChrLYciMIJRMnUfXP9MYO43r/VsYibPwY0lga7dDMmofQIflJ3Wqua4 XNajViGs4QUxFRRBBSQRKPsAu5MFpG83bJn8X1Y4h9wmDBNgTlV/RFBlSk11JvruZGys McxkyxSeTSssBzuskDvpJk/H0zNjzaZBod9SjzuMhrBBlWaXIdy4flvkX0EdAs8TN7Bk C0UOJ+XDTF6bUnvka+k8RlI6yAg/8S1bNBTViMebCzBDCKOhq51zBkelILmiZZ1fWawy c4vQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=u5CchkUSWvqS8OJR6ECLj1nw1wYRZSS2AvZg4JVj2VM=; b=Kql4dRtKUwJxhfjq7N+58olk59bDSC0H7AFKeITHvMGEKWiqZ0BgfgXfXDfAA0z+HO cySQR8ZjwWHk4UEKy+Z8tYrDn77YXHdV638o9izigp7KDhAYOtBW8YmKHqbmEdiqtUOH JDm9HaRHD8ebPT1rNqYfGkhANjLCUW/HN1EnIB6xweuJK0W2QPs4UHqid318CLcuTTz2 bil6VFfrtXRcLE5uM3jwKs8Hxgj6EUfixm6EJALOJ82HMuTSWjOmeBUR/9SE0fQbLzcd AlHQK9COXUa4GXEpvDHjNvUZdUOFjhbCYqtfEsKiLpJV+svhwBW4Ninwf6rGbbQ2ZKL5 mZEw== 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 h19si15719995pgg.274.2018.12.19.12.13.11; Wed, 19 Dec 2018 12:13:27 -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 S1729978AbeLSQsi (ORCPT + 99 others); Wed, 19 Dec 2018 11:48:38 -0500 Received: from sauhun.de ([88.99.104.3]:55862 "EHLO pokefinder.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729876AbeLSQsg (ORCPT ); Wed, 19 Dec 2018 11:48:36 -0500 Received: from localhost (p54B333DA.dip0.t-ipconnect.de [84.179.51.218]) by pokefinder.org (Postfix) with ESMTPSA id 2550A2E35C9; Wed, 19 Dec 2018 17:48:35 +0100 (CET) From: Wolfram Sang To: linux-i2c@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, Hans de Goede , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Wolfram Sang , Wolfram Sang , linux-kernel@vger.kernel.org Subject: [PATCH 02/10] i2c: reject new transfers when adapters are suspended Date: Wed, 19 Dec 2018 17:48:18 +0100 Message-Id: <20181219164827.20985-3-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181219164827.20985-1-wsa+renesas@sang-engineering.com> References: <20181219164827.20985-1-wsa+renesas@sang-engineering.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Using the new 'is_suspended' flag, we now reject new transfers if the adapter is already marked suspended. Signed-off-by: Wolfram Sang --- Documentation/i2c/fault-codes | 4 ++++ drivers/i2c/i2c-core-base.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Documentation/i2c/fault-codes b/Documentation/i2c/fault-codes index 47c25abb7d52..0cee0fc545b4 100644 --- a/Documentation/i2c/fault-codes +++ b/Documentation/i2c/fault-codes @@ -112,6 +112,10 @@ EPROTO case is when the length of an SMBus block data response (from the SMBus slave) is outside the range 1-32 bytes. +ESHUTDOWN + Returned when a transfer was requested using an adapter + which is already suspended. + ETIMEDOUT This is returned by drivers when an operation took too much time, and was aborted before it completed. diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 2c465455b2f6..926ca0a7477f 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1866,6 +1866,8 @@ int __i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) if (WARN_ON(!msgs || num < 1)) return -EINVAL; + if (WARN_ON(test_bit(I2C_ALF_IS_SUSPENDED, &adap->locked_flags))) + return -ESHUTDOWN; if (adap->quirks && i2c_check_for_quirks(adap, msgs, num)) return -EOPNOTSUPP; -- 2.11.0