All of lore.kernel.org
 help / color / mirror / Atom feed
From: Auger Eric <eric.auger@redhat.com>
To: Stefan Berger <stefanb@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com,
	Stefan Berger <stefanb@linux.ibm.com>,
	philmd@redhat.com, mkedzier@redhat.com, pbonzini@redhat.com
Subject: Re: [PATCH v4 7/8] tpm: Guard irq related ops in case interrupts are disabled
Date: Thu, 18 Jun 2020 09:22:12 +0200	[thread overview]
Message-ID: <d9c4ae07-7093-e346-03c3-086efd225c4d@redhat.com> (raw)
In-Reply-To: <20200617142305.1198672-8-stefanb@linux.vnet.ibm.com>

Hi,

On 6/17/20 4:23 PM, Stefan Berger wrote:
> Check for irq_num having the value of TPM_IRQ_DISABLED before calling any
> IRQ related functions or allowing the user to try to enable interrupts.
> Explicitly allow the value of TPM_IRQ_DISABLED in irq_num.
> 
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
> Message-id: 20200616205721.1191408-8-stefanb@linux.vnet.ibm.com
Reviewed-by: Eric Auger <eric.auger@redhat.com>

Eric
> ---
>  hw/tpm/tpm_tis_common.c | 12 +++++++++++-
>  hw/tpm/tpm_tis_isa.c    |  6 ++++--
>  2 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/tpm/tpm_tis_common.c b/hw/tpm/tpm_tis_common.c
> index 0f42696f1f..13b233309e 100644
> --- a/hw/tpm/tpm_tis_common.c
> +++ b/hw/tpm/tpm_tis_common.c
> @@ -359,7 +359,11 @@ static uint64_t tpm_tis_mmio_read(void *opaque, hwaddr addr,
>          val = s->loc[locty].inte;
>          break;
>      case TPM_TIS_REG_INT_VECTOR:
> -        val = s->irq_num;
> +        if (s->irq_num != TPM_IRQ_DISABLED) {
> +            val = s->irq_num;
> +        } else {
> +            val = 0;
> +        }
>          break;
>      case TPM_TIS_REG_INT_STATUS:
>          val = s->loc[locty].ints;
> @@ -591,6 +595,9 @@ static void tpm_tis_mmio_write(void *opaque, hwaddr addr,
>          if (s->active_locty != locty) {
>              break;
>          }
> +        if (s->irq_num == TPM_IRQ_DISABLED) {
> +            val &= ~TPM_TIS_INT_ENABLED;
> +        }
>  
>          s->loc[locty].inte &= mask;
>          s->loc[locty].inte |= (val & (TPM_TIS_INT_ENABLED |
> @@ -601,6 +608,9 @@ static void tpm_tis_mmio_write(void *opaque, hwaddr addr,
>          /* hard wired -- ignore */
>          break;
>      case TPM_TIS_REG_INT_STATUS:
> +        if (s->irq_num == TPM_IRQ_DISABLED) {
> +            break;
> +        }
>          /* clearing of interrupt flags */
>          if (((val & TPM_TIS_INTERRUPTS_SUPPORTED)) &&
>              (s->loc[locty].ints & TPM_TIS_INTERRUPTS_SUPPORTED)) {
> diff --git a/hw/tpm/tpm_tis_isa.c b/hw/tpm/tpm_tis_isa.c
> index 27222a9a49..d72f733ead 100644
> --- a/hw/tpm/tpm_tis_isa.c
> +++ b/hw/tpm/tpm_tis_isa.c
> @@ -127,13 +127,15 @@ static void tpm_tis_isa_realizefn(DeviceState *dev, Error **errp)
>          error_setg(errp, "'tpmdev' property is required");
>          return;
>      }
> -    if (s->irq_num > 15) {
> +    if (s->irq_num > 15 && s->irq_num != TPM_IRQ_DISABLED) {
>          error_setg(errp, "IRQ %d is outside valid range of 0 to 15",
>                     s->irq_num);
>          return;
>      }
>  
> -    isa_init_irq(ISA_DEVICE(dev), &s->irq, s->irq_num);
> +    if (s->irq_num != TPM_IRQ_DISABLED) {
> +        isa_init_irq(ISA_DEVICE(dev), &s->irq, s->irq_num);
> +    }
>  
>      memory_region_add_subregion(isa_address_space(ISA_DEVICE(dev)),
>                                  TPM_TIS_ADDR_BASE, &s->mmio);
> 



  reply	other threads:[~2020-06-18  7:23 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-17 14:22 [PATCH v4 0/8] tpm: Enable usage of TPM TIS with interrupts Stefan Berger
2020-06-17 14:22 ` [PATCH v4 1/8] tpm_tis: Allow lowering of IRQ also when locality is not active Stefan Berger
2020-06-17 14:22 ` [PATCH v4 2/8] tpm: Extend TPMIfClass with get_irqnum() function Stefan Berger
2020-06-18  7:10   ` Auger Eric
2020-06-17 14:23 ` [PATCH v4 3/8] tests: Temporarily ignore DSDT table differences Stefan Berger
2020-06-17 14:23 ` [PATCH v4 4/8] tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ Stefan Berger
2020-06-18  7:10   ` Auger Eric
2020-06-17 14:23 ` [PATCH v4 5/8] acpi: Enable TPM IRQ Stefan Berger
2020-06-18  7:12   ` Auger Eric
2020-06-23 13:01   ` Igor Mammedov
2020-06-17 14:23 ` [PATCH v4 6/8] tests: Add updated DSDT Stefan Berger
2020-06-18  7:13   ` Auger Eric
2020-06-23 13:06   ` Igor Mammedov
2020-06-17 14:23 ` [PATCH v4 7/8] tpm: Guard irq related ops in case interrupts are disabled Stefan Berger
2020-06-18  7:22   ` Auger Eric [this message]
2020-06-17 14:23 ` [PATCH v4 8/8] tpm: Disable interrupt support for TIS on sysbus Stefan Berger
2020-06-18  7:22   ` Auger Eric
2020-06-17 14:33 ` [PATCH v4 0/8] tpm: Enable usage of TPM TIS with interrupts no-reply
2020-06-17 14:50 ` no-reply
2020-06-18  7:27 ` Auger Eric
2020-06-25 22:37   ` Stefan Berger
2020-06-23 13:09 ` Michael S. Tsirkin
2020-06-23 13:23   ` Stefan Berger

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=d9c4ae07-7093-e346-03c3-086efd225c4d@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mkedzier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanb@linux.ibm.com \
    --cc=stefanb@linux.vnet.ibm.com \
    /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.