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.7 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 A2245C49EA5 for ; Thu, 24 Jun 2021 18:31:33 +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 41677610A2 for ; Thu, 24 Jun 2021 18:31:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 41677610A2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 CE4A26EC7C; Thu, 24 Jun 2021 18:31:28 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97E4C6EC7F; Thu, 24 Jun 2021 18:31:27 +0000 (UTC) IronPort-SDR: qOfEEaFdH8cWpwr7deLCBJQGkdYSK0hEZYFPjsEbywI4wrvAbvDRv9OBY13hU8qi4taRIjXQCQ 7Ybg6miJLB3w== X-IronPort-AV: E=McAfee;i="6200,9189,10025"; a="207354190" X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="207354190" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 11:31:27 -0700 IronPort-SDR: m3BosbDdsn/zNotjAKKD/uVoxFFXvNSOeZUjGhP8dd3d2i34DMffbXdWiNICikjyYAwtWvGlCt HVs3IlturWJA== X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="556585540" Received: from mkayyal-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.243]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 11:31:25 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Thu, 24 Jun 2021 20:31:07 +0200 Message-Id: <20210624183110.22582-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624183110.22582-1-thomas.hellstrom@linux.intel.com> References: <20210624183110.22582-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/4] drm/i915/gem: Implement object migration 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?= , matthew.auld@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SW50cm9kdWNlIGFuIGludGVyZmFjZSB0byBtaWdyYXRlIG9iamVjdHMgYmV0d2VlbiByZWdpb25z LgpUaGlzIGlzIHByaW1hcmlseSBpbnRlbmRlZCB0byBtaWdyYXRlIG9iamVjdHMgdG8gTE1FTSBm b3IgZGlzcGxheSBhbmQKdG8gU1lTVEVNIGZvciBkbWEtYnVmLCBidXQgbWlnaHQgYmUgcmV1c2Vk IGluIG9uZSBmb3JtIG9yIGFub3RoZXIgZm9yCnBlcmZvcm1hbmRlLWJhc2VkIG1pZ3JhdGlvbi4K ClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmMgICAgfCA5MSArKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fb2JqZWN0LmggICAgfCAxMiArKysKIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdF90eXBlcy5oICB8ICA5ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fdHRtLmMgICAgICAgfCA2OSArKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3dhaXQuYyAgICAgIHwgMTkgKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAx ODMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX29iamVjdC5jCmluZGV4IDA3ZThmZjlhOGFhZS4uNjQyMWMzYThiMmYzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC01MTMsNiAr NTEzLDk3IEBAIGJvb2wgaTkxNV9nZW1fb2JqZWN0X2hhc19pb21lbShjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBvYmotPm1lbV9mbGFncyAmIEk5MTVfQk9f RkxBR19JT01FTTsKIH0KIAorLyoqCisgKiBpOTE1X2dlbV9vYmplY3RfY2FuX21pZ3JhdGUgLSBX aGV0aGVyIGFuIG9iamVjdCBsaWtlbHkgY2FuIGJlIG1pZ3JhdGVkCisgKgorICogQG9iajogVGhl IG9iamVjdCB0byBtaWdyYXRlCisgKiBAaWQ6IFRoZSByZWdpb24gaW50ZW5kZWQgdG8gbWlncmF0 ZSB0bworICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIG9iamVjdCBiYWNrZW5kIHN1cHBvcnRzIG1p Z3JhdGlvbiB0byB0aGUKKyAqIGdpdmVuIHJlZ2lvbi4gTm90ZSB0aGF0IHBpbm5pbmcgbWF5IGFm ZmVjdCB0aGUgYWJpbGl0eSB0byBtaWdyYXRlLgorICoKKyAqIFJldHVybjogdHJ1ZSBpZiBtaWdy YXRpb24gaXMgcG9zc2libGUsIGZhbHNlIG90aGVyd2lzZS4KKyAqLworYm9vbCBpOTE1X2dlbV9v YmplY3RfY2FuX21pZ3JhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkg ZW51bSBpbnRlbF9yZWdpb25faWQgaWQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCXVuc2lnbmVkIGludCBudW1fYWxsb3dlZCA9 IG9iai0+bW0ubl9wbGFjZW1lbnRzOworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptcjsK Kwl1bnNpZ25lZCBpbnQgaTsKKworCUdFTV9CVUdfT04oaWQgPj0gSU5URUxfUkVHSU9OX1VOS05P V04pOworCUdFTV9CVUdfT04ob2JqLT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCk7CisK KwlpZiAoIW9iai0+b3BzLT5taWdyYXRlKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKKwltciA9 IGk5MTUtPm1tLnJlZ2lvbnNbaWRdOworCWlmIChvYmotPm1tLnJlZ2lvbiA9PSBtcikKKwkJcmV0 dXJuIHRydWU7CisKKwlpZiAoIWk5MTVfZ2VtX29iamVjdF9ldmljdGFibGUob2JqKSkKKwkJcmV0 dXJuIGZhbHNlOworCisJaWYgKCEob2JqLT5mbGFncyAmIEk5MTVfQk9fQUxMT0NfVVNFUikpCisJ CXJldHVybiB0cnVlOworCisJaWYgKG51bV9hbGxvd2VkID09IDApCisJCXJldHVybiBmYWxzZTsK KworCWZvciAoaSA9IDA7IGkgPCBudW1fYWxsb3dlZDsgKytpKSB7CisJCWlmIChtciA9PSBvYmot Pm1tLnBsYWNlbWVudHNbaV0pCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7 Cit9CisKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X21pZ3JhdGUgLSBNaWdyYXRlIGFuIG9iamVj dCB0byB0aGUgZGVzaXJlZCByZWdpb24gaWQKKyAqIEBvYmo6IFRoZSBvYmplY3QgdG8gbWlncmF0 ZS4KKyAqIEB3dzogQW4gb3B0aW9uYWwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eC4gSWYgTlVMTCwg dGhlIGJhY2tlbmQgbWF5CisgKiBub3QgYmUgc3VjY2Vzc2Z1bCBpbiBldmljdGluZyBvdGhlciBv YmplY3RzIHRvIG1ha2Ugcm9vbSBmb3IgdGhpcyBvYmplY3QuCisgKiBAaWQ6IFRoZSByZWdpb24g aWQgdG8gbWlncmF0ZSB0by4KKyAqCisgKiBBdHRlbXB0IHRvIG1pZ3JhdGUgdGhlIG9iamVjdCB0 byB0aGUgZGVzaXJlZCBtZW1vcnkgcmVnaW9uLiBUaGUKKyAqIG9iamVjdCBiYWNrZW5kIG11c3Qg c3VwcG9ydCBtaWdyYXRpb24gYW5kIHRoZSBvYmplY3QgbWF5IG5vdCBiZQorICogcGlubmVkLCAo ZXhwbGljaXRseSBwaW5uZWQgcGFnZXMgb3IgcGlubmVkIHZtYXMpLiBUaGUgb2JqZWN0IG11c3QK KyAqIGJlIGxvY2tlZC4KKyAqIE9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiwgdGhlIG9iamVjdCB3 aWxsIGhhdmUgcGFnZXMgcG9pbnRpbmcgdG8KKyAqIG1lbW9yeSBpbiB0aGUgbmV3IHJlZ2lvbiwg YnV0IGFuIGFzeW5jIG1pZ3JhdGlvbiB0YXNrIG1heSBub3QgaGF2ZQorICogY29tcGxldGVkIHll dCwgYW5kIHRvIGFjY29tcGxpc2ggdGhhdCwgaTkxNV9nZW1fb2JqZWN0X3dhaXRfbWlncmF0aW9u KCkKKyAqIG11c3QgYmUgY2FsbGVkLgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLiBOZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuIEluIHBhcnRpY3VsYXIgbWF5CisgKiByZXR1cm4g LUVOWElPIG9uIGxhY2sgb2YgcmVnaW9uIHNwYWNlLCAtRURFQURMSyBmb3IgZGVhZGxvY2sgYXZv aWRhbmNlCisgKiBpZiBAd3cgaXMgc2V0LCAtRUlOVFIgb3IgLUVSRVNUQVJUU1lTIGlmIHNpZ25h bCBwZW5kaW5nLCBhbmQKKyAqIC1FQlVTWSBpZiB0aGUgb2JqZWN0IGlzIHBpbm5lZC4KKyAqLwor aW50IGk5MTVfZ2VtX29iamVjdF9taWdyYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCisJCQkgICAgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3csCisJCQkgICAgZW51bSBpbnRl bF9yZWdpb25faWQgaWQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19p OTE1KG9iai0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptcjsKKwor CUdFTV9CVUdfT04oaWQgPj0gSU5URUxfUkVHSU9OX1VOS05PV04pOworCUdFTV9CVUdfT04ob2Jq LT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCk7CisJYXNzZXJ0X29iamVjdF9oZWxkKG9i aik7CisKKwltciA9IGk5MTUtPm1tLnJlZ2lvbnNbaWRdOworCWlmIChvYmotPm1tLnJlZ2lvbiA9 PSBtcikKKwkJcmV0dXJuIDA7CisKKwlpZiAoIWk5MTVfZ2VtX29iamVjdF9ldmljdGFibGUob2Jq KSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCWlmICghb2JqLT5vcHMtPm1pZ3JhdGUpCisJCXJldHVy biAtRU9QTk9UU1VQUDsKKworCXJldHVybiBvYmotPm9wcy0+bWlncmF0ZShvYmosIG1yKTsKK30K Kwogdm9pZCBpOTE1X2dlbV9pbml0X19vYmplY3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogewogCUlOSVRfV09SSygmaTkxNS0+bW0uZnJlZV93b3JrLCBfX2k5MTVfZ2VtX2ZyZWVf d29yayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2Jq ZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXgg ZWEzMjI0YTQ4MGM0Li44Y2JkN2E1MzM0ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fb2JqZWN0LmgKQEAgLTE3LDYgKzE3LDggQEAKICNpbmNsdWRlICJpOTE1X2dlbV93 dy5oIgogI2luY2x1ZGUgImk5MTVfdm1hX3R5cGVzLmgiCiAKK2VudW0gaW50ZWxfcmVnaW9uX2lk OworCiAvKgogICogWFhYOiBUaGVyZSBpcyBhIHByZXZhbGVuY2Ugb2YgdGhlIGFzc3VtcHRpb24g dGhhdCB3ZSBmaXQgdGhlCiAgKiBvYmplY3QncyBwYWdlIGNvdW50IGluc2lkZSBhIDMyYml0IF9z aWduZWRfIHZhcmlhYmxlLiBMZXQncyBkb2N1bWVudApAQCAtNTk3LDYgKzU5OSwxNiBAQCBib29s IGk5MTVfZ2VtX29iamVjdF9taWdyYXRhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopOwogCiBib29sIGk5MTVfZ2VtX29iamVjdF92YWxpZGF0ZXNfdG9fbG1lbShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKIAoraW50IGk5MTVfZ2VtX29iamVjdF9taWdyYXRlKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgc3RydWN0IGk5MTVfZ2VtX3d3 X2N0eCAqd3csCisJCQkgICAgZW51bSBpbnRlbF9yZWdpb25faWQgaWQpOworCitib29sIGk5MTVf Z2VtX29iamVjdF9jYW5fbWlncmF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAor CQkJCSBlbnVtIGludGVsX3JlZ2lvbl9pZCBpZCk7CisKK2ludCBpOTE1X2dlbV9vYmplY3Rfd2Fp dF9taWdyYXRpb24oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkgICB1bnNp Z25lZCBpbnQgZmxhZ3MpOworCiAjaWZkZWYgQ09ORklHX01NVV9OT1RJRklFUgogc3RhdGljIGlu bGluZSBib29sCiBpOTE1X2dlbV9vYmplY3RfaXNfdXNlcnB0cihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdF90eXBlcy5oCmluZGV4IDQ0MWY5MTNjODdlNi4uZWYzZGUyYWU5NzIzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCkBAIC0xOCw2 ICsxOCw3IEBACiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Owogc3RydWN0IGludGVsX2Zy b25idWZmZXI7CitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbjsKIAogLyoKICAqIHN0cnVjdCBp OTE1X2x1dF9oYW5kbGUgdHJhY2tzIHRoZSBmYXN0IGxvb2t1cHMgZnJvbSBoYW5kbGUgdG8gdm1h IHVzZWQKQEAgLTc3LDYgKzc4LDE0IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyB7 CiAJICogZGVsYXllZF9mcmVlIC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZGVsYXllZCBmcmVlIGlt cGxlbWVudGF0aW9uCiAJICovCiAJdm9pZCAoKmRlbGF5ZWRfZnJlZSkoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBtaWdyYXRlIC0gTWlncmF0ZSBvYmplY3Qg dG8gYSBkaWZmZXJlbnQgcmVnaW9uIGVpdGhlciBmb3IKKwkgKiBwaW5uaW5nIG9yIGZvciBhcyBs b25nIGFzIHRoZSBvYmplY3QgbG9jayBpcyBoZWxkLgorCSAqLworCWludCAoKm1pZ3JhdGUpKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqbXIpOworCiAJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopOwogCiAJY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICptbWFw X29wczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYwppbmRleCBjMzlkOTgy YzRmYTYuLmIwMWJmMDY1MGFiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90 dG0uYwpAQCAtNjE3LDcgKzYxNyw4IEBAIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzICppOTE1X3R0 bV9kcml2ZXIodm9pZCkKIAlyZXR1cm4gJmk5MTVfdHRtX2JvX2RyaXZlcjsKIH0KIAotc3RhdGlj IGludCBpOTE1X3R0bV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK K3N0YXRpYyBpbnQgX19pOTE1X3R0bV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKKwkJCQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50KQogewogCXN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSBpOTE1X2dlbV90b190dG0ob2JqKTsKIAlzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewpAQCAtNjI1LDE5ICs2MjYsMTIgQEAgc3RhdGljIGlu dCBpOTE1X3R0bV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJ Lm5vX3dhaXRfZ3B1ID0gZmFsc2UsCiAJfTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwotCXN0cnVj dCB0dG1fcGxhY2UgcmVxdWVzdGVkLCBidXN5W0k5MTVfVFRNX01BWF9QTEFDRU1FTlRTXTsKLQlz dHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7CiAJaW50IHJlYWxfbnVtX2J1c3k7CiAJaW50 IHJldDsKIAotCUdFTV9CVUdfT04ob2JqLT5tbS5uX3BsYWNlbWVudHMgPiBJOTE1X1RUTV9NQVhf UExBQ0VNRU5UUyk7Ci0KLQkvKiBNb3ZlIHRvIHRoZSByZXF1ZXN0ZWQgcGxhY2VtZW50LiAqLwot CWk5MTVfdHRtX3BsYWNlbWVudF9mcm9tX29iaihvYmosICZyZXF1ZXN0ZWQsIGJ1c3ksICZwbGFj ZW1lbnQpOwotCiAJLyogRmlyc3QgdHJ5IG9ubHkgdGhlIHJlcXVlc3RlZCBwbGFjZW1lbnQuIE5v IGV2aWN0aW9uLiAqLwotCXJlYWxfbnVtX2J1c3kgPSBmZXRjaF9hbmRfemVybygmcGxhY2VtZW50 Lm51bV9idXN5X3BsYWNlbWVudCk7Ci0JcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcGxhY2Vt ZW50LCAmY3R4KTsKKwlyZWFsX251bV9idXN5ID0gZmV0Y2hfYW5kX3plcm8oJnBsYWNlbWVudC0+ bnVtX2J1c3lfcGxhY2VtZW50KTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sIHBsYWNlbWVu dCwgJmN0eCk7CiAJaWYgKHJldCkgewogCQlyZXQgPSBpOTE1X3R0bV9lcnJfdG9fZ2VtKHJldCk7 CiAJCS8qCkBAIC02NTIsOCArNjQ2LDggQEAgc3RhdGljIGludCBpOTE1X3R0bV9nZXRfcGFnZXMo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJICogSWYgdGhlIGluaXRpYWwgYXR0 ZW1wdCBmYWlscywgYWxsb3cgYWxsIGFjY2VwdGVkIHBsYWNlbWVudHMsCiAJCSAqIGV2aWN0aW5n IGlmIG5lY2Vzc2FyeS4KIAkJICovCi0JCXBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSBy ZWFsX251bV9idXN5OwotCQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZwbGFjZW1lbnQsICZj dHgpOworCQlwbGFjZW1lbnQtPm51bV9idXN5X3BsYWNlbWVudCA9IHJlYWxfbnVtX2J1c3k7CisJ CXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgcGxhY2VtZW50LCAmY3R4KTsKIAkJaWYgKHJldCkK IAkJCXJldHVybiBpOTE1X3R0bV9lcnJfdG9fZ2VtKHJldCk7CiAJfQpAQCAtNjY4LDE2ICs2NjIs NTYgQEAgc3RhdGljIGludCBpOTE1X3R0bV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAkJaTkxNV90dG1fYWRqdXN0X2dlbV9hZnRlcl9tb3ZlKG9iaik7CiAJfQog Ci0JLyogT2JqZWN0IGVpdGhlciBoYXMgYSBwYWdlIHZlY3RvciBvciBpcyBhbiBpb21lbSBvYmpl Y3QgKi8KLQlzdCA9IGJvLT50dG0gPyBpOTE1X3R0bV90dF9nZXRfc3QoYm8tPnR0bSkgOiBvYmot PnR0bS5jYWNoZWRfaW9fc3Q7Ci0JaWYgKElTX0VSUihzdCkpCi0JCXJldHVybiBQVFJfRVJSKHN0 KTsKKwlpZiAoIW9iai0+bW0ucGFnZXMpIHsKKwkJLyogT2JqZWN0IGVpdGhlciBoYXMgYSBwYWdl IHZlY3RvciBvciBpcyBhbiBpb21lbSBvYmplY3QgKi8KKwkJc3QgPSBiby0+dHRtID8gaTkxNV90 dG1fdHRfZ2V0X3N0KGJvLT50dG0pIDogb2JqLT50dG0uY2FjaGVkX2lvX3N0OworCQlpZiAoSVNf RVJSKHN0KSkKKwkJCXJldHVybiBQVFJfRVJSKHN0KTsKIAotCV9faTkxNV9nZW1fb2JqZWN0X3Nl dF9wYWdlcyhvYmosIHN0LCBpOTE1X3NnX2RtYV9zaXplcyhzdC0+c2dsKSk7CisJCV9faTkxNV9n ZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHN0LCBpOTE1X3NnX2RtYV9zaXplcyhzdC0+c2dsKSk7 CisJfQogCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBpOTE1X3R0bV9nZXRfcGFnZXMo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgdHRtX3BsYWNlIHJl cXVlc3RlZCwgYnVzeVtJOTE1X1RUTV9NQVhfUExBQ0VNRU5UU107CisJc3RydWN0IHR0bV9wbGFj ZW1lbnQgcGxhY2VtZW50OworCisJR0VNX0JVR19PTihvYmotPm1tLm5fcGxhY2VtZW50cyA+IEk5 MTVfVFRNX01BWF9QTEFDRU1FTlRTKTsKKworCS8qIE1vdmUgdG8gdGhlIHJlcXVlc3RlZCBwbGFj ZW1lbnQuICovCisJaTkxNV90dG1fcGxhY2VtZW50X2Zyb21fb2JqKG9iaiwgJnJlcXVlc3RlZCwg YnVzeSwgJnBsYWNlbWVudCk7CisKKwlyZXR1cm4gX19pOTE1X3R0bV9nZXRfcGFnZXMob2JqLCAm cGxhY2VtZW50KTsKK30KKworc3RhdGljIGludCBpOTE1X3R0bV9taWdyYXRlKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24g Km1yKQoreworCXN0cnVjdCB0dG1fcGxhY2UgcmVxdWVzdGVkOworCXN0cnVjdCB0dG1fcGxhY2Vt ZW50IHBsYWNlbWVudDsKKwlpbnQgcmV0OworCisJaTkxNV90dG1fcGxhY2VfZnJvbV9yZWdpb24o bXIsICZyZXF1ZXN0ZWQsIG9iai0+ZmxhZ3MpOworCXBsYWNlbWVudC5udW1fcGxhY2VtZW50ID0g MTsKKwlwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gMTsKKwlwbGFjZW1lbnQucGxhY2Vt ZW50ID0gJnJlcXVlc3RlZDsKKwlwbGFjZW1lbnQuYnVzeV9wbGFjZW1lbnQgPSAmcmVxdWVzdGVk OworCisJcmV0ID0gX19pOTE1X3R0bV9nZXRfcGFnZXMob2JqLCAmcGxhY2VtZW50KTsKKwlpZiAo cmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKG9iai0+bW0ucmVnaW9uICE9IG1yKSB7CisJCWlu dGVsX21lbW9yeV9yZWdpb25fcHV0KG9iai0+bW0ucmVnaW9uKTsKKwkJb2JqLT5tbS5yZWdpb24g PSBpbnRlbF9tZW1vcnlfcmVnaW9uX2dldChtcik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0 YXRpYyB2b2lkIGk5MTVfdHRtX3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQkJICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc3QpCiB7CkBAIC04MTQsNiArODQ4LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV90 dG1fb2JqX29wcyA9IHsKIAkudHJ1bmNhdGUgPSBpOTE1X3R0bV9wdXJnZSwKIAkuYWRqdXN0X2xy dSA9IGk5MTVfdHRtX2FkanVzdF9scnUsCiAJLmRlbGF5ZWRfZnJlZSA9IGk5MTVfdHRtX2RlbGF5 ZWRfZnJlZSwKKwkubWlncmF0ZSA9IGk5MTVfdHRtX21pZ3JhdGUsCiAJLm1tYXBfb2Zmc2V0ID0g aTkxNV90dG1fbW1hcF9vZmZzZXQsCiAJLm1tYXBfb3BzID0gJnZtX29wc190dG0sCiB9OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3dhaXQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV93YWl0LmMKaW5kZXggMTA3MGQzYWZkY2U3Li5l OWY3YThkOWYwZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV93YWl0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3dhaXQuYwpA QCAtMjkwLDMgKzI5MCwyMiBAQCBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAlpOTE1X2dlbV9vYmpl Y3RfcHV0KG9iaik7CiAJcmV0dXJuIHJldDsKIH0KKworLyoqCisgKiBpOTE1X2dlbV9vYmplY3Rf d2FpdF9taWdyYXRlIC0gU3luYyBhbiBhY2NlbGVyYXRlZCBtaWdyYXRpb24gb3BlcmF0aW9uCisg KiBAb2JqOiBUaGUgbWlncmF0aW5nIG9iamVjdC4KKyAqIEBmbGFnczogd2FpdGluZyBmbGFncy4g Q3VycmVudGx5IHN1cHBvcnRzIG9ubHkgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUuCisgKgorICog V2FpdCBmb3IgYW55IHBlbmRpbmcgYXN5bmMgbWlncmF0aW9uIG9wZXJhdGlvbiBvbiB0aGUgb2Jq ZWN0LAorICogd2hldGhlciBpdCdzIGV4cGxpY2l0bHkgKGk5MTVfZ2VtX29iamVjdF9taWdyYXRl KCkpIG9yIGltcGxpY2l0bHkKKyAqIChzd2FwaW4sIGluaXRpYWwgY2xlYXJpbmcpIGluaXRpYXRl ZC4KKyAqCisgKiBSZXR1cm46IDAgaWYgc3VjY2Vzc2Z1bCwgLUVSRVNUQVJUU1lTIGlmIGEgc2ln bmFsIHdhcyBoaXQgZHVyaW5nIHdhaXRpbmcuCisgKi8KK2ludCBpOTE1X2dlbV9vYmplY3Rfd2Fp dF9taWdyYXRpb24oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkgICB1bnNp Z25lZCBpbnQgZmxhZ3MpCit7CisJbWlnaHRfc2xlZXAoKTsKKwkvKiBOT1AgZm9yIG5vdy4gKi8K KwlyZXR1cm4gMDsKK30KLS0gCjIuMzEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==