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: <2bdd7614-f548-4b6f-a475-1fefe6f6f4ee@xen.org>
Date: Tue, 20 Feb 2024 09:01:33 +0000
From: Paul Durrant <xadimgnik@...il.com>
To: Sean Christopherson <seanjc@...gle.com>
Cc: Paolo Bonzini <pbonzini@...hat.com>, Jonathan Corbet <corbet@....net>,
 Christian Borntraeger <borntraeger@...ux.ibm.com>,
 Janosch Frank <frankja@...ux.ibm.com>,
 Claudio Imbrenda <imbrenda@...ux.ibm.com>,
 David Hildenbrand <david@...hat.com>, Heiko Carstens <hca@...ux.ibm.com>,
 Vasily Gorbik <gor@...ux.ibm.com>, Alexander Gordeev
 <agordeev@...ux.ibm.com>, Sven Schnelle <svens@...ux.ibm.com>,
 Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
 Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>,
 x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>,
 David Woodhouse <dwmw2@...radead.org>, Shuah Khan <shuah@...nel.org>,
 kvm@...r.kernel.org, linux-doc@...r.kernel.org,
 linux-kernel@...r.kernel.org, linux-s390@...r.kernel.org,
 linux-kselftest@...r.kernel.org
Subject: Re: [PATCH v13 09/21] KVM: pfncache: allow a cache to be activated
 with a fixed (userspace) HVA

On 19/02/2024 21:49, Sean Christopherson wrote:
> On Thu, Feb 15, 2024, Paul Durrant wrote:
>> @@ -319,7 +340,16 @@ static int __kvm_gpc_refresh(struct gfn_to_pfn_cache *gpc, gpa_t gpa,
>>   
>>   int kvm_gpc_refresh(struct gfn_to_pfn_cache *gpc, unsigned long len)
>>   {
>> -	return __kvm_gpc_refresh(gpc, gpc->gpa, len);
>> +	unsigned long uhva = gpc->uhva;
>> +
>> +	/*
>> +	 * If the GPA is valid then invalidate the HVA, otherwise
>> +	 * __kvm_gpc_refresh() will fail its strict either/or address check.
>> +	 */
> 
> It's not just to make the strict check happy, though that's obviously the direct
> motivation, it's so that there's one root of truth.  The strict check is there to
> enforce that behavior and to make it  more clear to readers that it's an either/or
> situation.
> 
>> +	if (!kvm_is_error_gpa(gpc->gpa))
>> +		uhva = KVM_HVA_ERR_BAD;
> 
> This would be a good time to use a ternary operator.
> 
> 	/*
> 	 * If the GPA is valid then ignore the HVA, as a cache can be GPA-based
> 	 * or HVA-based, not both.  For GPA-based caches, the HVA will be
> 	 * recomputed during refresh if necessary.
> 	 */
> 	unsigned long uhva = kvm_is_error_gpa(gpc->gpa) ? gpc->uhva :
> 							  KVM_HVA_ERR_BAD;

Ok. I thought that actually looked a little less neat in this case, but 
I'll change.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ