On Thu, Jun 21, 2018 at 01:45:03PM -0400, Stefan Berger wrote: > On 06/21/2018 01:15 PM, Jarkko Sakkinen wrote: > >On Wed, Jun 20, 2018 at 04:42:33PM -0400, Stefan Berger wrote: > >>Implement tpm_chip_find() for other subsystems to find a TPM chip and > >>get a reference to that chip. Once done with using the chip, the reference > >>is released using tpm_chip_put(). > >> > >>Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxxxxxxx> > >You should sort this out in a way that we don't end up with duplicate > >functions. > > Do you want me to create a function *like* tpm_chip_find_get() that takes an > additional parameter whether to get the ops semaphore and have that function > called by the existing tpm_chip_find_get() and the new tpm_chip_find(). The > latter would then not get the ops semphore. I didn't want to do this since > one time the function returns with a lock held and the other time not. Another option, and I haven't looked, is to revise the callers of tpm_chip_find_get to not require it to hold the ops semaphore for them. Either by giving them an API to do it, or revising the TPM entry points to do it. I didn't look, but how did the ops semaphore get grabbed in your revised patches? They do grab it, right? Jason