From: Tvrtko Ursulin Subject: [PATCH 4/5] drm/i915: Use __sg_alloc_table_from_pages for userptr allocations Date: Mon, 31 Jul 2017 19:55:11 +0100 Message-ID: <20170731185512.20010-4-tvrtko.ursulin@linux.intel.com> References: <20170731185512.20010-1-tvrtko.ursulin@linux.intel.com> 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 9EAF06E9C7 for ; Mon, 31 Jul 2017 18:55:24 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id d40so8047768wma.3 for ; Mon, 31 Jul 2017 11:55:24 -0700 (PDT) In-Reply-To: <20170731185512.20010-1-tvrtko.ursulin@linux.intel.com> 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 Cc: linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldpdGggdGhl IGFkZGl0aW9uIG9mIF9fc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyB3ZSBjYW4gY29udHJvbAp0 aGUgbWF4aW11bSBjb2FsbGVzY2luZyBzaXplIGFuZCBlbGltaW5hdGUgYSBzZXBhcmF0ZSBwYXRo IGZvcgphbGxvY2F0aW5nIGJhY2tpbmcgc3RvcmUgaGVyZS4KClNpbWlsYXIgdG8gODcxZGZiZDY3 ZDRlICgiZHJtL2k5MTU6IEFsbG93IGNvbXBhY3Rpb24gdXB0bwpTV0lPVExCIG1heCBzZWdtZW50 IHNpemUiKSB0aGlzIGVuYWJsZXMgbW9yZSBjb21wYWN0IHNnIGxpc3RzIHRvCmJlIGNyZWF0ZWQg YW5kIHNvIGhhcyBhIGJlbmVmaWNpYWwgZWZmZWN0IG9uIHdvcmtsb2FkcyB3aXRoIG1hbnkKYW5k L29yIGxhcmdlIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KCnYyOgogKiBSZW5hbWUgaGVscGVyIHRv IGk5MTVfc2dfc2VnbWVudF9zaXplIGFuZCBmaXggc3dpb3RsYiBvdmVycmlkZS4KICogQ29tbWl0 IG1lc3NhZ2UgdXBkYXRlLgoKdjM6CiAqIEFjdHVhbGx5IGluY2x1ZGUgdGhlIHN3aW90bGIgb3Zl cnJpZGUgZml4LgoKdjQ6CiAqIFJlZ3JvdXAgcGFyYW1ldGVycyBhIGJpdC4gKENocmlzIFdpbHNv bikKCnY1OgogKiBSZWJhc2UgZm9yIHN3aW90bGJfbWF4X3NlZ21lbnQuCiAqIEFkZCBETUEgbWFw IGZhaWx1cmUgaGFuZGxpbmcgYXMgaW4gYWJiMGRlYWNiNWE2CiAgICgiZHJtL2k5MTU6IEZhbGxi YWNrIHRvIHNpbmdsZSBQQUdFX1NJWkUgc2VnbWVudHMgZm9yIERNQSByZW1hcHBpbmciKS4KCnY2 OiBIYW5kbGUgc3dpb3RsYl9tYXhfc2VnbWVudCgpIHJldHVybmluZyAxLiAoSm9vbmFzIExhaHRp bmVuKQoKdjc6IFJlYmFzZS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKUmV2aWV3ZWQtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSm9vbmFzIExhaHRpbmVuIDxq b29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICB8IDE1ICsrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgICB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f dXNlcnB0ci5jIHwgNzkgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCmluZGV4IDJjNzQ1NmY0ZWQzOC4uNjM4Mzk0MGU4ZDU1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKQEAgLTI3NDksNiArMjc0OSwyMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBz Y2F0dGVybGlzdCAqX19zZ19uZXh0KHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCiAJICAgICAoKChf X2l0ZXIpLmN1cnIgKz0gUEFHRV9TSVpFKSA8IChfX2l0ZXIpLm1heCkgfHwJCVwKIAkgICAgICgo X19pdGVyKSA9IF9fc2d0X2l0ZXIoX19zZ19uZXh0KChfX2l0ZXIpLnNncCksIGZhbHNlKSwgMCkp CiAKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVudF9zaXplKHZvaWQp Cit7CisJdW5zaWduZWQgaW50IHNpemUgPSBzd2lvdGxiX21heF9zZWdtZW50KCk7CisKKwlpZiAo c2l6ZSA9PSAwKQorCQlyZXR1cm4gU0NBVFRFUkxJU1RfTUFYX1NFR01FTlQ7CisKKwlzaXplID0g cm91bmRkb3duKHNpemUsIFBBR0VfU0laRSk7CisJLyogc3dpb3RsYl9tYXhfc2VnbWVudF9zaXpl IGNhbiByZXR1cm4gMSBieXRlIHdoZW4gaXQgbWVhbnMgb25lIHBhZ2UuICovCisJaWYgKHNpemUg PCBQQUdFX1NJWkUpCisJCXNpemUgPSBQQUdFX1NJWkU7CisKKwlyZXR1cm4gc2l6ZTsKK30KKwog c3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKgogaW50ZWxfaW5m byhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwppbmRleCA2ZmFhYmYzNGYxNDIuLmE2MDg4NWQ2MjMxYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC0yMzM5LDcgKzIzMzksNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVjdCBzZ3RfaXRl ciBzZ3RfaXRlcjsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAl1bnNpZ25lZCBsb25nIGxhc3RfcGZu ID0gMDsJLyogc3VwcHJlc3MgZ2NjIHdhcm5pbmcgKi8KLQl1bnNpZ25lZCBpbnQgbWF4X3NlZ21l bnQ7CisJdW5zaWduZWQgaW50IG1heF9zZWdtZW50ID0gaTkxNV9zZ19zZWdtZW50X3NpemUoKTsK IAlnZnBfdCBub3JlY2xhaW07CiAJaW50IHJldDsKIApAQCAtMjM1MCwxMCArMjM1MCw2IEBAIGk5 MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiAJR0VNX0JVR19PTihvYmotPmJhc2UucmVhZF9kb21haW5zICYgSTkxNV9HRU1fR1BVX0RP TUFJTlMpOwogCUdFTV9CVUdfT04ob2JqLT5iYXNlLndyaXRlX2RvbWFpbiAmIEk5MTVfR0VNX0dQ VV9ET01BSU5TKTsKIAotCW1heF9zZWdtZW50ID0gc3dpb3RsYl9tYXhfc2VnbWVudCgpOwotCWlm ICghbWF4X3NlZ21lbnQpCi0JCW1heF9zZWdtZW50ID0gcm91bmRkb3duKFVJTlRfTUFYLCBQQUdF X1NJWkUpOwotCiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAo c3QgPT0gTlVMTCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggY2NkMDllODQxOWY1Li42MGMxMGQ0MTE4YWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKQEAgLTM5OSw2NCArMzk5LDQy IEBAIHN0cnVjdCBnZXRfcGFnZXNfd29yayB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwog fTsKIAotI2lmIElTX0VOQUJMRUQoQ09ORklHX1NXSU9UTEIpCi0jZGVmaW5lIHN3aW90bGJfYWN0 aXZlKCkgc3dpb3RsYl9ucl90YmwoKQotI2Vsc2UKLSNkZWZpbmUgc3dpb3RsYl9hY3RpdmUoKSAw Ci0jZW5kaWYKLQotc3RhdGljIGludAotc3Rfc2V0X3BhZ2VzKHN0cnVjdCBzZ190YWJsZSAqKnN0 LCBzdHJ1Y3QgcGFnZSAqKnB2ZWMsIGludCBudW1fcGFnZXMpCi17Ci0Jc3RydWN0IHNjYXR0ZXJs aXN0ICpzZzsKLQlpbnQgcmV0LCBuOwotCi0JKnN0ID0ga21hbGxvYyhzaXplb2YoKipzdCksIEdG UF9LRVJORUwpOwotCWlmICgqc3QgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpZiAo c3dpb3RsYl9hY3RpdmUoKSkgewotCQlyZXQgPSBzZ19hbGxvY190YWJsZSgqc3QsIG51bV9wYWdl cywgR0ZQX0tFUk5FTCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycjsKLQotCQlmb3JfZWFjaF9z ZygoKnN0KS0+c2dsLCBzZywgbnVtX3BhZ2VzLCBuKQotCQkJc2dfc2V0X3BhZ2Uoc2csIHB2ZWNb bl0sIFBBR0VfU0laRSwgMCk7Ci0JfSBlbHNlIHsKLQkJcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJv bV9wYWdlcygqc3QsIHB2ZWMsIG51bV9wYWdlcywKLQkJCQkJCTAsIG51bV9wYWdlcyA8PCBQQUdF X1NISUZULAotCQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycjsKLQl9 Ci0KLQlyZXR1cm4gMDsKLQotZXJyOgotCWtmcmVlKCpzdCk7Ci0JKnN0ID0gTlVMTDsKLQlyZXR1 cm4gcmV0OwotfQotCiBzdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLV9faTkxNV9nZW1fdXNlcnB0 cl9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJCSAgICAgc3Ry dWN0IHBhZ2UgKipwdmVjLCBpbnQgbnVtX3BhZ2VzKQorX19pOTE1X2dlbV91c2VycHRyX2FsbG9j X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgICAgc3RydWN0 IHBhZ2UgKipwdmVjLCBpbnQgbnVtX3BhZ2VzKQogewotCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7 CisJdW5zaWduZWQgaW50IG1heF9zZWdtZW50ID0gaTkxNV9zZ19zZWdtZW50X3NpemUoKTsKKwlz dHJ1Y3Qgc2dfdGFibGUgKnN0OwogCWludCByZXQ7CiAKLQlyZXQgPSBzdF9zZXRfcGFnZXMoJnBh Z2VzLCBwdmVjLCBudW1fcGFnZXMpOwotCWlmIChyZXQpCisJc3QgPSBrbWFsbG9jKHNpemVvZigq c3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK KworYWxsb2NfdGFibGU6CisJcmV0ID0gX19zZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzKHN0LCBw dmVjLCBudW1fcGFnZXMsCisJCQkJCSAgMCwgbnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQsCisJCQkJ CSAgbWF4X3NlZ21lbnQsCisJCQkJCSAgR0ZQX0tFUk5FTCk7CisJaWYgKHJldCkgeworCQlrZnJl ZShzdCk7CiAJCXJldHVybiBFUlJfUFRSKHJldCk7CisJfQogCi0JcmV0ID0gaTkxNV9nZW1fZ3R0 X3ByZXBhcmVfcGFnZXMob2JqLCBwYWdlcyk7CisJcmV0ID0gaTkxNV9nZW1fZ3R0X3ByZXBhcmVf cGFnZXMob2JqLCBzdCk7CiAJaWYgKHJldCkgewotCQlzZ19mcmVlX3RhYmxlKHBhZ2VzKTsKLQkJ a2ZyZWUocGFnZXMpOworCQlzZ19mcmVlX3RhYmxlKHN0KTsKKworCQlpZiAobWF4X3NlZ21lbnQg PiBQQUdFX1NJWkUpIHsKKwkJCW1heF9zZWdtZW50ID0gUEFHRV9TSVpFOworCQkJZ290byBhbGxv Y190YWJsZTsKKwkJfQorCisJCWtmcmVlKHN0KTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9 CiAKLQlyZXR1cm4gcGFnZXM7CisJcmV0dXJuIHN0OwogfQogCiBzdGF0aWMgaW50CkBAIC01NDAs NyArNTE4LDggQEAgX19pOTE1X2dlbV91c2VycHRyX2dldF9wYWdlc193b3JrZXIoc3RydWN0IHdv cmtfc3RydWN0ICpfd29yaykKIAkJc3RydWN0IHNnX3RhYmxlICpwYWdlcyA9IEVSUl9QVFIocmV0 KTsKIAogCQlpZiAocGlubmVkID09IG5wYWdlcykgewotCQkJcGFnZXMgPSBfX2k5MTVfZ2VtX3Vz ZXJwdHJfc2V0X3BhZ2VzKG9iaiwgcHZlYywgbnBhZ2VzKTsKKwkJCXBhZ2VzID0gX19pOTE1X2dl bV91c2VycHRyX2FsbG9jX3BhZ2VzKG9iaiwgcHZlYywKKwkJCQkJCQkgICAgICAgbnBhZ2VzKTsK IAkJCWlmICghSVNfRVJSKHBhZ2VzKSkgewogCQkJCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdl cyhvYmosIHBhZ2VzKTsKIAkJCQlwaW5uZWQgPSAwOwpAQCAtNjYxLDcgKzY0MCw3IEBAIGk5MTVf Z2VtX3VzZXJwdHJfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJ CXBhZ2VzID0gX19pOTE1X2dlbV91c2VycHRyX2dldF9wYWdlc19zY2hlZHVsZShvYmopOwogCQlh Y3RpdmUgPSBwYWdlcyA9PSBFUlJfUFRSKC1FQUdBSU4pOwogCX0gZWxzZSB7Ci0JCXBhZ2VzID0g X19pOTE1X2dlbV91c2VycHRyX3NldF9wYWdlcyhvYmosIHB2ZWMsIG51bV9wYWdlcyk7CisJCXBh Z2VzID0gX19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3BhZ2VzKG9iaiwgcHZlYywgbnVtX3BhZ2Vz KTsKIAkJYWN0aXZlID0gIUlTX0VSUihwYWdlcyk7CiAJfQogCWlmIChhY3RpdmUpCi0tIAoyLjku NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==