From: Stefan Berger <stefanb@linux.ibm.com> To: Jarkko Sakkinen <jarkko@kernel.org> Cc: Stefan Berger <stefanb@linux.vnet.ibm.com>, peterhuewe@gmx.de, jgg@ziepe.ca, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Nayna Jain <nayna@linux.ibm.com>, George Wilson <gcwilson@linux.ibm.com>, Nageswara R Sastry <rnsastry@linux.ibm.com> Subject: Re: [PATCH] tpm: ibmvtpm: Avoid error message when process gets signal while waiting Date: Fri, 30 Jul 2021 07:45:47 -0400 [thread overview] Message-ID: <31309ba8-fe05-d85d-b2c6-72499ef1ff17@linux.ibm.com> (raw) In-Reply-To: <20210730005744.ph7x6nme5ngtpf43@kernel.org> On 7/29/21 8:57 PM, Jarkko Sakkinen wrote: > On Thu, Jul 29, 2021 at 09:39:18AM -0400, Stefan Berger wrote: >> On 7/28/21 5:50 PM, Jarkko Sakkinen wrote: >>> On Mon, Jul 26, 2021 at 11:00:51PM -0400, Stefan Berger wrote: >>>> On 7/26/21 10:42 PM, Jarkko Sakkinen wrote: >>>>> On Mon, Jul 12, 2021 at 12:25:05PM -0400, Stefan Berger wrote: >>>>>> From: Stefan Berger <stefanb@linux.ibm.com> >>>>>> >>>>>> When rngd is run as root then lots of these types of message will appear >>>>>> in the kernel log if the TPM has been configure to provide random bytes: >>>>>> >>>>>> [ 7406.275163] tpm tpm0: tpm_transmit: tpm_recv: error -4 >>>>>> >>>>>> The issue is caused by the following call that is interrupted while >>>>>> waiting for the TPM's response. >>>>>> >>>>>> sig = wait_event_interruptible(ibmvtpm->wq, >>>>>> !ibmvtpm->tpm_processing_cmd); >>>>>> >>>>>> The solution is to use wait_event() instead. >>>>> Why? >>>> So it becomes uninterruptible and these error messages go away. >>> We do not want to make a process uninterruptible. That would prevent >>> killing it. >> I guess we'll have to go back to this one then: >> https://www.spinics.net/lists/linux-integrity/msg16741.html > Makes a heck lot more sense. > > There's a typo in the commit message: PM_STATUS_BUSY > > Also the commit message lacks explanation of this change completely: > > @@ -690,8 +688,15 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev, > goto init_irq_cleanup; > } > > - if (!strcmp(id->compat, "IBM,vtpm20")) { > + > + if (!strcmp(id->compat, "IBM,vtpm20")) > chip->flags |= TPM_CHIP_FLAG_TPM2; > + > + rc = tpm_get_timeouts(chip); > + if (rc) > + goto init_irq_cleanup; > + > + if (chip->flags & TPM_CHIP_FLAG_TPM2) { > rc = tpm2_get_cc_attrs_tbl(chip); > > The last paragraph should be rewritten in imperative form. will fix. > > Finally, you could simplify the fix by simply changing the type of > tpm_processing_cmd to u8, and just set it to 'true' and 'false', > which will set the first bit. Are you sure? It's a bit mask we are using this with. Using 'true' for these type of operations doesn't sound right. u8 status = chip->ops->status(chip); if ((status & chip->ops->req_complete_mask) == chip->ops->req_complete_val) goto out_recv; https://elixir.bootlin.com/linux/latest/source/drivers/char/tpm/tpm-interface.c#L108 @@ -457,7 +455,7 @@ static const struct tpm_class_ops tpm_ibmvtpm = { .send = tpm_ibmvtpm_send, .cancel = tpm_ibmvtpm_cancel, .status = tpm_ibmvtpm_status, - .req_complete_mask = 0, + .req_complete_mask = TPM_STATUS_BUSY, .req_complete_val = 0, .req_canceled = tpm_ibmvtpm_req_canceled, }; Stefan > > /Jarkko
next prev parent reply other threads:[~2021-07-30 11:45 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-12 16:25 Stefan Berger 2021-07-13 5:03 ` Nageswara Sastry 2021-07-27 2:42 ` Jarkko Sakkinen 2021-07-27 3:00 ` Stefan Berger 2021-07-28 21:50 ` Jarkko Sakkinen 2021-07-29 13:39 ` Stefan Berger 2021-07-30 0:57 ` Jarkko Sakkinen 2021-07-30 11:45 ` Stefan Berger [this message] 2021-07-29 16:19 Stefan Berger 2021-07-30 4:15 ` Nageswara Sastry
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=31309ba8-fe05-d85d-b2c6-72499ef1ff17@linux.ibm.com \ --to=stefanb@linux.ibm.com \ --cc=gcwilson@linux.ibm.com \ --cc=jarkko@kernel.org \ --cc=jgg@ziepe.ca \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=nayna@linux.ibm.com \ --cc=peterhuewe@gmx.de \ --cc=rnsastry@linux.ibm.com \ --cc=stefanb@linux.vnet.ibm.com \ --subject='Re: [PATCH] tpm: ibmvtpm: Avoid error message when process gets signal while waiting' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).