tpm-backend: Move realloc_buffer() implementation to tpm-tis model
buffer reallocation is very unlikely to be backend specific. Hence move inside the tis. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
This commit is contained in:
parent
f59864ba3a
commit
d0c519bdff
@ -80,15 +80,6 @@ bool tpm_backend_had_startup_error(TPMBackend *s)
|
||||
return s->had_startup_error;
|
||||
}
|
||||
|
||||
size_t tpm_backend_realloc_buffer(TPMBackend *s, TPMSizedBuffer *sb)
|
||||
{
|
||||
TPMBackendClass *k = TPM_BACKEND_GET_CLASS(s);
|
||||
|
||||
assert(k->ops->realloc_buffer);
|
||||
|
||||
return k->ops->realloc_buffer(sb);
|
||||
}
|
||||
|
||||
void tpm_backend_deliver_request(TPMBackend *s)
|
||||
{
|
||||
g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_PROCESS_CMD,
|
||||
|
@ -247,17 +247,6 @@ static int tpm_passthrough_reset_tpm_established_flag(TPMBackend *tb,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static size_t tpm_passthrough_realloc_buffer(TPMSizedBuffer *sb)
|
||||
{
|
||||
size_t wanted_size = 4096; /* Linux tpm.c buffer size */
|
||||
|
||||
if (sb->size != wanted_size) {
|
||||
sb->buffer = g_realloc(sb->buffer, wanted_size);
|
||||
sb->size = wanted_size;
|
||||
}
|
||||
return sb->size;
|
||||
}
|
||||
|
||||
static void tpm_passthrough_cancel_cmd(TPMBackend *tb)
|
||||
{
|
||||
TPMPassthruState *tpm_pt = TPM_PASSTHROUGH(tb);
|
||||
@ -435,7 +424,6 @@ static const TPMDriverOps tpm_passthrough_driver = {
|
||||
.opts = tpm_passthrough_cmdline_opts,
|
||||
.desc = "Passthrough TPM backend driver",
|
||||
.create = tpm_passthrough_create,
|
||||
.realloc_buffer = tpm_passthrough_realloc_buffer,
|
||||
.reset = tpm_passthrough_reset,
|
||||
.cancel_cmd = tpm_passthrough_cancel_cmd,
|
||||
.get_tpm_established_flag = tpm_passthrough_get_tpm_established_flag,
|
||||
|
@ -963,6 +963,16 @@ static int tpm_tis_do_startup_tpm(TPMState *s)
|
||||
return tpm_backend_startup_tpm(s->be_driver);
|
||||
}
|
||||
|
||||
static void tpm_tis_realloc_buffer(TPMSizedBuffer *sb)
|
||||
{
|
||||
size_t wanted_size = 4096; /* Linux tpm.c buffer size */
|
||||
|
||||
if (sb->size != wanted_size) {
|
||||
sb->buffer = g_realloc(sb->buffer, wanted_size);
|
||||
sb->size = wanted_size;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the TPMVersion of the backend device being used
|
||||
*/
|
||||
@ -1010,9 +1020,9 @@ static void tpm_tis_reset(DeviceState *dev)
|
||||
tis->loc[c].state = TPM_TIS_STATE_IDLE;
|
||||
|
||||
tis->loc[c].w_offset = 0;
|
||||
tpm_backend_realloc_buffer(s->be_driver, &tis->loc[c].w_buffer);
|
||||
tpm_tis_realloc_buffer(&tis->loc[c].w_buffer);
|
||||
tis->loc[c].r_offset = 0;
|
||||
tpm_backend_realloc_buffer(s->be_driver, &tis->loc[c].r_buffer);
|
||||
tpm_tis_realloc_buffer(&tis->loc[c].r_buffer);
|
||||
}
|
||||
|
||||
tpm_tis_do_startup_tpm(s);
|
||||
|
@ -84,8 +84,6 @@ struct TPMDriverOps {
|
||||
/* start up the TPM on the backend */
|
||||
int (*startup_tpm)(TPMBackend *t);
|
||||
|
||||
size_t (*realloc_buffer)(TPMSizedBuffer *sb);
|
||||
|
||||
void (*reset)(TPMBackend *t);
|
||||
|
||||
void (*cancel_cmd)(TPMBackend *t);
|
||||
@ -139,16 +137,6 @@ int tpm_backend_startup_tpm(TPMBackend *s);
|
||||
*/
|
||||
bool tpm_backend_had_startup_error(TPMBackend *s);
|
||||
|
||||
/**
|
||||
* tpm_backend_realloc_buffer:
|
||||
* @s: the backend
|
||||
* @sb: the TPMSizedBuffer to re-allocated to the size suitable for the
|
||||
* backend.
|
||||
*
|
||||
* This function returns the size of the allocated buffer
|
||||
*/
|
||||
size_t tpm_backend_realloc_buffer(TPMBackend *s, TPMSizedBuffer *sb);
|
||||
|
||||
/**
|
||||
* tpm_backend_deliver_request:
|
||||
* @s: the backend to send the request to
|
||||
|
Loading…
Reference in New Issue
Block a user