OrangePi_CM5/drivers/char
Stefan Berger 6627be8b36 tpm: ibmvtpm: Avoid error message when process gets signal while waiting
[ Upstream commit 047d4226b0bca1cda5267dc68bc8291cce5364ac ]

When rngd is run as root then lots of these types of message will appear
in the kernel log if the TPM has been configured 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);

Rather than waiting for the response in the low level driver, have it use
the polling loop in tpm_try_transmit() that uses a command's duration to
poll until a result has been returned by the TPM, thus ending when the
timeout has occurred but not responding to signals and ctrl-c anymore. To
stay in this polling loop extend tpm_ibmvtpm_status() to return
'true' for as long as the vTPM is indicated as being busy in
tpm_processing_cmd. Since the loop requires the TPM's timeouts, get them
now using tpm_get_timeouts() after setting the TPM2 version flag on the
chip.

To recreat the resolved issue start rngd like this:

sudo rngd -r /dev/hwrng -t
sudo rngd -r /dev/tpm0 -t

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1981473
Fixes: 6674ff145e ("tpm_ibmvtpm: properly handle interrupted packet receptions")
Cc: Nayna Jain <nayna@linux.ibm.com>
Cc: George Wilson <gcwilson@linux.ibm.com>
Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-15 09:50:30 +02:00
..
agp parisc: parisc-agp requires SBA IOMMU driver 2021-04-14 08:41:59 +02:00
hw_random hwrng: exynos - Fix runtime PM imbalance on error 2021-07-14 16:55:50 +02:00
ipmi ipmi/watchdog: Stop watchdog timer when the current action is 'none' 2021-07-19 09:44:59 +02:00
mwave
…
pcmcia char: pcmcia: error out if 'num_bytes_read' is greater than 4 in set_protocol() 2021-07-14 16:56:39 +02:00
tpm tpm: ibmvtpm: Avoid error message when process gets signal while waiting 2021-09-15 09:50:30 +02:00
xilinx_hwicap
…
xillybus
…
Kconfig
…
Makefile
…
adi.c
…
apm-emulation.c
…
applicom.c
…
applicom.h
…
bsr.c
…
ds1620.c
…
dsp56k.c
…
dtlk.c
…
hangcheck-timer.c
…
hpet.c char: hpet: add checks after calling ioremap 2021-06-03 09:00:41 +02:00
lp.c
…
mem.c
…
misc.c
…
mspec.c
…
nsc_gpio.c
…
nvram.c
…
nwbutton.c
…
nwbutton.h
…
nwflash.c
…
pc8736x_gpio.c
…
powernv-op-panel.c
…
ppdev.c
…
ps3flash.c
…
random.c random: initialize ChaCha20 constants with correct endianness 2021-05-11 14:47:19 +02:00
raw.c
…
scx200_gpio.c
…
sonypi.c
…
tb0219.c
…
tlclk.c
…
toshiba.c
…
ttyprintk.c ttyprintk: Add TTY hangup callback. 2021-05-14 09:50:21 +02:00
uv_mmtimer.c
…
virtio_console.c virtio_console: Assure used length from device is limited 2021-07-20 16:05:49 +02:00