All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Nayna Jain <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Cc: tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH v5 5/7] tpm: redefine read_log() to handle ACPI/OF at runtime
Date: Wed, 19 Oct 2016 19:17:40 +0300	[thread overview]
Message-ID: <20161019161739.ium2peamjwarpb5d@intel.com> (raw)
In-Reply-To: <1476838185-24007-6-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>

On Tue, Oct 18, 2016 at 08:49:43PM -0400, Nayna Jain wrote:
> Currently, read_log() has two implementations: one for ACPI platforms
> and the other for device tree(OF) based platforms. The proper one is
> selected at compile time using Kconfig and #ifdef in the Makefile,
> which is not the recommended approach.
> 
> This patch removes the #ifdef in the Makefile by defining a single
> read_log() method, which checks for ACPI/OF event log properties at
> runtime.
> 
> Suggested-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
> Signed-off-by: Nayna Jain <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> Reviewed-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

Do we have situation where we need a compiled kernel image that is
both DT and ACPI enabled?

/Jarkko

> ---
>  drivers/char/tpm/Makefile       | 14 ++++----------
>  drivers/char/tpm/tpm_acpi.c     |  9 ++-------
>  drivers/char/tpm/tpm_eventlog.c | 18 ++++++++++++++++++
>  drivers/char/tpm/tpm_eventlog.h | 22 +++++++++++++---------
>  drivers/char/tpm/tpm_of.c       |  8 ++------
>  5 files changed, 39 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/char/tpm/Makefile b/drivers/char/tpm/Makefile
> index a385fb8..a05b1eb 100644
> --- a/drivers/char/tpm/Makefile
> +++ b/drivers/char/tpm/Makefile
> @@ -2,16 +2,10 @@
>  # Makefile for the kernel tpm device drivers.
>  #
>  obj-$(CONFIG_TCG_TPM) += tpm.o
> -tpm-y := tpm-interface.o tpm-dev.o tpm-sysfs.o tpm-chip.o tpm2-cmd.o
> -tpm-$(CONFIG_ACPI) += tpm_ppi.o
> -
> -ifdef CONFIG_ACPI
> -	tpm-y += tpm_eventlog.o tpm_acpi.o
> -else
> -ifdef CONFIG_TCG_IBMVTPM
> -	tpm-y += tpm_eventlog.o tpm_of.o
> -endif
> -endif
> +tpm-y := tpm-interface.o tpm-dev.o tpm-sysfs.o tpm-chip.o tpm2-cmd.o \
> +		tpm_eventlog.o
> +tpm-$(CONFIG_ACPI) += tpm_ppi.o tpm_acpi.o
> +tpm-$(CONFIG_OF) += tpm_of.o
>  obj-$(CONFIG_TCG_TIS_CORE) += tpm_tis_core.o
>  obj-$(CONFIG_TCG_TIS) += tpm_tis.o
>  obj-$(CONFIG_TCG_TIS_SPI) += tpm_tis_spi.o
> diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> index 4d6c2d7..859bdba 100644
> --- a/drivers/char/tpm/tpm_acpi.c
> +++ b/drivers/char/tpm/tpm_acpi.c
> @@ -6,6 +6,7 @@
>   *	Stefan Berger <stefanb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>   *	Reiner Sailer <sailer-aZOuKsOsJu3MbYB6QlFGEg@public.gmane.org>
>   *	Kylene Hall <kjhall-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> + *	Nayna Jain <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>   *
>   * Maintained by: <tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
>   *
> @@ -45,7 +46,7 @@ struct acpi_tcpa {
>  };
>  
>  /* read binary bios log */
> -int read_log(struct tpm_chip *chip)
> +int read_log_acpi(struct tpm_chip *chip)
>  {
>  	struct acpi_tcpa *buff;
>  	acpi_status status;
> @@ -54,12 +55,6 @@ int read_log(struct tpm_chip *chip)
>  	struct tpm_bios_log *log;
>  
>  	log = &chip->log;
> -	if (log->bios_event_log != NULL) {
> -		printk(KERN_ERR
> -		       "%s: ERROR - Eventlog already initialized\n",
> -		       __func__);
> -		return -EFAULT;
> -	}
>  
>  	/* Find TCPA entry in RSDT (ACPI_LOGICAL_ADDRESSING) */
>  	status = acpi_get_table(ACPI_SIG_TCPA, 1,
> diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
> index bb142f2..b60c028 100644
> --- a/drivers/char/tpm/tpm_eventlog.c
> +++ b/drivers/char/tpm/tpm_eventlog.c
> @@ -365,6 +365,24 @@ static int is_bad(void *p)
>  	return 0;
>  }
>  
> +int read_log(struct tpm_chip *chip)
> +{
> +	int rc;
> +
> +	if (chip->log.bios_event_log != NULL) {
> +		dev_dbg(&chip->dev, "%s: ERROR - Eventlog already initialized\n",
> +			__func__);
> +		return -EFAULT;
> +	}
> +
> +	rc = read_log_acpi(chip);
> +	if ((rc == 0) || (rc == -ENOMEM))
> +		return rc;
> +	rc = read_log_of(chip);
> +	return rc;
> +
> +}
> +
>  int tpm_bios_log_setup(struct tpm_chip *chip)
>  {
>  	const char *name = dev_name(&chip->dev);
> diff --git a/drivers/char/tpm/tpm_eventlog.h b/drivers/char/tpm/tpm_eventlog.h
> index 6df2f8e..be529ad 100644
> --- a/drivers/char/tpm/tpm_eventlog.h
> +++ b/drivers/char/tpm/tpm_eventlog.h
> @@ -73,20 +73,24 @@ enum tcpa_pc_event_ids {
>  	HOST_TABLE_OF_DEVICES,
>  };
>  
> -int read_log(struct tpm_chip *chip);
> -
> -#if defined(CONFIG_TCG_IBMVTPM) || defined(CONFIG_TCG_IBMVTPM_MODULE) || \
> -	defined(CONFIG_ACPI)
> -extern int tpm_bios_log_setup(struct tpm_chip *chip);
> -extern void tpm_bios_log_teardown(struct tpm_chip *chip);
> +#if defined(CONFIG_ACPI)
> +int read_log_acpi(struct tpm_chip *chip);
>  #else
> -static inline int tpm_bios_log_setup(struct tpm_chip *chip)
> +static inline int read_log_acpi(struct tpm_chip *chip)
>  {
> -	return 0;
> +	return -ENODEV;
>  }
> -static inline void tpm_bios_log_teardown(struct tpm_chip *chip)
> +#endif
> +#if defined(CONFIG_OF)
> +int read_log_of(struct tpm_chip *chip);
> +#else
> +static inline int read_log_of(struct tpm_chip *chip)
>  {
> +	return -ENODEV;
>  }
>  #endif
>  
> +int tpm_bios_log_setup(struct tpm_chip *chip);
> +void tpm_bios_log_teardown(struct tpm_chip *chip);
> +
>  #endif
> diff --git a/drivers/char/tpm/tpm_of.c b/drivers/char/tpm/tpm_of.c
> index 68d891a..7c30752 100644
> --- a/drivers/char/tpm/tpm_of.c
> +++ b/drivers/char/tpm/tpm_of.c
> @@ -2,6 +2,7 @@
>   * Copyright 2012 IBM Corporation
>   *
>   * Author: Ashley Lai <ashleydlai-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> + *         Nayna Jain <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>   *
>   * Maintained by: <tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
>   *
> @@ -20,7 +21,7 @@
>  #include "tpm.h"
>  #include "tpm_eventlog.h"
>  
> -int read_log(struct tpm_chip *chip)
> +int read_log_of(struct tpm_chip *chip)
>  {
>  	struct device_node *np;
>  	const u32 *sizep;
> @@ -28,11 +29,6 @@ int read_log(struct tpm_chip *chip)
>  	struct tpm_bios_log *log;
>  
>  	log = &chip->log;
> -	if (log->bios_event_log != NULL) {
> -		pr_err("%s: ERROR - Eventlog already initialized\n", __func__);
> -		return -EFAULT;
> -	}
> -
>  	np = of_find_node_by_name(NULL, "vtpm");
>  	if (!np) {
>  		pr_err("%s: ERROR - IBMVTPM not supported\n", __func__);
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot

  parent reply	other threads:[~2016-10-19 16:17 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-19  0:49 [PATCH v5 0/7] tpm: cleanup/fixes in existing event log support Nayna Jain
     [not found] ` <1476838185-24007-1-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-19  0:49   ` [PATCH v5 1/7] tpm: define a generic open() method for ascii & bios measurements Nayna Jain
     [not found]     ` <1476838185-24007-2-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-11-02 10:36       ` Jarkko Sakkinen
2016-10-19  0:49   ` [PATCH v5 2/7] tpm: replace dynamically allocated bios_dir with a static array Nayna Jain
2016-10-19  0:49   ` [PATCH v5 3/7] tpm: drop tpm1_chip_register(/unregister) Nayna Jain
2016-10-19  0:49   ` [PATCH v5 4/7] tpm: fix the race condition between event log access and chip getting unregistered Nayna Jain
     [not found]     ` <1476838185-24007-5-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-19 16:13       ` Jarkko Sakkinen
2016-10-20 20:28       ` Jason Gunthorpe
2016-11-04  5:14       ` Jarkko Sakkinen
     [not found]         ` <20161104051410.iqxb5k6fwizv7inc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-11-07 23:48           ` Jason Gunthorpe
     [not found]             ` <20161107234839.GC7002-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-11-08  0:26               ` Jarkko Sakkinen
     [not found]                 ` <20161108002642.4pvvubjcz57m4nov-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-11-08  0:29                   ` Jason Gunthorpe
     [not found]                     ` <20161108002943.GB13959-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-11-08  0:48                       ` Jarkko Sakkinen
2016-11-08  0:34                   ` Jarkko Sakkinen
2016-10-19  0:49   ` [PATCH v5 5/7] tpm: redefine read_log() to handle ACPI/OF at runtime Nayna Jain
     [not found]     ` <1476838185-24007-6-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-19 16:17       ` Jarkko Sakkinen [this message]
     [not found]         ` <20161019161739.ium2peamjwarpb5d-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-19 17:26           ` Jason Gunthorpe
     [not found]             ` <20161019172625.GC29879-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-10-20  7:17               ` Jarkko Sakkinen
2016-11-04  5:15       ` Jarkko Sakkinen
2016-10-19  0:49   ` [PATCH v5 6/7] tpm: replace of_find_node_by_name() with dev of_node property Nayna Jain
2016-10-19  0:49   ` [PATCH v5 7/7] tpm: replace or remove printk error messages Nayna Jain
     [not found]     ` <1476838185-24007-8-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-19 16:18       ` Jarkko Sakkinen
     [not found]         ` <20161019161854.iuzgacimusfcivvf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-20  7:34           ` Winkler, Tomas
     [not found]             ` <5B8DA87D05A7694D9FA63FD143655C1B5430045A-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-10-20 11:24               ` Jarkko Sakkinen
     [not found]                 ` <20161020112400.75pwp5ttk3yxuinq-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-21  3:22                   ` Nayna
     [not found]                     ` <580989E6.3060103-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-21 15:02                       ` Jarkko Sakkinen
     [not found]                         ` <20161021150250.24dyyi427rbnkpba-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-26  2:22                           ` Nayna
     [not found]                             ` <5810137D.2010002-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-26 10:56                               ` Jarkko Sakkinen
     [not found]                                 ` <20161026105649.kgav732btjfv4pfw-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-26 17:31                                   ` Nayna
     [not found]                                     ` <5810E854.3070905-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-27 13:53                                       ` Jarkko Sakkinen
     [not found]                                         ` <20161027135351.jndcn27xymgdgmux-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-10-27 15:05                                           ` Nayna
2016-10-20 13:31               ` Nayna
     [not found]                 ` <5808C747.4040709-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-20 13:43                   ` Jarkko Sakkinen
2016-11-04  5:18       ` Jarkko Sakkinen
2016-11-04 13:08   ` [PATCH v5 0/7] tpm: cleanup/fixes in existing event log support Jarkko Sakkinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161019161739.ium2peamjwarpb5d@intel.com \
    --to=jarkko.sakkinen-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    --cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.