tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
authorGeorge Wilson <gcwilson@linux.ibm.com>
Fri, 20 Mar 2020 03:27:58 +0000 (23:27 -0400)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 20 Apr 2020 21:06:13 +0000 (00:06 +0300)
commiteba5cf3dcb844c82f54d4a857e124824e252206d
tree4c0420325bc07e302226baf59cb052fe6026bec9
parent684c6bd806253bf65dbb64978fc113ff081b4aea
tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()

tpm_ibmvtpm_send() can fail during PowerVM Live Partition Mobility resume
with an H_CLOSED return from ibmvtpm_send_crq().  The PAPR says, 'The
"partner partition suspended" transport event disables the associated CRQ
such that any H_SEND_CRQ hcall() to the associated CRQ returns H_Closed
until the CRQ has been explicitly enabled using the H_ENABLE_CRQ hcall.'
This patch adds a check in tpm_ibmvtpm_send() for an H_CLOSED return from
ibmvtpm_send_crq() and in that case calls tpm_ibmvtpm_resume() and
retries the ibmvtpm_send_crq() once.

Cc: stable@vger.kernel.org # 3.7.x
Fixes: 132f76294744 ("drivers/char/tpm: Add new device driver to support IBM vTPM")
Reported-by: Linh Pham <phaml@us.ibm.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: George Wilson <gcwilson@linux.ibm.com>
Tested-by: Linh Pham <phaml@us.ibm.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm_ibmvtpm.c