Messages in this thread Patch in this message | | | From | Ben Luo <> | Subject | [PATCH] vfio/type1: avoid redundant PageReserved checking | Date | Tue, 27 Aug 2019 20:49:48 +0800 |
| |
currently, if the page is not a tail of compound page, it will be checked twice for the same thing.
Signed-off-by: Ben Luo <luoben@linux.alibaba.com> --- drivers/vfio/vfio_iommu_type1.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 054391f..cbe0d88 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -291,11 +291,10 @@ static int vfio_lock_acct(struct vfio_dma *dma, long npage, bool async) static bool is_invalid_reserved_pfn(unsigned long pfn) { if (pfn_valid(pfn)) { - bool reserved; struct page *tail = pfn_to_page(pfn); struct page *head = compound_head(tail); - reserved = !!(PageReserved(head)); if (head != tail) { + bool reserved = !!(PageReserved(head)); /* * "head" is not a dangling pointer * (compound_head takes care of that) @@ -310,7 +309,7 @@ static bool is_invalid_reserved_pfn(unsigned long pfn) if (PageTail(tail)) return reserved; } - return PageReserved(tail); + return !!(PageReserved(tail)); } return true; -- 1.8.3.1
| |