mirror of https://gitee.com/openkylin/linux.git
TPM: fix suspend and resume failure
The savestate command structure was being overwritten by the result of running the TPM_SaveState command after one run, so make it a local variable to the function instead of a global variable that gets overwritten. Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Kent Yoder <shpedoikal@gmail.com> Cc: Marcel Selhorst <tpm@selhorst.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
40d6a14662
commit
2490c681ea
|
@ -1046,12 +1046,6 @@ void tpm_remove_hardware(struct device *dev)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(tpm_remove_hardware);
|
||||
|
||||
static u8 savestate[] = {
|
||||
0, 193, /* TPM_TAG_RQU_COMMAND */
|
||||
0, 0, 0, 10, /* blob length (in bytes) */
|
||||
0, 0, 0, 152 /* TPM_ORD_SaveState */
|
||||
};
|
||||
|
||||
/*
|
||||
* We are about to suspend. Save the TPM state
|
||||
* so that it can be restored.
|
||||
|
@ -1059,6 +1053,12 @@ static u8 savestate[] = {
|
|||
int tpm_pm_suspend(struct device *dev, pm_message_t pm_state)
|
||||
{
|
||||
struct tpm_chip *chip = dev_get_drvdata(dev);
|
||||
u8 savestate[] = {
|
||||
0, 193, /* TPM_TAG_RQU_COMMAND */
|
||||
0, 0, 0, 10, /* blob length (in bytes) */
|
||||
0, 0, 0, 152 /* TPM_ORD_SaveState */
|
||||
};
|
||||
|
||||
if (chip == NULL)
|
||||
return -ENODEV;
|
||||
|
||||
|
|
Loading…
Reference in New Issue