From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 14/22] drm/i915: Throw away the active object retirement complexity Date: Mon, 17 Jun 2019 08:19:04 +0100 Message-ID: <20190617071912.20256-14-chris@chris-wilson.co.uk> References: <20190617071912.20256-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 887BF891AD for ; Mon, 17 Jun 2019 07:19:36 +0000 (UTC) In-Reply-To: <20190617071912.20256-1-chris@chris-wilson.co.uk> 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 Cc: matthew.auld@intel.com, mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org UmVtb3ZlIHRoZSBhY2N1bXVsYXRlZCBvcHRpbWlzYXRpb25zIHRoYXQgd2UgaGF2ZSBmb3IgaTkx NV92bWFfcmV0aXJlCmFuZCByZWR1Y2UgaXQgdG8gdGhlIGJhcmUgZXNzZW50aWFsIG9mIHRyYWNr aW5nIHRoZSBhY3RpdmUgb2JqZWN0CnJlZmVyZW5jZS4gVGhpcyBhbGxvd3MgdXMgdG8gb25seSB1 c2UgYXRvbWljIG9wZXJhdGlvbnMsIGFuZCBzbyB3aWxsIGJlCmFibGUgdG8gYXZvaWQgdGhlIHN0 cnVjdF9tdXRleCByZXF1aXJlbWVudC4KClRoZSBwcmluY2lwYWwgbG9zcyBoZXJlIGlzIHRoZSBz aHJpbmtlciBNUlUgYnVtcGluZywgc28gbm93IGlmIHdlIGhhdmUKdG8gc2hyaW5rLCB3ZSB3aWxs IGRvIHNvIGluIG11Y2ggbW9yZSByYW5kb20gb3JkZXIgYW5kIG1vcmUgbGlrZWx5IHRvCnRyeSBh bmQgc2hyaW5rIHJlY2VudGx5IHVzZWQgb2JqZWN0cy4gVGhhdCBpcyBhIG51aXNhbmNlLCBidXQg c2hyaW5raW5nCmFjdGl2ZSBvYmplY3RzIGlzIGEgc2Vjb25kIHN0ZXAgd2UgdHJ5IHRvIGF2b2lk IGFuZCB3aWxsIGFsd2F5cyBiZSBhCnN5c3RlbS13aWRlIHBlcmZvcm1hbmNlIGlzc3VlLgoKVGhl IG90aGVyIGxvc3MgaXMgaGVyZSBpcyBpbiB0aGUgYXV0b21hdGljIHBydW5pbmcgb2YgdGhlCnJl c2VydmF0aW9uX29iamVjdCB3aGVuIGlkbGluZy4gVGhpcyBpcyBub3QgYXMgbGFyZ2UgYW4gaXNz dWUgYXMgdXBvbgpyZXNlcnZhdGlvbl9vYmplY3QgaW50cm9kdWN0aW9uIGFzIG5vdyBhZGRpbmcg bmV3IGZlbmNlcyBpbnRvIHRoZSBvYmplY3QKcmVwbGFjZXMgYWxyZWFkeSBzaWduYWxlZCBmZW5j ZXMsIGtlZXBpbmcgdGhlIGFycmF5IGNvbXBhY3QuIEJ1dCB3ZSBkbwpsb3NlIHRoZSBhdXRvLWV4 cGlyYXRpb24gb2Ygc3RhbGUgZmVuY2VzIGFuZCB1bnVzZWQgYXJyYXlzLiBUaGF0IG1heSBiZQph IG5vdGljZWFibGUgcHJvYmxlbSBmb3Igd2hpY2ggd2UgbmVlZCB0byByZS1pbXBsZW1lbnQgYXV0 b3BydW5pbmcuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMg ICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggICAg fCAgNiAtLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8 ICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jICB8ICA1 ICstCiAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgICAgfCAgOSAt LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgNCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgIDEgLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgIHwgMzIgKysrKyst LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8ICA4 ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jICAgIHwgNDIg KysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAg ICAgICAgfCA1NCArKysrLS0tLS0tLS0tLS0tLS0tCiAxMSBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNl cnRpb25zKCspLCAxMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5jCmluZGV4IGJiNWI2ZTYzYTJjYy4uMjUyZTc1MmRhMjExIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC0xNjIsNyArMTYyLDYg QEAgc3RhdGljIHZvaWQgX19pOTE1X2dlbV9mcmVlX29iamVjdHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCiAKIAkJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAK LQkJR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKG9iaikpOwogCQlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJm9iai0+dm1hLmxpc3QsIG9ial9saW5rKSB7CiAJ CQlHRU1fQlVHX09OKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKTsKIAkJCXZtYS0+ZmxhZ3MgJj0g fkk5MTVfVk1BX1BJTl9NQVNLOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdC5oCmluZGV4IDdjYjE4NzFkNzEyOC4uNDU0YmZiNDk4MDAxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xNTgsMTIgKzE1OCw2IEBAIGk5MTVf Z2VtX29iamVjdF9uZWVkc19hc3luY19jYW5jZWwoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAlyZXR1cm4gb2JqLT5vcHMtPmZsYWdzICYgSTkxNV9HRU1fT0JKRUNUX0FT WU5DX0NBTkNFTDsKIH0KIAotc3RhdGljIGlubGluZSBib29sCi1pOTE1X2dlbV9vYmplY3RfaXNf YWN0aXZlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJu IFJFQURfT05DRShvYmotPmFjdGl2ZV9jb3VudCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbAog aTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0X3R5cGVzLmgKaW5kZXggNWIwNTY5ODYxOWNlLi5jMjk5ZmVkMmM2YjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTE1 Niw3ICsxNTYsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAKIAkvKiogQ291bnQg b2YgVk1BIGFjdHVhbGx5IGJvdW5kIGJ5IHRoaXMgb2JqZWN0ICovCiAJYXRvbWljX3QgYmluZF9j b3VudDsKLQl1bnNpZ25lZCBpbnQgYWN0aXZlX2NvdW50OwogCS8qKiBDb3VudCBvZiBob3cgbWFu eSBnbG9iYWwgVk1BIGFyZSBjdXJyZW50bHkgcGlubmVkIGZvciB1c2UgYnkgSFcgKi8KIAl1bnNp Z25lZCBpbnQgcGluX2dsb2JhbDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fc2hyaW5rZXIuYwppbmRleCAzYTkyNmE4NzU1YzYuLmY0Njc3ZjcwY2NlNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKQEAgLTIzMCw4ICsyMzAs OSBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJ Y29udGludWU7CiAKIAkJCWlmICghKHNocmluayAmIEk5MTVfU0hSSU5LX0FDVElWRSkgJiYKLQkJ CSAgICAoaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopIHx8Ci0JCQkgICAgIGk5MTVfZ2Vt X29iamVjdF9pc19mcmFtZWJ1ZmZlcihvYmopKSkKKwkJCSAgICAoaTkxNV9nZW1fb2JqZWN0X2lz X2ZyYW1lYnVmZmVyKG9iaikgfHwKKwkJCSAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2ln bmFsZWRfcmN1KG9iai0+cmVzdiwKKwkJCQkJCQkJICB0cnVlKSkpCiAJCQkJY29udGludWU7CiAK IAkJCWlmICghKHNocmluayAmIEk5MTVfU0hSSU5LX0JPVU5EKSAmJgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwppbmRleCA1YzgxZjRi NDgxM2EuLjIwNTMxOTRhOGI3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMKQEAgLTQ3NCwxNSArNDc0LDYgQEAgc3RhdGljIGlu dCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCiAJCQlwcl9lcnIoIltsb29w ICVkXSBGYWlsZWQgdG8gYnVzeSB0aGUgb2JqZWN0XG4iLCBsb29wKTsKIAkJCWdvdG8gZXJyX29i ajsKIAkJfQotCi0JCS8qIE5CIHdlIHJlbHkgb24gdGhlIF9hY3RpdmVfIHJlZmVyZW5jZSB0byBh Y2Nlc3Mgb2JqIG5vdyAqLwotCQlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZl KG9iaikpOwotCQllcnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKLQkJaWYgKGVycikgewot CQkJcHJfZXJyKCJbbG9vcCAlZF0gY3JlYXRlX21tYXBfb2Zmc2V0IGZhaWxlZCB3aXRoIGVycj0l ZFxuIiwKLQkJCSAgICAgICBsb29wLCBlcnIpOwotCQkJZ290byBvdXQ7Ci0JCX0KIAl9CiAKIG91 dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKaW5kZXggYmJiZGM2MzkwNmM2Li5jZDRj ZjRkMGIzMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCkBAIC0xNTA5LDkgKzE1 MDksNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVf cmVxdWVzdCAqcmVxdWVzdCkKIHN0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX2NvbnRleHRfZmluaShz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJaW50ZWxfcmluZ19wdXQoY2UtPnJpbmcpOwot Ci0JR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKGNlLT5zdGF0ZS0+b2JqKSk7 Ci0JaTkxNV9nZW1fb2JqZWN0X3B1dChjZS0+c3RhdGUtPm9iaik7CisJaTkxNV92bWFfcHV0KGNl LT5zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X2Rlc3Ryb3koc3Ry dWN0IGtyZWYgKmtyZWYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVy LmMKaW5kZXggZjgyMTkwOTg3MjA2Li43MGY5NTQxNGRjY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTEzMDksNyArMTMwOSw2IEBAIHZvaWQgaW50 ZWxfcmluZ19mcmVlKHN0cnVjdCBrcmVmICpyZWYpCiAKIHN0YXRpYyB2b2lkIF9fcmluZ19jb250 ZXh0X2Zpbmkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewotCUdFTV9CVUdfT04oaTkxNV9n ZW1fb2JqZWN0X2lzX2FjdGl2ZShjZS0+c3RhdGUtPm9iaikpOwogCWk5MTVfZ2VtX29iamVjdF9w dXQoY2UtPnN0YXRlLT5vYmopOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X2hhbmdjaGVjay5jCmluZGV4IDFlZTRjOTIzMDQ0Zi4uNDNiODEwODQxMjJkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwpAQCAtMTI5LDMzICsx MjksMjkgQEAgaGFuZ19jcmVhdGVfcmVxdWVzdChzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g aC0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGgtPmN0eC0+dm0gPzog Jmk5MTUtPmdndHQudm07CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IE5VTEw7CiAJc3RydWN0IGk5MTVfdm1hICpod3MsICp2bWE7 CiAJdW5zaWduZWQgaW50IGZsYWdzOworCXZvaWQgKnZhZGRyOwogCXUzMiAqYmF0Y2g7CiAJaW50 IGVycjsKIAotCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfYWN0aXZlKGgtPm9iaikpIHsKLQkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQkJdm9pZCAqdmFkZHI7Ci0KLQkJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChoLT5pOTE1LCBQQUdFX1NJWkUpOwotCQlp ZiAoSVNfRVJSKG9iaikpCi0JCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKKwlvYmogPSBpOTE1X2dl bV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGgtPmk5MTUsIFBBR0VfU0laRSk7CisJaWYgKElTX0VS UihvYmopKQorCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKIAotCQl2YWRkciA9IGk5MTVfZ2VtX29i amVjdF9waW5fbWFwKG9iaiwKLQkJCQkJCWk5MTVfY29oZXJlbnRfbWFwX3R5cGUoaC0+aTkxNSkp OwotCQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwot CQkJcmV0dXJuIEVSUl9DQVNUKHZhZGRyKTsKLQkJfQorCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXAob2JqLCBpOTE1X2NvaGVyZW50X21hcF90eXBlKGgtPmk5MTUpKTsKKwlpZiAoSVNf RVJSKHZhZGRyKSkgeworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJCXJldHVybiBFUlJf Q0FTVCh2YWRkcik7CisJfQogCi0JCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoaC0+b2JqKTsK LQkJaTkxNV9nZW1fb2JqZWN0X3B1dChoLT5vYmopOworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9t YXAoaC0+b2JqKTsKKwlpOTE1X2dlbV9vYmplY3RfcHV0KGgtPm9iaik7CiAKLQkJaC0+b2JqID0g b2JqOwotCQloLT5iYXRjaCA9IHZhZGRyOwotCX0KKwloLT5vYmogPSBvYmo7CisJaC0+YmF0Y2gg PSB2YWRkcjsKIAogCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKGgtPm9iaiwgdm0sIE5VTEwpOwog CWlmIChJU19FUlIodm1hKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZjU4 NDg2ODIwODIzLi5kN2FmN2M2NmRmOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC03NCwxMSArNzQsNiBAQCBzdGF0aWMgaW50IGk5MTVfY2FwYWJpbGl0aWVzKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNoYXIgZ2V0 X2FjdGl2ZV9mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJu IGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSA/ICcqJyA6ICcgJzsKLX0KLQogc3RhdGlj IGNoYXIgZ2V0X3Bpbl9mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJ cmV0dXJuIG9iai0+cGluX2dsb2JhbCA/ICdwJyA6ICcgJzsKQEAgLTE0Myw5ICsxMzgsOCBAQCBk ZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzOwogCWludCBwaW5fY291bnQg PSAwOwogCi0Jc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMlYyVjICU4emRLaUIgJTAyeCAlMDJ4 ICVzJXMlcyIsCisJc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMlYyAlOHpkS2lCICUwMnggJTAy eCAlcyVzJXMiLAogCQkgICAmb2JqLT5iYXNlLAotCQkgICBnZXRfYWN0aXZlX2ZsYWcob2JqKSwK IAkJICAgZ2V0X3Bpbl9mbGFnKG9iaiksCiAJCSAgIGdldF90aWxpbmdfZmxhZyhvYmopLAogCQkg ICBnZXRfZ2xvYmFsX2ZsYWcob2JqKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Jh dGNoX3Bvb2wuYwppbmRleCA1NmFkZmRjYWVkM2UuLjFiNzU5NWUyYWMyMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwpAQCAtOTQsMzQgKzk0LDI2IEBAIGk5 MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0KHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29sLAog CWxpc3QgPSAmcG9vbC0+Y2FjaGVfbGlzdFtuXTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkob2Jq LCBsaXN0LCBiYXRjaF9wb29sX2xpbmspIHsKKwkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAq cmVzdiA9IG9iai0+cmVzdjsKKwogCQkvKiBUaGUgYmF0Y2hlcyBhcmUgc3RyaWN0bHkgTFJVIG9y ZGVyZWQgKi8KLQkJaWYgKGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSkgewotCQkJc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IG9iai0+cmVzdjsKLQotCQkJaWYgKCFyZXNl cnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3UocmVzdiwgdHJ1ZSkpCi0JCQkJYnJlYWs7 Ci0KLQkJCWk5MTVfcmV0aXJlX3JlcXVlc3RzKHBvb2wtPmVuZ2luZS0+aTkxNSk7Ci0JCQlHRU1f QlVHX09OKGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSk7Ci0KLQkJCS8qCi0JCQkgKiBU aGUgb2JqZWN0IGlzIG5vdyBpZGxlLCBjbGVhciB0aGUgYXJyYXkgb2Ygc2hhcmVkCi0JCQkgKiBm ZW5jZXMgYmVmb3JlIHdlIGFkZCBhIG5ldyByZXF1ZXN0LiBBbHRob3VnaCwgd2UKLQkJCSAqIHJl bWFpbiBvbiB0aGUgc2FtZSBlbmdpbmUsIHdlIG1heSBiZSBvbiBhIGRpZmZlcmVudAotCQkJICog dGltZWxpbmUgYW5kIHNvIG1heSBjb250aW51YWxseSBncm93IHRoZSBhcnJheSwKLQkJCSAqIHRy YXBwaW5nIGEgcmVmZXJlbmNlIHRvIGFsbCB0aGUgb2xkIGZlbmNlcywgcmF0aGVyCi0JCQkgKiB0 aGFuIHJlcGxhY2UgdGhlIGV4aXN0aW5nIGZlbmNlLgotCQkJICovCi0JCQlpZiAocmN1X2FjY2Vz c19wb2ludGVyKHJlc3YtPmZlbmNlKSkgewotCQkJCXJlc2VydmF0aW9uX29iamVjdF9sb2NrKHJl c3YsIE5VTEwpOwotCQkJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShyZXN2LCBO VUxMKTsKLQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOwotCQkJfQorCQlpZiAo IXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LCB0cnVlKSkKKwkJCWJy ZWFrOworCisJCS8qCisJCSAqIFRoZSBvYmplY3QgaXMgbm93IGlkbGUsIGNsZWFyIHRoZSBhcnJh eSBvZiBzaGFyZWQKKwkJICogZmVuY2VzIGJlZm9yZSB3ZSBhZGQgYSBuZXcgcmVxdWVzdC4gQWx0 aG91Z2gsIHdlCisJCSAqIHJlbWFpbiBvbiB0aGUgc2FtZSBlbmdpbmUsIHdlIG1heSBiZSBvbiBh IGRpZmZlcmVudAorCQkgKiB0aW1lbGluZSBhbmQgc28gbWF5IGNvbnRpbnVhbGx5IGdyb3cgdGhl IGFycmF5LAorCQkgKiB0cmFwcGluZyBhIHJlZmVyZW5jZSB0byBhbGwgdGhlIG9sZCBmZW5jZXMs IHJhdGhlcgorCQkgKiB0aGFuIHJlcGxhY2UgdGhlIGV4aXN0aW5nIGZlbmNlLgorCQkgKi8KKwkJ aWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihyZXN2LT5mZW5jZSkpIHsKKwkJCXJlc2VydmF0aW9uX29i amVjdF9sb2NrKHJlc3YsIE5VTEwpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2Zl bmNlKHJlc3YsIE5VTEwpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhyZXN2KTsKIAkJ fQogCi0JCUdFTV9CVUdfT04oIXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShv YmotPnJlc3YsCi0JCQkJCQkJCSB0cnVlKSk7Ci0KIAkJaWYgKG9iai0+YmFzZS5zaXplID49IHNp emUpCiAJCQlnb3RvIGZvdW5kOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCmluZGV4IGIyOTVj NTMwODVlZS4uZDgyZjRlYzMwNWJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKQEAgLTc3LDQz ICs3NywxMSBAQCBzdGF0aWMgdm9pZCB2bWFfcHJpbnRfYWxsb2NhdG9yKHN0cnVjdCBpOTE1X3Zt YSAqdm1hLCBjb25zdCBjaGFyICpyZWFzb24pCiAKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBvYmpf YnVtcF9tcnUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Ci0JdW5zaWduZWQg bG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5tbS5vYmpfbG9jaywgZmxh Z3MpOwotCWxpc3RfbW92ZV90YWlsKCZvYmotPm1tLmxpbmssICZpOTE1LT5tbS5zaHJpbmtfbGlz dCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+bW0ub2JqX2xvY2ssIGZsYWdzKTsK LQotCW9iai0+bW0uZGlydHkgPSB0cnVlOyAvKiBiZSBwYXJhbm9pZCAgKi8KLX0KLQogc3RhdGlj IHZvaWQgX19pOTE1X3ZtYV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCiB7CiAJc3Ry dWN0IGk5MTVfdm1hICp2bWEgPSBjb250YWluZXJfb2YocmVmLCB0eXBlb2YoKnZtYSksIGFjdGl2 ZSk7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwotCi0JR0VN X0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopKTsKLQlpZiAoLS1vYmotPmFj dGl2ZV9jb3VudCkKLQkJcmV0dXJuOwotCi0JLyogUHJ1bmUgdGhlIHNoYXJlZCBmZW5jZSBhcnJh eXMgaWZmIGNvbXBsZXRlbHkgaWRsZSAoaW5jLiBleHRlcm5hbCkgKi8KLQlpZiAocmVzZXJ2YXRp b25fb2JqZWN0X3RyeWxvY2sob2JqLT5yZXN2KSkgewotCQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0 X3Rlc3Rfc2lnbmFsZWRfcmN1KG9iai0+cmVzdiwgdHJ1ZSkpCi0JCQlyZXNlcnZhdGlvbl9vYmpl Y3RfYWRkX2V4Y2xfZmVuY2Uob2JqLT5yZXN2LCBOVUxMKTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0 X3VubG9jayhvYmotPnJlc3YpOwotCX0KIAotCS8qCi0JICogQnVtcCBvdXIgcGxhY2Ugb24gdGhl IGJvdW5kIGxpc3QgdG8ga2VlcCBpdCByb3VnaGx5IGluIExSVSBvcmRlcgotCSAqIHNvIHRoYXQg d2UgZG9uJ3Qgc3RlYWwgZnJvbSByZWNlbnRseSB1c2VkIGJ1dCBpbmFjdGl2ZSBvYmplY3RzCi0J ICogKHVubGVzcyB3ZSBhcmUgZm9yY2VkIHRvIG9mYyEpCi0JICovCi0JaWYgKGk5MTVfZ2VtX29i amVjdF9pc19zaHJpbmthYmxlKG9iaikpCi0JCW9ial9idW1wX21ydShvYmopOwotCi0JaTkxNV9n ZW1fb2JqZWN0X3B1dChvYmopOyAvKiBhbmQgZHJvcCB0aGUgYWN0aXZlIHJlZmVyZW5jZSAqLwor CWk5MTVfdm1hX3B1dCh2bWEpOwogfQogCiBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKQEAgLTky MSw2ICs4ODksNyBAQCBpbnQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1h ICp2bWEsCiAJCQkgICAgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKKwlpbnQgZXJyOwogCiAJYXNzZXJ0X3ZtYV9oZWxk KHZtYSk7CiAJYXNzZXJ0X29iamVjdF9oZWxkKG9iaik7CkBAIC05MzQsMTcgKzkwMywxMyBAQCBp bnQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJICogYWRk IHRoZSBhY3RpdmUgcmVmZXJlbmNlIGZpcnN0IGFuZCBxdWV1ZSBmb3IgaXQgdG8gYmUgZHJvcHBl ZAogCSAqICpsYXN0Ki4KIAkgKi8KLQlpZiAoIXZtYS0+YWN0aXZlLmNvdW50ICYmICFvYmotPmFj dGl2ZV9jb3VudCsrKQotCQlpOTE1X2dlbV9vYmplY3RfZ2V0KG9iaik7IC8qIG9uY2UgbW9yZSBm b3IgdGhlIGFjdGl2ZSByZWYgKi8KLQotCWlmICh1bmxpa2VseShpOTE1X2FjdGl2ZV9yZWYoJnZt YS0+YWN0aXZlLCBycS0+ZmVuY2UuY29udGV4dCwgcnEpKSkgewotCQlpZiAoIXZtYS0+YWN0aXZl LmNvdW50ICYmICEtLW9iai0+YWN0aXZlX2NvdW50KQotCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChv YmopOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9CisJaWYgKGk5MTVfYWN0aXZlX2FjcXVpcmUoJnZt YS0+YWN0aXZlKSkKKwkJaTkxNV92bWFfZ2V0KHZtYSk7CiAKLQlHRU1fQlVHX09OKCFpOTE1X3Zt YV9pc19hY3RpdmUodm1hKSk7Ci0JR0VNX0JVR19PTighb2JqLT5hY3RpdmVfY291bnQpOworCWVy ciA9IGk5MTVfYWN0aXZlX3JlZigmdm1hLT5hY3RpdmUsIHJxLT5mZW5jZS5jb250ZXh0LCBycSk7 CisJaTkxNV9hY3RpdmVfcmVsZWFzZSgmdm1hLT5hY3RpdmUpOworCWlmICh1bmxpa2VseShlcnIp KQorCQlyZXR1cm4gZXJyOwogCiAJb2JqLT53cml0ZV9kb21haW4gPSAwOwogCWlmIChmbGFncyAm IEVYRUNfT0JKRUNUX1dSSVRFKSB7CkBAIC05NTYsMTEgKzkyMSwxNCBAQCBpbnQgaTkxNV92bWFf bW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCW9iai0+cmVhZF9kb21haW5z ID0gMDsKIAl9CiAJb2JqLT5yZWFkX2RvbWFpbnMgfD0gSTkxNV9HRU1fR1BVX0RPTUFJTlM7CisJ b2JqLT5tbS5kaXJ0eSA9IHRydWU7CiAKIAlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19G RU5DRSkKIAkJX19pOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldCgmdm1hLT5sYXN0X2ZlbmNlLCBycSk7 CiAKIAlleHBvcnRfZmVuY2Uodm1hLCBycSwgZmxhZ3MpOworCisJR0VNX0JVR19PTighaTkxNV92 bWFfaXNfYWN0aXZlKHZtYSkpOwogCXJldHVybiAwOwogfQogCi0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==