Because of out-of-order execution about some CPU architecture,
In this debug stage we find Completing spi interrupt enable ->
prodrucing TXEI interrupt -> running "interrupt_transfer" function
will prior to set "dw->rx and dws->rx_end" data, so this patch add
memory barrier to enable dw->rx and dw->rx_end to be visible and
solve to send SPI data error.
eg:
it will fix to this following low possibility error in testing environment
which using SPI control to connect TPM Modules
[Bug Description]
Because of out-of-order execution about some CPU architecture, transfer" function
In this debug stage we find Completing spi interrupt enable ->
prodrucing TXEI interrupt -> running "interrupt_
will prior to set "dw->rx and dws->rx_end" data, so this patch add
memory barrier to enable dw->rx and dw->rx_end to be visible and
solve to send SPI data error.
eg:
it will fix to this following low possibility error in testing environment
which using SPI control to connect TPM Modules
kernel: tpm tpm0: Operation Timed out locality: : error -1
kernel: tpm tpm0: tpm_relinquish_
[Steps to Reproduce]
1) enable ima and tpm
2)reboot this system
3)
[Actual Results] locality: : error -1
kernel: tpm tpm0: Operation Timed out
kernel: tpm tpm0: tpm_relinquish_
[Expected Results]
ok
[Reproducibility]
low probabilities
[Additional information]
(Firmware version, kernel version, affected hardware, etc. if required):
[Resolution]
EFI/stub: tpm: enable tpm eventlog function for ARM64 platform