Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3195033imu; Mon, 17 Dec 2018 15:15:24 -0800 (PST) X-Google-Smtp-Source: AFSGD/UBh0TrJ9qgCMO+pkvGnxSn/xW+lmB1Be2Z4cftvcQoPcptV4SKGylhdyCdyjEkFpPjWdbX X-Received: by 2002:a17:902:74cc:: with SMTP id f12mr14245938plt.134.1545088524429; Mon, 17 Dec 2018 15:15:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545088524; cv=none; d=google.com; s=arc-20160816; b=WLmQLlQZyW/qp4thmRRN7G/niZPyX9CWMmyicICTtufTlfLWpbRX8aHupmwla/09+O KQKQYr4zZnh5Ar9wfWfwyCKIyTaQyt71AsqtkmNKPXEXugsGYHn6CxIh9SHdJyu4hKtq 81y4qySN9gdCk8wnBeCyel+bFZ/6FniEtjH/CJVUKL5HMGhCX1PyJVxHiinOgrrhvi6X Pwdy/AsU/7GafGUyz6umQXd5/hgFqWTKj9M8wV3wakiP1rlPYIrbwwUVyXxDVH4NuhfL hFc+Cz0eluPv3vjWjZ36PDlhxk+7hZhp6HSqspgJ8misQG3gY3kHT3gmVc4Jk87Rqyjn 8q4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=QweBE4/LSChbJhlK+pzkH606lGw148wV88PvQXWJcxo=; b=vkhWqJUHfsUJ22XvwbsHWERonJ1kx/2AenE5afVLyTi4Xy003r0an74GgO145QjY84 E0B2sJymP/F9p1DN+qqfkPo7BJrr9nJaz4tgnv7gw5EM2NwMz4MLwoTRslqjW50ffwvZ 99F5ST4FMIoUeA974Kx0T6svLwqk3LHCwfH9pUzACe70V8WRaJcgRauTsHyzwMVOp88S d4eB94PNfuk+IyvA9UOVIEZA6SvRvBRo4l0v6v7KqXhL2IyG2cU+/NGe3OXgyu0K6woB I3lR7yRjni2tZNNHxesHiemnSyFb6VeJyQZZPHYVA4jsMtYi02wBYEBZC5kt+WLHZgvK MhYA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u8si5699723plh.385.2018.12.17.15.15.09; Mon, 17 Dec 2018 15:15:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389207AbeLQSs7 (ORCPT + 99 others); Mon, 17 Dec 2018 13:48:59 -0500 Received: from mga04.intel.com ([192.55.52.120]:16971 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726628AbeLQSs7 (ORCPT ); Mon, 17 Dec 2018 13:48:59 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Dec 2018 10:48:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,366,1539673200"; d="scan'208";a="119045611" Received: from sjchrist-coffee.jf.intel.com (HELO linux.intel.com) ([10.54.74.154]) by orsmga002.jf.intel.com with ESMTP; 17 Dec 2018 10:48:58 -0800 Date: Mon, 17 Dec 2018 10:48:58 -0800 From: Sean Christopherson To: Jarkko Sakkinen Cc: Dave Hansen , x86@kernel.org, platform-driver-x86@vger.kernel.org, linux-sgx@vger.kernel.org, nhorman@redhat.com, npmccallum@redhat.com, serge.ayoun@intel.com, shay.katz-zamir@intel.com, haitao.huang@linux.intel.com, andriy.shevchenko@linux.intel.com, tglx@linutronix.de, kai.svahn@intel.com, mark.shanahan@intel.com, luto@amacapital.net, Suresh Siddha , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Darren Hart , Andy Shevchenko , "open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)" Subject: Re: [PATCH v17 18/23] platform/x86: Intel SGX driver Message-ID: <20181217184858.GF12491@linux.intel.com> References: <20181116010412.23967-1-jarkko.sakkinen@linux.intel.com> <20181116010412.23967-19-jarkko.sakkinen@linux.intel.com> <7d5cde02-4649-546b-0f03-2d6414bb80b5@intel.com> <20181217180102.GA12560@linux.intel.com> <20181217183613.GD12491@linux.intel.com> <20181217184333.GA26920@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181217184333.GA26920@linux.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Dec 17, 2018 at 08:43:33PM +0200, Jarkko Sakkinen wrote: > On Mon, Dec 17, 2018 at 10:36:13AM -0800, Sean Christopherson wrote: > > I'm pretty sure doing mmget() would result in circular dependencies and > > a zombie enclave. In the do_exit() case where a task is abruptly killed: > > > > - __mmput() is never called because the enclave holds a ref > > - sgx_encl_release() is never be called because its VMAs hold refs > > - sgx_vma_close() is never called because __mmput()->exit_mmap() is > > blocked and the process itself is dead, i.e. won't unmap anything. > > Right, it does, you are absolutely right. Tried it and removed the > commit already. > > Well, what we came up from your suggestion i.e. setting mm to NULL > and checking that is very subtle change and does not have any such > circular dependencies. We'll go with that. We can't set mm to NULL as we need it to unregister the notifier, and I'm fairly certain attempting to unregister in the release callback will deadlock.