From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v8 4/5] drm/i915: Use __sg_alloc_table_from_pages for userptr allocations Date: Thu, 3 Aug 2017 10:14:17 +0100 Message-ID: <20170803091417.23677-1-tvrtko.ursulin@linux.intel.com> References: <20170731185512.20010-4-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-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 058BD893E7 for ; Thu, 3 Aug 2017 09:14:24 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id o33so565544wrb.1 for ; Thu, 03 Aug 2017 02:14:24 -0700 (PDT) In-Reply-To: <20170731185512.20010-4-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 aGUgbWF4aW11bSBjb2FsZXNjaW5nIHNpemUgYW5kIGVsaW1pbmF0ZSBhIHNlcGFyYXRlIHBhdGgg Zm9yCmFsbG9jYXRpbmcgYmFja2luZyBzdG9yZSBoZXJlLgoKU2ltaWxhciB0byA4NzFkZmJkNjdk NGUgKCJkcm0vaTkxNTogQWxsb3cgY29tcGFjdGlvbiB1cHRvClNXSU9UTEIgbWF4IHNlZ21lbnQg c2l6ZSIpIHRoaXMgZW5hYmxlcyBtb3JlIGNvbXBhY3Qgc2cgbGlzdHMgdG8KYmUgY3JlYXRlZCBh bmQgc28gaGFzIGEgYmVuZWZpY2lhbCBlZmZlY3Qgb24gd29ya2xvYWRzIHdpdGggbWFueQphbmQv b3IgbGFyZ2Ugb2JqZWN0cyBvZiB0aGlzIGNsYXNzLgoKdjI6CiAqIFJlbmFtZSBoZWxwZXIgdG8g aTkxNV9zZ19zZWdtZW50X3NpemUgYW5kIGZpeCBzd2lvdGxiIG92ZXJyaWRlLgogKiBDb21taXQg bWVzc2FnZSB1cGRhdGUuCgp2MzoKICogQWN0dWFsbHkgaW5jbHVkZSB0aGUgc3dpb3RsYiBvdmVy cmlkZSBmaXguCgp2NDoKICogUmVncm91cCBwYXJhbWV0ZXJzIGEgYml0LiAoQ2hyaXMgV2lsc29u KQoKdjU6CiAqIFJlYmFzZSBmb3Igc3dpb3RsYl9tYXhfc2VnbWVudC4KICogQWRkIERNQSBtYXAg ZmFpbHVyZSBoYW5kbGluZyBhcyBpbiBhYmIwZGVhY2I1YTYKICAgKCJkcm0vaTkxNTogRmFsbGJh Y2sgdG8gc2luZ2xlIFBBR0VfU0laRSBzZWdtZW50cyBmb3IgRE1BIHJlbWFwcGluZyIpLgoKdjY6 IEhhbmRsZSBzd2lvdGxiX21heF9zZWdtZW50KCkgcmV0dXJuaW5nIDEuIChKb29uYXMgTGFodGlu ZW4pCgp2NzogUmViYXNlLgp2ODogQ29tbWl0IHNwZWxsaW5nIGZpeC4KClNpZ25lZC1vZmYtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5l bC5vcmcKUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDE1ICsrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICA2ICstLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIHwgNzkgKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDU1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDJjNzQ1NmY0ZWQzOC4uNjM4 Mzk0MGU4ZDU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI3NDksNiArMjc0OSwyMSBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBzY2F0dGVybGlzdCAqX19zZ19uZXh0KHN0cnVjdCBzY2F0 dGVybGlzdCAqc2cpCiAJICAgICAoKChfX2l0ZXIpLmN1cnIgKz0gUEFHRV9TSVpFKSA8IChfX2l0 ZXIpLm1heCkgfHwJCVwKIAkgICAgICgoX19pdGVyKSA9IF9fc2d0X2l0ZXIoX19zZ19uZXh0KChf X2l0ZXIpLnNncCksIGZhbHNlKSwgMCkpCiAKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5 MTVfc2dfc2VnbWVudF9zaXplKHZvaWQpCit7CisJdW5zaWduZWQgaW50IHNpemUgPSBzd2lvdGxi X21heF9zZWdtZW50KCk7CisKKwlpZiAoc2l6ZSA9PSAwKQorCQlyZXR1cm4gU0NBVFRFUkxJU1Rf TUFYX1NFR01FTlQ7CisKKwlzaXplID0gcm91bmRkb3duKHNpemUsIFBBR0VfU0laRSk7CisJLyog c3dpb3RsYl9tYXhfc2VnbWVudF9zaXplIGNhbiByZXR1cm4gMSBieXRlIHdoZW4gaXQgbWVhbnMg b25lIHBhZ2UuICovCisJaWYgKHNpemUgPCBQQUdFX1NJWkUpCisJCXNpemUgPSBQQUdFX1NJWkU7 CisKKwlyZXR1cm4gc2l6ZTsKK30KKwogc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaW50ZWxf ZGV2aWNlX2luZm8gKgogaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA2ZmFhYmYzNGYxNDIuLmE2 MDg4NWQ2MjMxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yMzM5LDcgKzIzMzksNyBA QCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogCXN0cnVjdCBzZ3RfaXRlciBzZ3RfaXRlcjsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsK IAl1bnNpZ25lZCBsb25nIGxhc3RfcGZuID0gMDsJLyogc3VwcHJlc3MgZ2NjIHdhcm5pbmcgKi8K LQl1bnNpZ25lZCBpbnQgbWF4X3NlZ21lbnQ7CisJdW5zaWduZWQgaW50IG1heF9zZWdtZW50ID0g aTkxNV9zZ19zZWdtZW50X3NpemUoKTsKIAlnZnBfdCBub3JlY2xhaW07CiAJaW50IHJldDsKIApA QCAtMjM1MCwxMCArMjM1MCw2IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJR0VNX0JVR19PTihvYmotPmJhc2UucmVhZF9k b21haW5zICYgSTkxNV9HRU1fR1BVX0RPTUFJTlMpOwogCUdFTV9CVUdfT04ob2JqLT5iYXNlLndy aXRlX2RvbWFpbiAmIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKIAotCW1heF9zZWdtZW50ID0gc3dp b3RsYl9tYXhfc2VnbWVudCgpOwotCWlmICghbWF4X3NlZ21lbnQpCi0JCW1heF9zZWdtZW50ID0g cm91bmRkb3duKFVJTlRfTUFYLCBQQUdFX1NJWkUpOwotCiAJc3QgPSBrbWFsbG9jKHNpemVvZigq c3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoc3QgPT0gTlVMTCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggY2NkMDll ODQxOWY1Li42MGMxMGQ0MTE4YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2Vy cHRyLmMKQEAgLTM5OSw2NCArMzk5LDQyIEBAIHN0cnVjdCBnZXRfcGFnZXNfd29yayB7CiAJc3Ry dWN0IHRhc2tfc3RydWN0ICp0YXNrOwogfTsKIAotI2lmIElTX0VOQUJMRUQoQ09ORklHX1NXSU9U TEIpCi0jZGVmaW5lIHN3aW90bGJfYWN0aXZlKCkgc3dpb3RsYl9ucl90YmwoKQotI2Vsc2UKLSNk ZWZpbmUgc3dpb3RsYl9hY3RpdmUoKSAwCi0jZW5kaWYKLQotc3RhdGljIGludAotc3Rfc2V0X3Bh Z2VzKHN0cnVjdCBzZ190YWJsZSAqKnN0LCBzdHJ1Y3QgcGFnZSAqKnB2ZWMsIGludCBudW1fcGFn ZXMpCi17Ci0Jc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKLQlpbnQgcmV0LCBuOwotCi0JKnN0ID0g a21hbGxvYyhzaXplb2YoKipzdCksIEdGUF9LRVJORUwpOwotCWlmICgqc3QgPT0gTlVMTCkKLQkJ cmV0dXJuIC1FTk9NRU07Ci0KLQlpZiAoc3dpb3RsYl9hY3RpdmUoKSkgewotCQlyZXQgPSBzZ19h bGxvY190YWJsZSgqc3QsIG51bV9wYWdlcywgR0ZQX0tFUk5FTCk7Ci0JCWlmIChyZXQpCi0JCQln b3RvIGVycjsKLQotCQlmb3JfZWFjaF9zZygoKnN0KS0+c2dsLCBzZywgbnVtX3BhZ2VzLCBuKQot CQkJc2dfc2V0X3BhZ2Uoc2csIHB2ZWNbbl0sIFBBR0VfU0laRSwgMCk7Ci0JfSBlbHNlIHsKLQkJ cmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcygqc3QsIHB2ZWMsIG51bV9wYWdlcywKLQkJ CQkJCTAsIG51bV9wYWdlcyA8PCBQQUdFX1NISUZULAotCQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlm IChyZXQpCi0JCQlnb3RvIGVycjsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotZXJyOgotCWtmcmVlKCpz dCk7Ci0JKnN0ID0gTlVMTDsKLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0aWMgc3RydWN0IHNnX3Rh YmxlICoKLV9faTkxNV9nZW1fdXNlcnB0cl9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKLQkJCSAgICAgc3RydWN0IHBhZ2UgKipwdmVjLCBpbnQgbnVtX3BhZ2VzKQor X19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCisJCQkgICAgICAgc3RydWN0IHBhZ2UgKipwdmVjLCBpbnQgbnVtX3BhZ2VzKQogewot CXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CisJdW5zaWduZWQgaW50IG1heF9zZWdtZW50ID0gaTkx NV9zZ19zZWdtZW50X3NpemUoKTsKKwlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCWludCByZXQ7CiAK LQlyZXQgPSBzdF9zZXRfcGFnZXMoJnBhZ2VzLCBwdmVjLCBudW1fcGFnZXMpOwotCWlmIChyZXQp CisJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0KQorCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworYWxsb2NfdGFibGU6CisJcmV0ID0gX19zZ19hbGxv Y190YWJsZV9mcm9tX3BhZ2VzKHN0LCBwdmVjLCBudW1fcGFnZXMsCisJCQkJCSAgMCwgbnVtX3Bh Z2VzIDw8IFBBR0VfU0hJRlQsCisJCQkJCSAgbWF4X3NlZ21lbnQsCisJCQkJCSAgR0ZQX0tFUk5F TCk7CisJaWYgKHJldCkgeworCQlrZnJlZShzdCk7CiAJCXJldHVybiBFUlJfUFRSKHJldCk7CisJ fQogCi0JcmV0ID0gaTkxNV9nZW1fZ3R0X3ByZXBhcmVfcGFnZXMob2JqLCBwYWdlcyk7CisJcmV0 ID0gaTkxNV9nZW1fZ3R0X3ByZXBhcmVfcGFnZXMob2JqLCBzdCk7CiAJaWYgKHJldCkgewotCQlz Z19mcmVlX3RhYmxlKHBhZ2VzKTsKLQkJa2ZyZWUocGFnZXMpOworCQlzZ19mcmVlX3RhYmxlKHN0 KTsKKworCQlpZiAobWF4X3NlZ21lbnQgPiBQQUdFX1NJWkUpIHsKKwkJCW1heF9zZWdtZW50ID0g UEFHRV9TSVpFOworCQkJZ290byBhbGxvY190YWJsZTsKKwkJfQorCisJCWtmcmVlKHN0KTsKIAkJ cmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKLQlyZXR1cm4gcGFnZXM7CisJcmV0dXJuIHN0Owog fQogCiBzdGF0aWMgaW50CkBAIC01NDAsNyArNTE4LDggQEAgX19pOTE1X2dlbV91c2VycHRyX2dl dF9wYWdlc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICpfd29yaykKIAkJc3RydWN0IHNnX3Rh YmxlICpwYWdlcyA9IEVSUl9QVFIocmV0KTsKIAogCQlpZiAocGlubmVkID09IG5wYWdlcykgewot CQkJcGFnZXMgPSBfX2k5MTVfZ2VtX3VzZXJwdHJfc2V0X3BhZ2VzKG9iaiwgcHZlYywgbnBhZ2Vz KTsKKwkJCXBhZ2VzID0gX19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3BhZ2VzKG9iaiwgcHZlYywK KwkJCQkJCQkgICAgICAgbnBhZ2VzKTsKIAkJCWlmICghSVNfRVJSKHBhZ2VzKSkgewogCQkJCV9f aTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKIAkJCQlwaW5uZWQgPSAwOwpA QCAtNjYxLDcgKzY0MCw3IEBAIGk5MTVfZ2VtX3VzZXJwdHJfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXBhZ2VzID0gX19pOTE1X2dlbV91c2VycHRyX2dldF9w YWdlc19zY2hlZHVsZShvYmopOwogCQlhY3RpdmUgPSBwYWdlcyA9PSBFUlJfUFRSKC1FQUdBSU4p OwogCX0gZWxzZSB7Ci0JCXBhZ2VzID0gX19pOTE1X2dlbV91c2VycHRyX3NldF9wYWdlcyhvYmos IHB2ZWMsIG51bV9wYWdlcyk7CisJCXBhZ2VzID0gX19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3Bh Z2VzKG9iaiwgcHZlYywgbnVtX3BhZ2VzKTsKIAkJYWN0aXZlID0gIUlTX0VSUihwYWdlcyk7CiAJ fQogCWlmIChhY3RpdmUpCi0tIAoyLjkuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==