From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 19/42] drm/i915/dmabuf: Acquire the backing storage outside of struct_mutex Date: Fri, 7 Oct 2016 10:46:12 +0100 Message-ID: <20161007094635.28319-20-chris@chris-wilson.co.uk> References: <20161007094635.28319-1-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-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id C129F6EB3E for ; Fri, 7 Oct 2016 09:47:02 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id f193so2089852wmg.2 for ; Fri, 07 Oct 2016 02:47:02 -0700 (PDT) In-Reply-To: <20161007094635.28319-1-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 VXNlIHRoZSBwZXItb2JqZWN0IG1tLmxvY2sgdG8gYWxsb2NhdGUgdGhlIGJhY2tpbmcgc3RvcmFn ZSAoYW5kIGhvbGQgYQpyZWZlcmVuY2UgdG8gaXQgYWNyb3NzIHRoZSBkbWFidWYgYWNjZXNzKSB3 aXRob3V0IHJlc29ydGluZyB0bwpzdHJ1Y3RfbXV0ZXguCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9kbWFidWYuYyB8IDUxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCmluZGV4IDJhYmQ1MjRhYmExNC4uOTAy MzExMGNmMWNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFi dWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwpAQCAtNDQs MTkgKzQ0LDE1IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKmk5MTVfZ2VtX21hcF9kbWFfYnVm KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lCiAJc3RydWN0IHNjYXR0ZXJsaXN0 ICpzcmMsICpkc3Q7CiAJaW50IHJldCwgaTsKIAotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKG9iai0+YmFzZS5kZXYpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyOwotCiAJcmV0 ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwogCWlmIChyZXQpCi0JCWdvdG8gZXJy X3VubG9jazsKKwkJZ290byBlcnI7CiAKIAkvKiBDb3B5IHNnIHNvIHRoYXQgd2UgbWFrZSBhbiBp bmRlcGVuZGVudCBtYXBwaW5nICovCiAJc3QgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2dfdGFi bGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoc3QgPT0gTlVMTCkgewogCQlyZXQgPSAtRU5PTUVNOwot CQlnb3RvIGVycl91bnBpbjsKKwkJZ290byBlcnJfcHV0X3BhZ2VzOwogCX0KIAogCXJldCA9IHNn X2FsbG9jX3RhYmxlKHN0LCBvYmotPm1tLnBhZ2VzLT5uZW50cywgR0ZQX0tFUk5FTCk7CkBAIC03 MiwyMSArNjgsMTggQEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqaTkxNV9nZW1fbWFwX2RtYV9i dWYoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWUKIAl9CiAKIAlpZiAoIWRtYV9t YXBfc2coYXR0YWNobWVudC0+ZGV2LCBzdC0+c2dsLCBzdC0+bmVudHMsIGRpcikpIHsKLQkJcmV0 ID0tRU5PTUVNOworCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9mcmVlX3NnOwogCX0KIAot CW11dGV4X3VubG9jaygmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1cm4gc3Q7 CiAKIGVycl9mcmVlX3NnOgogCXNnX2ZyZWVfdGFibGUoc3QpOwogZXJyX2ZyZWU6CiAJa2ZyZWUo c3QpOwotZXJyX3VucGluOgorZXJyX3B1dF9wYWdlczoKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5f cGFnZXMob2JqKTsKLWVycl91bmxvY2s6Ci0JbXV0ZXhfdW5sb2NrKCZvYmotPmJhc2UuZGV2LT5z dHJ1Y3RfbXV0ZXgpOwogZXJyOgogCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CkBAIC0xMDEsMzYg Kzk0LDIxIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3VubWFwX2RtYV9idWYoc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNobWVudCwKIAlzZ19mcmVlX3RhYmxlKHNnKTsKIAlrZnJlZShz Zyk7CiAKLQltdXRleF9sb2NrKCZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWk5MTVf Z2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotCW11dGV4X3VubG9jaygmb2JqLT5iYXNlLmRl di0+c3RydWN0X211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFw KHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gb2JqLT5iYXNlLmRldjsKLQl2b2lkICphZGRyOwotCWludCByZXQ7CiAKLQlyZXQgPSBpOTE1 X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOwotCWlmIChyZXQpCi0JCXJldHVybiBFUlJf UFRSKHJldCk7Ci0KLQlhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01B UF9XQik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KLQlyZXR1cm4gYWRk cjsKKwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQik7CiB9 CiAKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRt YV9idWYsIHZvaWQgKnZhZGRyKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2Jq LT5iYXNlLmRldjsKIAotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlpOTE1X2dl bV9vYmplY3RfdW5waW5fbWFwKG9iaik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CiB9CiAKIHN0YXRpYyB2b2lkICppOTE1X2dlbV9kbWFidWZfa21hcF9hdG9taWMoc3RydWN0 IGRtYV9idWYgKmRtYV9idWYsIHVuc2lnbmVkIGxvbmcgcGFnZV9udW0pCkBAIC0xNzcsMTUgKzE1 NSwyMiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2JlZ2luX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9i dWYgKmRtYV9idWYsIGVudW0gZG1hX2RhdGFfZGlyZQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKLQlpbnQgcmV0OwogCWJvb2wgd3JpdGUgPSAoZGlyZWN0 aW9uID09IERNQV9CSURJUkVDVElPTkFMIHx8IGRpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFKTsK KwlpbnQgcmV0OwogCi0JcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsK KwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAorCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CisJ aWYgKHJldCkKKwkJZ290byBlcnI7CisKIAlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2Nw dV9kb21haW4ob2JqLCB3cml0ZSk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CisKK2VycjoKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIAlyZXR1cm4gcmV0 OwogfQogCkBAIC0xOTUsMTMgKzE4MCwxOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2VuZF9jcHVf YWNjZXNzKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBlbnVtIGRtYV9kYXRhX2RpcmVjdAogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OwogCWludCByZXQ7CiAKLQlyZXQg PSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOworCXJldCA9IGk5MTVfZ2VtX29i amVjdF9waW5fcGFnZXMob2JqKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJcmV0ID0g aTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIGVy cjsKKwogCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZhbHNl KTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAorZXJyOgorCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOwogCXJldHVybiByZXQ7CiB9CiAKLS0gCjIuOS4zCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK