From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 12/22] mm/hmm: Hold on to the mmget for the lifetime of the range Date: Mon, 1 Jul 2019 08:20:10 +0200 Message-ID: <20190701062020.19239-13-hch@lst.de> References: <20190701062020.19239-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190701062020.19239-1-hch-jcswGhMUV9g@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Dan Williams , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jason Gunthorpe , Ben Skeggs Cc: Philip Yang , Ralph Campbell , linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Ira Weiny List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKUmFuZ2UgZnVuY3Rpb25z IGxpa2UgaG1tX3JhbmdlX3NuYXBzaG90KCkgYW5kIGhtbV9yYW5nZV9mYXVsdCgpIGNhbGwKZmlu ZF92bWEsIHdoaWNoIHJlcXVpcmVzIGhvZGxpbmcgdGhlIG1tZ2V0KCkgYW5kIHRoZSBtbWFwX3Nl bSBmb3IgdGhlIG1tLgoKTWFrZSB0aGlzIHNpbXBsZXIgZm9yIHRoZSBjYWxsZXJzIGJ5IGhvbGRp bmcgdGhlIG1tZ2V0KCkgaW5zaWRlIHRoZSByYW5nZQpmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBy YW5nZS4gT3RoZXIgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGEgcmFuZ2Ugc2hvdWxkCm9ubHkgYmUg Y2FsbGVkIGlmIHRoZSByYW5nZSBpcyByZWdpc3RlcmVkLgoKVGhpcyBoYXMgdGhlIHNpZGUgZWZm ZWN0IG9mIGRpcmVjdGx5IHByZXZlbnRpbmcgaG1tX3JlbGVhc2UoKSBmcm9tCmhhcHBlbmluZyB3 aGlsZSBhIHJhbmdlIGlzIHJlZ2lzdGVyZWQuIFRoYXQgbWVhbnMgcmFuZ2UtPmRlYWQgY2Fubm90 IGJlCmZhbHNlIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIHJhbmdlLCBzbyByZW1vdmUgZGVh ZCBhbmQKaG1tX21pcnJvcl9tbV9pc19hbGl2ZSgpIGVudGlyZWx5LgoKU2lnbmVkLW9mZi1ieTog SmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSm9obiBIdWJi YXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogUmFscGggQ2FtcGJlbGwgPHJj YW1wYmVsbEBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBs c3QuZGU+ClRlc3RlZC1ieTogUGhpbGlwIFlhbmcgPFBoaWxpcC5ZYW5nQGFtZC5jb20+Ci0tLQog aW5jbHVkZS9saW51eC9obW0uaCB8IDI2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtbS9o bW0uYyAgICAgICAgICAgIHwgMzIgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9obW0uaCBiL2luY2x1ZGUvbGludXgvaG1tLmgKaW5kZXggMjZl N2M0Nzc0OTBjLi5iZjAxM2U5NjUyNTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaG1tLmgK KysrIGIvaW5jbHVkZS9saW51eC9obW0uaApAQCAtODIsNyArODIsNiBAQAogICogQG1pcnJvcnNf c2VtOiByZWFkL3dyaXRlIHNlbWFwaG9yZSBwcm90ZWN0aW5nIHRoZSBtaXJyb3JzIGxpc3QKICAq IEB3cTogd2FpdCBxdWV1ZSBmb3IgdXNlciB3YWl0aW5nIG9uIGEgcmFuZ2UgaW52YWxpZGF0aW9u CiAgKiBAbm90aWZpZXJzOiBjb3VudCBvZiBhY3RpdmUgbW11IG5vdGlmaWVycwotICogQGRlYWQ6 IGlzIHRoZSBtbSBkZWFkID8KICAqLwogc3RydWN0IGhtbSB7CiAJc3RydWN0IG1tX3N0cnVjdAkq bW07CkBAIC05NSw3ICs5NCw2IEBAIHN0cnVjdCBobW0gewogCXdhaXRfcXVldWVfaGVhZF90CXdx OwogCXN0cnVjdCByY3VfaGVhZAkJcmN1OwogCWxvbmcJCQlub3RpZmllcnM7Ci0JYm9vbAkJCWRl YWQ7CiB9OwogCiAvKgpAQCAtNDU5LDMwICs0NTcsNiBAQCBzdHJ1Y3QgaG1tX21pcnJvciB7CiBp bnQgaG1tX21pcnJvcl9yZWdpc3RlcihzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLCBzdHJ1Y3Qg bW1fc3RydWN0ICptbSk7CiB2b2lkIGhtbV9taXJyb3JfdW5yZWdpc3RlcihzdHJ1Y3QgaG1tX21p cnJvciAqbWlycm9yKTsKIAotLyoKLSAqIGhtbV9taXJyb3JfbW1faXNfYWxpdmUoKSAtIHRlc3Qg aWYgbW0gaXMgc3RpbGwgYWxpdmUKLSAqIEBtaXJyb3I6IHRoZSBITU0gbW0gbWlycm9yIGZvciB3 aGljaCB3ZSB3YW50IHRvIGxvY2sgdGhlIG1tYXBfc2VtCi0gKiBSZXR1cm46IGZhbHNlIGlmIHRo ZSBtbSBpcyBkZWFkLCB0cnVlIG90aGVyd2lzZQotICoKLSAqIFRoaXMgaXMgYW4gb3B0aW1pemF0 aW9uLCBpdCB3aWxsIG5vdCBhbHdheXMgYWNjdXJhdGVseSByZXR1cm4gZmFsc2UgaWYgdGhlCi0g KiBtbSBpcyBkZWFkOyBpLmUuLCB0aGVyZSBjYW4gYmUgZmFsc2UgbmVnYXRpdmVzIChwcm9jZXNz IGlzIGJlaW5nIGtpbGxlZCBidXQKLSAqIEhNTSBpcyBub3QgeWV0IGluZm9ybWVkIG9mIHRoYXQp LiBJdCBpcyBvbmx5IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gb3B0aW1pemUKLSAqIG91dCBjYXNl cyB3aGVyZSB0aGUgZHJpdmVyIGlzIGFib3V0IHRvIGRvIHNvbWV0aGluZyB0aW1lIGNvbnN1bWlu ZyBhbmQgaXQKLSAqIHdvdWxkIGJlIGJldHRlciB0byBza2lwIGl0IGlmIHRoZSBtbSBpcyBkZWFk LgotICovCi1zdGF0aWMgaW5saW5lIGJvb2wgaG1tX21pcnJvcl9tbV9pc19hbGl2ZShzdHJ1Y3Qg aG1tX21pcnJvciAqbWlycm9yKQotewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwotCi0JaWYgKCFt aXJyb3IgfHwgIW1pcnJvci0+aG1tKQotCQlyZXR1cm4gZmFsc2U7Ci0JbW0gPSBSRUFEX09OQ0Uo bWlycm9yLT5obW0tPm1tKTsKLQlpZiAobWlycm9yLT5obW0tPmRlYWQgfHwgIW1tKQotCQlyZXR1 cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQogLyoKICAqIFBsZWFzZSBzZWUgRG9jdW1l bnRhdGlvbi92bS9obW0ucnN0IGZvciBob3cgdG8gdXNlIHRoZSByYW5nZSBBUEkuCiAgKi8KZGlm ZiAtLWdpdCBhL21tL2htbS5jIGIvbW0vaG1tLmMKaW5kZXggNzNjOGFmNDgyN2ZlLi4xZWRkZGE0 NWNlZmEgMTAwNjQ0Ci0tLSBhL21tL2htbS5jCisrKyBiL21tL2htbS5jCkBAIC02Nyw3ICs2Nyw2 IEBAIHN0YXRpYyBzdHJ1Y3QgaG1tICpobW1fZ2V0X29yX2NyZWF0ZShzdHJ1Y3QgbW1fc3RydWN0 ICptbSkKIAltdXRleF9pbml0KCZobW0tPmxvY2spOwogCWtyZWZfaW5pdCgmaG1tLT5rcmVmKTsK IAlobW0tPm5vdGlmaWVycyA9IDA7Ci0JaG1tLT5kZWFkID0gZmFsc2U7CiAJaG1tLT5tbSA9IG1t OwogCiAJaG1tLT5tbXVfbm90aWZpZXIub3BzID0gJmhtbV9tbXVfbm90aWZpZXJfb3BzOwpAQCAt MTIwLDIxICsxMTksMTYgQEAgc3RhdGljIHZvaWQgaG1tX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3Rp ZmllciAqbW4sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewogCXN0cnVjdCBobW0gKmhtbSA9IGNv bnRhaW5lcl9vZihtbiwgc3RydWN0IGhtbSwgbW11X25vdGlmaWVyKTsKIAlzdHJ1Y3QgaG1tX21p cnJvciAqbWlycm9yOwotCXN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlOwogCiAJLyogQmFpbCBvdXQg aWYgaG1tIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGZyZWVkICovCiAJaWYgKCFrcmVmX2dl dF91bmxlc3NfemVybygmaG1tLT5rcmVmKSkKIAkJcmV0dXJuOwogCi0JLyogUmVwb3J0IHRoaXMg SE1NIGFzIGR5aW5nLiAqLwotCWhtbS0+ZGVhZCA9IHRydWU7Ci0KLQkvKiBXYWtlLXVwIGV2ZXJ5 b25lIHdhaXRpbmcgb24gYW55IHJhbmdlLiAqLwotCW11dGV4X2xvY2soJmhtbS0+bG9jayk7Ci0J bGlzdF9mb3JfZWFjaF9lbnRyeShyYW5nZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KQotCQlyYW5nZS0+ dmFsaWQgPSBmYWxzZTsKLQl3YWtlX3VwX2FsbCgmaG1tLT53cSk7Ci0JbXV0ZXhfdW5sb2NrKCZo bW0tPmxvY2spOworCS8qCisJICogU2luY2UgaG1tX3JhbmdlX3JlZ2lzdGVyKCkgaG9sZHMgdGhl IG1tZ2V0KCkgbG9jayBobW1fcmVsZWFzZSgpIGlzCisJICogcHJldmVudGVkIGFzIGxvbmcgYXMg YSByYW5nZSBleGlzdHMuCisJICovCisJV0FSTl9PTighbGlzdF9lbXB0eV9jYXJlZnVsKCZobW0t PnJhbmdlcykpOwogCiAJZG93bl93cml0ZSgmaG1tLT5taXJyb3JzX3NlbSk7CiAJbWlycm9yID0g bGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZobW0tPm1pcnJvcnMsIHN0cnVjdCBobW1fbWlycm9y LApAQCAtOTAzLDggKzg5Nyw4IEBAIGludCBobW1fcmFuZ2VfcmVnaXN0ZXIoc3RydWN0IGhtbV9y YW5nZSAqcmFuZ2UsCiAJcmFuZ2UtPnN0YXJ0ID0gc3RhcnQ7CiAJcmFuZ2UtPmVuZCA9IGVuZDsK IAotCS8qIENoZWNrIGlmIGhtbV9tbV9kZXN0cm95KCkgd2FzIGNhbGwuICovCi0JaWYgKGhtbS0+ bW0gPT0gTlVMTCB8fCBobW0tPmRlYWQpCisJLyogUHJldmVudCBobW1fcmVsZWFzZSgpIGZyb20g cnVubmluZyB3aGlsZSB0aGUgcmFuZ2UgaXMgdmFsaWQgKi8KKwlpZiAoIW1tZ2V0X25vdF96ZXJv KGhtbS0+bW0pKQogCQlyZXR1cm4gLUVGQVVMVDsKIAogCS8qIEluaXRpYWxpemUgcmFuZ2UgdG8g dHJhY2sgQ1BVIHBhZ2UgdGFibGUgdXBkYXRlcy4gKi8KQEAgLTk0MiwxMSArOTM2LDEyIEBAIHZv aWQgaG1tX3JhbmdlX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAJCXJldHVy bjsKIAogCW11dGV4X2xvY2soJmhtbS0+bG9jayk7Ci0JbGlzdF9kZWwoJnJhbmdlLT5saXN0KTsK KwlsaXN0X2RlbF9pbml0KCZyYW5nZS0+bGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZobW0tPmxvY2sp OwogCiAJLyogRHJvcCByZWZlcmVuY2UgdGFrZW4gYnkgaG1tX3JhbmdlX3JlZ2lzdGVyKCkgKi8K IAlyYW5nZS0+dmFsaWQgPSBmYWxzZTsKKwltbXB1dChobW0tPm1tKTsKIAlobW1fcHV0KGhtbSk7 CiAJcmFuZ2UtPmhtbSA9IE5VTEw7CiB9CkBAIC05NzQsMTAgKzk2OSw3IEBAIGxvbmcgaG1tX3Jh bmdlX3NuYXBzaG90KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlKQogCXN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hOwogCXN0cnVjdCBtbV93YWxrIG1tX3dhbGs7CiAKLQkvKiBDaGVjayBpZiBobW1f bW1fZGVzdHJveSgpIHdhcyBjYWxsLiAqLwotCWlmIChobW0tPm1tID09IE5VTEwgfHwgaG1tLT5k ZWFkKQotCQlyZXR1cm4gLUVGQVVMVDsKLQorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmhtbS0+bW0t Pm1tYXBfc2VtKTsKIAlkbyB7CiAJCS8qIElmIHJhbmdlIGlzIG5vIGxvbmdlciB2YWxpZCBmb3Jj ZSByZXRyeS4gKi8KIAkJaWYgKCFyYW5nZS0+dmFsaWQpCkBAIC0xMDcyLDkgKzEwNjQsNyBAQCBs b25nIGhtbV9yYW5nZV9mYXVsdChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgYm9vbCBibG9jaykK IAlzdHJ1Y3QgbW1fd2FsayBtbV93YWxrOwogCWludCByZXQ7CiAKLQkvKiBDaGVjayBpZiBobW1f bW1fZGVzdHJveSgpIHdhcyBjYWxsLiAqLwotCWlmIChobW0tPm1tID09IE5VTEwgfHwgaG1tLT5k ZWFkKQotCQlyZXR1cm4gLUVGQVVMVDsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZobW0tPm1tLT5t bWFwX3NlbSk7CiAKIAlkbyB7CiAJCS8qIElmIHJhbmdlIGlzIG5vIGxvbmdlciB2YWxpZCBmb3Jj ZSByZXRyeS4gKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9u b3V2ZWF1