From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B57B3C48BE8 for ; Wed, 16 Jun 2021 14:53:46 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8253761075 for ; Wed, 16 Jun 2021 14:53:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8253761075 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9905589E01; Wed, 16 Jun 2021 14:53:40 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6C53A89D63; Wed, 16 Jun 2021 14:53:37 +0000 (UTC) IronPort-SDR: Qb3UBzJ2sC5xRIkKatYX17H1gwZfCuLsDxlSO753tt0mumdWbNYOKG8jG6TOxSOFBW9pbrHI5S OtJcP9674reQ== X-IronPort-AV: E=McAfee;i="6200,9189,10016"; a="270039035" X-IronPort-AV: E=Sophos;i="5.83,278,1616482800"; d="scan'208";a="270039035" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 07:53:35 -0700 IronPort-SDR: fKJo7tM23cG/G4+A9VlBtZ391kvZpZur7IrebPo3tNfi74Nxv5ArY7ck1qrtNZ7tZWtS4NjZ1s eQWt4z4mAQTw== X-IronPort-AV: E=Sophos;i="5.83,278,1616482800"; d="scan'208";a="442903090" Received: from mrapopor-mobl.ger.corp.intel.com (HELO mwauld-desk1.intel.com) ([10.213.236.122]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 07:53:33 -0700 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Date: Wed, 16 Jun 2021 15:52:55 +0100 Message-Id: <20210616145259.357146-3-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210616145259.357146-1-matthew.auld@intel.com> References: <20210616145259.357146-1-matthew.auld@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v4 3/7] drm/i915/ttm: Calculate the object placement at get_pages time X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29t PgoKSW5zdGVhZCBvZiByZWx5aW5nIG9uIGEgc3RhdGljIHBsYWNlbWVudCwgY2FsY3VsYXRlIGF0 IGdldF9wYWdlcygpIHRpbWUuClRoaXMgc2hvdWxkIHdvcmsgZm9yIExNRU0gcmVnaW9ucyBhbmQg c3lzdGVtIGZvciBub3cuIEZvciBzdG9sZW4gd2UgbmVlZAp0byB0YWtlIHByZWFsbG9jYXRlZCBy YW5nZSBpbnRvIGFjY291bnQuIFRoYXQgd2VsbCBiZSBhZGRlZCBsYXRlci4KCkluc3RlYWQgb2Yg cmVseWluZyBvbiBhIHN0YXRpYyBwbGFjZW1lbnQsIGNhbGN1bGF0ZSBhdCBnZXRfcGFnZXMoKSB0 aW1lLgpUaGlzIHNob3VsZCB3b3JrIGZvciBMTUVNIHJlZ2lvbnMgYW5kIHN5c3RlbSBmb3Igbm93 LiBGb3Igc3RvbGVuIHdlIG5lZWQKdG8gdGFrZSBwcmVhbGxvY2F0ZWQgcmFuZ2UgaW50byBhY2Nv dW50LiBUaGF0IHdpbGwgaWYgbmVlZGVkIGJlIGFkZGVkCmxhdGVyLgoKU2lnbmVkLW9mZi1ieTog VGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgpSZXZp ZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0KdjI6Ci0g Rml4ZWQgYSBzdHlsZSBpc3N1ZSAoUmVwb3J0ZWQgYnkgTWF0dGhldyBBdWxkKQp2MzoKLSBNYWtl IHN1cmUgd2UgZG9uJ3QgYWRkIG1vcmUgcGxhY2VtZW50cyB0byB0aGUgc3RhY2stYWxsb2NhdGVk IHZlY3RvcgogIHRoYW4gdGhlcmUgaXMgcm9vbSBmb3IuIChSZXBvcnRlZCBieSBNYXR0aGV3IEF1 bGQpCnY0OgotIFJlbW92ZSBjb25mdXNpb24gYXJvdW5kIHNocmlua2FibGUgb2JqZWN0cyAoUmVw b3J0ZWQgYnkgTWF0dGhldyBBdWxkKQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV90dG0uYyB8IDkzICsrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JlZ2lvbl90dG0uYyB8ICA4ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmVnaW9uX3R0bS5oIHwgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25z KCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRt LmMKaW5kZXggYmYzMzcyNGJlZDVjLi5jNjdkNmQ1NDgxYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fdHRtLmMKQEAgLTI0LDYgKzI0LDExIEBACiAjZGVmaW5lIEk5MTVfVFRN X1BSSU9fTk9fUEFHRVMgIDEKICNkZWZpbmUgSTkxNV9UVE1fUFJJT19IQVNfUEFHRVMgMgogCisv KgorICogU2l6ZSBvZiBzdHJ1Y3QgdHRtX3BsYWNlIHZlY3RvciBpbiBvbi1zdGFjayBzdHJ1Y3Qg dHRtX3BsYWNlbWVudCBhbGxvY3MKKyAqLworI2RlZmluZSBJOTE1X1RUTV9NQVhfUExBQ0VNRU5U UyBJTlRFTF9SRUdJT05fVU5LTk9XTgorCiAvKioKICAqIHN0cnVjdCBpOTE1X3R0bV90dCAtIFRU TSBwYWdlIHZlY3RvciB3aXRoIGFkZGl0aW9uYWwgcHJpdmF0ZSBpbmZvcm1hdGlvbgogICogQHR0 bTogVGhlIGJhc2UgVFRNIHBhZ2UgdmVjdG9yLgpAQCAtNDIsMzYgKzQ3LDcxIEBAIHN0cnVjdCBp OTE1X3R0bV90dCB7CiAJc3RydWN0IHNnX3RhYmxlICpjYWNoZWRfc3Q7CiB9OwogCi1zdGF0aWMg Y29uc3Qgc3RydWN0IHR0bV9wbGFjZSBsbWVtMF9zeXNfcGxhY2VtZW50X2ZsYWdzW10gPSB7Ci0J ewotCQkuZnBmbiA9IDAsCi0JCS5scGZuID0gMCwKLQkJLm1lbV90eXBlID0gSTkxNV9QTF9MTUVN MCwKLQkJLmZsYWdzID0gMCwKLQl9LCB7Ci0JCS5mcGZuID0gMCwKLQkJLmxwZm4gPSAwLAotCQku bWVtX3R5cGUgPSBJOTE1X1BMX1NZU1RFTSwKLQkJLmZsYWdzID0gMCwKLQl9Ci19OwotCi1zdGF0 aWMgc3RydWN0IHR0bV9wbGFjZW1lbnQgaTkxNV9sbWVtMF9wbGFjZW1lbnQgPSB7Ci0JLm51bV9w bGFjZW1lbnQgPSAxLAotCS5wbGFjZW1lbnQgPSAmbG1lbTBfc3lzX3BsYWNlbWVudF9mbGFnc1sw XSwKLQkubnVtX2J1c3lfcGxhY2VtZW50ID0gMSwKLQkuYnVzeV9wbGFjZW1lbnQgPSAmbG1lbTBf c3lzX3BsYWNlbWVudF9mbGFnc1swXSwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlIHN5 c19wbGFjZW1lbnRfZmxhZ3MgPSB7CisJLmZwZm4gPSAwLAorCS5scGZuID0gMCwKKwkubWVtX3R5 cGUgPSBJOTE1X1BMX1NZU1RFTSwKKwkuZmxhZ3MgPSAwLAogfTsKIAogc3RhdGljIHN0cnVjdCB0 dG1fcGxhY2VtZW50IGk5MTVfc3lzX3BsYWNlbWVudCA9IHsKIAkubnVtX3BsYWNlbWVudCA9IDEs Ci0JLnBsYWNlbWVudCA9ICZsbWVtMF9zeXNfcGxhY2VtZW50X2ZsYWdzWzFdLAorCS5wbGFjZW1l bnQgPSAmc3lzX3BsYWNlbWVudF9mbGFncywKIAkubnVtX2J1c3lfcGxhY2VtZW50ID0gMSwKLQku YnVzeV9wbGFjZW1lbnQgPSAmbG1lbTBfc3lzX3BsYWNlbWVudF9mbGFnc1sxXSwKKwkuYnVzeV9w bGFjZW1lbnQgPSAmc3lzX3BsYWNlbWVudF9mbGFncywKIH07CiAKIHN0YXRpYyB2b2lkIGk5MTVf dHRtX2FkanVzdF9scnUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiAKK3N0YXRp YyBlbnVtIHR0bV9jYWNoaW5nCitpOTE1X3R0bV9zZWxlY3RfdHRfY2FjaGluZyhjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCS8qCisJICogT2JqZWN0cyBvbmx5IGFs bG93ZWQgaW4gc3lzdGVtIGdldCBjYWNoZWQgY3B1LW1hcHBpbmdzLgorCSAqIE90aGVyIG9iamVj dHMgZ2V0IFdDIG1hcHBpbmcgZm9yIG5vdy4gRXZlbiBpZiBpbiBzeXN0ZW0uCisJICovCisJaWYg KG9iai0+bW0ucmVnaW9uLT50eXBlID09IElOVEVMX01FTU9SWV9TWVNURU0gJiYKKwkgICAgb2Jq LT5tbS5uX3BsYWNlbWVudHMgPD0gMSkKKwkJcmV0dXJuIHR0bV9jYWNoZWQ7CisKKwlyZXR1cm4g dHRtX3dyaXRlX2NvbWJpbmVkOworfQorCitzdGF0aWMgdm9pZAoraTkxNV90dG1fcGxhY2VfZnJv bV9yZWdpb24oY29uc3Qgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1yLAorCQkJICAgc3Ry dWN0IHR0bV9wbGFjZSAqcGxhY2UpCit7CisJbWVtc2V0KHBsYWNlLCAwLCBzaXplb2YoKnBsYWNl KSk7CisJcGxhY2UtPm1lbV90eXBlID0gaW50ZWxfcmVnaW9uX3RvX3R0bV90eXBlKG1yKTsKK30K Kworc3RhdGljIHZvaWQKK2k5MTVfdHRtX3BsYWNlbWVudF9mcm9tX29iaihjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJICAgIHN0cnVjdCB0dG1fcGxhY2UgKnJlcXVl c3RlZCwKKwkJCSAgICBzdHJ1Y3QgdHRtX3BsYWNlICpidXN5LAorCQkJICAgIHN0cnVjdCB0dG1f cGxhY2VtZW50ICpwbGFjZW1lbnQpCit7CisJdW5zaWduZWQgaW50IG51bV9hbGxvd2VkID0gb2Jq LT5tbS5uX3BsYWNlbWVudHM7CisJdW5zaWduZWQgaW50IGk7CisKKwlwbGFjZW1lbnQtPm51bV9w bGFjZW1lbnQgPSAxOworCWk5MTVfdHRtX3BsYWNlX2Zyb21fcmVnaW9uKG51bV9hbGxvd2VkID8g b2JqLT5tbS5wbGFjZW1lbnRzWzBdIDoKKwkJCQkgICBvYmotPm1tLnJlZ2lvbiwgcmVxdWVzdGVk KTsKKworCS8qIENhY2hlIHRoaXMgb24gb2JqZWN0PyAqLworCXBsYWNlbWVudC0+bnVtX2J1c3lf cGxhY2VtZW50ID0gbnVtX2FsbG93ZWQ7CisJZm9yIChpID0gMDsgaSA8IHBsYWNlbWVudC0+bnVt X2J1c3lfcGxhY2VtZW50OyArK2kpCisJCWk5MTVfdHRtX3BsYWNlX2Zyb21fcmVnaW9uKG9iai0+ bW0ucGxhY2VtZW50c1tpXSwgYnVzeSArIGkpOworCisJaWYgKG51bV9hbGxvd2VkID09IDApIHsK KwkJKmJ1c3kgPSAqcmVxdWVzdGVkOworCQlwbGFjZW1lbnQtPm51bV9idXN5X3BsYWNlbWVudCA9 IDE7CisJfQorCisJcGxhY2VtZW50LT5wbGFjZW1lbnQgPSByZXF1ZXN0ZWQ7CisJcGxhY2VtZW50 LT5idXN5X3BsYWNlbWVudCA9IGJ1c3k7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICppOTE1 X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCQkJIHVpbnQz Ml90IHBhZ2VfZmxhZ3MpCiB7CkBAIC04OSw3ICsxMjksOCBAQCBzdGF0aWMgc3RydWN0IHR0bV90 dCAqaTkxNV90dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJICAg IG1hbi0+dXNlX3R0KQogCQlwYWdlX2ZsYWdzIHw9IFRUTV9QQUdFX0ZMQUdfWkVST19BTExPQzsK IAotCXJldCA9IHR0bV90dF9pbml0KCZpOTE1X3R0LT50dG0sIGJvLCBwYWdlX2ZsYWdzLCB0dG1f d3JpdGVfY29tYmluZWQpOworCXJldCA9IHR0bV90dF9pbml0KCZpOTE1X3R0LT50dG0sIGJvLCBw YWdlX2ZsYWdzLAorCQkJICBpOTE1X3R0bV9zZWxlY3RfdHRfY2FjaGluZyhvYmopKTsKIAlpZiAo cmV0KSB7CiAJCWtmcmVlKGk5MTVfdHQpOwogCQlyZXR1cm4gTlVMTDsKQEAgLTQxNCwxMCArNDU1 LDE1IEBAIHN0YXRpYyBpbnQgaTkxNV90dG1fZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCiAJCS5ub193YWl0X2dwdSA9IGZhbHNlLAogCX07CiAJc3RydWN0IHNnX3Rh YmxlICpzdDsKKwlzdHJ1Y3QgdHRtX3BsYWNlIHJlcXVlc3RlZCwgYnVzeVtJOTE1X1RUTV9NQVhf UExBQ0VNRU5UU107CisJc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50OwogCWludCByZXQ7 CiAKKwlHRU1fQlVHX09OKG9iai0+bW0ubl9wbGFjZW1lbnRzID4gSTkxNV9UVE1fTUFYX1BMQUNF TUVOVFMpOworCiAJLyogTW92ZSB0byB0aGUgcmVxdWVzdGVkIHBsYWNlbWVudC4gKi8KLQlyZXQg PSB0dG1fYm9fdmFsaWRhdGUoYm8sICZpOTE1X2xtZW0wX3BsYWNlbWVudCwgJmN0eCk7CisJaTkx NV90dG1fcGxhY2VtZW50X2Zyb21fb2JqKG9iaiwgJnJlcXVlc3RlZCwgYnVzeSwgJnBsYWNlbWVu dCk7CisJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcGxhY2VtZW50LCAmY3R4KTsKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0ID09IC1FTk9TUEMgPyAtRU5YSU8gOiByZXQ7CiAKQEAgLTYyMyw3 ICs2NjksNiBAQCBpbnQgX19pOTE1X2dlbV90dG1fb2JqZWN0X2luaXQoc3RydWN0IGludGVsX21l bW9yeV9yZWdpb24gKm1lbSwKIAlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShv YmosIEk5MTVfQ0FDSEVfTk9ORSk7CiAJSU5JVF9SQURJWF9UUkVFKCZvYmotPnR0bS5nZXRfaW9f cGFnZS5yYWRpeCwgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTik7CiAJbXV0ZXhfaW5pdCgmb2Jq LT50dG0uZ2V0X2lvX3BhZ2UubG9jayk7Ci0KIAlib190eXBlID0gKG9iai0+ZmxhZ3MgJiBJOTE1 X0JPX0FMTE9DX1VTRVIpID8gdHRtX2JvX3R5cGVfZGV2aWNlIDoKIAkJdHRtX2JvX3R5cGVfa2Vy bmVsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fdHRt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fdHRtLmMKaW5kZXggMjdmZTA2 NjhkMDk0Li41YTY2NGY2Y2M5M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JlZ2lvbl90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25f dHRtLmMKQEAgLTUwLDEyICs1MCwxNiBAQCB2b2lkIGludGVsX3JlZ2lvbl90dG1fZGV2aWNlX2Zp bmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogZHJpdmVyLXByaXZhdGUg dHlwZXMgZm9yIG5vdywgcmVzZXJ2aW5nIFRUTV9QTF9WUkFNIGZvciBzdG9sZW4KICAqIG1lbW9y eSBhbmQgVFRNX1BMX1RUIGZvciBHR1RUIHVzZSBpZiBkZWNpZGVkIHRvIGltcGxlbWVudCB0aGlz LgogICovCi1zdGF0aWMgaW50IGludGVsX3JlZ2lvbl90b190dG1fdHlwZShzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqbWVtKQoraW50IGludGVsX3JlZ2lvbl90b190dG1fdHlwZShjb25zdCBz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKQogewogCWludCB0eXBlOwogCiAJR0VNX0JV R19PTihtZW0tPnR5cGUgIT0gSU5URUxfTUVNT1JZX0xPQ0FMICYmCi0JCSAgIG1lbS0+dHlwZSAh PSBJTlRFTF9NRU1PUllfTU9DSyk7CisJCSAgIG1lbS0+dHlwZSAhPSBJTlRFTF9NRU1PUllfTU9D SyAmJgorCQkgICBtZW0tPnR5cGUgIT0gSU5URUxfTUVNT1JZX1NZU1RFTSk7CisKKwlpZiAobWVt LT50eXBlID09IElOVEVMX01FTU9SWV9TWVNURU0pCisJCXJldHVybiBUVE1fUExfU1lTVEVNOwog CiAJdHlwZSA9IG1lbS0+aW5zdGFuY2UgKyBUVE1fUExfUFJJVjsKIAlHRU1fQlVHX09OKHR5cGUg Pj0gVFRNX05VTV9NRU1fVFlQRVMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmVnaW9uX3R0bS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX3R0 bS5oCmluZGV4IGU4Y2Y4MzBmZGE2Zi4uNWVlZGNjMzk3YmQ1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fdHRtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmVnaW9uX3R0bS5oCkBAIC0yMiw2ICsyMiw4IEBAIGludCBpbnRlbF9yZWdpb25f dHRtX2luaXQoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSk7CiAKIHZvaWQgaW50ZWxf cmVnaW9uX3R0bV9maW5pKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOwogCitpbnQg aW50ZWxfcmVnaW9uX3RvX3R0bV90eXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW0pOworCiBzdHJ1Y3Qgc2dfdGFibGUgKmludGVsX3JlZ2lvbl90dG1fbm9kZV90b19zdChz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAogCQkJCQkgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKnJlcyk7CiAKLS0gCjIuMjYuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==