Re: [PATCH] tpm/tpm_i2c_infineon: ensure no ongoing commands on shutdown

From: Jason Gunthorpe
Date: Fri Jan 13 2017 - 19:30:10 EST


On Fri, Jan 13, 2017 at 04:09:54PM -0800, Andrey Pronin wrote:
> Resetting TPM while processing a command may lead to issues
> on the next boot. Ensure that we don't have any ongoing
> commands, and that no further commands can be sent to the chip
> by unregistering the device in the shutdown handler.
> tpm_chip_unregister() waits for the completion of an ongoing
> command, if any, and then clears out chip->ops and unregisters
> sysfs entities.

Unregistering in a shutdown handler seems very strange, it also waits
for userspace things, so I wonder if it could be problematic?

Maybe just use

down_write(&chip->ops_sem);
chip->ops = NULL;
up_write(&chip->ops_sem);

In the shutdown handler?

Jason