From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v3 hmm 12/12] mm/hmm: Fix error flows in hmm_invalidate_range_start Date: Thu, 13 Jun 2019 21:44:50 -0300 Message-ID: <20190614004450.20252-13-jgg@ziepe.ca> References: <20190614004450.20252-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66CDD892FF for ; Fri, 14 Jun 2019 00:45:00 +0000 (UTC) Received: by mail-qt1-x843.google.com with SMTP id n11so606067qtl.5 for ; Thu, 13 Jun 2019 17:45:00 -0700 (PDT) In-Reply-To: <20190614004450.20252-1-jgg@ziepe.ca> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Cc: Andrea Arcangeli , Philip Yang , linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, linux-mm@kvack.org, Jason Gunthorpe , dri-devel@lists.freedesktop.org, Ben Skeggs List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKSWYgdGhlIHRyeWxvY2sg b24gdGhlIGhtbS0+bWlycm9yc19zZW0gZmFpbHMgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCndp dGhvdXQgZGVjcmVtZW50aW5nIHRoZSBub3RpZmllcnMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgaW5j cmVtZW50ZWQuIFNpbmNlCnRoZSBjYWxsZXIgd2lsbCBub3QgY2FsbCBpbnZhbGlkYXRlX3Jhbmdl X2VuZCgpIG9uIEVBR0FJTiB0aGlzIHdpbGwgcmVzdWx0CmluIG5vdGlmaWVycyBiZWNvbWluZyBw ZXJtYW5lbnRseSBpbmNyZW1lbnRlZCBhbmQgZGVhZGxvY2suCgpJZiB0aGUgc3luY19jcHVfZGV2 aWNlX3BhZ2V0YWJsZXMoKSByZXF1aXJlZCBibG9ja2luZyB0aGUgZnVuY3Rpb24gd2lsbApub3Qg cmV0dXJuIEVBR0FJTiBldmVuIHRob3VnaCB0aGUgZGV2aWNlIGNvbnRpbnVlcyB0byB0b3VjaCB0 aGUKcGFnZXMuIFRoaXMgaXMgYSB2aW9sYXRpb24gb2YgdGhlIG1tdSBub3RpZmllciBjb250cmFj dC4KClN3aXRjaCwgYW5kIHJlbmFtZSwgdGhlIHJhbmdlc19sb2NrIHRvIGEgc3BpbiBsb2NrIHNv IHdlIGNhbiByZWxpYWJseQpvYnRhaW4gaXQgd2l0aG91dCBibG9ja2luZyBkdXJpbmcgZXJyb3Ig dW53aW5kLgoKVGhlIGVycm9yIHVud2luZCBpcyBuZWNlc3Nhcnkgc2luY2UgdGhlIG5vdGlmaWVy cyBjb3VudCBtdXN0IGJlIGhlbGQKaW5jcmVtZW50ZWQgYWNyb3NzIHRoZSBjYWxsIHRvIHN5bmNf Y3B1X2RldmljZV9wYWdldGFibGVzKCkgYXMgd2UgY2Fubm90CmFsbG93IHRoZSByYW5nZSB0byBi ZWNvbWUgbWFya2VkIHZhbGlkIGJ5IGEgcGFyYWxsZWwKaW52YWxpZGF0ZV9zdGFydC9lbmQoKSBw YWlyIHdoaWxlIGRvaW5nIHN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKCkuCgpTaWduZWQtb2Zm LWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSYWxw aCBDYW1wYmVsbCA8cmNhbXBiZWxsQG52aWRpYS5jb20+ClRlc3RlZC1ieTogUGhpbGlwIFlhbmcg PFBoaWxpcC5ZYW5nQGFtZC5jb20+Ci0tLQogaW5jbHVkZS9saW51eC9obW0uaCB8ICAyICstCiBt bS9obW0uYyAgICAgICAgICAgIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDMxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaG1tLmggYi9pbmNsdWRlL2xpbnV4 L2htbS5oCmluZGV4IGJmMDEzZTk2NTI1NzcxLi4wZmE4ZWEzNGNjZWY2ZCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9obW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2htbS5oCkBAIC04Niw3ICs4 Niw3IEBACiBzdHJ1Y3QgaG1tIHsKIAlzdHJ1Y3QgbW1fc3RydWN0CSptbTsKIAlzdHJ1Y3Qga3Jl ZgkJa3JlZjsKLQlzdHJ1Y3QgbXV0ZXgJCWxvY2s7CisJc3BpbmxvY2tfdAkJcmFuZ2VzX2xvY2s7 CiAJc3RydWN0IGxpc3RfaGVhZAlyYW5nZXM7CiAJc3RydWN0IGxpc3RfaGVhZAltaXJyb3JzOwog CXN0cnVjdCBtbXVfbm90aWZpZXIJbW11X25vdGlmaWVyOwpkaWZmIC0tZ2l0IGEvbW0vaG1tLmMg Yi9tbS9obW0uYwppbmRleCBjMGQ0MzMwMmZkNmIyZi4uMTE3MmE0ZjAyMDY5NjMgMTAwNjQ0Ci0t LSBhL21tL2htbS5jCisrKyBiL21tL2htbS5jCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBzdHJ1 Y3QgaG1tICpobW1fZ2V0X29yX2NyZWF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlpbml0X3J3 c2VtKCZobW0tPm1pcnJvcnNfc2VtKTsKIAlobW0tPm1tdV9ub3RpZmllci5vcHMgPSBOVUxMOwog CUlOSVRfTElTVF9IRUFEKCZobW0tPnJhbmdlcyk7Ci0JbXV0ZXhfaW5pdCgmaG1tLT5sb2NrKTsK KwlzcGluX2xvY2tfaW5pdCgmaG1tLT5yYW5nZXNfbG9jayk7CiAJa3JlZl9pbml0KCZobW0tPmty ZWYpOwogCWhtbS0+bm90aWZpZXJzID0gMDsKIAlobW0tPm1tID0gbW07CkBAIC0xMjQsMTggKzEy NCwxOSBAQCBzdGF0aWMgdm9pZCBobW1fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwg c3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJc3RydWN0IGhtbSAqaG1tID0gY29udGFpbmVyX29m KG1uLCBzdHJ1Y3QgaG1tLCBtbXVfbm90aWZpZXIpOwogCXN0cnVjdCBobW1fbWlycm9yICptaXJy b3I7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIEJhaWwgb3V0IGlmIGhtbSBpcyBpbiB0 aGUgcHJvY2VzcyBvZiBiZWluZyBmcmVlZCAqLwogCWlmICgha3JlZl9nZXRfdW5sZXNzX3plcm8o JmhtbS0+a3JlZikpCiAJCXJldHVybjsKIAotCW11dGV4X2xvY2soJmhtbS0+bG9jayk7CisJc3Bp bl9sb2NrX2lycXNhdmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsKIAkvKgogCSAqIFNpbmNl IGhtbV9yYW5nZV9yZWdpc3RlcigpIGhvbGRzIHRoZSBtbWdldCgpIGxvY2sgaG1tX3JlbGVhc2Uo KSBpcwogCSAqIHByZXZlbnRlZCBhcyBsb25nIGFzIGEgcmFuZ2UgZXhpc3RzLgogCSAqLwogCVdB Uk5fT04oIWxpc3RfZW1wdHkoJmhtbS0+cmFuZ2VzKSk7Ci0JbXV0ZXhfdW5sb2NrKCZobW0tPmxv Y2spOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsK IAogCWRvd25fcmVhZCgmaG1tLT5taXJyb3JzX3NlbSk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeSht aXJyb3IsICZobW0tPm1pcnJvcnMsIGxpc3QpIHsKQEAgLTE1MSw2ICsxNTIsMjMgQEAgc3RhdGlj IHZvaWQgaG1tX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sIHN0cnVjdCBtbV9zdHJ1 Y3QgKm1tKQogCWhtbV9wdXQoaG1tKTsKIH0KIAorc3RhdGljIHZvaWQgbm90aWZpZXJzX2RlY3Jl bWVudChzdHJ1Y3QgaG1tICpobW0pCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaG1tLT5yYW5n ZXNfbG9jayk7CisKKwlobW0tPm5vdGlmaWVycy0tOworCWlmICghaG1tLT5ub3RpZmllcnMpIHsK KwkJc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5n ZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KSB7CisJCQlpZiAocmFuZ2UtPnZhbGlkKQorCQkJCWNvbnRp bnVlOworCQkJcmFuZ2UtPnZhbGlkID0gdHJ1ZTsKKwkJfQorCQl3YWtlX3VwX2FsbCgmaG1tLT53 cSk7CisJfQorfQorCiBzdGF0aWMgaW50IGhtbV9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAogCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq bnJhbmdlKQogewpAQCAtMTU4LDYgKzE3Niw3IEBAIHN0YXRpYyBpbnQgaG1tX2ludmFsaWRhdGVf cmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCiAJc3RydWN0IGhtbV9taXJyb3Ig Km1pcnJvcjsKIAlzdHJ1Y3QgaG1tX3VwZGF0ZSB1cGRhdGU7CiAJc3RydWN0IGhtbV9yYW5nZSAq cmFuZ2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0ID0gMDsKIAogCWlmICgha3Jl Zl9nZXRfdW5sZXNzX3plcm8oJmhtbS0+a3JlZikpCkBAIC0xNjgsMTIgKzE4Nyw3IEBAIHN0YXRp YyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4s CiAJdXBkYXRlLmV2ZW50ID0gSE1NX1VQREFURV9JTlZBTElEQVRFOwogCXVwZGF0ZS5ibG9ja2Fi bGUgPSBtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKG5yYW5nZSk7CiAKLQlpZiAobW11X25v dGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpKQotCQltdXRleF9sb2NrKCZobW0tPmxvY2sp OwotCWVsc2UgaWYgKCFtdXRleF90cnlsb2NrKCZobW0tPmxvY2spKSB7Ci0JCXJldCA9IC1FQUdB SU47Ci0JCWdvdG8gb3V0OwotCX0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9j aywgZmxhZ3MpOwogCWhtbS0+bm90aWZpZXJzKys7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5n ZSwgJmhtbS0+cmFuZ2VzLCBsaXN0KSB7CiAJCWlmICh1cGRhdGUuZW5kIDwgcmFuZ2UtPnN0YXJ0 IHx8IHVwZGF0ZS5zdGFydCA+PSByYW5nZS0+ZW5kKQpAQCAtMTgxLDcgKzE5NSw3IEBAIHN0YXRp YyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3RpZmllciAqbW4s CiAKIAkJcmFuZ2UtPnZhbGlkID0gZmFsc2U7CiAJfQotCW11dGV4X3VubG9jaygmaG1tLT5sb2Nr KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7CiAK IAlpZiAobW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpKQogCQlkb3duX3JlYWQo JmhtbS0+bWlycm9yc19zZW0pOwpAQCAtMTg5LDE2ICsyMDMsMjYgQEAgc3RhdGljIGludCBobW1f aW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJcmV0ID0g LUVBR0FJTjsKIAkJZ290byBvdXQ7CiAJfQorCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtaXJyb3Is ICZobW0tPm1pcnJvcnMsIGxpc3QpIHsKLQkJaW50IHJldDsKKwkJaW50IHJjOwogCi0JCXJldCA9 IG1pcnJvci0+b3BzLT5zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhtaXJyb3IsICZ1cGRhdGUp OwotCQlpZiAoIXVwZGF0ZS5ibG9ja2FibGUgJiYgcmV0ID09IC1FQUdBSU4pCisJCXJjID0gbWly cm9yLT5vcHMtPnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKG1pcnJvciwgJnVwZGF0ZSk7CisJ CWlmIChyYykgeworCQkJaWYgKFdBUk5fT04odXBkYXRlLmJsb2NrYWJsZSB8fCByYyAhPSAtRUFH QUlOKSkKKwkJCQljb250aW51ZTsKKwkJCXJldCA9IC1FQUdBSU47CiAJCQlicmVhazsKKwkJfQog CX0KIAl1cF9yZWFkKCZobW0tPm1pcnJvcnNfc2VtKTsKIAogb3V0OgorCWlmIChyZXQpIHsKKwkJ c3Bpbl9sb2NrX2lycXNhdmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsKKwkJbm90aWZpZXJz X2RlY3JlbWVudChobW0pOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19s b2NrLCBmbGFncyk7CisJfQogCWhtbV9wdXQoaG1tKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMjA3 LDIzICsyMzEsMTQgQEAgc3RhdGljIHZvaWQgaG1tX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAogCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq bnJhbmdlKQogewogCXN0cnVjdCBobW0gKmhtbSA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGht bSwgbW11X25vdGlmaWVyKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKCFrcmVmX2dl dF91bmxlc3NfemVybygmaG1tLT5rcmVmKSkKIAkJcmV0dXJuOwogCi0JbXV0ZXhfbG9jaygmaG1t LT5sb2NrKTsKLQlobW0tPm5vdGlmaWVycy0tOwotCWlmICghaG1tLT5ub3RpZmllcnMpIHsKLQkJ c3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyYW5nZSwg JmhtbS0+cmFuZ2VzLCBsaXN0KSB7Ci0JCQlpZiAocmFuZ2UtPnZhbGlkKQotCQkJCWNvbnRpbnVl OwotCQkJcmFuZ2UtPnZhbGlkID0gdHJ1ZTsKLQkJfQotCQl3YWtlX3VwX2FsbCgmaG1tLT53cSk7 Ci0JfQotCW11dGV4X3VubG9jaygmaG1tLT5sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1t LT5yYW5nZXNfbG9jaywgZmxhZ3MpOworCW5vdGlmaWVyc19kZWNyZW1lbnQoaG1tKTsKKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7CiAKIAlobW1fcHV0 KGhtbSk7CiB9CkBAIC04NzYsNiArODkxLDcgQEAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1 Y3QgaG1tX3JhbmdlICpyYW5nZSwKIHsKIAl1bnNpZ25lZCBsb25nIG1hc2sgPSAoKDFVTCA8PCBw YWdlX3NoaWZ0KSAtIDFVTCk7CiAJc3RydWN0IGhtbSAqaG1tID0gbWlycm9yLT5obW07CisJdW5z aWduZWQgbG9uZyBmbGFnczsKIAogCXJhbmdlLT52YWxpZCA9IGZhbHNlOwogCXJhbmdlLT5obW0g PSBOVUxMOwpAQCAtODk0LDcgKzkxMCw3IEBAIGludCBobW1fcmFuZ2VfcmVnaXN0ZXIoc3RydWN0 IGhtbV9yYW5nZSAqcmFuZ2UsCiAJCXJldHVybiAtRUZBVUxUOwogCiAJLyogSW5pdGlhbGl6ZSBy YW5nZSB0byB0cmFjayBDUFUgcGFnZSB0YWJsZSB1cGRhdGVzLiAqLwotCW11dGV4X2xvY2soJmht bS0+bG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsK IAogCXJhbmdlLT5obW0gPSBobW07CiAJa3JlZl9nZXQoJmhtbS0+a3JlZik7CkBAIC05MDYsNyAr OTIyLDcgQEAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwK IAkgKi8KIAlpZiAoIWhtbS0+bm90aWZpZXJzKQogCQlyYW5nZS0+dmFsaWQgPSB0cnVlOwotCW11 dGV4X3VubG9jaygmaG1tLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJh bmdlc19sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkyMiwxMCArOTM4LDExIEBA IEVYUE9SVF9TWU1CT0woaG1tX3JhbmdlX3JlZ2lzdGVyKTsKIHZvaWQgaG1tX3JhbmdlX3VucmVn aXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiB7CiAJc3RydWN0IGhtbSAqaG1tID0gcmFu Z2UtPmhtbTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JbXV0ZXhfbG9jaygmaG1tLT5sb2Nr KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwogCWxpc3Rf ZGVsKCZyYW5nZS0+bGlzdCk7Ci0JbXV0ZXhfdW5sb2NrKCZobW0tPmxvY2spOworCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmhtbS0+cmFuZ2VzX2xvY2ssIGZsYWdzKTsKIAogCS8qIERyb3AgcmVm ZXJlbmNlIHRha2VuIGJ5IGhtbV9yYW5nZV9yZWdpc3RlcigpICovCiAJbW1wdXQoaG1tLT5tbSk7 Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bA==