From patchwork Thu Jul 13 00:41:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Zimmerman via tpmdd-devel X-Patchwork-Id: 9837575 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id F260F60363 for ; Thu, 13 Jul 2017 00:42:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E2FB4286D6 for ; Thu, 13 Jul 2017 00:42:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D78D0286D9; Thu, 13 Jul 2017 00:42:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HK_RANDOM_FROM, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 6B456286D6 for ; Thu, 13 Jul 2017 00:42:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Subject:References:In-Reply-To:Message-Id:Date:To; bh=CmAGSCYj0wJ7KmPJlG8hwY4j2fEyFPCL16st43iJ+Wc=; b=Usg5SNAqnWfQUNTeWkOuwd+Lz8IWF0Eee/diORylV5M5S1HEdVjUy311UTewPKCn+IhpKFXt7zPEqhmf9wkIkvKvrqSdkPA6VYzH9PBcaKfv5nribZH0/lQUiw4ksAWZVP6l1gVWOA27cjXmtgTbhk/TMMM9ErvwRQVUT3fvD3Y=; Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1dVSCq-00023r-ID; Thu, 13 Jul 2017 00:42:12 +0000 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1dVSCp-00023f-En for tpmdd-devel@lists.sourceforge.net; Thu, 13 Jul 2017 00:42:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=TGADnRw0i95Y8HrLOsy+Pf5ijhhGV4RIUtGr/VpZGK4=; b=g7ZCDPWGNLwukqD73BRYnOo9AHIWTVNsKhlKmJLHt4ftP8dTasamYEtZnNvE7L7TlH5YE+VMu2BOQARzshYgogPkF4MLdt7CfSjlOjmS8X8CZnBOtcP6/M/BLf73aXOnRa6HleUlvAvEMksKSDsEGJbhXtrrywscPI9epbgpzGs=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=TGADnRw0i95Y8HrLOsy+Pf5ijhhGV4RIUtGr/VpZGK4=; b=VvOVIH94xQS0JMFVzd3zZDixtHl0Emc2vaKITkPMGlp4eRKGTT2orAWi4G6CyXQhtrg8m2fhAP9qLa4nSCAmmsqozwE4jdjbg7tdRWNpFTnv1AOXjAMNftcrlko9D9GvsVTv9pnXSLKOPJocQKTAQN/wTNob9711cu/JdXrh12o=; Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of google.com designates 209.85.192.172 as permitted sender) client-ip=209.85.192.172; envelope-from=joshz@google.com; helo=mail-pf0-f172.google.com; Received: from mail-pf0-f172.google.com ([209.85.192.172]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:AES128-SHA:128) (Exim 4.76) id 1dVSCm-00048v-6H for tpmdd-devel@lists.sourceforge.net; Thu, 13 Jul 2017 00:42:11 +0000 Received: by mail-pf0-f172.google.com with SMTP id q86so20696746pfl.3 for ; Wed, 12 Jul 2017 17:42:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TGADnRw0i95Y8HrLOsy+Pf5ijhhGV4RIUtGr/VpZGK4=; b=Ux9x74fluZT6NSXpysIz9Z6ZSezJ6odi+6+SFrvUgqrHg9FQ7Me4CF8PuH/c6VrTWq tXOBD+ymnN/pTckeFs3clBwwsshxhAzXudssKxtuVUp/jHJKVafp/PAXD836zr72Ke+5 OXIVfLKf7mU31axY6xFkVgaGV5QBAb0oAqD49dxiZBH7BBFoqGxCrPqnWq5nTnoxdWj5 RQu8N5Rtcl/KqGVdX9FjcHsRrCi+jBwRLgR6jA1OMdHQxtlHZpY1J7E+3Ek5jw6wfGF2 MLeifC34Xu+Zp8Kp4dEC0lZtMHLLFHVRf87Faui4+WhIezYt+aQ/Lv8ZDrHXNbBYAEf6 ZQaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TGADnRw0i95Y8HrLOsy+Pf5ijhhGV4RIUtGr/VpZGK4=; b=d7z87XOk4cbFm16QbQdCByK2UO2GYgTa9C5K3Qu+xgHBqvlE8Li7iH06sG45q2ffTF dek1SwHcetr9ISUmjtmTV8QaFMusUWHY9c4rrwGnIFwZMvGef3NgBIARttIQp7THvGSp gCj3a7ggR751RQVupWZfeo7mTawUEHQSHveaw43vpnlBZBFmmSY2ycnIo0TuiJrkEaen l8xW6NNhwz2A+EB4NnHnFF/DM5imC+aAEuy/L3jI87z9sj3aok1I5czXctBHOKbrotfe x+SSDU+RM9Lop5BrUOoKpBlKnzDNFPrkyS7whW78H4VHXd66PnWvTuJNkvg1XKlUQj7q QIpQ== X-Gm-Message-State: AIVw113Bun0MkmLuLTbmsztgBYVJrtyhZYVNYZkvx/okJxha6+C/uiAE aM9Q0baee9Uc5Ai8 X-Received: by 10.84.131.78 with SMTP id 72mr7022973pld.43.1499906522405; Wed, 12 Jul 2017 17:42:02 -0700 (PDT) Received: from angband.kir.corp.google.com ([100.66.174.26]) by smtp.googlemail.com with ESMTPSA id n74sm8571289pfh.118.2017.07.12.17.42.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Jul 2017 17:42:01 -0700 (PDT) To: Jarkko Sakkinen , Jason Gunthorpe , tpmdd-devel@lists.sourceforge.net, gregkh@linuxfoundation.org, stable@vger.kernel.org Date: Wed, 12 Jul 2017 17:41:20 -0700 Message-Id: <20170713004121.21750-2-joshz@google.com> X-Mailer: git-send-email 2.13.2.932.g7449e964c-goog In-Reply-To: <20170713004121.21750-1-joshz@google.com> References: <20170713004121.21750-1-joshz@google.com> X-Headers-End: 1dVSCm-00048v-6H Subject: [tpmdd-devel] [PATCH v1 1/2] Add "shutdown" to "struct class".' X-BeenThere: tpmdd-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: Tpm Device Driver maintainance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Josh Zimmerman via tpmdd-devel From: Josh Zimmerman via tpmdd-devel Reply-To: Josh Zimmerman MIME-Version: 1.0 Errors-To: tpmdd-devel-bounces@lists.sourceforge.net X-Virus-Scanned: ClamAV using ClamSMTP Backport of commit f77af15165847406b15d8f70c382c4cb15846b2a upstream. The TPM class has some common shutdown code that must be executed for all drivers. This adds some needed functionality for that. Signed-off-by: Josh Zimmerman Reviewed-by: Jarkko Sakkinen --- drivers/base/core.c | 6 +++++- include/linux/device.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index ce057a568673..03a82d017cf1 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -2095,7 +2095,11 @@ void device_shutdown(void) pm_runtime_get_noresume(dev); pm_runtime_barrier(dev); - if (dev->bus && dev->bus->shutdown) { + if (dev->class && dev->class->shutdown) { + if (initcall_debug) + dev_info(dev, "shutdown\n"); + dev->class->shutdown(dev); + } else if (dev->bus && dev->bus->shutdown) { if (initcall_debug) dev_info(dev, "shutdown\n"); dev->bus->shutdown(dev); diff --git a/include/linux/device.h b/include/linux/device.h index bc41e87a969b..df850f723264 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -373,6 +373,7 @@ int subsys_virtual_register(struct bus_type *subsys, * @suspend: Used to put the device to sleep mode, usually to a low power * state. * @resume: Used to bring the device from the sleep mode. + * @shutdown: Called at shut-down time to quiesce the device. * @ns_type: Callbacks so sysfs can detemine namespaces. * @namespace: Namespace of the device belongs to this class. * @pm: The default device power management operations of this class. @@ -401,6 +402,7 @@ struct class { int (*suspend)(struct device *dev, pm_message_t state); int (*resume)(struct device *dev); + int (*shutdown)(struct device *dev); const struct kobj_ns_type_operations *ns_type; const void *(*namespace)(struct device *dev);