From: Jan Beulich Date: Tue, 2 Mar 2021 11:30:30 +0000 (+0100) Subject: x86/shadow: replace bogus return path in shadow_get_page_from_l1e() X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~845 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4834936549f788378918da8e9bc97df7dd3ee16d;p=xen.git x86/shadow: replace bogus return path in shadow_get_page_from_l1e() Prior to be640b1800bb ("x86: make get_page_from_l1e() return a proper error code") a positive return value did indicate an error. Said commit failed to adjust this return path, but luckily the only caller has always been inside a shadow_mode_refcounts() conditional. Subsequent changes caused 1 to end up at the default (error) label in the caller's switch() again, but the returning of 1 (== _PAGE_PRESENT) is still rather confusing here, and a latent risk. Convert to an ASSERT() instead, just in case any new caller would appear. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Acked-by: Tim Deegan Release-Acked-by: Ian Jackson --- diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 797ebde586..dd59bec2c3 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -802,9 +802,7 @@ shadow_get_page_from_l1e(shadow_l1e_t sl1e, struct domain *d, p2m_type_t type) struct domain *owner; ASSERT(!sh_l1e_is_magic(sl1e)); - - if ( !shadow_mode_refcounts(d) ) - return 1; + ASSERT(shadow_mode_refcounts(d)); res = get_page_from_l1e(sl1e, d, d);