• Roberto Sassu's avatar
    tpm: dynamically allocate the allocated_banks array · bcfff838
    Roberto Sassu authored
    This patch renames active_banks (member of tpm_chip) to allocated_banks,
    stores the number of allocated PCR banks in nr_allocated_banks (new member
    of tpm_chip), and replaces the static array with a pointer to a dynamically
    allocated array.
    
    tpm2_get_pcr_allocation() determines if a PCR bank is allocated by checking
    the mask in the TPML_PCR_SELECTION structure returned by the TPM for
    TPM2_Get_Capability(). If a bank is not allocated, the TPM returns that
    bank in TPML_PCR_SELECTION, with all bits in the mask set to zero. In this
    case, the bank is not included in chip->allocated_banks, to avoid that TPM
    driver users unnecessarily calculate a digest for that bank.
    
    One PCR bank with algorithm set to SHA1 is always allocated for TPM 1.x.
    
    As a consequence of the introduction of nr_allocated_banks,
    tpm_pcr_extend() does not check anymore if the algorithm stored in tpm_chip
    is equal to zero.
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Tested-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    bcfff838
tpm-interface.c 14 KB