From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 04/37] drm/i915/region: support continuous allocations Date: Fri, 9 Aug 2019 23:26:10 +0100 Message-ID: <20190809222643.23142-5-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Abdiel Janulgue , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U29tZSBvYmplY3RzIG1heSBuZWVkIHRvIGJlIGFsbG9jYXRlZCBhcyBhIGNvbnRpbnVvdXMgYmxv Y2ssIHRoaW5raW5nCmFoZWFkIHRoZSB2YXJpb3VzIGtlcm5lbCBpb19tYXBwaW5nIGludGVyZmFj ZXMgc2VlbSB0byBleHBlY3QgaXQuCgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRo ZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBs aW51eC5pbnRlbC5jb20+CkNjOiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5 cGVzLmggIHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24u YyAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5o ICAgIHwgICAzICstCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24u YyAgfCAxNTIgKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19yZWdpb24uYyAgfCAgIDUgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdF90eXBlcy5oCmluZGV4IDVlMmZhMzdlOWJjMC4uZWI5MjI0M2Q0NzNiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVz LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5o CkBAIC0xMTYsNiArMTE2LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAogCUk5 MTVfU0VMRlRFU1RfREVDTEFSRShzdHJ1Y3QgbGlzdF9oZWFkIHN0X2xpbmspOwogCisJdW5zaWdu ZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgSTkxNV9CT19BTExPQ19DT05USUdVT1VTIEJJVCgwKQor I2RlZmluZSBJOTE1X0JPX0FMTE9DX0ZMQUdTIChJOTE1X0JPX0FMTE9DX0NPTlRJR1VPVVMpCisK IAkvKgogCSAqIElzIHRoZSBvYmplY3QgdG8gYmUgbWFwcGVkIGFzIHJlYWQtb25seSB0byB0aGUg R1BVCiAJICogT25seSBob25vdXJlZCBpZiBoYXJkd2FyZSBoYXMgcmVsZXZhbnQgcHRlIGJpdApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jCmluZGV4IGJlMTI2ZTcw YzkwZi4uZDljZDcyMmI1ZGJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fcmVnaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X3JlZ2lvbi5jCkBAIC00Miw2ICs0Miw5IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfYnVk ZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQogCisJaWYgKG9iai0+ZmxhZ3MgJiBJOTE1X0JPX0FMTE9DX0NPTlRJR1VPVVMpCisJCWZsYWdz ID0gSTkxNV9BTExPQ19DT05USUdVT1VTOworCiAJcmV0ID0gX19pbnRlbF9tZW1vcnlfcmVnaW9u X2dldF9wYWdlc19idWRkeShtZW0sIHNpemUsIGZsYWdzLCBibG9ja3MpOwogCWlmIChyZXQpCiAJ CWdvdG8gZXJyX2ZyZWVfc2c7CkBAIC05OCwxMCArMTAxLDEyIEBAIGk5MTVfZ2VtX29iamVjdF9n ZXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIH0KIAogdm9p ZCBpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCi0JCQkJCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCisJCQkJ CXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJCQkJCXVuc2lnbmVkIGxvbmcgZmxh Z3MpCiB7CiAJSU5JVF9MSVNUX0hFQUQoJm9iai0+bW0uYmxvY2tzKTsKIAlvYmotPm1tLnJlZ2lv bj0gbWVtOworCW9iai0+ZmxhZ3MgPSBmbGFnczsKIAogCW11dGV4X2xvY2soJm1lbS0+b2JqX2xv Y2spOwogCWxpc3RfYWRkKCZvYmotPm1tLnJlZ2lvbl9saW5rLCAmbWVtLT5vYmplY3RzKTsKQEAg LTEyNSw2ICsxMzAsOSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAogCWlmICghbWVtKQogCQlyZXR1cm4gRVJSX1BUUigtRU5P REVWKTsKIAorCWlmIChmbGFncyAmIH5JOTE1X0JPX0FMTE9DX0ZMQUdTKQorCQlyZXR1cm4gRVJS X1BUUigtRUlOVkFMKTsKKwogCXNpemUgPSByb3VuZF91cChzaXplLCBtZW0tPm1pbl9wYWdlX3Np emUpOwogCiAJR0VNX0JVR19PTighc2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fcmVnaW9uLmgKaW5kZXggZWJkZGM4NmQ3OGY3Li5mMmZmNmY4YmZmNzQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmgKQEAgLTE3LDcgKzE3LDggQEAg dm9pZCBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2J1ZGR5KHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCiAJCQkJICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzKTsKIAogdm9pZCBp OTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCi0JCQkJCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOworCQkJCQlz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCQl1bnNpZ25lZCBsb25nIGZsYWdz KTsKIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9y ZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVn aW9uLmMKaW5kZXggMmYxM2U0YzFkOTk5Li43MGI0NjdkNGU4MTEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtODEs MTcgKzgxLDE3IEBAIHN0YXRpYyBpbnQgaWd0X21vY2tfZmlsbCh2b2lkICphcmcpCiAKIHN0YXRp YyB2b2lkIGlndF9tYXJrX2V2aWN0YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQogewotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCWlmIChpOTE1X2dlbV9v YmplY3RfaGFzX3Bpbm5lZF9wYWdlcyhvYmopKQorCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFn ZXMob2JqKTsKIAlvYmotPm1tLm1hZHYgPSBJOTE1X01BRFZfRE9OVE5FRUQ7CiAJbGlzdF9tb3Zl KCZvYmotPm1tLnJlZ2lvbl9saW5rLCAmb2JqLT5tbS5yZWdpb24tPnB1cmdlYWJsZSk7CiB9CiAK LXN0YXRpYyBpbnQgaWd0X21vY2tfc2hyaW5rKHZvaWQgKmFyZykKK3N0YXRpYyBpbnQgaWd0X2Zy YWdfcmVnaW9uKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJCQkgICBzdHJ1Y3Qg bGlzdF9oZWFkICpvYmplY3RzKQogewotCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0g PSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAl1bnNpZ25lZCBsb25n IG5fb2JqZWN0czsKLQlMSVNUX0hFQUQob2JqZWN0cyk7CiAJcmVzb3VyY2Vfc2l6ZV90IHRhcmdl dDsKIAlyZXNvdXJjZV9zaXplX3QgdG90YWw7CiAJaW50IGVyciA9IDA7CkBAIC0xMDksNyArMTA5 LDcgQEAgc3RhdGljIGludCBpZ3RfbW9ja19zaHJpbmsodm9pZCAqYXJnKQogCQkJZ290byBlcnJf Y2xvc2Vfb2JqZWN0czsKIAkJfQogCi0JCWxpc3RfYWRkKCZvYmotPnN0X2xpbmssICZvYmplY3Rz KTsKKwkJbGlzdF9hZGQoJm9iai0+c3RfbGluaywgb2JqZWN0cyk7CiAKIAkJZXJyID0gaTkxNV9n ZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwogCQlpZiAoZXJyKQpAQCAtMTIzLDYgKzEyMywzOSBA QCBzdGF0aWMgaW50IGlndF9tb2NrX3Nocmluayh2b2lkICphcmcpCiAJCQlpZ3RfbWFya19ldmlj dGFibGUob2JqKTsKIAl9CiAKKwlyZXR1cm4gMDsKKworZXJyX2Nsb3NlX29iamVjdHM6CisJY2xv c2Vfb2JqZWN0cyhvYmplY3RzKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCBpZ3Rf ZGVmcmFnX3JlZ2lvbihzdHJ1Y3QgbGlzdF9oZWFkICpvYmplY3RzKQoreworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgb2JqZWN0 cywgc3RfbGluaykgeworCQlpZiAob2JqLT5tbS5tYWR2ID09IEk5MTVfTUFEVl9XSUxMTkVFRCkK KwkJCWlndF9tYXJrX2V2aWN0YWJsZShvYmopOworCX0KK30KKworc3RhdGljIGludCBpZ3RfbW9j a19zaHJpbmsodm9pZCAqYXJnKQoreworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0g PSBhcmc7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlMSVNUX0hFQUQob2Jq ZWN0cyk7CisJcmVzb3VyY2Vfc2l6ZV90IHRhcmdldDsKKwlyZXNvdXJjZV9zaXplX3QgdG90YWw7 CisJaW50IGVycjsKKworCWVyciA9IGlndF9mcmFnX3JlZ2lvbihtZW0sICZvYmplY3RzKTsKKwlp ZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJdG90YWwgPSByZXNvdXJjZV9zaXplKCZtZW0tPnJl Z2lvbik7CisJdGFyZ2V0ID0gbWVtLT5tbS5jaHVua19zaXplOworCiAJd2hpbGUgKHRhcmdldCA8 PSB0b3RhbCAvIDIpIHsKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24obWVt LCB0YXJnZXQsIDApOwogCQlpZiAoSVNfRVJSKG9iaikpIHsKQEAgLTE1NCwxMSArMTg3LDEyMCBA QCBzdGF0aWMgaW50IGlndF9tb2NrX3Nocmluayh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0K IAorc3RhdGljIGludCBpZ3RfbW9ja19jb250aW51b3VzKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg aW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtID0gYXJnOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7CisJTElTVF9IRUFEKG9iamVjdHMpOworCXJlc291cmNlX3NpemVfdCB0YXJnZXQ7 CisJcmVzb3VyY2Vfc2l6ZV90IHRvdGFsOworCWludCBlcnI7CisKKwllcnIgPSBpZ3RfZnJhZ19y ZWdpb24obWVtLCAmb2JqZWN0cyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCXRvdGFs ID0gcmVzb3VyY2Vfc2l6ZSgmbWVtLT5yZWdpb24pOworCXRhcmdldCA9IHRvdGFsIC8gMjsKKwor CS8qCisJICogU2FuaXR5IGNoZWNrIHRoYXQgd2UgY2FuIGFsbG9jYXRlIGFsbCBvZiB0aGUgYXZh aWxhYmxlIGZyYWdtZW50ZWQKKwkgKiBzcGFjZS4KKwkgKi8KKwlvYmogPSBpOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3JlZ2lvbihtZW0sIHRhcmdldCwgMCk7CisJaWYgKElTX0VSUihvYmopKSB7CisJ CWVyciA9IFBUUl9FUlIob2JqKTsKKwkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKKwl9CisKKwls aXN0X2FkZCgmb2JqLT5zdF9saW5rLCAmb2JqZWN0cyk7CisKKwllcnIgPSBpOTE1X2dlbV9vYmpl Y3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKGVycikgeworCQlwcl9lcnIoImZhaWxlZCB0byBhbGxv Y2F0ZSBhdmFpbGFibGUgc3BhY2VcbiIpOworCQlnb3RvIGVycl9jbG9zZV9vYmplY3RzOworCX0K KworCWlndF9tYXJrX2V2aWN0YWJsZShvYmopOworCisJLyogVHJ5IHRoZSBzbWFsbGVzdCBwb3Nz aWJsZSBzaXplIC0tIHNob3VsZCBzdWNjZWVkICovCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9yZWdpb24obWVtLCBtZW0tPm1tLmNodW5rX3NpemUsCisJCQkJCSAgICBJOTE1X0JPX0FM TE9DX0NPTlRJR1VPVVMpOworCWlmIChJU19FUlIob2JqKSkgeworCQllcnIgPSBQVFJfRVJSKG9i aik7CisJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7CisJfQorCisJbGlzdF9hZGQoJm9iai0+c3Rf bGluaywgJm9iamVjdHMpOworCisJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmop OworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gYWxsb2NhdGUgc21hbGxlc3QgcG9z c2libGUgc2l6ZVxuIik7CisJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7CisJfQorCisJaWd0X21h cmtfZXZpY3RhYmxlKG9iaik7CisKKwlpZiAob2JqLT5tbS5wYWdlcy0+bmVudHMgIT0gMSkgewor CQlwcl9lcnIoIlsxXW9iamVjdCBzcGFucyBtdWx0aXBsZSBzZyBlbnRyaWVzXG4iKTsKKwkJZXJy ID0gLUVJTlZBTDsKKwkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKKwl9CisKKwkvKgorCSAqIEV2 ZW4gdGhvdWdoIHRoZXJlIGlzIGVub3VnaCBmcmVlIHNwYWNlIGZvciB0aGUgYWxsb2NhdGlvbiwg d2UKKwkgKiBzaG91bGRuJ3QgYmUgYWJsZSB0byBhbGxvY2F0ZSBpdCwgZ2l2ZW4gdGhhdCBpdCBp cyBmcmFnbWVudGVkLCBhbmQKKwkgKiBub24tY29udGludW91cy4KKwkgKi8KKwlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtZW0sIHRhcmdldCwgSTkxNV9CT19BTExPQ19DT05U SUdVT1VTKTsKKwlpZiAoSVNfRVJSKG9iaikpIHsKKwkJZXJyID0gUFRSX0VSUihvYmopOworCQln b3RvIGVycl9jbG9zZV9vYmplY3RzOworCX0KKworCWxpc3RfYWRkKCZvYmotPnN0X2xpbmssICZv YmplY3RzKTsKKworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAo IWVycikgeworCQlwcl9lcnIoImV4cGVjdGVkIGFsbG9jYXRpb24gdG8gZmFpbFxuIik7CisJCWVy ciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7CisJfQorCisJaWd0X2RlZnJh Z19yZWdpb24oJm9iamVjdHMpOworCisJLyogU2hvdWxkIG5vdyBzdWNjZWVkICovCisJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24obWVtLCB0YXJnZXQsIEk5MTVfQk9fQUxMT0Nf Q09OVElHVU9VUyk7CisJaWYgKElTX0VSUihvYmopKSB7CisJCWVyciA9IFBUUl9FUlIob2JqKTsK KwkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKKwl9CisKKwlsaXN0X2FkZCgmb2JqLT5zdF9saW5r LCAmb2JqZWN0cyk7CisKKwllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJ aWYgKGVycikgeworCQlwcl9lcnIoImZhaWxlZCB0byBhbGxvY2F0ZSBmcm9tIGRlZnJhZ2VkIGFy ZWFcbiIpOworCQlnb3RvIGVycl9jbG9zZV9vYmplY3RzOworCX0KKworCWlmIChvYmotPm1tLnBh Z2VzLT5uZW50cyAhPSAxKSB7CisJCXByX2Vycigib2JqZWN0IHNwYW5zIG11bHRpcGxlIHNnIGVu dHJpZXNcbiIpOworCQllcnIgPSAtRUlOVkFMOworCX0KKworZXJyX2Nsb3NlX29iamVjdHM6CisJ Y2xvc2Vfb2JqZWN0cygmb2JqZWN0cyk7CisKKwlyZXR1cm4gZXJyOworfQorCiBpbnQgaW50ZWxf bWVtb3J5X3JlZ2lvbl9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X21vY2tfZmlsbCksCiAJ CVNVQlRFU1QoaWd0X21vY2tfc2hyaW5rKSwKKwkJU1VCVEVTVChpZ3RfbW9ja19jb250aW51b3Vz KSwKIAl9OwogCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW07CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19yZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X3JlZ2lvbi5jCmluZGV4IGNjOTcyNTBkY2E2Mi4uZDczZjM3NzEyYzQ0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYwpAQCAtMjMsNiArMjMsOSBAQCBt b2NrX29iamVjdF9jcmVhdGUoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXVuc2lnbmVkIGludCBjYWNoZV9sZXZlbDsK IAorCWlmIChmbGFncyAmIEk5MTVfQk9fQUxMT0NfQ09OVElHVU9VUykKKwkJc2l6ZSA9IHJvdW5k dXBfcG93X29mX3R3byhzaXplKTsKKwogCWlmIChzaXplID4gQklUKG1lbS0+bW0ubWF4X29yZGVy KSAqIG1lbS0+bW0uY2h1bmtfc2l6ZSkKIAkJcmV0dXJuIEVSUl9QVFIoLUUyQklHKTsKIApAQCAt MzgsNyArNDEsNyBAQCBtb2NrX29iamVjdF9jcmVhdGUoc3RydWN0IGludGVsX21lbW9yeV9yZWdp b24gKm1lbSwKIAljYWNoZV9sZXZlbCA9IEhBU19MTEMoaTkxNSkgPyBJOTE1X0NBQ0hFX0xMQyA6 IEk5MTVfQ0FDSEVfTk9ORTsKIAlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShv YmosIGNhY2hlX2xldmVsKTsKIAotCWk5MTVfZ2VtX29iamVjdF9pbml0X21lbW9yeV9yZWdpb24o b2JqLCBtZW0pOworCWk5MTVfZ2VtX29iamVjdF9pbml0X21lbW9yeV9yZWdpb24ob2JqLCBtZW0s IGZsYWdzKTsKIAogCXJldHVybiBvYmo7CiB9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==