|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3/6] x86/shadow: ignore sh_pin() failure in one more case
Following what we've already done in the XSA-250 fix, convert another
sh_pin() caller to no longer fail the higher level operation if pinning
fails, as pinning is a performance optimization only in those places.
Suggested-by: Tim Deegan <tim@xxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Would it be worth making sh_pin() return void, by adding a bool
parameter which the other call site in sh_set_toplevel_shadow() could
use to indicate a ref is avalable to be used (instead of aquiring a
new one)? This would allow to drop another domain_crash().
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -3925,17 +3925,15 @@ sh_set_toplevel_shadow(struct vcpu *v,
}
ASSERT(mfn_valid(smfn));
- /* Pin the shadow and put it (back) on the list of pinned shadows */
- if ( sh_pin(d, smfn) == 0 )
- {
- SHADOW_ERROR("can't pin %#lx as toplevel shadow\n", mfn_x(smfn));
- domain_crash(d);
- }
-
/* Take a ref to this page: it will be released in sh_detach_old_tables()
* or the next call to set_toplevel_shadow() */
if ( sh_get_ref(d, smfn, 0) )
+ {
+ /* Pin the shadow and put it (back) on the list of pinned shadows */
+ sh_pin(d, smfn);
+
new_entry = pagetable_from_mfn(smfn);
+ }
else
{
SHADOW_ERROR("can't install %#lx as toplevel shadow\n", mfn_x(smfn));
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |