Skip to content
Commit ce364f14 authored by Michael Sterritt's avatar Michael Sterritt Committed by Greg Kroah-Hartman
Browse files

x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword

[ Upstream commit 1d5379d0 ]

Properly type the operands being passed to __put_user()/__get_user().
Otherwise, these routines truncate data for dependent instructions
(e.g., INSW) and only read/write one byte.

This has been tested by sending a string with REP OUTSW to a port and
then reading it back in with REP INSW on the same port.

Previous behavior was to only send and receive the first char of the
size. For example, word operations for "abcd" would only read/write
"ac". With change, the full string is now written and read back.

Fixes: f980f9c3

 (x86/sev-es: Compile early handler code into kernel image)
Signed-off-by: default avatarMichael Sterritt <sterritt@google.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Reviewed-by: default avatarMarc Orr <marcorr@google.com>
Reviewed-by: default avatarPeter Gonda <pgonda@google.com>
Reviewed-by: default avatarJoerg Roedel <jroedel@suse.de>
Link: https://lkml.kernel.org/r/20211119232757.176201-1-sterritt@google.com
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 690637ec
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment