Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1640908

RE: [tpmdd-devel] [PATCH] Add "shutdown" to "struct class".

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From "Winkler, Tomas" <tomas.winkler@intel.com>
Newsgroups linux.kernel
Subject RE: [tpmdd-devel] [PATCH] Add "shutdown" to "struct class".
Date Sat, 13 May 2017 14:50:01 +0200
Message-ID <tGEEF-3FE-1@gated-at.bofh.it> (permalink)
References <tGsk9-3Ib-3@gated-at.bofh.it>
X-Extloop1 1
X-Ironport-Av E=Sophos;i="5.38,335,1491289200"; d="scan'208";a="1129865100"
Thread-Topic [tpmdd-devel] [PATCH] Add "shutdown" to "struct class".
Thread-Index AQHSy3gmfbXnQlT/rEKVVbKMJhFHH6HyNJGg
Accept-Language en-US
Content-Language en-US
Dlp-Product dlpe-windows
Dlp-Version 10.0.102.7
Dlp-Reaction no-action
X-Originating-IP [10.184.70.10]
Content-Type text/plain; charset="us-ascii"
Content-Transfer-Encoding 8BIT
MIME-Version 1.0
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 72
Organization linux.* mail to news gateway
X-Original-Cc "tpmdd-devel@lists.sourceforge.net" <tpmdd-devel@lists.sourceforge.net>, "Rafael J. Wysocki" <rjw@rjwysocki.net>
X-Original-Date Sat, 13 May 2017 12:43:11 +0000
X-Original-Message-ID <5B8DA87D05A7694D9FA63FD143655C1B641D7A27@hasmsx108.ger.corp.intel.com>
X-Original-References <20170512233203.23659-1-joshz@google.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1640908

Show key headers only | View raw


> The TPM class has some common shutdown code that must be executed for
> all drivers. This adds some needed functionality for that

The issue with this is, that on some platforms the only storage can be eMMC and TPM is using it,. It  has to be ensured that the storage device  won't go down before  TPM2_shutdown is called. 
And there is no direct device hierarchy to ensure an orderly shutdown. 
Tomas 

> 
> (In addition, update a comment to reflect an out-of-date path.)
> ---
>  drivers/base/core.c    | 5 +++++
>  include/linux/device.h | 4 +++-
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/base/core.c b/drivers/base/core.c index
> bbecaf9293be..5c1648875e94 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -2667,6 +2667,11 @@ void device_shutdown(void)
>  		pm_runtime_get_noresume(dev);
>  		pm_runtime_barrier(dev);
> 
> +		if (dev->class && dev->class->shutdown) {
> +			if (initcall_debug)
> +				dev_info(dev, "shutdown\n");
> +			dev->class->shutdown(dev);
> +		}
>  		if (dev->bus && dev->bus->shutdown) {
>  			if (initcall_debug)
>  				dev_info(dev, "shutdown\n");
> diff --git a/include/linux/device.h b/include/linux/device.h index
> 9ef518af5515..a150f8d3b3f1 100644
> --- a/include/linux/device.h
> +++ b/include/linux/device.h
> @@ -378,6 +378,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.
> @@ -407,6 +408,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); @@ -1228,7 +1230,7
> @@ static inline int devtmpfs_delete_node(struct device *dev) { return 0; }
> static inline int devtmpfs_mount(const char *mountpoint) { return 0; }
> #endif
> 
> -/* drivers/base/power/shutdown.c */
> +/* drivers/base/core.c */
>  extern void device_shutdown(void);
> 
>  /* debugging and troubleshooting/diagnostic helpers. */
> --
> 2.13.0.rc2.291.g57267f2277-goog
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> tpmdd-devel mailing list
> tpmdd-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tpmdd-devel

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] Add "shutdown" to "struct class". Josh Zimmerman <joshz@google.com> - 2017-05-13 01:40 +0200
  RE: [tpmdd-devel] [PATCH] Add "shutdown" to "struct class". "Winkler, Tomas" <tomas.winkler@intel.com> - 2017-05-13 14:50 +0200
    Re: [tpmdd-devel] [PATCH] Add "shutdown" to "struct class". Jason Gunthorpe <jgunthorpe@obsidianresearch.com> - 2017-05-15 18:00 +0200
      RE: [tpmdd-devel] [PATCH] Add "shutdown" to "struct class". "Winkler, Tomas" <tomas.winkler@intel.com> - 2017-05-15 18:20 +0200

csiph-web