From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [RFC PATCH 05/42] drm/i915/region: support basic eviction Date: Thu, 14 Feb 2019 14:57:03 +0000 Message-ID: <20190214145740.14521-6-matthew.auld@intel.com> References: <20190214145740.14521-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A5376E90E for ; Thu, 14 Feb 2019 14:57:49 +0000 (UTC) In-Reply-To: <20190214145740.14521-1-matthew.auld@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 List-Id: intel-gfx@lists.freedesktop.org U3VwcG9ydCBiYXNpYyBldmljdGlvbiBmb3IgcmVnaW9ucy4KClNpZ25lZC1vZmYtYnk6IE1hdHRo ZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9v bmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVs LmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgICAgICAgICAgfCAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICAgICAgICAgfCAxNiArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9vYmplY3QuaCAgICAgICAgfCAgNyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c2hyaW5rZXIuYyAgICAgIHwgNTkgKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX21lbW9yeV9yZWdpb24uYyAgICB8IDQwICsrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaCAgICB8ICA3ICsrCiAuLi4vZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyAgfCA3NiArKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYyAgfCAgMSArCiA4IGZp bGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IDBiZWE3ZDg4OTI4NC4uM2RmMjc3NjliOTc4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTMxOTYsNiArMzE5Niw4IEBAIHZvaWQgaTkxNV9nZW1fc2hyaW5r ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogdm9pZCBpOTE1X2dl bV9zaHJpbmtlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIHZv aWQgaTkxNV9nZW1fc2hyaW5rZXJfdGFpbnRzX211dGV4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAogCQkJCSAgICBzdHJ1Y3QgbXV0ZXggKm11dGV4KTsKK2ludCBpOTE1X2dlbV9zaHJp bmtfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCSAg cmVzb3VyY2Vfc2l6ZV90IHRhcmdldCk7CiAKIC8qIGk5MTVfZ2VtX3RpbGluZy5jICovCiBzdGF0 aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fb2JqZWN0X25lZWRzX2JpdDE3X3N3aXp6bGUoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDky NzY4YWIyOTRhNC4uN2YwNDRiNjQzYTc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQw OTUsNiArNDA5NSwyMiBAQCBpOTE1X2dlbV9tYWR2aXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJICAgICFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikp CiAJCWk5MTVfZ2VtX29iamVjdF90cnVuY2F0ZShvYmopOwogCisJaWYgKG9iai0+bWVtb3J5X3Jl Z2lvbikgeworCQltdXRleF9sb2NrKCZvYmotPm1lbW9yeV9yZWdpb24tPm9ial9sb2NrKTsKKwor CQlzd2l0Y2ggKG9iai0+bW0ubWFkdikgeworCQljYXNlIEk5MTVfTUFEVl9XSUxMTkVFRDoKKwkJ CWxpc3RfbW92ZSgmb2JqLT5yZWdpb25fbGluaywgJm9iai0+bWVtb3J5X3JlZ2lvbi0+b2JqZWN0 cyk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWxpc3RfbW92ZSgmb2JqLT5yZWdpb25fbGlu aywKKwkJCQkgICZvYmotPm1lbW9yeV9yZWdpb24tPnB1cmdlYWJsZSk7CisJCQlicmVhazsKKwkJ fQorCisJCW11dGV4X3VubG9jaygmb2JqLT5tZW1vcnlfcmVnaW9uLT5vYmpfbG9jayk7CisJfQor CiAJYXJncy0+cmV0YWluZWQgPSBvYmotPm1tLm1hZHYgIT0gX19JOTE1X01BRFZfUFVSR0VEOwog CW11dGV4X3VubG9jaygmb2JqLT5tbS5sb2NrKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9vYmplY3QuaAppbmRleCBhYzUyZjYxZThhZDEuLjc2OTQ3YTZmNDlmMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKQEAgLTk1LDYgKzk1LDEzIEBAIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0IHsKIAkgKiBMaXN0IG9mIG1lbW9yeSByZWdpb24gYmxvY2tzIGFsbG9j YXRlZCBmb3IgdGhpcyBvYmplY3QuCiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCBibG9ja3M7CisJ LyoqCisJICogRWxlbWVudCB3aXRoaW4gbWVtb3J5X3JlZ2lvbi0+b2JqZWN0cyBvciBtZW1vcnlf cmVnaW9uLT5wdXJnZWFibGUgaWYKKwkgKiB0aGUgb2JqZWN0IGlzIG1hcmtlZCBhcyBET05UTkVF RC4gQWNjZXNzIGlzIHByb3RlY3RlZCBieQorCSAqIG1lbW9yeV9yZWdpb24tPm9ial9sb2NrLgor CSAqLworCXN0cnVjdCBsaXN0X2hlYWQgcmVnaW9uX2xpbms7CisJc3RydWN0IGxpc3RfaGVhZCB0 bXBfbGluazsKIAogCXN0cnVjdCB7CiAJCS8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3Nocmlua2VyLmMKaW5kZXggNmRhNzk1YzdlNjJlLi43MTNjNmM5M2NmMzAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwpAQCAtMzA4LDYgKzMwOCw2NSBAQCB1bnNp Z25lZCBsb25nIGk5MTVfZ2VtX3Nocmlua19hbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiAJcmV0dXJuIGZyZWVkOwogfQogCitpbnQgaTkxNV9nZW1fc2hyaW5rX21lbW9yeV9yZWdp b24oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCQkgIHJlc291cmNlX3NpemVf dCB0YXJnZXQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBtZW0tPmk5MTU7 CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgKm9uOworCXJlc291cmNlX3NpemVf dCBmb3VuZDsKKwlMSVNUX0hFQUQocHVyZ2VhYmxlKTsKKwlib29sIHVubG9jazsKKwlpbnQgZXJy OworCisJaWYgKCFzaHJpbmtlcl9sb2NrKGk5MTUsIDAsICZ1bmxvY2spKQorCQlyZXR1cm4gMDsK KworCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOworCisJZXJyID0gMDsKKwlmb3VuZCA9IDA7 CisKKwltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnko b2JqLCAmbWVtLT5wdXJnZWFibGUsIHJlZ2lvbl9saW5rKSB7CisJCWlmICghaTkxNV9nZW1fb2Jq ZWN0X2hhc19wYWdlcyhvYmopKQorCQkJY29udGludWU7CisKKwkJaWYgKFJFQURfT05DRShvYmot PnBpbl9nbG9iYWwpKQorCQkJY29udGludWU7CisKKwkJaWYgKGF0b21pY19yZWFkKCZvYmotPm1t LnBhZ2VzX3Bpbl9jb3VudCkgPiBvYmotPmJpbmRfY291bnQpCisJCQljb250aW51ZTsKKworCQls aXN0X2FkZCgmb2JqLT50bXBfbGluaywgJnB1cmdlYWJsZSk7CisKKwkJZm91bmQgKz0gb2JqLT5i YXNlLnNpemU7CisJCWlmIChmb3VuZCA+PSB0YXJnZXQpCisJCQlnb3RvIGZvdW5kOworCX0KKwor CWVyciA9IC1FTk9TUEM7Citmb3VuZDoKKwltdXRleF91bmxvY2soJm1lbS0+b2JqX2xvY2spOwor CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgb24sICZwdXJnZWFibGUsIHRtcF9saW5r KSB7CisJCWlmICghZXJyKQorCQkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3VuYmluZChvYmopOwor CQlpZiAoIWVycikgeworCQkJX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKG9iaiwKKwkJCQkJ CSAgICBJOTE1X01NX1NIUklOS0VSKTsKKwkJCWlmICghaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdl cyhvYmopKQorCQkJCW9iai0+bW0ubWFkdiA9IF9fSTkxNV9NQURWX1BVUkdFRDsKKwkJfQorCisJ CWxpc3RfZGVsKCZvYmotPnRtcF9saW5rKTsKKwl9CisKKwlzaHJpbmtlcl91bmxvY2soaTkxNSwg dW5sb2NrKTsKKworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nCiBpOTE1 X2dlbV9zaHJpbmtlcl9jb3VudChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hy aW5rX2NvbnRyb2wgKnNjKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5jCmluZGV4IDQwNWQ2ZDUxMTk0Zi4uZjdmZGMzZTk0MmU2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCkBAIC04OSw3ICs4OSw4IEBAIGk5MTVfbWVt b3J5X3JlZ2lvbl9nZXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKIAkJdW5zaWduZWQgaW50IG9yZGVyOwogCQl1NjQgYmxvY2tfc2l6ZTsKIAkJdTY0IG9mZnNl dDsKLQorCQlib29sIHJldHJ5ID0gZmFsc2U7CityZXRyeToKIAkJb3JkZXIgPSBmbHMobl9wYWdl cykgLSAxOwogCQlHRU1fQlVHX09OKG9yZGVyID4gbWVtLT5tbS5tYXhfb3JkZXIpOwogCkBAIC05 OCw5ICs5OSwyNSBAQCBpOTE1X21lbW9yeV9yZWdpb25fZ2V0X3BhZ2VzX2J1ZGR5KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCQlpZiAoIUlTX0VSUihibG9jaykpCiAJCQkJYnJl YWs7CiAKLQkJCS8qIFhYWDogc29tZSBraW5kIG9mIGV2aWN0aW9uIHBhc3MsIGxvY2FsIHRvIHRo ZSBkZXZpY2UgKi8KLQkJCWlmICghb3JkZXItLSkKLQkJCQlnb3RvIGVycl9mcmVlX2Jsb2NrczsK KwkJCWlmICghb3JkZXItLSkgeworCQkJCXJlc291cmNlX3NpemVfdCB0YXJnZXQ7CisJCQkJaW50 IGVycjsKKworCQkJCWlmIChyZXRyeSkKKwkJCQkJZ290byBlcnJfZnJlZV9ibG9ja3M7CisKKwkJ CQl0YXJnZXQgPSBuX3BhZ2VzICogbWVtLT5tbS5taW5fc2l6ZTsKKworCQkJCW11dGV4X3VubG9j aygmbWVtLT5tbV9sb2NrKTsKKwkJCQllcnIgPSBpOTE1X2dlbV9zaHJpbmtfbWVtb3J5X3JlZ2lv bihtZW0sCisJCQkJCQkJCSAgICB0YXJnZXQpOworCQkJCW11dGV4X2xvY2soJm1lbS0+bW1fbG9j ayk7CisJCQkJaWYgKGVycikKKwkJCQkJZ290byBlcnJfZnJlZV9ibG9ja3M7CisKKwkJCQlyZXRy eSA9IHRydWU7CisJCQkJZ290byByZXRyeTsKKwkJCX0KIAkJfSB3aGlsZSAoMSk7CiAKIAkJbl9w YWdlcyAtPSAxIDw8IG9yZGVyOwpAQCAtMTUxLDYgKzE2OCwxMyBAQCB2b2lkIGk5MTVfbWVtb3J5 X3JlZ2lvbl9yZWxlYXNlX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCiAJ aTkxNV9nZW1fYnVkZHlfZmluaSgmbWVtLT5tbSk7CiB9CiAKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0 X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQor eworCW11dGV4X2xvY2soJm9iai0+bWVtb3J5X3JlZ2lvbi0+b2JqX2xvY2spOworCWxpc3RfZGVs KCZvYmotPnJlZ2lvbl9saW5rKTsKKwltdXRleF91bmxvY2soJm9iai0+bWVtb3J5X3JlZ2lvbi0+ b2JqX2xvY2spOworfQorCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1X2dlbV9v YmplY3RfY3JlYXRlX3JlZ2lvbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAogCQkJ ICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCkBAIC0xNzksNiArMjAzLDEwIEBAIGk5MTVfZ2Vt X29iamVjdF9jcmVhdGVfcmVnaW9uKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCiAJ SU5JVF9MSVNUX0hFQUQoJm9iai0+YmxvY2tzKTsKIAlvYmotPm1lbW9yeV9yZWdpb24gPSBtZW07 CiAKKwltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKKwlsaXN0X2FkZCgmb2JqLT5yZWdpb25f bGluaywgJm1lbS0+b2JqZWN0cyk7CisJbXV0ZXhfdW5sb2NrKCZtZW0tPm9ial9sb2NrKTsKKwog CWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgb2JqLT5jYWNoZV9sZXZl bCk7CiAKIAlyZXR1cm4gb2JqOwpAQCAtMjA1LDYgKzIzMywxMCBAQCBpbnRlbF9tZW1vcnlfcmVn aW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAltZW0tPm1pbl9wYWdl X3NpemUgPSBtaW5fcGFnZV9zaXplOwogCW1lbS0+b3BzID0gb3BzOwogCisJbXV0ZXhfaW5pdCgm bWVtLT5vYmpfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJm1lbS0+b2JqZWN0cyk7CisJSU5JVF9M SVNUX0hFQUQoJm1lbS0+cHVyZ2VhYmxlKTsKKwogCW11dGV4X2luaXQoJm1lbS0+bW1fbG9jayk7 CiAKIAlpZiAob3BzLT5pbml0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9tZW1vcnlfcmVnaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlf cmVnaW9uLmgKaW5kZXggNmQ4YTk1NGNhNzVlLi5iMTU0NmFmYjBiNmUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgKQEAgLTk5LDYgKzk5LDExIEBAIHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uIHsKIAl1bnNpZ25lZCBpbnQgdHlwZTsKIAl1bnNpZ25lZCBp bnQgaW5zdGFuY2U7CiAJdW5zaWduZWQgaW50IGlkOworCisJLyogUHJvdGVjdHMgYWNjZXNzIHRv IG9iamVjdHMgYW5kIHB1cmdlYWJsZSAqLworCXN0cnVjdCBtdXRleCBvYmpfbG9jazsKKwlzdHJ1 Y3QgbGlzdF9oZWFkIG9iamVjdHM7CisJc3RydWN0IGxpc3RfaGVhZCBwdXJnZWFibGU7CiB9Owog CiBpbnQgaTkxNV9tZW1vcnlfcmVnaW9uX2luaXRfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9y ZWdpb24gKm1lbSk7CkBAIC0xMDgsNiArMTEzLDggQEAgaW50IGk5MTVfbWVtb3J5X3JlZ2lvbl9n ZXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIGk5 MTVfbWVtb3J5X3JlZ2lvbl9wdXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAkJCQkJc3RydWN0IHNnX3RhYmxlICpwYWdlcyk7CiAKK3ZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKTsKKwogc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKgogaW50ZWxfbWVtb3J5X3JlZ2lv bl9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkgICByZXNvdXJjZV9z aXplX3Qgc3RhcnQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aW50ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lu dGVsX21lbW9yeV9yZWdpb24uYwppbmRleCAyYjhkMjgyMTZkODcuLjFjZWEzODFkMmQ1ZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdp b24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5jCkBAIC05MywxMCArOTMsODYgQEAgc3RhdGljIGludCBpZ3RfbW9ja19maWxsKHZvaWQg KmFyZykKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgdm9pZCBpZ3RfbWFya19ldmljdGFibGUo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlpOTE1X2dlbV9vYmplY3RfdW5w aW5fcGFnZXMob2JqKTsKKwlvYmotPm1tLm1hZHYgPSBJOTE1X01BRFZfRE9OVE5FRUQ7CisJbGlz dF9tb3ZlKCZvYmotPnJlZ2lvbl9saW5rLCAmb2JqLT5tZW1vcnlfcmVnaW9uLT5wdXJnZWFibGUp OworfQorCitzdGF0aWMgaW50IGlndF9tb2NrX3Nocmluayh2b2lkICphcmcpCit7CisJc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSA9IGFyZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOworCXVuc2lnbmVkIGxvbmcgbl9vYmplY3RzOworCUxJU1RfSEVBRChvYmplY3Rz KTsKKwlyZXNvdXJjZV9zaXplX3QgdGFyZ2V0OworCXJlc291cmNlX3NpemVfdCB0b3RhbDsKKwlp bnQgZXJyID0gMDsKKworCXRhcmdldCA9IG1lbS0+bW0ubWluX3NpemU7CisJdG90YWwgPSByZXNv dXJjZV9zaXplKCZtZW0tPnJlZ2lvbik7CisJbl9vYmplY3RzID0gdG90YWwgLyB0YXJnZXQ7CisK Kwl3aGlsZSAobl9vYmplY3RzLS0pIHsKKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9y ZWdpb24obWVtLAorCQkJCQkJICAgIHRhcmdldCwKKwkJCQkJCSAgICAwKTsKKwkJaWYgKElTX0VS UihvYmopKSB7CisJCQllcnIgPSBQVFJfRVJSKG9iaik7CisJCQlnb3RvIGVycl9jbG9zZV9vYmpl Y3RzOworCQl9CisKKwkJbGlzdF9hZGQoJm9iai0+c3RfbGluaywgJm9iamVjdHMpOworCisJCWVy ciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwkJaWYgKGVycikKKwkJCWdvdG8g ZXJyX2Nsb3NlX29iamVjdHM7CisKKwkJLyoKKwkJICogTWFrZSBoYWxmIG9mIHRoZSByZWdpb24g ZXZpY3RhYmxlLCB0aG91Z2ggZG8gc28gaW4gYQorCQkgKiBob3JyaWJseSBmcmFnbWVudGVkIGZh c2hpb24uCisJCSAqLworCQlpZiAobl9vYmplY3RzICUgMikKKwkJCWlndF9tYXJrX2V2aWN0YWJs ZShvYmopOworCX0KKworCXdoaWxlICh0YXJnZXQgPD0gdG90YWwgLyAyKSB7CisJCW9iaiA9IGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKG1lbSwgdGFyZ2V0LCAwKTsKKwkJaWYgKElTX0VS UihvYmopKSB7CisJCQllcnIgPSBQVFJfRVJSKG9iaik7CisJCQlnb3RvIGVycl9jbG9zZV9vYmpl Y3RzOworCQl9CisKKwkJbGlzdF9hZGQoJm9iai0+c3RfbGluaywgJm9iamVjdHMpOworCisJCS8q IFByb3Zva2UgdGhlIHNocmlua2VyIHRvIHN0YXJ0IHZpb2xlbnRseSBzd2luZ2luZyBpdHMgYXhl ISAqLworCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJCWlmIChlcnIp IHsKKwkJCXByX2VycigiZmFpbGVkIHRvIHNocmluayBmb3IgdGFyZ2V0PSVwYSIsICZ0YXJnZXQp OworCQkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKKwkJfQorCisJCS8qIEFnYWluLCBoYWxmIG9m IHRoZSByZWdpb24gc2hvdWxkIHJlbWFpbiBldmljdGFibGUgKi8KKwkJaWd0X21hcmtfZXZpY3Rh YmxlKG9iaik7CisKKwkJdGFyZ2V0IDw8PSAxOworCX0KKworZXJyX2Nsb3NlX29iamVjdHM6CisJ Y2xvc2Vfb2JqZWN0cygmb2JqZWN0cyk7CisKKwlpZiAoZXJyID09IC1FTk9NRU0pCisJCWVyciA9 IDA7CisKKwlyZXR1cm4gZXJyOworfQorCiBpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9tb2NrX3Nl bGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3Rz W10gPSB7CiAJCVNVQlRFU1QoaWd0X21vY2tfZmlsbCksCisJCVNVQlRFU1QoaWd0X21vY2tfc2hy aW5rKSwKIAl9OwogCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW07CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19yZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9t b2NrX3JlZ2lvbi5jCmluZGV4IDJjODM3MTFmNzgwZC4uMTFlOWYzNzlhYWNhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYwpAQCAtMjcsNiArMjcsNyBA QAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBtb2NrX3JlZ2lv bl9vYmpfb3BzID0gewogCS5nZXRfcGFnZXMgPSBpOTE1X21lbW9yeV9yZWdpb25fZ2V0X3BhZ2Vz X2J1ZGR5LAogCS5wdXRfcGFnZXMgPSBpOTE1X21lbW9yeV9yZWdpb25fcHV0X3BhZ2VzX2J1ZGR5 LAorCS5yZWxlYXNlID0gaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbiwKIH07 CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCi0tIAoyLjIwLjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==