@@ -180,8 +180,7 @@ static void tpm_emulator_handle_request(TPMBackend *tb, TPMBackendCmd *cmd)
DPRINTF("processing TPM command");
- if (tpm_emulator_set_locality(tpm_emu,
- tb->tpm_state->locty_number, &err) < 0) {
+ if (tpm_emulator_set_locality(tpm_emu, cmd->locty, &err) < 0) {
goto error;
}
@@ -24,8 +24,6 @@ struct TPMState {
TPMTISEmuState tis;
} s;
- uint8_t locty_number;
- TPMLocality *locty_data;
TPMBackendCmd cmd;
char *backend;
@@ -203,12 +203,10 @@ static void tpm_tis_sts_set(TPMLocality *l, uint32_t flags)
static void tpm_tis_tpm_send(TPMState *s, uint8_t locty)
{
TPMTISEmuState *tis = &s->s.tis;
+ TPMLocality *locty_data = &tis->loc[locty];
tpm_tis_show_buffer(&tis->loc[locty].w_buffer, "tpm_tis: To TPM");
- s->locty_number = locty;
- s->locty_data = &tis->loc[locty];
-
/*
* w_offset serves as length indicator for length of data;
* it's reset when the response comes back
@@ -217,10 +215,10 @@ static void tpm_tis_tpm_send(TPMState *s, uint8_t locty)
s->cmd = (TPMBackendCmd) {
.locty = locty,
- .in = s->locty_data->w_buffer.buffer,
- .in_len = s->locty_data->w_offset,
- .out = s->locty_data->r_buffer.buffer,
- .out_len = s->locty_data->r_buffer.size
+ .in = locty_data->w_buffer.buffer,
+ .in_len = locty_data->w_offset,
+ .out = locty_data->r_buffer.buffer,
+ .out_len = locty_data->r_buffer.size
};
tpm_backend_deliver_request(s->be_driver, &s->cmd);