[tpmdd-devel,2/3] tpm: vtpm_proxy: Implement request_locality

Submitted by Stefan Berger on April 17, 2017, 3:19 p.m.

Details

Message ID 1492442371-30252-3-git-send-email-stefanb@linux.vnet.ibm.com
State New
Headers show

Commit Message

Stefan Berger April 17, 2017, 3:19 p.m.
Implement the request_locality function. Accept all localties assuming
that the emulator handling the localities will check for a valid locality.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
 drivers/char/tpm/tpm_vtpm_proxy.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Jason Gunthorpe April 18, 2017, 4:47 p.m.
On Mon, Apr 17, 2017 at 11:19:30AM -0400, Stefan Berger wrote:
> Implement the request_locality function. Accept all localties assuming
> that the emulator handling the localities will check for a valid locality.
> 
> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
>  drivers/char/tpm/tpm_vtpm_proxy.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c
> index be0a268..bf59426 100644
> +++ b/drivers/char/tpm/tpm_vtpm_proxy.c
> @@ -371,6 +371,11 @@ static bool vtpm_proxy_tpm_req_canceled(struct tpm_chip  *chip, u8 status)
>  	return ret;
>  }
>  
> +static int vtpm_proxy_request_locality(struct tpm_chip *chip, int locality)
> +{
> +	return locality;
> +}

I thought we had agreed to make this function pass/fail?

Jason

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Stefan Berger April 18, 2017, 10:41 p.m.
On 04/18/2017 12:47 PM, Jason Gunthorpe wrote:
> On Mon, Apr 17, 2017 at 11:19:30AM -0400, Stefan Berger wrote:
>> Implement the request_locality function. Accept all localties assuming
>> that the emulator handling the localities will check for a valid locality.
>>
>> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
>>   drivers/char/tpm/tpm_vtpm_proxy.c | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c
>> index be0a268..bf59426 100644
>> +++ b/drivers/char/tpm/tpm_vtpm_proxy.c
>> @@ -371,6 +371,11 @@ static bool vtpm_proxy_tpm_req_canceled(struct tpm_chip  *chip, u8 status)
>>   	return ret;
>>   }
>>   
>> +static int vtpm_proxy_request_locality(struct tpm_chip *chip, int locality)
>> +{
>> +	return locality;
>> +}
> I thought we had agreed to make this function pass/fail?


What do you mean? The TIS driver for example returns the locality if 
accepted, a negative error code otherwise. In the case of the vtpm proxy 
I would let the emulator handle the locality on the level of TPM error 
codes (TPM_BAD_LOCALITY for TPM1.2 or TPM_RC_LOCALITY for TPM 2).

   Stefan


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Jarkko Sakkinen April 19, 2017, 3:35 p.m.
On Tue, Apr 18, 2017 at 06:41:28PM -0400, Stefan Berger wrote:
> On 04/18/2017 12:47 PM, Jason Gunthorpe wrote:
> > On Mon, Apr 17, 2017 at 11:19:30AM -0400, Stefan Berger wrote:
> > > Implement the request_locality function. Accept all localties assuming
> > > that the emulator handling the localities will check for a valid locality.
> > > 
> > > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> > >   drivers/char/tpm/tpm_vtpm_proxy.c | 6 ++++++
> > >   1 file changed, 6 insertions(+)
> > > 
> > > diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c
> > > index be0a268..bf59426 100644
> > > +++ b/drivers/char/tpm/tpm_vtpm_proxy.c
> > > @@ -371,6 +371,11 @@ static bool vtpm_proxy_tpm_req_canceled(struct tpm_chip  *chip, u8 status)
> > >   	return ret;
> > >   }
> > > +static int vtpm_proxy_request_locality(struct tpm_chip *chip, int locality)
> > > +{
> > > +	return locality;
> > > +}
> > I thought we had agreed to make this function pass/fail?
> 
> 
> What do you mean? The TIS driver for example returns the locality if
> accepted, a negative error code otherwise. In the case of the vtpm proxy I
> would let the emulator handle the locality on the level of TPM error codes
> (TPM_BAD_LOCALITY for TPM1.2 or TPM_RC_LOCALITY for TPM 2).
> 
>   Stefan

Jason,

I tried to make "lowest common denominator" change for 4.12 just to
get work started and issue in tpm_crb sorted out. We can revisit this
for 4.13.

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

Patch hide | download patch | download mbox

diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c
index be0a268..bf59426 100644
--- a/drivers/char/tpm/tpm_vtpm_proxy.c
+++ b/drivers/char/tpm/tpm_vtpm_proxy.c
@@ -371,6 +371,11 @@  static bool vtpm_proxy_tpm_req_canceled(struct tpm_chip  *chip, u8 status)
 	return ret;
 }
 
+static int vtpm_proxy_request_locality(struct tpm_chip *chip, int locality)
+{
+	return locality;
+}
+
 static const struct tpm_class_ops vtpm_proxy_tpm_ops = {
 	.flags = TPM_OPS_AUTO_STARTUP,
 	.recv = vtpm_proxy_tpm_op_recv,
@@ -380,6 +385,7 @@  static const struct tpm_class_ops vtpm_proxy_tpm_ops = {
 	.req_complete_mask = VTPM_PROXY_REQ_COMPLETE_FLAG,
 	.req_complete_val = VTPM_PROXY_REQ_COMPLETE_FLAG,
 	.req_canceled = vtpm_proxy_tpm_req_canceled,
+	.request_locality = vtpm_proxy_request_locality,
 };
 
 /*