|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 4/5] x86: use switch() in _put_page_type()
Use this to cheaply add another assertion.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
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@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |