tpm1: reimplement tpm1_continue_selftest() using tpm_buf
Reimplement tpm1_continue_selftest() using tpm_buf structure. This is the last command using the old tpm_cmd_t structure and now the structure can be removed. Cc: Nayna Jain <nayna@linux.vnet.ibm.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
This commit is contained in:
Родитель
9315e73ac8
Коммит
c82e59541a
|
@ -377,15 +377,6 @@ enum tpm_sub_capabilities {
|
||||||
TPM_CAP_PROP_TIS_DURATION = 0x120,
|
TPM_CAP_PROP_TIS_DURATION = 0x120,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union {
|
|
||||||
struct tpm_input_header in;
|
|
||||||
struct tpm_output_header out;
|
|
||||||
} tpm_cmd_header;
|
|
||||||
|
|
||||||
struct tpm_cmd_t {
|
|
||||||
tpm_cmd_header header;
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
|
|
||||||
/* 128 bytes is an arbitrary cap. This could be as large as TPM_BUFSIZE - 18
|
/* 128 bytes is an arbitrary cap. This could be as large as TPM_BUFSIZE - 18
|
||||||
* bytes, but 128 is still a relatively large number of random bytes and
|
* bytes, but 128 is still a relatively large number of random bytes and
|
||||||
|
|
|
@ -602,15 +602,8 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TPM_ORD_CONTINUE_SELFTEST 83
|
#define TPM_ORD_CONTINUE_SELFTEST 83
|
||||||
#define CONTINUE_SELFTEST_RESULT_SIZE 10
|
|
||||||
static const struct tpm_input_header continue_selftest_header = {
|
|
||||||
.tag = cpu_to_be16(TPM_TAG_RQU_COMMAND),
|
|
||||||
.length = cpu_to_be32(10),
|
|
||||||
.ordinal = cpu_to_be32(TPM_ORD_CONTINUE_SELFTEST),
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tpm_continue_selftest -- run TPM's selftest
|
* tpm_continue_selftest() - run TPM's selftest
|
||||||
* @chip: TPM chip to use
|
* @chip: TPM chip to use
|
||||||
*
|
*
|
||||||
* Returns 0 on success, < 0 in case of fatal error or a value > 0 representing
|
* Returns 0 on success, < 0 in case of fatal error or a value > 0 representing
|
||||||
|
@ -618,12 +611,18 @@ static const struct tpm_input_header continue_selftest_header = {
|
||||||
*/
|
*/
|
||||||
static int tpm1_continue_selftest(struct tpm_chip *chip)
|
static int tpm1_continue_selftest(struct tpm_chip *chip)
|
||||||
{
|
{
|
||||||
|
struct tpm_buf buf;
|
||||||
int rc;
|
int rc;
|
||||||
struct tpm_cmd_t cmd;
|
|
||||||
|
|
||||||
cmd.header.in = continue_selftest_header;
|
rc = tpm_buf_init(&buf, TPM_TAG_RQU_COMMAND, TPM_ORD_CONTINUE_SELFTEST);
|
||||||
rc = tpm_transmit_cmd(chip, NULL, &cmd, CONTINUE_SELFTEST_RESULT_SIZE,
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
rc = tpm_transmit_cmd(chip, NULL, buf.data, PAGE_SIZE,
|
||||||
0, 0, "continue selftest");
|
0, 0, "continue selftest");
|
||||||
|
|
||||||
|
tpm_buf_destroy(&buf);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче