Commit 854c57f0 authored by Ashish Kalra's avatar Ashish Kalra Committed by Paolo Bonzini

KVM: SVM: Fix offset computation bug in __sev_dbg_decrypt().

Fix offset computation in __sev_dbg_decrypt() to include the
source paddr before it is rounded down to be aligned to 16 bytes
as required by SEV API. This fixes incorrect guest memory dumps
observed when using qemu monitor.
Signed-off-by: default avatarAshish Kalra <ashish.kalra@amd.com>
Message-Id: <20201110224205.29444-1-Ashish.Kalra@amd.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent d4d3c84d
...@@ -642,8 +642,8 @@ static int __sev_dbg_decrypt(struct kvm *kvm, unsigned long src_paddr, ...@@ -642,8 +642,8 @@ static int __sev_dbg_decrypt(struct kvm *kvm, unsigned long src_paddr,
* Its safe to read more than we are asked, caller should ensure that * Its safe to read more than we are asked, caller should ensure that
* destination has enough space. * destination has enough space.
*/ */
src_paddr = round_down(src_paddr, 16);
offset = src_paddr & 15; offset = src_paddr & 15;
src_paddr = round_down(src_paddr, 16);
sz = round_up(sz + offset, 16); sz = round_up(sz + offset, 16);
return __sev_issue_dbg_cmd(kvm, src_paddr, dst_paddr, sz, err, false); return __sev_issue_dbg_cmd(kvm, src_paddr, dst_paddr, sz, err, false);
......
Markdown is supported
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