On 03/15/17 11:02, Jarkko Sakkinen wrote:
> On Tue, Mar 14, 2017 at 08:32:32PM -0500, Jiandi An wrote:
>> TCG ACPI Specification Family "1.2" and "2.0" Version 1.2
>> Revision 8 introduces new start method for ARM SMC.
>>
>> - Add new start method (type 11) for ARM SMC
>> - Add start method specific parameters for ARM SMC start method
>>
>> Signed-off-by: Jiandi An <[email protected]>
>> ---
>> drivers/char/tpm/tpm_crb.c | 6 +++++-
>> drivers/char/tpm/tpm_tis.c | 6 +++++-
>> include/acpi/actbl2.h | 12 ++++++++++++
>> 3 files changed, 22 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
>> index cb6fb13..089fcf8 100644
>> --- a/drivers/char/tpm/tpm_crb.c
>> +++ b/drivers/char/tpm/tpm_crb.c
>> @@ -410,12 +410,16 @@ static int crb_acpi_add(struct acpi_device
> *device)
>> struct tpm_chip *chip;
>> struct device *dev = &device->dev;
>> acpi_status status;
>> + u32 default_len;
>> u32 sm;
>> int rc;
>>
>> + default_len = sizeof(struct acpi_table_tpm2) -
>> + sizeof(union platform_params);
>
> Maybe you should consider not putting struct crb_smc to actbl2.h. This
> makes tpm_crb.c a mess.
Will fix this in v3.
- Jiandi
>
>> +
>> status = acpi_get_table(ACPI_SIG_TPM2, 1,
>> (struct acpi_table_header **) &buf);
>> - if (ACPI_FAILURE(status) || buf->header.length < sizeof(*buf)) {
>> + if (ACPI_FAILURE(status) || buf->header.length < default_len) {
>> dev_err(dev, FW_BUG "failed to get TPM2 ACPI table\n");
>> return -EINVAL;
>> }
>> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
>> index c7e1384..0e2e5f6 100644
>> --- a/drivers/char/tpm/tpm_tis.c
>> +++ b/drivers/char/tpm/tpm_tis.c
>> @@ -253,11 +253,15 @@ static int tpm_tis_acpi_init(struct acpi_device
> *acpi_dev)
>> acpi_status st;
>> struct list_head resources;
>> struct tpm_info tpm_info = {};
>> + u32 default_len;
>> int ret;
>>
>> + default_len = sizeof(struct acpi_table_tpm2) -
>> + sizeof(union platform_params);
>> +
>
> And more clutter.
>
>> st = acpi_get_table(ACPI_SIG_TPM2, 1,
>> (struct acpi_table_header **) &tbl);
>> - if (ACPI_FAILURE(st) || tbl->header.length < sizeof(*tbl)) {
>> + if (ACPI_FAILURE(st) || tbl->header.length < default_len) {
>> dev_err(&acpi_dev->dev,
>> FW_BUG "failed to get TPM2 ACPI table\n");
>> return -EINVAL;
>> diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
>> index 7aee9fb..9612049 100644
>> --- a/include/acpi/actbl2.h
>> +++ b/include/acpi/actbl2.h
>> @@ -1277,6 +1277,14 @@ struct acpi_table_tcpa_server {
>> *
>>
> **************************************************************************
> ****/
>>
>> +struct tpm2_crb_smc {
>> + u32 interrupt;
>> + u8 interrupt_flags;
>> + u8 op_flags;
>> + u16 reserved2;
>> + u32 smc_func_id;
>> +};
>> +
>> struct acpi_table_tpm2 {
>> struct acpi_table_header header; /* Common ACPI table
> header */
>> u16 platform_class;
>> @@ -1285,6 +1293,9 @@ struct acpi_table_tpm2 {
>> u32 start_method;
>>
>> /* Platform-specific data follows */
>> + union platform_params {
>> + struct tpm2_crb_smc smc_params;
>> + } platform_data;
>
> Why the union type is not anonymous? ACPICA change should be its
> own commit.
>
> /Jarkko
Thanks. I realized it's not a good idea to change the size of
acpi_table_tpm2.
I will address this in V3 to avoid clutters in tpm_crb and tpm_tis
driver and make ACPICA change its own commit.
- Jiandi
>
> --------------------------------------------------------------------------
> ----
> 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
>
--
Qualcomm Datacenter Technologies, Inc.
as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
------------------------------------------------------------------------------
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