lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190827124041.4f986005@x1.home>
Date:   Tue, 27 Aug 2019 12:40:41 -0600
From:   Alex Williamson <alex.williamson@...hat.com>
To:     Ben Luo <luoben@...ux.alibaba.com>
Cc:     cohuck@...hat.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] vfio/type1: avoid redundant PageReserved checking

On Tue, 27 Aug 2019 20:49:48 +0800
Ben Luo <luoben@...ux.alibaba.com> wrote:

> 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@...ux.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;

Logic seems fine to me, though I'd actually prefer to get rid of the !!
in the first use than duplicate it at the second use.  Thanks,

Alex

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ