From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 57/62] drm/i915: Be more careful when unbinding vma Date: Fri, 3 Jun 2016 17:37:22 +0100 Message-ID: <1464971847-15809-58-git-send-email-chris@chris-wilson.co.uk> References: <1464971847-15809-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66DC26EE3D for ; Fri, 3 Jun 2016 16:38:29 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a136so633080wme.0 for ; Fri, 03 Jun 2016 09:38:29 -0700 (PDT) In-Reply-To: <1464971847-15809-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2hlbiB3ZSBjYWxsIGk5MTVfdm1hX3VuYmluZCgpLCB3ZSB3aWxsIHdhaXQgdXBvbiBvdXRzdGFu ZGluZyByZW5kZXJpbmcuClRoaXMgd2lsbCBhbHNvIHRyaWdnZXIgYSByZXRpcmVtZW50IHBoYXNl LCB3aGljaCBtYXkgdXBkYXRlIHRoZSBvYmplY3QKbGlzdHMuIElmLCB3ZSBleHRlbmQgcmVxdWVz dCB0cmFja2luZyB0byB0aGUgVk1BIGl0c2VsZiAocmF0aGVyIHRoYW4Ka2VlcCBpdCBhdCB0aGUg ZW5jb21wYXNzaW5nIG9iamVjdCksIHRoZW4gdGhlcmUgaXMgYSBwb3RlbnRpYWwgdGhhdCB0aGUK b2JqLT52bWFfbGlzdCBiZSBtb2RpZmllZCBmb3Igb3RoZXIgZWxlbWVudHMgdXBvbiBpOTE1X3Zt YV91bmJpbmQoKS4gQXMKYSByZXN1bHQsIGlmIHdlIHdhbGsgb3ZlciB0aGUgb2JqZWN0IGxpc3Qg YW5kIGNhbGwgaTkxNV92bWFfdW5iaW5kKCksIHdlCm5lZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRo YXQgbGlzdCB0byBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgIHwgIDIgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAg fCA1NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyB8ICA3ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3VzZXJwdHIuYyAgfCAgNCArLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9u cygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZGQzZjdh ZmRmNDIzLi44M2M4ZGNjNzQ0ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjk2MSw2 ICsyOTYxLDggQEAgaW50IF9fbXVzdF9jaGVjayBpOTE1X3ZtYV91bmJpbmQoc3RydWN0IGk5MTVf dm1hICp2bWEpOwogICogX2d1YXJhbnRlZV8gVk1BIGluIHF1ZXN0aW9uIGlzIF9ub3QgaW4gdXNl XyBhbnl3aGVyZS4KICAqLwogaW50IF9fbXVzdF9jaGVjayBfX2k5MTVfdm1hX3VuYmluZF9ub193 YWl0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKKworaW50IGk5MTVfZ2VtX29iamVjdF91bmJpbmQo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiBpbnQgaTkxNV9nZW1fb2JqZWN0X3B1 dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgaTkxNV9nZW1f cmVsZWFzZV9hbGxfbW1hcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZv aWQgaTkxNV9nZW1fcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMmJhNDY3YzBiMGI3Li5lNTE4OTE1NWU3Mjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjU1LDE4ICsyNTUsMzggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9waHlzX29wcyA9IHsK IAkucmVsZWFzZSA9IGk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3BoeXMsCiB9OwogCitpbnQKK2k5 MTVfZ2VtX29iamVjdF91bmJpbmQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sK KwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlMSVNUX0hFQUQoc3RpbGxfaW5fbGlzdCk7CisJaW50 IHJldDsKKworCS8qIFRoZSB2bWEgd2lsbCBvbmx5IGJlIGZyZWVkIGlmIGl0IGlzIG1hcmtlZCBh cyBjbG9zZWQsIGFuZCBpZiB3ZSB3YWl0CisJICogdXBvbiByZW5kZXJpbmcgdG8gdGhlIHZtYSwg d2UgbWF5IHVuYmluZCBhbnl0aGluZyBpbiB0aGUgbGlzdC4KKwkgKi8KKwl3aGlsZSAoKHZtYSA9 IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmb2JqLT52bWFfbGlzdCwKKwkJCQkJICAgICAgIHN0 cnVjdCBpOTE1X3ZtYSwKKwkJCQkJICAgICAgIG9ial9saW5rKSkpIHsKKwkJbGlzdF9tb3ZlX3Rh aWwoJnZtYS0+b2JqX2xpbmssICZzdGlsbF9pbl9saXN0KTsKKwkJcmV0ID0gaTkxNV92bWFfdW5i aW5kKHZtYSk7CisJCWlmIChyZXQpCisJCQlicmVhazsKKwl9CisJbGlzdF9zcGxpY2UoJnN0aWxs X2luX2xpc3QsICZvYmotPnZtYV9saXN0KTsKKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBp bnQKIGRyb3BfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwgKm5leHQ7CiAJaW50IHJldDsKIAogCWk5MTVfZ2VtX29iamVjdF9n ZXQob2JqKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCBuZXh0LCAmb2JqLT52bWFf bGlzdCwgb2JqX2xpbmspCi0JCWlmIChpOTE1X3ZtYV91bmJpbmQodm1hKSkKLQkJCWJyZWFrOwot Ci0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhvYmopOworCXJldCA9IGk5MTVfZ2Vt X29iamVjdF91bmJpbmQob2JqKTsKKwlpZiAocmV0ID09IDApCisJCXJldCA9IGk5MTVfZ2VtX29i amVjdF9wdXRfcGFnZXMob2JqKTsKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAKIAlyZXR1 cm4gcmV0OwpAQCAtMjk4Myw4ICszMDAzLDcgQEAgaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRf ZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgd3JpdGUpCiBpbnQg aTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCQkJCSAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwpCiB7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0Jc3RydWN0IGk5MTVfdm1h ICp2bWEsICpuZXh0OworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCByZXQgPSAwOwogCiAJ aWYgKG9iai0+Y2FjaGVfbGV2ZWwgPT0gY2FjaGVfbGV2ZWwpCkBAIC0yOTk1LDcgKzMwMTQsOCBA QCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCSAqIGNhdGNoIHRoZSBpc3N1ZSBvZiB0aGUgQ1MgcHJlZmV0Y2ggY3Jv c3NpbmcgcGFnZSBib3VuZGFyaWVzIGFuZAogCSAqIHJlYWRpbmcgYW4gaW52YWxpZCBQVEUgb24g b2xkZXIgYXJjaGl0ZWN0dXJlcy4KIAkgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1h LCBuZXh0LCAmb2JqLT52bWFfbGlzdCwgb2JqX2xpbmspIHsKK3Jlc3RhcnQ6CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykgewogCQlpZiAoIWRybV9t bV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0zMDA0LDEx ICszMDI0LDE4IEBAIGludCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAKLQkJaWYg KCFpOTE1X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBjYWNoZV9sZXZlbCkpIHsKLQkJCXJldCA9 IGk5MTVfdm1hX3VuYmluZCh2bWEpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OwotCQl9 CisJCWlmIChpOTE1X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBjYWNoZV9sZXZlbCkpCisJCQlj b250aW51ZTsKKworCQlyZXQgPSBpOTE1X3ZtYV91bmJpbmQodm1hKTsKKwkJaWYgKHJldCkKKwkJ CXJldHVybiByZXQ7CisKKwkJLyogQXMgdW5iaW5kaW5nIG1heSBhZmZlY3Qgb3RoZXIgZWxlbWVu dHMgaW4gdGhlCisJCSAqIG9iai0+dm1hX2xpc3QgKGR1ZSB0byBzaWRlLWVmZmVjdHMgZnJvbSBy ZXRpcmluZworCQkgKiBhbiBhY3RpdmUgdm1hKSwgcGxheSBzYWZlIGFuZCByZXN0YXJ0IHRoZSBp dGVyYXRvci4KKwkJICovCisJCWdvdG8gcmVzdGFydDsKIAl9CiAKIAkvKiBXZSBjYW4gcmV1c2Ug dGhlIGV4aXN0aW5nIGRybV9tbSBub2RlcyBidXQgbmVlZCB0byBjaGFuZ2UgdGhlCkBAIC0zMDI3 LDcgKzMwNTQsNyBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAot CQlpZiAoIUhBU19MTEMoZGV2KSAmJiBjYWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUpIHsK KwkJaWYgKCFIQVNfTExDKG9iai0+YmFzZS5kZXYpICYmIGNhY2hlX2xldmVsICE9IEk5MTVfQ0FD SEVfTk9ORSkgewogCQkJLyogQWNjZXNzIHRvIHNub29wYWJsZSBwYWdlcyB0aHJvdWdoIHRoZSBH VFQgaXMKIAkJCSAqIGluY29oZXJlbnQgYW5kIG9uIHNvbWUgbWFjaGluZXMgY2F1c2VzIGEgaGFy ZAogCQkJICogbG9ja3VwLiBSZWxpbnF1aXNoIHRoZSBDUFUgbW1hcGluZyB0byBmb3JjZQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKaW5kZXggYTAyOTAzMDA3ZjlhLi43 MWFkNTg4MzZmNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3No cmlua2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwpA QCAtMTU1LDcgKzE1NSw2IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCUlOSVRfTElTVF9IRUFEKCZzdGlsbF9pbl9saXN0KTsKIAkJd2hpbGUg KGNvdW50IDwgdGFyZ2V0ICYmICFsaXN0X2VtcHR5KHBoYXNlLT5saXN0KSkgewogCQkJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdjsK IAogCQkJb2JqID0gbGlzdF9maXJzdF9lbnRyeShwaGFzZS0+bGlzdCwKIAkJCQkJICAgICAgIHR5 cGVvZigqb2JqKSwgZ2xvYmFsX2xpc3QpOwpAQCAtMTc4LDExICsxNzcsNyBAQCBpOTE1X2dlbV9z aHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJaTkxNV9nZW1fb2Jq ZWN0X2dldChvYmopOwogCiAJCQkvKiBGb3IgdGhlIHVuYm91bmQgcGhhc2UsIHRoaXMgc2hvdWxk IGJlIGEgbm8tb3AhICovCi0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2LAotCQkJ CQkJICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykKLQkJCQlpZiAoaTkxNV92bWFfdW5iaW5kKHZt YSkpCi0JCQkJCWJyZWFrOwotCisJCQlpOTE1X2dlbV9vYmplY3RfdW5iaW5kKG9iaik7CiAJCQlp ZiAoaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhvYmopID09IDApCiAJCQkJY291bnQgKz0gb2Jq LT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f dXNlcnB0ci5jCmluZGV4IGRkNmQ4MjNhYzNlMi4uZTU3NTIxZGJkZGM2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCkBAIC0xMDMsNyArMTAzLDYgQEAgc3RhdGljIHZv aWQgY2FuY2VsX3VzZXJwdHIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJaWYgKG9iai0+ cGFnZXMgIT0gTlVMTCkgewogCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdG1wOwogCQlib29sIHdhc19p bnRlcnJ1cHRpYmxlOwogCiAJCXdhaXRfcmVuZGVyaW5nKG9iaik7CkBAIC0xMTEsOCArMTEwLDcg QEAgc3RhdGljIHZvaWQgY2FuY2VsX3VzZXJwdHIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CQl3YXNfaW50ZXJydXB0aWJsZSA9IGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlOwogCQlkZXZf cHJpdi0+bW0uaW50ZXJydXB0aWJsZSA9IGZhbHNlOwogCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZSh2bWEsIHRtcCwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKQotCQkJV0FSTl9PTihpOTE1 X3ZtYV91bmJpbmQodm1hKSk7CisJCVdBUk5fT04oaTkxNV9nZW1fb2JqZWN0X3VuYmluZChvYmop KTsKIAkJV0FSTl9PTihpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKG9iaikpOwogCiAJCWRldl9w cml2LT5tbS5pbnRlcnJ1cHRpYmxlID0gd2FzX2ludGVycnVwdGlibGU7Ci0tIAoyLjguMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==