Re: [PATCH 2/4] PF: Make KVM_HVA_ERR_BAD usable on s390

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 09, 2013 at 03:56:45PM +0200, Dominik Dingel wrote:
> Current common code uses PAGE_OFFSET to indicate a bad host virtual address.
> As this check won't work on architectures that don't map kernel and user memory
> into the same address space (e.g. s390), an additional implementation is made
> available in the case that PAGE_OFFSET == 0.
> 
> Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx>
> ---
>  include/linux/kvm_host.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index a63d83e..f3c04e7 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -85,6 +85,18 @@ static inline bool is_noslot_pfn(pfn_t pfn)
>  	return pfn == KVM_PFN_NOSLOT;
>  }
>  
> +#if (PAGE_OFFSET == 0)
> +
Please do it like I described it in the previous review. Lets not
rely on arch low level mmu details like that here.

> +#define KVM_HVA_ERR_BAD		(-1UL)
> +#define KVM_HVA_ERR_RO_BAD	(-1UL)
> +
> +static inline bool kvm_is_error_hva(unsigned long addr)
> +{
> +	return addr == KVM_HVA_ERR_BAD;
> +}
> +
> +#else
> +
>  #define KVM_HVA_ERR_BAD		(PAGE_OFFSET)
>  #define KVM_HVA_ERR_RO_BAD	(PAGE_OFFSET + PAGE_SIZE)
>  
> @@ -93,6 +105,8 @@ static inline bool kvm_is_error_hva(unsigned long addr)
>  	return addr >= PAGE_OFFSET;
>  }
>  
> +#endif
> +
>  #define KVM_ERR_PTR_BAD_PAGE	(ERR_PTR(-ENOENT))
>  
>  static inline bool is_error_page(struct page *page)
> -- 
> 1.8.2.2

--
			Gleb.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]