From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v4 hmm 12/12] mm/hmm: Fix error flows in hmm_invalidate_range_start Date: Mon, 24 Jun 2019 18:01:10 -0300 Message-ID: <20190624210110.5098-13-jgg@ziepe.ca> References: <20190624210110.5098-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190624210110.5098-1-jgg-uk2M96/98Pc@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling-5C7GfCeVMHo@public.gmane.org Cc: Andrea Arcangeli , Philip Yang , linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Jason Gunthorpe , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Ira Weiny , Christoph Hellwig , Ben Skeggs List-Id: linux-rdma@vger.kernel.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKSWYgdGhlIHRyeWxvY2sg b24gdGhlIGhtbS0+bWlycm9yc19zZW0gZmFpbHMgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCndp dGhvdXQgZGVjcmVtZW50aW5nIHRoZSBub3RpZmllcnMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgaW5j cmVtZW50ZWQuIFNpbmNlCnRoZSBjYWxsZXIgd2lsbCBub3QgY2FsbCBpbnZhbGlkYXRlX3Jhbmdl X2VuZCgpIG9uIEVBR0FJTiB0aGlzIHdpbGwgcmVzdWx0CmluIG5vdGlmaWVycyBiZWNvbWluZyBw ZXJtYW5lbnRseSBpbmNyZW1lbnRlZCBhbmQgZGVhZGxvY2suCgpJZiB0aGUgc3luY19jcHVfZGV2 aWNlX3BhZ2V0YWJsZXMoKSByZXF1aXJlZCBibG9ja2luZyB0aGUgZnVuY3Rpb24gd2lsbApub3Qg cmV0dXJuIEVBR0FJTiBldmVuIHRob3VnaCB0aGUgZGV2aWNlIGNvbnRpbnVlcyB0byB0b3VjaCB0 aGUKcGFnZXMuIFRoaXMgaXMgYSB2aW9sYXRpb24gb2YgdGhlIG1tdSBub3RpZmllciBjb250cmFj dC4KClN3aXRjaCwgYW5kIHJlbmFtZSwgdGhlIHJhbmdlc19sb2NrIHRvIGEgc3BpbiBsb2NrIHNv IHdlIGNhbiByZWxpYWJseQpvYnRhaW4gaXQgd2l0aG91dCBibG9ja2luZyBkdXJpbmcgZXJyb3Ig dW53aW5kLgoKVGhlIGVycm9yIHVud2luZCBpcyBuZWNlc3Nhcnkgc2luY2UgdGhlIG5vdGlmaWVy cyBjb3VudCBtdXN0IGJlIGhlbGQKaW5jcmVtZW50ZWQgYWNyb3NzIHRoZSBjYWxsIHRvIHN5bmNf Y3B1X2RldmljZV9wYWdldGFibGVzKCkgYXMgd2UgY2Fubm90CmFsbG93IHRoZSByYW5nZSB0byBi ZWNvbWUgbWFya2VkIHZhbGlkIGJ5IGEgcGFyYWxsZWwKaW52YWxpZGF0ZV9zdGFydC9lbmQoKSBw YWlyIHdoaWxlIGRvaW5nIHN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKCkuCgpTaWduZWQtb2Zm LWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSYWxw aCBDYW1wYmVsbCA8cmNhbXBiZWxsQG52aWRpYS5jb20+ClJldmlld2VkLWJ5OiBDaHJpc3RvcGgg SGVsbHdpZyA8aGNoQGxzdC5kZT4KVGVzdGVkLWJ5OiBQaGlsaXAgWWFuZyA8UGhpbGlwLllhbmdA YW1kLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2htbS5oIHwgIDIgKy0KIG1tL2htbS5jICAgICAg ICAgICAgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9obW0uaCBiL2luY2x1ZGUvbGludXgvaG1tLmgKaW5kZXgg YmYwMTNlOTY1MjU3NzEuLjBmYThlYTM0Y2NlZjZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2htbS5oCisrKyBiL2luY2x1ZGUvbGludXgvaG1tLmgKQEAgLTg2LDcgKzg2LDcgQEAKIHN0cnVj dCBobW0gewogCXN0cnVjdCBtbV9zdHJ1Y3QJKm1tOwogCXN0cnVjdCBrcmVmCQlrcmVmOwotCXN0 cnVjdCBtdXRleAkJbG9jazsKKwlzcGlubG9ja190CQlyYW5nZXNfbG9jazsKIAlzdHJ1Y3QgbGlz dF9oZWFkCXJhbmdlczsKIAlzdHJ1Y3QgbGlzdF9oZWFkCW1pcnJvcnM7CiAJc3RydWN0IG1tdV9u b3RpZmllcgltbXVfbm90aWZpZXI7CmRpZmYgLS1naXQgYS9tbS9obW0uYyBiL21tL2htbS5jCmlu ZGV4IGIyMjRlYTYzNWE3NzE2Li44OTU0OWVhYzAzZDUwNiAxMDA2NDQKLS0tIGEvbW0vaG1tLmMK KysrIGIvbW0vaG1tLmMKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIHN0cnVjdCBobW0gKmhtbV9n ZXRfb3JfY3JlYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCWluaXRfcndzZW0oJmhtbS0+bWly cm9yc19zZW0pOwogCWhtbS0+bW11X25vdGlmaWVyLm9wcyA9IE5VTEw7CiAJSU5JVF9MSVNUX0hF QUQoJmhtbS0+cmFuZ2VzKTsKLQltdXRleF9pbml0KCZobW0tPmxvY2spOworCXNwaW5fbG9ja19p bml0KCZobW0tPnJhbmdlc19sb2NrKTsKIAlrcmVmX2luaXQoJmhtbS0+a3JlZik7CiAJaG1tLT5u b3RpZmllcnMgPSAwOwogCWhtbS0+bW0gPSBtbTsKQEAgLTE0NCw2ICsxNDQsMjMgQEAgc3RhdGlj IHZvaWQgaG1tX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sIHN0cnVjdCBtbV9zdHJ1 Y3QgKm1tKQogCWhtbV9wdXQoaG1tKTsKIH0KIAorc3RhdGljIHZvaWQgbm90aWZpZXJzX2RlY3Jl bWVudChzdHJ1Y3QgaG1tICpobW0pCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaG1tLT5yYW5n ZXNfbG9jayk7CisKKwlobW0tPm5vdGlmaWVycy0tOworCWlmICghaG1tLT5ub3RpZmllcnMpIHsK KwkJc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5n ZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KSB7CisJCQlpZiAocmFuZ2UtPnZhbGlkKQorCQkJCWNvbnRp bnVlOworCQkJcmFuZ2UtPnZhbGlkID0gdHJ1ZTsKKwkJfQorCQl3YWtlX3VwX2FsbCgmaG1tLT53 cSk7CisJfQorfQorCiBzdGF0aWMgaW50IGhtbV9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAogCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq bnJhbmdlKQogewpAQCAtMTUxLDYgKzE2OCw3IEBAIHN0YXRpYyBpbnQgaG1tX2ludmFsaWRhdGVf cmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCiAJc3RydWN0IGhtbV9taXJyb3Ig Km1pcnJvcjsKIAlzdHJ1Y3QgaG1tX3VwZGF0ZSB1cGRhdGU7CiAJc3RydWN0IGhtbV9yYW5nZSAq cmFuZ2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0ID0gMDsKIAogCWlmICgha3Jl Zl9nZXRfdW5sZXNzX3plcm8oJmhtbS0+a3JlZikpCkBAIC0xNjEsMTIgKzE3OSw3IEBAIHN0YXRp YyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4s CiAJdXBkYXRlLmV2ZW50ID0gSE1NX1VQREFURV9JTlZBTElEQVRFOwogCXVwZGF0ZS5ibG9ja2Fi bGUgPSBtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKG5yYW5nZSk7CiAKLQlpZiAobW11X25v dGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpKQotCQltdXRleF9sb2NrKCZobW0tPmxvY2sp OwotCWVsc2UgaWYgKCFtdXRleF90cnlsb2NrKCZobW0tPmxvY2spKSB7Ci0JCXJldCA9IC1FQUdB SU47Ci0JCWdvdG8gb3V0OwotCX0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9j aywgZmxhZ3MpOwogCWhtbS0+bm90aWZpZXJzKys7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5n ZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KSB7CiAJCWlmICh1cGRhdGUuZW5kIDwgcmFuZ2UtPnN0YXJ0 IHx8IHVwZGF0ZS5zdGFydCA+PSByYW5nZS0+ZW5kKQpAQCAtMTc0LDcgKzE4Nyw3IEBAIHN0YXRp YyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4s CiAKIAkJcmFuZ2UtPnZhbGlkID0gZmFsc2U7CiAJfQotCW11dGV4X3VubG9jaygmaG1tLT5sb2Nr KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7CiAK IAlpZiAobW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpKQogCQlkb3duX3JlYWQo JmhtbS0+bWlycm9yc19zZW0pOwpAQCAtMTgyLDE2ICsxOTUsMjYgQEAgc3RhdGljIGludCBobW1f aW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJcmV0ID0g LUVBR0FJTjsKIAkJZ290byBvdXQ7CiAJfQorCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtaXJyb3Is ICZobW0tPm1pcnJvcnMsIGxpc3QpIHsKLQkJaW50IHJldDsKKwkJaW50IHJjOwogCi0JCXJldCA9 IG1pcnJvci0+b3BzLT5zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhtaXJyb3IsICZ1cGRhdGUp OwotCQlpZiAoIXVwZGF0ZS5ibG9ja2FibGUgJiYgcmV0ID09IC1FQUdBSU4pCisJCXJjID0gbWly cm9yLT5vcHMtPnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKG1pcnJvciwgJnVwZGF0ZSk7CisJ CWlmIChyYykgeworCQkJaWYgKFdBUk5fT04odXBkYXRlLmJsb2NrYWJsZSB8fCByYyAhPSAtRUFH QUlOKSkKKwkJCQljb250aW51ZTsKKwkJCXJldCA9IC1FQUdBSU47CiAJCQlicmVhazsKKwkJfQog CX0KIAl1cF9yZWFkKCZobW0tPm1pcnJvcnNfc2VtKTsKIAogb3V0OgorCWlmIChyZXQpIHsKKwkJ c3Bpbl9sb2NrX2lycXNhdmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsKKwkJbm90aWZpZXJz X2RlY3JlbWVudChobW0pOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19s b2NrLCBmbGFncyk7CisJfQogCWhtbV9wdXQoaG1tKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMjAw LDIzICsyMjMsMTQgQEAgc3RhdGljIHZvaWQgaG1tX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAogCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq bnJhbmdlKQogewogCXN0cnVjdCBobW0gKmhtbSA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGht bSwgbW11X25vdGlmaWVyKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKCFrcmVmX2dl dF91bmxlc3NfemVybygmaG1tLT5rcmVmKSkKIAkJcmV0dXJuOwogCi0JbXV0ZXhfbG9jaygmaG1t LT5sb2NrKTsKLQlobW0tPm5vdGlmaWVycy0tOwotCWlmICghaG1tLT5ub3RpZmllcnMpIHsKLQkJ c3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5nZSwg JmhtbS0+cmFuZ2VzLCBsaXN0KSB7Ci0JCQlpZiAocmFuZ2UtPnZhbGlkKQotCQkJCWNvbnRpbnVl OwotCQkJcmFuZ2UtPnZhbGlkID0gdHJ1ZTsKLQkJfQotCQl3YWtlX3VwX2FsbCgmaG1tLT53cSk7 Ci0JfQotCW11dGV4X3VubG9jaygmaG1tLT5sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1t LT5yYW5nZXNfbG9jaywgZmxhZ3MpOworCW5vdGlmaWVyc19kZWNyZW1lbnQoaG1tKTsKKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7CiAKIAlobW1fcHV0 KGhtbSk7CiB9CkBAIC04NjgsNiArODgyLDcgQEAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1 Y3QgaG1tX3JhbmdlICpyYW5nZSwKIHsKIAl1bnNpZ25lZCBsb25nIG1hc2sgPSAoKDFVTCA8PCBw YWdlX3NoaWZ0KSAtIDFVTCk7CiAJc3RydWN0IGhtbSAqaG1tID0gbWlycm9yLT5obW07CisJdW5z aWduZWQgbG9uZyBmbGFnczsKIAogCXJhbmdlLT52YWxpZCA9IGZhbHNlOwogCXJhbmdlLT5obW0g PSBOVUxMOwpAQCAtODg2LDcgKzkwMSw3IEBAIGludCBobW1fcmFuZ2VfcmVnaXN0ZXIoc3RydWN0 IGhtbV9yYW5nZSAqcmFuZ2UsCiAJCXJldHVybiAtRUZBVUxUOwogCiAJLyogSW5pdGlhbGl6ZSBy YW5nZSB0byB0cmFjayBDUFUgcGFnZSB0YWJsZSB1cGRhdGVzLiAqLwotCW11dGV4X2xvY2soJmht bS0+bG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsK IAogCXJhbmdlLT5obW0gPSBobW07CiAJa3JlZl9nZXQoJmhtbS0+a3JlZik7CkBAIC04OTgsNyAr OTEzLDcgQEAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwK IAkgKi8KIAlpZiAoIWhtbS0+bm90aWZpZXJzKQogCQlyYW5nZS0+dmFsaWQgPSB0cnVlOwotCW11 dGV4X3VubG9jaygmaG1tLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJh bmdlc19sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkxNCwxMCArOTI5LDExIEBA IEVYUE9SVF9TWU1CT0woaG1tX3JhbmdlX3JlZ2lzdGVyKTsKIHZvaWQgaG1tX3JhbmdlX3VucmVn aXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiB7CiAJc3RydWN0IGhtbSAqaG1tID0gcmFu Z2UtPmhtbTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JbXV0ZXhfbG9jaygmaG1tLT5sb2Nr KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCWxpc3Rf ZGVsX2luaXQoJnJhbmdlLT5saXN0KTsKLQltdXRleF91bmxvY2soJmhtbS0+bG9jayk7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCiAJLyogRHJv cCByZWZlcmVuY2UgdGFrZW4gYnkgaG1tX3JhbmdlX3JlZ2lzdGVyKCkgKi8KIAltbXB1dChobW0t Pm1tKTsKLS0gCjIuMjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4