From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 03/37] drm/i915/region: support basic eviction Date: Thu, 27 Jun 2019 21:55:59 +0100 Message-ID: <20190627205633.1143-4-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C9F16E825 for ; Thu, 27 Jun 2019 20:56:40 +0000 (UTC) In-Reply-To: <20190627205633.1143-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 LmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgNyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgICAgIHwgMTYgKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bWVtb3J5X3JlZ2lvbi5jICAgIHwgODkgKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oICAgIHwgMTAgKysrCiAuLi4vZHJtL2k5MTUv c2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyAgfCA3MyArKysrKysrKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5jICB8ICAxICsKIDYgZmls ZXMgY2hhbmdlZCwgMTkyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCmluZGV4IDhkNzYw ZTg1MmM0Yi4uODcwMDBmYzI0YWIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCkBAIC03Miw2ICs3MiwxMyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCB7CiAJICogTGlzdCBvZiBtZW1vcnkgcmVnaW9uIGJsb2NrcyBhbGxvY2F0 ZWQgZm9yIHRoaXMgb2JqZWN0LgogCSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgYmxvY2tzOworCS8q KgorCSAqIEVsZW1lbnQgd2l0aGluIG1lbW9yeV9yZWdpb24tPm9iamVjdHMgb3IgbWVtb3J5X3Jl Z2lvbi0+cHVyZ2VhYmxlIGlmCisJICogdGhlIG9iamVjdCBpcyBtYXJrZWQgYXMgRE9OVE5FRUQu IEFjY2VzcyBpcyBwcm90ZWN0ZWQgYnkKKwkgKiBtZW1vcnlfcmVnaW9uLT5vYmpfbG9jay4KKwkg Ki8KKwlzdHJ1Y3QgbGlzdF9oZWFkIHJlZ2lvbl9saW5rOworCXN0cnVjdCBsaXN0X2hlYWQgZXZp Y3Rpb25fbGluazsKIAogCXN0cnVjdCB7CiAJCS8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5k ZXggZGIzNzQ0YjBiYzgwLi44NTY3N2FlODk4NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtMTEyMiw2ICsxMTIyLDIyIEBAIGk5MTVfZ2VtX21hZHZpc2VfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgICAgIWk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMo b2JqKSkKIAkJaTkxNV9nZW1fb2JqZWN0X3RydW5jYXRlKG9iaik7CiAKKwlpZiAob2JqLT5tZW1v cnlfcmVnaW9uKSB7CisJCW11dGV4X2xvY2soJm9iai0+bWVtb3J5X3JlZ2lvbi0+b2JqX2xvY2sp OworCisJCXN3aXRjaCAob2JqLT5tbS5tYWR2KSB7CisJCWNhc2UgSTkxNV9NQURWX1dJTExORUVE OgorCQkJbGlzdF9tb3ZlKCZvYmotPnJlZ2lvbl9saW5rLCAmb2JqLT5tZW1vcnlfcmVnaW9uLT5v YmplY3RzKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJbGlzdF9tb3ZlKCZvYmotPnJlZ2lv bl9saW5rLAorCQkJCSAgJm9iai0+bWVtb3J5X3JlZ2lvbi0+cHVyZ2VhYmxlKTsKKwkJCWJyZWFr OworCQl9CisKKwkJbXV0ZXhfdW5sb2NrKCZvYmotPm1lbW9yeV9yZWdpb24tPm9ial9sb2NrKTsK Kwl9CisKIAlhcmdzLT5yZXRhaW5lZCA9IG9iai0+bW0ubWFkdiAhPSBfX0k5MTVfTUFEVl9QVVJH RUQ7CiAJbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2spOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKaW5kZXggNGM4OTg1M2E3NzY5Li43MjFiNDdlNDY0OTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKQEAgLTYsNiAr Niw1NiBAQAogI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdpb24uaCIKICNpbmNsdWRlICJpOTE1 X2Rydi5oIgogCitpbnQgaTkxNV9tZW1vcnlfcmVnaW9uX2V2aWN0KHN0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uICptZW0sCisJCQkgICAgIHJlc291cmNlX3NpemVfdCB0YXJnZXQpCit7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgKm9uOworCXJlc291cmNlX3NpemVfdCBmb3Vu ZDsKKwlMSVNUX0hFQUQocHVyZ2VhYmxlKTsKKwlpbnQgZXJyOworCisJZXJyID0gMDsKKwlmb3Vu ZCA9IDA7CisKKwltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnkob2JqLCAmbWVtLT5wdXJnZWFibGUsIHJlZ2lvbl9saW5rKSB7CisJCWlmICghaTkxNV9n ZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKQorCQkJY29udGludWU7CisKKwkJaWYgKFJFQURfT05D RShvYmotPnBpbl9nbG9iYWwpKQorCQkJY29udGludWU7CisKKwkJaWYgKGF0b21pY19yZWFkKCZv YmotPmJpbmRfY291bnQpKQorCQkJY29udGludWU7CisKKwkJbGlzdF9hZGQoJm9iai0+ZXZpY3Rp b25fbGluaywgJnB1cmdlYWJsZSk7CisKKwkJZm91bmQgKz0gb2JqLT5iYXNlLnNpemU7CisJCWlm IChmb3VuZCA+PSB0YXJnZXQpCisJCQlnb3RvIGZvdW5kOworCX0KKworCWVyciA9IC1FTk9TUEM7 Citmb3VuZDoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUob2JqLCBvbiwgJnB1cmdlYWJsZSwg ZXZpY3Rpb25fbGluaykgeworCQlpZiAoIWVycikgeworCQkJX19pOTE1X2dlbV9vYmplY3RfcHV0 X3BhZ2VzKG9iaiwgSTkxNV9NTV9TSFJJTktFUik7CisKKwkJCW11dGV4X2xvY2tfbmVzdGVkKCZv YmotPm1tLmxvY2ssIEk5MTVfTU1fU0hSSU5LRVIpOworCQkJaWYgKCFpOTE1X2dlbV9vYmplY3Rf aGFzX3BhZ2VzKG9iaikpCisJCQkJb2JqLT5tbS5tYWR2ID0gX19JOTE1X01BRFZfUFVSR0VEOwor CQkJbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2spOworCQl9CisKKwkJbGlzdF9kZWwoJm9iai0+ ZXZpY3Rpb25fbGluayk7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZtZW0tPm9ial9sb2NrKTsKKwor CXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyB2b2lkCiBtZW1vcnlfcmVnaW9uX2ZyZWVfcGFnZXMo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnBh Z2VzKQpAQCAtNzAsNyArMTIwLDggQEAgaTkxNV9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRk eShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQl1bnNpZ25lZCBpbnQgb3JkZXI7 CiAJCXU2NCBibG9ja19zaXplOwogCQl1NjQgb2Zmc2V0OwotCisJCWJvb2wgcmV0cnkgPSB0cnVl OworcmV0cnk6CiAJCW9yZGVyID0gZmxzKG5fcGFnZXMpIC0gMTsKIAkJR0VNX0JVR19PTihvcmRl ciA+IG1lbS0+bW0ubWF4X29yZGVyKTsKIApAQCAtNzksOSArMTMwLDI0IEBAIGk5MTVfbWVtb3J5 X3JlZ2lvbl9nZXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IAkJCWlmICghSVNfRVJSKGJsb2NrKSkKIAkJCQlicmVhazsKIAotCQkJLyogWFhYOiBzb21lIGtp bmQgb2YgZXZpY3Rpb24gcGFzcywgbG9jYWwgdG8gdGhlIGRldmljZSAqLwotCQkJaWYgKCFvcmRl ci0tKQotCQkJCWdvdG8gZXJyX2ZyZWVfYmxvY2tzOworCQkJaWYgKCFvcmRlci0tKSB7CisJCQkJ cmVzb3VyY2Vfc2l6ZV90IHRhcmdldDsKKwkJCQlpbnQgZXJyOworCisJCQkJaWYgKCFyZXRyeSkK KwkJCQkJZ290byBlcnJfZnJlZV9ibG9ja3M7CisKKwkJCQl0YXJnZXQgPSBuX3BhZ2VzICogbWVt LT5tbS5taW5fc2l6ZTsKKworCQkJCW11dGV4X3VubG9jaygmbWVtLT5tbV9sb2NrKTsKKwkJCQll cnIgPSBpOTE1X21lbW9yeV9yZWdpb25fZXZpY3QobWVtLCB0YXJnZXQpOworCQkJCW11dGV4X2xv Y2soJm1lbS0+bW1fbG9jayk7CisJCQkJaWYgKGVycikKKwkJCQkJZ290byBlcnJfZnJlZV9ibG9j a3M7CisKKwkJCQlyZXRyeSA9IGZhbHNlOworCQkJCWdvdG8gcmV0cnk7CisJCQl9CiAJCX0gd2hp bGUgKDEpOwogCiAJCW5fcGFnZXMgLT0gQklUKG9yZGVyKTsKQEAgLTEzNiw2ICsyMDIsMTMgQEAg dm9pZCBpOTE1X21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqbWVtKQogCWk5MTVfYnVkZHlfZmluaSgmbWVtLT5tbSk7CiB9CiAKK3ZvaWQgaTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQoreworCW11dGV4X2xvY2soJm9iai0+bWVtb3J5X3JlZ2lvbi0+b2JqX2xvY2sp OworCWxpc3RfZGVsKCZvYmotPnJlZ2lvbl9saW5rKTsKKwltdXRleF91bmxvY2soJm9iai0+bWVt b3J5X3JlZ2lvbi0+b2JqX2xvY2spOworfQorCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq CiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqbWVtLAogCQkJICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCkBAIC0xNjQsNiArMjM3LDEw IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uICptZW0sCiAJSU5JVF9MSVNUX0hFQUQoJm9iai0+YmxvY2tzKTsKIAlvYmotPm1lbW9yeV9y ZWdpb24gPSBtZW07CiAKKwltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKKwlsaXN0X2FkZCgm b2JqLT5yZWdpb25fbGluaywgJm1lbS0+b2JqZWN0cyk7CisJbXV0ZXhfdW5sb2NrKCZtZW0tPm9i al9sb2NrKTsKKwogCXJldHVybiBvYmo7CiB9CiAKQEAgLTE4OCw2ICsyNjUsMTAgQEAgaW50ZWxf bWVtb3J5X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJbWVt LT5taW5fcGFnZV9zaXplID0gbWluX3BhZ2Vfc2l6ZTsKIAltZW0tPm9wcyA9IG9wczsKIAorCW11 dGV4X2luaXQoJm1lbS0+b2JqX2xvY2spOworCUlOSVRfTElTVF9IRUFEKCZtZW0tPm9iamVjdHMp OworCUlOSVRfTElTVF9IRUFEKCZtZW0tPnB1cmdlYWJsZSk7CisKIAltdXRleF9pbml0KCZtZW0t Pm1tX2xvY2spOwogCiAJaWYgKG9wcy0+aW5pdCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5oCmluZGV4IDhkNDczNmJkZGU1MC4uYmVlMGMwMjJkMjk1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCkBAIC04MCw4ICs4MCwx NiBAQCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiB7CiAJdW5zaWduZWQgaW50IHR5cGU7CiAJ dW5zaWduZWQgaW50IGluc3RhbmNlOwogCXVuc2lnbmVkIGludCBpZDsKKworCS8qIFByb3RlY3Rz IGFjY2VzcyB0byBvYmplY3RzIGFuZCBwdXJnZWFibGUgKi8KKwlzdHJ1Y3QgbXV0ZXggb2JqX2xv Y2s7CisJc3RydWN0IGxpc3RfaGVhZCBvYmplY3RzOworCXN0cnVjdCBsaXN0X2hlYWQgcHVyZ2Vh YmxlOwogfTsKIAoraW50IGk5MTVfbWVtb3J5X3JlZ2lvbl9ldmljdChzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqbWVtLAorCQkJICAgICByZXNvdXJjZV9zaXplX3QgdGFyZ2V0KTsKKwogaW50 IGk5MTVfbWVtb3J5X3JlZ2lvbl9pbml0X2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW0pOwogdm9pZCBpOTE1X21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeShzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKTsKIApAQCAtODksNiArOTcsOCBAQCBpbnQgaTkxNV9tZW1v cnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KTsKIHZvaWQgaTkxNV9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCQlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzKTsKIAordm9p ZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopOworCiBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqCiBpbnRlbF9t ZW1vcnlfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSAg IHJlc291cmNlX3NpemVfdCBzdGFydCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCmluZGV4IGMzYjE2MGNmZDcxMy4uZWNlNDk5 ODY5NzQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxf bWVtb3J5X3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF9tZW1vcnlfcmVnaW9uLmMKQEAgLTc2LDEwICs3Niw4MyBAQCBzdGF0aWMgaW50IGlndF9tb2Nr X2ZpbGwodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyB2b2lkIGlndF9tYXJr X2V2aWN0YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCW9iai0+bW0ubWFkdiA9IEk5MTVfTUFEVl9ET05U TkVFRDsKKwlsaXN0X21vdmUoJm9iai0+cmVnaW9uX2xpbmssICZvYmotPm1lbW9yeV9yZWdpb24t PnB1cmdlYWJsZSk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21vY2tfZXZpY3Qodm9pZCAqYXJnKQor eworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0gPSBhcmc7CisJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKKwl1bnNpZ25lZCBsb25nIG5fb2JqZWN0czsKKwlMSVNUX0hF QUQob2JqZWN0cyk7CisJcmVzb3VyY2Vfc2l6ZV90IHRhcmdldDsKKwlyZXNvdXJjZV9zaXplX3Qg dG90YWw7CisJaW50IGVyciA9IDA7CisKKwl0YXJnZXQgPSBtZW0tPm1tLm1pbl9zaXplOworCXRv dGFsID0gcmVzb3VyY2Vfc2l6ZSgmbWVtLT5yZWdpb24pOworCW5fb2JqZWN0cyA9IHRvdGFsIC8g dGFyZ2V0OworCisJd2hpbGUgKG5fb2JqZWN0cy0tKSB7CisJCW9iaiA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfcmVnaW9uKG1lbSwgdGFyZ2V0LCAwKTsKKwkJaWYgKElTX0VSUihvYmopKSB7CisJ CQllcnIgPSBQVFJfRVJSKG9iaik7CisJCQlnb3RvIGVycl9jbG9zZV9vYmplY3RzOworCQl9CisK KwkJbGlzdF9hZGQoJm9iai0+c3RfbGluaywgJm9iamVjdHMpOworCisJCWVyciA9IGk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXMob2JqKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX2Nsb3NlX29i amVjdHM7CisKKwkJLyoKKwkJICogTWFrZSBoYWxmIG9mIHRoZSByZWdpb24gZXZpY3RhYmxlLCB0 aG91Z2ggZG8gc28gaW4gYQorCQkgKiBob3JyaWJseSBmcmFnbWVudGVkIGZhc2hpb24uCisJCSAq LworCQlpZiAobl9vYmplY3RzICUgMikKKwkJCWlndF9tYXJrX2V2aWN0YWJsZShvYmopOworCX0K KworCXdoaWxlICh0YXJnZXQgPD0gdG90YWwgLyAyKSB7CisJCW9iaiA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfcmVnaW9uKG1lbSwgdGFyZ2V0LCAwKTsKKwkJaWYgKElTX0VSUihvYmopKSB7CisJ CQllcnIgPSBQVFJfRVJSKG9iaik7CisJCQlnb3RvIGVycl9jbG9zZV9vYmplY3RzOworCQl9CisK KwkJbGlzdF9hZGQoJm9iai0+c3RfbGluaywgJm9iamVjdHMpOworCisJCWVyciA9IGk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXMob2JqKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJyKCJmYWlsZWQg dG8gZXZpY3QgZm9yIHRhcmdldD0lcGEiLCAmdGFyZ2V0KTsKKwkJCWdvdG8gZXJyX2Nsb3NlX29i amVjdHM7CisJCX0KKworCQkvKiBBZ2FpbiwgaGFsZiBvZiB0aGUgcmVnaW9uIHNob3VsZCByZW1h aW4gZXZpY3RhYmxlICovCisJCWlndF9tYXJrX2V2aWN0YWJsZShvYmopOworCisJCXRhcmdldCA8 PD0gMTsKKwl9CisKK2Vycl9jbG9zZV9vYmplY3RzOgorCWNsb3NlX29iamVjdHMoJm9iamVjdHMp OworCisJaWYgKGVyciA9PSAtRU5PTUVNKQorCQllcnIgPSAwOworCisJcmV0dXJuIGVycjsKK30K KwogaW50IGludGVsX21lbW9yeV9yZWdpb25fbW9ja19zZWxmdGVzdHModm9pZCkKIHsKIAlzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewogCQlTVUJURVNUKGlndF9t b2NrX2ZpbGwpLAorCQlTVUJURVNUKGlndF9tb2NrX2V2aWN0KSwKIAl9OwogCXN0cnVjdCBpbnRl bF9tZW1vcnlfcmVnaW9uICptZW07CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5jCmluZGV4IGNiOTQy YTQ2MWU5ZC4uODBlYWZkYzU0OTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19yZWdpb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19yZWdpb24uYwpAQCAtOCw2ICs4LDcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdF9vcHMgbW9ja19yZWdpb25fb2JqX29wcyA9IHsKIAkuZ2V0X3BhZ2Vz ID0gaTkxNV9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeSwKIAkucHV0X3BhZ2VzID0gaTkx NV9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeSwKKwkucmVsZWFzZSA9IGk5MTVfZ2VtX29i amVjdF9yZWxlYXNlX21lbW9yeV9yZWdpb24sCiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKgotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZng=