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:
Tomas Winkler 2018-10-19 21:23:06 +03:00 committed by Jarkko Sakkinen
parent 9315e73ac8
commit c82e59541a
2 changed files with 10 additions and 20 deletions

View file

@ -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

View file

@ -602,15 +602,8 @@ int tpm1_pcr_read(struct tpm_chip *chip, int pcr_idx, u8 *res_buf)
} }
#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;
} }