Use this to cheaply add another assertion. Signed-off-by: Jan Beulich <jbeul...@suse.com> --- TBD: Would it perhaps be better to return after the assertion?
--- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -2460,8 +2460,9 @@ static int _put_page_type(struct page_in ASSERT((x & PGT_count_mask) != 0); - if ( unlikely((nx & PGT_count_mask) == 0) ) + switch ( nx & (PGT_locked | PGT_count_mask) ) { + case 0: if ( unlikely((nx & PGT_type_mask) <= PGT_l4_page_table) && likely(nx & (PGT_validated|PGT_partial)) ) { @@ -2496,10 +2497,14 @@ static int _put_page_type(struct page_in } else BUG_ON(!IS_ENABLED(CONFIG_PV_LINEAR_PT)); - } - else if ( unlikely((nx & (PGT_locked | PGT_count_mask)) == - (PGT_locked | 1)) ) - { + + break; + + case PGT_locked: + ASSERT_UNREACHABLE(); + break; + + case PGT_locked | 1: /* * We must not drop the second to last reference when the page is * locked, as page_unlock() doesn't do any cleanup of the type. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel