From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 03/37] drm/i915/region: support basic eviction Date: Fri, 9 Aug 2019 23:26:09 +0100 Message-ID: <20190809222643.23142-4-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 U3VwcG9ydCBiYXNpYyBldmljdGlvbiBmb3IgcmVnaW9ucy4KClNpZ25lZC1vZmYtYnk6IE1hdHRo ZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9v bmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVs LmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgNyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3JlZ2lvbi5jICAgIHwgMTEgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fcmVnaW9uLmggICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgICAgICAgfCAxNyArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVt b3J5X3JlZ2lvbi5jICAgIHwgNzMgKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmggICAgfCAgNSArKwogLi4uL2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgIHwgNzYgKysrKysrKysrKysrKysrKysrKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmMgIHwgIDEgKwogOCBmaWxl cyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKaW5kZXggYTMyMDY2 ZTY2MjcxLi41ZTJmYTM3ZTliYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTE2OCw2ICsxNjgsMTMgQEAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgewogCQkgKiBMaXN0IG9mIG1lbW9yeSByZWdpb24gYmxvY2tzIGFsbG9j YXRlZCBmb3IgdGhpcyBvYmplY3QuCiAJCSAqLwogCQlzdHJ1Y3QgbGlzdF9oZWFkIGJsb2NrczsK KwkJLyoqCisJCSAqIEVsZW1lbnQgd2l0aGluIG1lbW9yeV9yZWdpb24tPm9iamVjdHMgb3IKKwkJ ICogbWVtb3J5X3JlZ2lvbi0+cHVyZ2VhYmxlIGlmIHRoZSBvYmplY3QgaXMgbWFya2VkIGFzCisJ CSAqIERPTlRORUVELiBBY2Nlc3MgaXMgcHJvdGVjdGVkIGJ5IG1lbW9yeV9yZWdpb24tPm9ial9s b2NrLgorCQkgKi8KKwkJc3RydWN0IGxpc3RfaGVhZCByZWdpb25fbGluazsKKwkJc3RydWN0IGxp c3RfaGVhZCB0bXBfbGluazsKIAogCQlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzOwogCQl2b2lkICpt YXBwaW5nOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Jl Z2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jCmluZGV4 IDNjZDFiZjE1ZTI1Yi4uYmUxMjZlNzBjOTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3JlZ2lvbi5jCkBAIC0xMDIsNiArMTAyLDE3IEBAIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X2luaXRfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog ewogCUlOSVRfTElTVF9IRUFEKCZvYmotPm1tLmJsb2Nrcyk7CiAJb2JqLT5tbS5yZWdpb249IG1l bTsKKworCW11dGV4X2xvY2soJm1lbS0+b2JqX2xvY2spOworCWxpc3RfYWRkKCZvYmotPm1tLnJl Z2lvbl9saW5rLCAmbWVtLT5vYmplY3RzKTsKKwltdXRleF91bmxvY2soJm1lbS0+b2JqX2xvY2sp OworfQorCit2b2lkIGk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21lbW9yeV9yZWdpb24oc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwltdXRleF9sb2NrKCZvYmotPm1tLnJlZ2lv bi0+b2JqX2xvY2spOworCWxpc3RfZGVsKCZvYmotPm1tLnJlZ2lvbl9saW5rKTsKKwltdXRleF91 bmxvY2soJm9iai0+bW0ucmVnaW9uLT5vYmpfbG9jayk7CiB9CiAKIHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9yZWdpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaApp bmRleCBkYTVhMmNhMWEwZmIuLmViZGRjODZkNzhmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9yZWdpb24uaApAQCAtMTgsNiArMTgsNyBAQCB2b2lkIGk5MTVfZ2VtX29i amVjdF9wdXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAog dm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCiAJCQkJCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOwor dm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOwogCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVt LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNmZmMDFhNDA0MzQ2Li44NzM1ZGVhNzQ4MDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTEwNSw2ICsxMTA1LDIzIEBAIGk5MTVfZ2Vt X21hZHZpc2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgICAg IWk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKSkKIAkJaTkxNV9nZW1fb2JqZWN0X3RydW5j YXRlKG9iaik7CiAKKwlpZiAob2JqLT5tbS5yZWdpb24pIHsKKwkJbXV0ZXhfbG9jaygmb2JqLT5t bS5yZWdpb24tPm9ial9sb2NrKTsKKworCQlzd2l0Y2ggKG9iai0+bW0ubWFkdikgeworCQljYXNl IEk5MTVfTUFEVl9XSUxMTkVFRDoKKwkJCWxpc3RfbW92ZSgmb2JqLT5tbS5yZWdpb25fbGluaywK KwkJCQkgICZvYmotPm1tLnJlZ2lvbi0+b2JqZWN0cyk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoK KwkJCWxpc3RfbW92ZSgmb2JqLT5tbS5yZWdpb25fbGluaywKKwkJCQkgICZvYmotPm1tLnJlZ2lv bi0+cHVyZ2VhYmxlKTsKKwkJCWJyZWFrOworCQl9CisKKwkJbXV0ZXhfdW5sb2NrKCZvYmotPm1t LnJlZ2lvbi0+b2JqX2xvY2spOworCX0KKwogCWFyZ3MtPnJldGFpbmVkID0gb2JqLT5tbS5tYWR2 ICE9IF9fSTkxNV9NQURWX1BVUkdFRDsKIAltdXRleF91bmxvY2soJm9iai0+bW0ubG9jayk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwppbmRleCBlZjEyZTQ2 MmFjYjguLjNhM2NhYWFkZWExZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9y eV9yZWdpb24uYwpAQCAtMTIsNiArMTIsNTEgQEAgY29uc3QgdTMyIGludGVsX3JlZ2lvbl9tYXBb XSA9IHsKIAlbSU5URUxfTUVNT1JZX1NUT0xFTl0gPSBCSVQoSU5URUxfU1RPTEVOICsgSU5URUxf TUVNT1JZX1RZUEVfU0hJRlQpIHwgQklUKDApLAogfTsKIAorc3RhdGljIGludAoraW50ZWxfbWVt b3J5X3JlZ2lvbl9ldmljdChzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJICBy ZXNvdXJjZV9zaXplX3QgdGFyZ2V0LAorCQkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlyZXNvdXJjZV9zaXplX3QgZm91bmQ7CisJ aW50IGVycjsKKworCWVyciA9IDA7CisJZm91bmQgPSAwOworCisJbXV0ZXhfbG9jaygmbWVtLT5v YmpfbG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZtZW0tPnB1cmdlYWJsZSwgbW0u cmVnaW9uX2xpbmspIHsKKwkJaWYgKCFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpCisJ CQljb250aW51ZTsKKworCQlpZiAoUkVBRF9PTkNFKG9iai0+cGluX2dsb2JhbCkpCisJCQljb250 aW51ZTsKKworCQlpZiAoYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpCisJCQljb250aW51 ZTsKKworCQltdXRleF91bmxvY2soJm1lbS0+b2JqX2xvY2spOworCisJCV9faTkxNV9nZW1fb2Jq ZWN0X3B1dF9wYWdlcyhvYmosIEk5MTVfTU1fU0hSSU5LRVIpOworCisJCW11dGV4X2xvY2tfbmVz dGVkKCZvYmotPm1tLmxvY2ssIEk5MTVfTU1fU0hSSU5LRVIpOworCQlpZiAoIWk5MTVfZ2VtX29i amVjdF9oYXNfcGFnZXMob2JqKSkgeworCQkJb2JqLT5tbS5tYWR2ID0gX19JOTE1X01BRFZfUFVS R0VEOworCQkJZm91bmQgKz0gb2JqLT5iYXNlLnNpemU7CisJCX0KKwkJbXV0ZXhfdW5sb2NrKCZv YmotPm1tLmxvY2spOworCisJCWlmIChmb3VuZCA+PSB0YXJnZXQpCisJCQlyZXR1cm4gMDsKKwor CQltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKKwl9CisKKwllcnIgPSAtRU5PU1BDOworCW11 dGV4X3VubG9jaygmbWVtLT5vYmpfbG9jayk7CisJcmV0dXJuIGVycjsKK30KKwogc3RhdGljIHU2 NAogaW50ZWxfbWVtb3J5X3JlZ2lvbl9mcmVlX3BhZ2VzKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uICptZW0sCiAJCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYmxvY2tzKQpAQCAtNjMsNyAr MTA4LDggQEAgX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAogCWRvIHsKIAkJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sg KmJsb2NrOwogCQl1bnNpZ25lZCBpbnQgb3JkZXI7Ci0KKwkJYm9vbCByZXRyeSA9IHRydWU7City ZXRyeToKIAkJb3JkZXIgPSBmbHMobl9wYWdlcykgLSAxOwogCQlHRU1fQlVHX09OKG9yZGVyID4g bWVtLT5tbS5tYXhfb3JkZXIpOwogCkBAIC03Miw5ICsxMTgsMjQgQEAgX19pbnRlbF9tZW1vcnlf cmVnaW9uX2dldF9wYWdlc19idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAog CQkJaWYgKCFJU19FUlIoYmxvY2spKQogCQkJCWJyZWFrOwogCi0JCQkvKiBYWFg6IHNvbWUga2lu ZCBvZiBldmljdGlvbiBwYXNzLCBsb2NhbCB0byB0aGUgZGV2aWNlICovCi0JCQlpZiAoZmxhZ3Mg JiBJOTE1X0FMTE9DX0NPTlRJR1VPVVMgfHwgIW9yZGVyLS0pCi0JCQkJZ290byBlcnJfZnJlZV9i bG9ja3M7CisJCQlpZiAoZmxhZ3MgJiBJOTE1X0FMTE9DX0NPTlRJR1VPVVMgfHwgIW9yZGVyLS0p IHsKKwkJCQlyZXNvdXJjZV9zaXplX3QgdGFyZ2V0OworCQkJCWludCBlcnI7CisKKwkJCQlpZiAo IXJldHJ5KQorCQkJCQlnb3RvIGVycl9mcmVlX2Jsb2NrczsKKworCQkJCXRhcmdldCA9IG5fcGFn ZXMgKiBtZW0tPm1tLmNodW5rX3NpemU7CisKKwkJCQltdXRleF91bmxvY2soJm1lbS0+bW1fbG9j ayk7CisJCQkJZXJyID0gaW50ZWxfbWVtb3J5X3JlZ2lvbl9ldmljdChtZW0sIHRhcmdldCwgMCk7 CisJCQkJbXV0ZXhfbG9jaygmbWVtLT5tbV9sb2NrKTsKKwkJCQlpZiAoZXJyKQorCQkJCQlnb3Rv IGVycl9mcmVlX2Jsb2NrczsKKworCQkJCXJldHJ5ID0gZmFsc2U7CisJCQkJZ290byByZXRyeTsK KwkJCX0KIAkJfSB3aGlsZSAoMSk7CiAKIAkJbl9wYWdlcyAtPSBCSVQob3JkZXIpOwpAQCAtMTQ3 LDYgKzIwOCwxMCBAQCBpbnRlbF9tZW1vcnlfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAltZW0tPm1pbl9wYWdlX3NpemUgPSBtaW5fcGFnZV9zaXplOwogCW1l bS0+b3BzID0gb3BzOwogCisJbXV0ZXhfaW5pdCgmbWVtLT5vYmpfbG9jayk7CisJSU5JVF9MSVNU X0hFQUQoJm1lbS0+b2JqZWN0cyk7CisJSU5JVF9MSVNUX0hFQUQoJm1lbS0+cHVyZ2VhYmxlKTsK KwogCW11dGV4X2luaXQoJm1lbS0+bW1fbG9jayk7CiAKIAlpZiAob3BzLT5pbml0KSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgKaW5kZXggZDI5OWZlZDE2OWU5 Li4zNDA0MTFkY2Y4NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21l bW9yeV9yZWdpb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVn aW9uLmgKQEAgLTc4LDYgKzc4LDExIEBAIHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIHsKIAl1 bnNpZ25lZCBpbnQgdHlwZTsKIAl1bnNpZ25lZCBpbnQgaW5zdGFuY2U7CiAJdW5zaWduZWQgaW50 IGlkOworCisJLyogUHJvdGVjdHMgYWNjZXNzIHRvIG9iamVjdHMgYW5kIHB1cmdlYWJsZSAqLwor CXN0cnVjdCBtdXRleCBvYmpfbG9jazsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG9iamVjdHM7CisJc3Ry dWN0IGxpc3RfaGVhZCBwdXJnZWFibGU7CiB9OwogCiBpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9p bml0X2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKaW5kZXgg ODRkYWE5MmJmOTJjLi4yZjEzZTRjMWQ5OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtNzksMTAgKzc5LDg2IEBA IHN0YXRpYyBpbnQgaWd0X21vY2tfZmlsbCh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAor c3RhdGljIHZvaWQgaWd0X21hcmtfZXZpY3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCit7CisJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisJb2JqLT5tbS5t YWR2ID0gSTkxNV9NQURWX0RPTlRORUVEOworCWxpc3RfbW92ZSgmb2JqLT5tbS5yZWdpb25fbGlu aywgJm9iai0+bW0ucmVnaW9uLT5wdXJnZWFibGUpOworfQorCitzdGF0aWMgaW50IGlndF9tb2Nr X3Nocmluayh2b2lkICphcmcpCit7CisJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSA9 IGFyZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXVuc2lnbmVkIGxvbmcg bl9vYmplY3RzOworCUxJU1RfSEVBRChvYmplY3RzKTsKKwlyZXNvdXJjZV9zaXplX3QgdGFyZ2V0 OworCXJlc291cmNlX3NpemVfdCB0b3RhbDsKKwlpbnQgZXJyID0gMDsKKworCXRhcmdldCA9IG1l bS0+bW0uY2h1bmtfc2l6ZTsKKwl0b3RhbCA9IHJlc291cmNlX3NpemUoJm1lbS0+cmVnaW9uKTsK KwluX29iamVjdHMgPSB0b3RhbCAvIHRhcmdldDsKKworCXdoaWxlIChuX29iamVjdHMtLSkgewor CQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtZW0sCisJCQkJCQkgICAgdGFy Z2V0LAorCQkJCQkJICAgIDApOworCQlpZiAoSVNfRVJSKG9iaikpIHsKKwkJCWVyciA9IFBUUl9F UlIob2JqKTsKKwkJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7CisJCX0KKworCQlsaXN0X2FkZCgm b2JqLT5zdF9saW5rLCAmb2JqZWN0cyk7CisKKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9w YWdlcyhvYmopOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKKworCQkv KgorCQkgKiBNYWtlIGhhbGYgb2YgdGhlIHJlZ2lvbiBldmljdGFibGUsIHRob3VnaCBkbyBzbyBp biBhCisJCSAqIGhvcnJpYmx5IGZyYWdtZW50ZWQgZmFzaGlvbi4KKwkJICovCisJCWlmIChuX29i amVjdHMgJSAyKQorCQkJaWd0X21hcmtfZXZpY3RhYmxlKG9iaik7CisJfQorCisJd2hpbGUgKHRh cmdldCA8PSB0b3RhbCAvIDIpIHsKKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdp b24obWVtLCB0YXJnZXQsIDApOworCQlpZiAoSVNfRVJSKG9iaikpIHsKKwkJCWVyciA9IFBUUl9F UlIob2JqKTsKKwkJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7CisJCX0KKworCQlsaXN0X2FkZCgm b2JqLT5zdF9saW5rLCAmb2JqZWN0cyk7CisKKwkJLyogUHJvdm9rZSB0aGUgc2hyaW5rZXIgdG8g c3RhcnQgdmlvbGVudGx5IHN3aW5naW5nIGl0cyBheGUhICovCisJCWVyciA9IGk5MTVfZ2VtX29i amVjdF9waW5fcGFnZXMob2JqKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJyKCJmYWlsZWQgdG8g c2hyaW5rIGZvciB0YXJnZXQ9JXBhIiwgJnRhcmdldCk7CisJCQlnb3RvIGVycl9jbG9zZV9vYmpl Y3RzOworCQl9CisKKwkJLyogQWdhaW4sIGhhbGYgb2YgdGhlIHJlZ2lvbiBzaG91bGQgcmVtYWlu IGV2aWN0YWJsZSAqLworCQlpZ3RfbWFya19ldmljdGFibGUob2JqKTsKKworCQl0YXJnZXQgPDw9 IDE7CisJfQorCitlcnJfY2xvc2Vfb2JqZWN0czoKKwljbG9zZV9vYmplY3RzKCZvYmplY3RzKTsK KworCWlmIChlcnIgPT0gLUVOT01FTSkKKwkJZXJyID0gMDsKKworCXJldHVybiBlcnI7Cit9CisK IGludCBpbnRlbF9tZW1vcnlfcmVnaW9uX21vY2tfc2VsZnRlc3RzKHZvaWQpCiB7CiAJc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVTVChpZ3RfbW9j a19maWxsKSwKKwkJU1VCVEVTVChpZ3RfbW9ja19zaHJpbmspLAogCX07CiAJc3RydWN0IGludGVs X21lbW9yeV9yZWdpb24gKm1lbTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmMKaW5kZXggZmJkZTg5 MDM4NWM3Li5jYzk3MjUwZGNhNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX3JlZ2lvbi5jCkBAIC0xMSw2ICsxMSw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Rfb3BzIG1vY2tfcmVnaW9uX29ial9vcHMgPSB7CiAJLmdldF9wYWdl cyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfYnVkZHksCiAJLnB1dF9wYWdlcyA9IGk5MTVf Z2VtX29iamVjdF9wdXRfcGFnZXNfYnVkZHksCisJLnJlbGVhc2UgPSBpOTE1X2dlbV9vYmplY3Rf cmVsZWFzZV9tZW1vcnlfcmVnaW9uLAogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICoKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs