All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko@kernel.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Sean Christopherson <seanjc@google.com>,
	Borislav Petkov <bp@suse.de>,
	linux-sgx@vger.kernel.org,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH] x86/sgx: Drop racy follow_pfn check
Date: Fri, 5 Feb 2021 04:26:05 +0200	[thread overview]
Message-ID: <YBysvZ3NcmsT4IHK@kernel.org> (raw)
In-Reply-To: <20210204184519.2809313-1-daniel.vetter@ffwll.ch>

On Thu, Feb 04, 2021 at 07:45:19PM +0100, Daniel Vetter wrote:
> PTE insertion is fundamentally racy, and this check doesn't do
> anything useful. Quoting Sean:
> 
> "Yeah, it can be whacked.  The original, never-upstreamed code asserted that the
> resolved PFN matched the PFN being installed by the fault handler as a sanity
> check on the SGX driver's EPC management.  The WARN assertion got dropped for
> whatever reason, leaving that useless chunk."

Love the "whatever reason" part :-)

Shame, I was *going to* rip this off maybe around iteration v40. I have
no idea why I did not. Even backtraced years old email threads from lore.
Probably just forgot to remove it.

So, yeah, I fully agree removing it.

Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>

> Jason stumbled over this as a new user of follow_pfn, and I'm trying
> to get rid of unsafe callers of that function so it can be locked down
> further.
> 
> This is independent prep work for the referenced patch series.

Apologies, consider it my bad...

/Jarkko

> 
> References: https://lore.kernel.org/dri-devel/20201127164131.2244124-1-daniel.vetter@ffwll.ch/
> Reported-by: Jason Gunthorpe <jgg@ziepe.ca>
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> Cc: Sean Christopherson <seanjc@google.com>
> Fixes: 947c6e11fa43 ("x86/sgx: Add ptrace() support for the SGX driver")
> Cc: Jarkko Sakkinen <jarkko@kernel.org>
> Cc: Borislav Petkov <bp@suse.de>
> Cc: linux-sgx@vger.kernel.org
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  arch/x86/kernel/cpu/sgx/encl.c | 8 --------
>  1 file changed, 8 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/sgx/encl.c b/arch/x86/kernel/cpu/sgx/encl.c
> index ee50a5010277..20a2dd5ba2b4 100644
> --- a/arch/x86/kernel/cpu/sgx/encl.c
> +++ b/arch/x86/kernel/cpu/sgx/encl.c
> @@ -141,7 +141,6 @@ static vm_fault_t sgx_vma_fault(struct vm_fault *vmf)
>  	struct sgx_encl_page *entry;
>  	unsigned long phys_addr;
>  	struct sgx_encl *encl;
> -	unsigned long pfn;
>  	vm_fault_t ret;
>  
>  	encl = vma->vm_private_data;
> @@ -168,13 +167,6 @@ static vm_fault_t sgx_vma_fault(struct vm_fault *vmf)
>  
>  	phys_addr = sgx_get_epc_phys_addr(entry->epc_page);
>  
> -	/* Check if another thread got here first to insert the PTE. */
> -	if (!follow_pfn(vma, addr, &pfn)) {
> -		mutex_unlock(&encl->lock);
> -
> -		return VM_FAULT_NOPAGE;
> -	}
> -
>  	ret = vmf_insert_pfn(vma, addr, PFN_DOWN(phys_addr));
>  	if (ret != VM_FAULT_NOPAGE) {
>  		mutex_unlock(&encl->lock);
> -- 
> 2.30.0
> 
> 

  reply	other threads:[~2021-02-05  2:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-04 18:45 [PATCH] x86/sgx: Drop racy follow_pfn check Daniel Vetter
2021-02-05  2:26 ` Jarkko Sakkinen [this message]
2021-02-05  2:26 ` Jarkko Sakkinen
2021-02-05  7:43   ` Daniel Vetter
2021-02-07 21:16     ` Jarkko Sakkinen
2021-02-05  9:55 ` [tip: x86/sgx] x86/sgx: Drop racy follow_pfn() check tip-bot2 for Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YBysvZ3NcmsT4IHK@kernel.org \
    --to=jarkko@kernel.org \
    --cc=bp@suse.de \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sgx@vger.kernel.org \
    --cc=seanjc@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.