This patch worked.  Can you merge it with Jarkko's latest?

I can report that my attestation client works unmodified with the 
resource manager.  I just had to point it to /dev/tpmrm0.  It's a 
Nuvoton TPM, I2C bus, POWER architecture.

It does quite a bit - transient and persistent objects, getcapability,
reading NV indexes, policy sessions.  I did the RSA and ECC variants in 
parallel, so there should have been a bit of swapping.

On 3/29/2017 2:40 PM, James Bottomley wrote:
> On Tue, 2017-03-28 at 17:39 -0400, Ken Goldman wrote:
>> I have a persistent object at 81000001.
>>
>> getcapability through /dev/tpm0 shows it.  The same command through
>> /dev/tpmrm0 does not.  This causes further problems in the
>> application.
>>
>> While transient objects are per connection, IMHO persistent objects
>> should be global.
>>
>> ~~
>>
>> Warning:  I think I'm using the latest TPM device driver from
>>
>> git://git.infradead.org/users/jjs/linux-tpmdd.git
>>
>> but I'm new to both git and kernel building, so I could be wrong.  If
>> you think the above should work, it could be my error.
>
> It should work.  It turns out the body mapping code is overzealous and
> errors out when it should just pass through.  The same thing happens
> with the PCRs as well.
>
> This should fix it for both.
>
> James
>
> ---
>
> diff --git a/drivers/char/tpm/tpm2-space.c b/drivers/char/tpm/tpm2-space.c
> index 009934269514..e2e059d8ffec 100644
> --- a/drivers/char/tpm/tpm2-space.c
> +++ b/drivers/char/tpm/tpm2-space.c
> @@ -429,15 +429,11 @@ static int tpm2_map_response_body(struct tpm_chip 
> *chip, u32 cc, u8 *rsp,
>                       data->handles[j] = cpu_to_be32(vhandle);
>                       j++;
>                       break;
> -             case TPM2_HT_HMAC_SESSION:
> -             case TPM2_HT_POLICY_SESSION:
> +
> +             default:
>                       data->handles[j] = cpu_to_be32(phandle);
>                       j++;
>                       break;
> -             default:
> -                     dev_err(&chip->dev, "%s: unknown handle 0x%08X\n",
> -                             __func__, phandle);
> -                     break;
>               }
>
>       }
>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
tpmdd-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tpmdd-devel

Reply via email to