From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1593CC63777 for ; Wed, 25 Nov 2020 10:40:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5E272063A for ; Wed, 25 Nov 2020 10:40:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5E272063A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C0946E90D; Wed, 25 Nov 2020 10:40:35 +0000 (UTC) Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF65E6E8B2 for ; Wed, 25 Nov 2020 10:40:32 +0000 (UTC) From: Maarten Lankhorst To: intel-gfx@lists.freedesktop.org Date: Wed, 25 Nov 2020 11:40:09 +0100 Message-Id: <20201125104011.606641-62-maarten.lankhorst@linux.intel.com> X-Mailer: git-send-email 2.29.2.222.g5d2a92d10f8 In-Reply-To: <20201125104011.606641-1-maarten.lankhorst@linux.intel.com> References: <20201125104011.606641-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v5 61/63] drm/i915: Finally remove obj->mm.lock. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" V2l0aCBhbGwgY2FsbGVycyBhbmQgc2VsZnRlc3RzIGZpeGVkIHRvIHVzZSB3dyBsb2NraW5nLCB3 ZSBjYW4gbm93CmZpbmFsbHkgcmVtb3ZlIHRoaXMgbG9jay4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0 ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2Vk LWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jICAgIHwgIDIg LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oICAgIHwgIDUgKy0t CiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgMSAtCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYyAgICAgfCAzOCArKysrLS0t LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGh5cy5jICAg ICAgfCAzNCArKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3NobWVtLmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9zaHJpbmtlci5jICB8IDM3ICsrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmggIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV90aWxpbmcuYyAgICB8ICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV91c2VycHRyLmMgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgICAgIHwgIDggKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgICAgICAgICAgIHwgIDIgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlv bnMoKyksIDg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3QuYwppbmRleCAwMjhhNTU2YWIxYTUuLjA4ZDgwNmJiZjQ4ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYwpAQCAtNjIsOCArNjIsNiBAQCB2b2lk IGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ CQkgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyAqb3BzLAogCQkJICBzdHJ1 Y3QgbG9ja19jbGFzc19rZXkgKmtleSwgdW5zaWduZWQgZmxhZ3MpCiB7Ci0JbXV0ZXhfaW5pdCgm b2JqLT5tbS5sb2NrKTsKLQogCXNwaW5fbG9ja19pbml0KCZvYmotPnZtYS5sb2NrKTsKIAlJTklU X0xJU1RfSEVBRCgmb2JqLT52bWEubGlzdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3QuaAppbmRleCAzZmU0MTE4MGNjODEuLjc0OGIwM2FlYjNjNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApAQCAtMTI5LDcgKzEyOSw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfb2JqZWN0X2hlbGRfc2hhcmVkKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJICovCiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0xP Q0tERVApICYmCiAJICAgIGtyZWZfcmVhZCgmb2JqLT5iYXNlLnJlZmNvdW50KSA+IDApCi0JCWxv Y2tkZXBfYXNzZXJ0X2hlbGQoJm9iai0+bW0ubG9jayk7CisJCWFzc2VydF9vYmplY3RfaGVsZChv YmopOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBfX2k5MTVfZ2VtX29iamVjdF9sb2NrKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0zMzQsNyArMzM0LDcgQEAgaW50IF9faTkx NV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsK IHN0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjawogaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdl cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCW1pZ2h0X2xvY2soJm9iai0+ bW0ubG9jayk7CisJYXNzZXJ0X29iamVjdF9oZWxkKG9iaik7CiAKIAlpZiAoYXRvbWljX2luY19u b3RfemVybygmb2JqLT5tbS5wYWdlc19waW5fY291bnQpKQogCQlyZXR1cm4gMDsKQEAgLTM4MCw3 ICszODAsNiBAQCBpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKIH0KIAogaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKLWludCBfX2k5MTVfZ2VtX29iamVjdF9wdXRf cGFnZXNfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogdm9pZCBpOTE1 X2dlbV9vYmplY3RfdHJ1bmNhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiB2 b2lkIGk5MTVfZ2VtX29iamVjdF93cml0ZWJhY2soc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3Rf dHlwZXMuaAppbmRleCA1MjM0YzFlZDYyZDQuLmIxNzJlOGNjNTNhYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaApAQCAtMjA5LDcgKzIw OSw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAkJICogUHJvdGVjdHMgdGhlIHBh Z2VzIGFuZCB0aGVpciB1c2UuIERvIG5vdCB1c2UgZGlyZWN0bHksIGJ1dAogCQkgKiBpbnN0ZWFk IGdvIHRocm91Z2ggdGhlIHBpbi91bnBpbiBpbnRlcmZhY2VzLgogCQkgKi8KLQkJc3RydWN0IG11 dGV4IGxvY2s7CiAJCWF0b21pY190IHBhZ2VzX3Bpbl9jb3VudDsKIAkJYXRvbWljX3Qgc2hyaW5r X3BpbjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Bh Z2VzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYwppbmRleCA3 OTMzNjczNWE2ZTQuLjRhOGJlNzU5ODMyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3BhZ2VzLmMKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9z ZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJc3RydWN0IGxpc3Rf aGVhZCAqbGlzdDsKIAkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCQlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZvYmotPm1tLmxvY2spOworCQlhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKIAkJc3Bpbl9s b2NrX2lycXNhdmUoJmk5MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7CiAKIAkJaTkxNS0+bW0uc2hy aW5rX2NvdW50Kys7CkBAIC0xMTQsOSArMTE0LDcgQEAgaW50IF9faTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCWludCBlcnI7CiAK LQllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm9iai0+bW0ubG9jayk7Ci0JaWYgKGVy cikKLQkJcmV0dXJuIGVycjsKKwlhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKIAogCWFzc2VydF9v YmplY3RfaGVsZF9zaGFyZWQob2JqKTsKIApAQCAtMTI1LDE1ICsxMjMsMTMgQEAgaW50IF9faTkx NV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQog CiAJCWVyciA9IF9fX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7CiAJCWlmIChlcnIp Ci0JCQlnb3RvIHVubG9jazsKKwkJCXJldHVybiBlcnI7CiAKIAkJc21wX21iX19iZWZvcmVfYXRv bWljKCk7CiAJfQogCWF0b21pY19pbmMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50KTsKIAotdW5s b2NrOgotCW11dGV4X3VubG9jaygmb2JqLT5tbS5sb2NrKTsKLQlyZXR1cm4gZXJyOworCXJldHVy biAwOwogfQogCiBpbnQgaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlc191bmxvY2tlZChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpAQCAtMjIwLDcgKzIxNiw3IEBAIF9faTkxNV9nZW1f b2JqZWN0X3Vuc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0 dXJuIHBhZ2VzOwogfQogCi1pbnQgX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2xvY2tlZChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoraW50IF9faTkxNV9nZW1fb2JqZWN0X3B1 dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBzZ190 YWJsZSAqcGFnZXM7CiAKQEAgLTI1MSwyMSArMjQ3LDYgQEAgaW50IF9faTkxNV9nZW1fb2JqZWN0 X3B1dF9wYWdlc19sb2NrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1 cm4gMDsKIH0KIAotaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQotewotCWludCBlcnI7Ci0KLQlpZiAoaTkxNV9nZW1fb2JqZWN0 X2hhc19waW5uZWRfcGFnZXMob2JqKSkKLQkJcmV0dXJuIC1FQlVTWTsKLQotCS8qIE1heSBiZSBj YWxsZWQgYnkgc2hyaW5rZXIgZnJvbSB3aXRoaW4gZ2V0X3BhZ2VzKCkgKG9uIGFub3RoZXIgYm8p ICovCi0JbXV0ZXhfbG9jaygmb2JqLT5tbS5sb2NrKTsKLQllcnIgPSBfX2k5MTVfZ2VtX29iamVj dF9wdXRfcGFnZXNfbG9ja2VkKG9iaik7Ci0JbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2spOwot Ci0JcmV0dXJuIGVycjsKLX0KLQogLyogVGhlICdtYXBwaW5nJyBwYXJ0IG9mIGk5MTVfZ2VtX29i amVjdF9waW5fbWFwKCkgYmVsb3cgKi8KIHN0YXRpYyB2b2lkICppOTE1X2dlbV9vYmplY3RfbWFw X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJZW51bSBpOTE1X21hcF90 eXBlIHR5cGUpCkBAIC0zNjYsOSArMzQ3LDcgQEAgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X3Bpbl9t YXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkgICAgIWk5MTVfZ2VtX29iamVj dF90eXBlX2hhcyhvYmosIEk5MTVfR0VNX09CSkVDVF9IQVNfSU9NRU0pKQogCQlyZXR1cm4gRVJS X1BUUigtRU5YSU8pOwogCi0JZXJyID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZvYmotPm1t LmxvY2spOwotCWlmIChlcnIpCi0JCXJldHVybiBFUlJfUFRSKGVycik7CisJYXNzZXJ0X29iamVj dF9oZWxkKG9iaik7CiAKIAlwaW5uZWQgPSAhKHR5cGUgJiBJOTE1X01BUF9PVkVSUklERSk7CiAJ dHlwZSAmPSB+STkxNV9NQVBfT1ZFUlJJREU7CkBAIC00MTYsMTUgKzM5NSwxMiBAQCB2b2lkICpp OTE1X2dlbV9vYmplY3RfcGluX21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog CQlvYmotPm1tLm1hcHBpbmcgPSBwYWdlX3BhY2tfYml0cyhwdHIsIHR5cGUpOwogCX0KIAotb3V0 X3VubG9jazoKLQltdXRleF91bmxvY2soJm9iai0+bW0ubG9jayk7CiAJcmV0dXJuIHB0cjsKIAog ZXJyX3VucGluOgogCWF0b21pY19kZWMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50KTsKIGVycl91 bmxvY2s6Ci0JcHRyID0gRVJSX1BUUihlcnIpOwotCWdvdG8gb3V0X3VubG9jazsKKwlyZXR1cm4g RVJSX1BUUihlcnIpOwogfQogCiB2b2lkICppOTE1X2dlbV9vYmplY3RfcGluX21hcF91bmxvY2tl ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9waHlzLmMKaW5kZXggZjMxN2JlNWY1ZTM0Li40MzVjM2I1NGNmMTQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYwpAQCAtMjM0LDQwICsyMzQsMjIg QEAgaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLCBpbnQgYWxpZ24pCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCWVyciA9 IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmb2JqLT5tbS5sb2NrKTsKLQlpZiAoZXJyKQotCQly ZXR1cm4gZXJyOwotCi0JaWYgKHVubGlrZWx5KCFpOTE1X2dlbV9vYmplY3RfaGFzX3N0cnVjdF9w YWdlKG9iaikpKQotCQlnb3RvIG91dDsKLQotCWlmIChvYmotPm1tLm1hZHYgIT0gSTkxNV9NQURW X1dJTExORUVEKSB7Ci0JCWVyciA9IC1FRkFVTFQ7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAob2Jq LT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCkKKwkJcmV0dXJuIC1FRkFVTFQ7CiAKLQlp ZiAob2JqLT5tbS5xdWlya2VkKSB7Ci0JCWVyciA9IC1FRkFVTFQ7Ci0JCWdvdG8gb3V0OwotCX0K KwlpZiAob2JqLT5tbS5xdWlya2VkKQorCQlyZXR1cm4gLUVGQVVMVDsKIAotCWlmIChvYmotPm1t Lm1hcHBpbmcgfHwgaTkxNV9nZW1fb2JqZWN0X2hhc19waW5uZWRfcGFnZXMob2JqKSkgewotCQll cnIgPSAtRUJVU1k7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAob2JqLT5tbS5tYXBwaW5nIHx8IGk5 MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikpCisJCXJldHVybiAtRUJVU1k7CiAK IAlpZiAodW5saWtlbHkob2JqLT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCkpIHsKIAkJ ZHJtX2RiZyhvYmotPmJhc2UuZGV2LAogCQkJIkF0dGVtcHRpbmcgdG8gb2J0YWluIGEgcHVyZ2Vh YmxlIG9iamVjdFxuIik7Ci0JCWVyciA9IC1FRkFVTFQ7Ci0JCWdvdG8gb3V0OworCQlyZXR1cm4g LUVGQVVMVDsKIAl9CiAKLQllcnIgPSBpOTE1X2dlbV9vYmplY3Rfc2htZW1fdG9fcGh5cyhvYmop OwotCi1vdXQ6Ci0JbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2spOwotCXJldHVybiBlcnI7CisJ cmV0dXJuIGk5MTVfZ2VtX29iamVjdF9zaG1lbV90b19waHlzKG9iaik7CiB9CiAKICNpZiBJU19F TkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3NobWVtLmMKaW5kZXggN2E1OWZkMWVhNGU1Li5iNGRkN2E3MDk4MDAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jCkBAIC05OSw3ICs5OSw3IEBA IHN0YXRpYyBpbnQgc2htZW1fZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiAJCQkJZ290byBlcnJfc2c7CiAJCQl9CiAKLQkJCWk5MTVfZ2VtX3NocmluayhpOTE1LCAy ICogcGFnZV9jb3VudCwgTlVMTCwgKnMrKyk7CisJCQlpOTE1X2dlbV9zaHJpbmsoTlVMTCwgaTkx NSwgMiAqIHBhZ2VfY291bnQsIE5VTEwsICpzKyspOwogCiAJCQkvKgogCQkJICogV2UndmUgdHJp ZWQgaGFyZCB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5IGJ5IHJlYXBpbmcKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKaW5kZXggYWZjNmU1YjRkY2YxLi5lNDIx OTI4MzRjODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9z aHJpbmtlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtl ci5jCkBAIC05Myw3ICs5Myw4IEBAIHN0YXRpYyB2b2lkIHRyeV90b193cml0ZWJhY2soc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKICAqIFRoZSBudW1iZXIgb2YgcGFnZXMgb2YgYmFj a2luZyBzdG9yYWdlIGFjdHVhbGx5IHJlbGVhc2VkLgogICovCiB1bnNpZ25lZCBsb25nCi1pOTE1 X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCitpOTE1X2dlbV9zaHJp bmsoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3csCisJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAogCQl1bnNpZ25lZCBsb25nIHRhcmdldCwKIAkJdW5zaWduZWQgbG9uZyAqbnJfc2Nh bm5lZCwKIAkJdW5zaWduZWQgaW50IHNocmluaykKQEAgLTExMiw2ICsxMTMsNyBAQCBpOTE1X2dl bV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaW50ZWxfd2FrZXJlZl90 IHdha2VyZWYgPSAwOwogCXVuc2lnbmVkIGxvbmcgY291bnQgPSAwOwogCXVuc2lnbmVkIGxvbmcg c2Nhbm5lZCA9IDA7CisJaW50IGVycjsKIAogCXRyYWNlX2k5MTVfZ2VtX3NocmluayhpOTE1LCB0 YXJnZXQsIHNocmluayk7CiAKQEAgLTE5OSwyMyArMjAxLDM4IEBAIGk5MTVfZ2VtX3Nocmluayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmaTkxNS0+bW0ub2JqX2xvY2ssIGZsYWdzKTsKIAotCQkJaWYgKHVuc2FmZV9kcm9wX3BhZ2Vz KG9iaiwgc2hyaW5rKSAmJgotCQkJICAgIG11dGV4X3RyeWxvY2soJm9iai0+bW0ubG9jaykpIHsK KwkJCWVyciA9IDA7CisJCQlpZiAodW5zYWZlX2Ryb3BfcGFnZXMob2JqLCBzaHJpbmspKSB7CiAJ CQkJLyogTWF5IGFycml2ZSBmcm9tIGdldF9wYWdlcyBvbiBhbm90aGVyIGJvICovCi0JCQkJaWYg KCFfX2k5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXNfbG9ja2VkKG9iaikpIHsKKwkJCQlpZiAoIXd3 KSB7CisJCQkJCWlmICghaTkxNV9nZW1fb2JqZWN0X3RyeWxvY2sob2JqKSkKKwkJCQkJCWdvdG8g c2tpcDsKKwkJCQl9IGVsc2UgeworCQkJCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfbG9jayhvYmos IHd3KTsKKwkJCQkJaWYgKGVycikKKwkJCQkJCWdvdG8gc2tpcDsKKwkJCQl9CisKKwkJCQlpZiAo IV9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhvYmopKSB7CiAJCQkJCXRyeV90b193cml0ZWJh Y2sob2JqLCBzaHJpbmspOwogCQkJCQljb3VudCArPSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NI SUZUOwogCQkJCX0KLQkJCQltdXRleF91bmxvY2soJm9iai0+bW0ubG9jayk7CisJCQkJaWYgKCF3 dykKKwkJCQkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOwogCQkJfQogCiAJCQlzY2FubmVk ICs9IG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7Citza2lwOgogCQkJaTkxNV9nZW1fb2Jq ZWN0X3B1dChvYmopOwogCiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaTkxNS0+bW0ub2JqX2xvY2ss IGZsYWdzKTsKKwkJCWlmIChlcnIpCisJCQkJYnJlYWs7CiAJCX0KIAkJbGlzdF9zcGxpY2VfdGFp bCgmc3RpbGxfaW5fbGlzdCwgcGhhc2UtPmxpc3QpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZpOTE1LT5tbS5vYmpfbG9jaywgZmxhZ3MpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsK IAl9CiAKIAlpZiAoc2hyaW5rICYgSTkxNV9TSFJJTktfQk9VTkQpCkBAIC0yNDYsNyArMjYzLDcg QEAgdW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmtfYWxsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogCXVuc2lnbmVkIGxvbmcgZnJlZWQgPSAwOwogCiAJd2l0aF9pbnRlbF9ydW50 aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7Ci0JCWZyZWVkID0gaTkxNV9nZW1f c2hyaW5rKGk5MTUsIC0xVUwsIE5VTEwsCisJCWZyZWVkID0gaTkxNV9nZW1fc2hyaW5rKE5VTEws IGk5MTUsIC0xVUwsIE5VTEwsCiAJCQkJCUk5MTVfU0hSSU5LX0JPVU5EIHwKIAkJCQkJSTkxNV9T SFJJTktfVU5CT1VORCk7CiAJfQpAQCAtMjkyLDcgKzMwOSw3IEBAIGk5MTVfZ2VtX3Nocmlua2Vy X3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpz YykKIAogCXNjLT5ucl9zY2FubmVkID0gMDsKIAotCWZyZWVkID0gaTkxNV9nZW1fc2hyaW5rKGk5 MTUsCisJZnJlZWQgPSBpOTE1X2dlbV9zaHJpbmsoTlVMTCwgaTkxNSwKIAkJCQlzYy0+bnJfdG9f c2NhbiwKIAkJCQkmc2MtPm5yX3NjYW5uZWQsCiAJCQkJSTkxNV9TSFJJTktfQk9VTkQgfApAQCAt MzAxLDcgKzMxOCw3IEBAIGk5MTVfZ2VtX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpz aHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpzYykKIAkJaW50ZWxfd2FrZXJlZl90IHdh a2VyZWY7CiAKIAkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtl cmVmKSB7Ci0JCQlmcmVlZCArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwKKwkJCWZyZWVkICs9IGk5 MTVfZ2VtX3NocmluayhOVUxMLCBpOTE1LAogCQkJCQkJIHNjLT5ucl90b19zY2FuIC0gc2MtPm5y X3NjYW5uZWQsCiAJCQkJCQkgJnNjLT5ucl9zY2FubmVkLAogCQkJCQkJIEk5MTVfU0hSSU5LX0FD VElWRSB8CkBAIC0zMjYsNyArMzQzLDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJfb29tKHN0cnVjdCBu b3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKnB0cikKIAogCWZy ZWVkX3BhZ2VzID0gMDsKIAl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0s IHdha2VyZWYpCi0JCWZyZWVkX3BhZ2VzICs9IGk5MTVfZ2VtX3NocmluayhpOTE1LCAtMVVMLCBO VUxMLAorCQlmcmVlZF9wYWdlcyArPSBpOTE1X2dlbV9zaHJpbmsoTlVMTCwgaTkxNSwgLTFVTCwg TlVMTCwKIAkJCQkJICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwKIAkJCQkJICAgICAgIEk5MTVf U0hSSU5LX1VOQk9VTkQgfAogCQkJCQkgICAgICAgSTkxNV9TSFJJTktfV1JJVEVCQUNLKTsKQEAg LTM2NCw3ICszODEsNyBAQCBpOTE1X2dlbV9zaHJpbmtlcl92bWFwKHN0cnVjdCBub3RpZmllcl9i bG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKnB0cgogCWludGVsX3dha2VyZWZf dCB3YWtlcmVmOwogCiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3 YWtlcmVmKQotCQlmcmVlZF9wYWdlcyArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwgLTFVTCwgTlVM TCwKKwkJZnJlZWRfcGFnZXMgKz0gaTkxNV9nZW1fc2hyaW5rKE5VTEwsIGk5MTUsIC0xVUwsIE5V TEwsCiAJCQkJCSAgICAgICBJOTE1X1NIUklOS19CT1VORCB8CiAJCQkJCSAgICAgICBJOTE1X1NI UklOS19VTkJPVU5EIHwKIAkJCQkJICAgICAgIEk5MTVfU0hSSU5LX1ZNQVBTKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmgKaW5kZXggYjM5N2Q3Nzg1Nzg5 Li44NTEyNDcwZjZmZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9zaHJpbmtlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9z aHJpbmtlci5oCkBAIC05LDEwICs5LDEyIEBACiAjaW5jbHVkZSA8bGludXgvYml0cy5oPgogCiBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVjdCBpOTE1X2dlbV93d19jdHg7CiBzdHJ1Y3Qg bXV0ZXg7CiAKIC8qIGk5MTVfZ2VtX3Nocmlua2VyLmMgKi8KLXVuc2lnbmVkIGxvbmcgaTkxNV9n ZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAordW5zaWduZWQgbG9uZyBp OTE1X2dlbV9zaHJpbmsoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3csCisJCQkgICAgICBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0 LAogCQkJICAgICAgdW5zaWduZWQgbG9uZyAqbnJfc2Nhbm5lZCwKIAkJCSAgICAgIHVuc2lnbmVk IGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90 aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYwppbmRl eCBmZmNhZWU3NGEyNDkuLjQ1MjNhMTRkYjg2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3RpbGluZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV90aWxpbmcuYwpAQCAtMjY1LDcgKzI2NSw2IEBAIGk5MTVfZ2VtX29iamVjdF9z ZXRfdGlsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJICogcGFnZXMgdG8g cHJldmVudCB0aGVtIGJlaW5nIHN3YXBwZWQgb3V0IGFuZCBjYXVzaW5nIGNvcnJ1cHRpb24KIAkg KiBkdWUgdG8gdGhlIGNoYW5nZSBpbiBzd2l6emxpbmcuCiAJICovCi0JbXV0ZXhfbG9jaygmb2Jq LT5tbS5sb2NrKTsKIAlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopICYmCiAJICAg IG9iai0+bW0ubWFkdiA9PSBJOTE1X01BRFZfV0lMTE5FRUQgJiYKIAkgICAgaTkxNS0+cXVpcmtz ICYgUVVJUktfUElOX1NXSVpaTEVEX1BBR0VTKSB7CkBAIC0yODAsNyArMjc5LDYgQEAgaTkxNV9n ZW1fb2JqZWN0X3NldF90aWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJ CW9iai0+bW0ucXVpcmtlZCA9IHRydWU7CiAJCX0KIAl9Ci0JbXV0ZXhfdW5sb2NrKCZvYmotPm1t LmxvY2spOwogCiAJc3Bpbl9sb2NrKCZvYmotPnZtYS5sb2NrKTsKIAlmb3JfZWFjaF9nZ3R0X3Zt YSh2bWEsIG9iaikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3VzZXJwdHIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRy LmMKaW5kZXggYjFjMDM1YzU1NzA4Li44NGMzZThkYzE0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBp bnQgaTkxNV9nZW1fb2JqZWN0X3VzZXJwdHJfdW5iaW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosIGJvb2wKIAlpZiAoR0VNX1dBUk5fT04oaTkxNV9nZW1fb2JqZWN0X2hhc19waW5u ZWRfcGFnZXMob2JqKSkpCiAJCXJldHVybiAtRUJVU1k7CiAKLQltdXRleF9sb2NrKCZvYmotPm1t LmxvY2spOworCWFzc2VydF9vYmplY3RfaGVsZChvYmopOwogCiAJcGFnZXMgPSBfX2k5MTVfZ2Vt X29iamVjdF91bnNldF9wYWdlcyhvYmopOwogCWlmICghSVNfRVJSX09SX05VTEwocGFnZXMpKQpA QCAtMjU0LDcgKzI1NCw2IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X3VzZXJwdHJfdW5i aW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wKIAogCWlmIChnZXRfcGFn ZXMpCiAJCWVyciA9IF9fX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7Ci0JbXV0ZXhf dW5sb2NrKCZvYmotPm1tLmxvY2spOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMjYzMDc0YzJjMDk3Li42ZDE0ODJjODI2OTQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xNTEwLDEwICsxNTEwLDEwIEBAIGk5MTVfZHJv cF9jYWNoZXNfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAKIAlmc19yZWNsYWltX2FjcXVpcmUo R0ZQX0tFUk5FTCk7CiAJaWYgKHZhbCAmIERST1BfQk9VTkQpCi0JCWk5MTVfZ2VtX3Nocmluayhp OTE1LCBMT05HX01BWCwgTlVMTCwgSTkxNV9TSFJJTktfQk9VTkQpOworCQlpOTE1X2dlbV9zaHJp bmsoTlVMTCwgaTkxNSwgTE9OR19NQVgsIE5VTEwsIEk5MTVfU0hSSU5LX0JPVU5EKTsKIAogCWlm ICh2YWwgJiBEUk9QX1VOQk9VTkQpCi0JCWk5MTVfZ2VtX3NocmluayhpOTE1LCBMT05HX01BWCwg TlVMTCwgSTkxNV9TSFJJTktfVU5CT1VORCk7CisJCWk5MTVfZ2VtX3NocmluayhOVUxMLCBpOTE1 LCBMT05HX01BWCwgTlVMTCwgSTkxNV9TSFJJTktfVU5CT1VORCk7CiAKIAlpZiAodmFsICYgRFJP UF9TSFJJTktfQUxMKQogCQlpOTE1X2dlbV9zaHJpbmtfYWxsKGk5MTUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKaW5kZXggMjhmOGI1NzIwYjc2Li4wZTcwYzBhZGIwYmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwpAQCAtMTA2OCwxMCArMTA2OCw2IEBAIGk5MTVfZ2VtX21hZHZpc2VfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoZXJyKQogCQlnb3RvIG91 dDsKIAotCWVyciA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmb2JqLT5tbS5sb2NrKTsKLQlp ZiAoZXJyKQotCQlnb3RvIG91dF93dzsKLQogCWlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2Vz KG9iaikgJiYKIAkgICAgaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKG9iaikgJiYKIAkgICAgaTkx NS0+cXVpcmtzICYgUVVJUktfUElOX1NXSVpaTEVEX1BBR0VTKSB7CkBAIC0xMTE0LDkgKzExMTAs NyBAQCBpOTE1X2dlbV9tYWR2aXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJCWk5MTVfZ2VtX29iamVjdF90cnVuY2F0ZShvYmopOwogCiAJYXJncy0+cmV0YWlu ZWQgPSBvYmotPm1tLm1hZHYgIT0gX19JOTE1X01BRFZfUFVSR0VEOwotCW11dGV4X3VubG9jaygm b2JqLT5tbS5sb2NrKTsKIAotb3V0X3d3OgogCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsK IG91dDoKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CkBAIC0xMjk3LDcgKzEyOTEsNyBAQCBp bnQgaTkxNV9nZW1fZnJlZXplX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAK IAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0J aTkxNV9nZW1fc2hyaW5rKGk5MTUsIC0xVUwsIE5VTEwsIH4wKTsKKwlpOTE1X2dlbV9zaHJpbmso TlVMTCwgaTkxNSwgLTFVTCwgTlVMTCwgfjApOwogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVj dHMoaTkxNSk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJmk5MTUtPm1tLnNocmlua19s aXN0LCBtbS5saW5rKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGM1ZWUx NTY3ZjNkMS4uNzI5MDc0ZWUzM2Q0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpA QCAtNDQsNyArNDQsNyBAQCBpbnQgaTkxNV9nZW1fZ3R0X3ByZXBhcmVfcGFnZXMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJICogdGhlIERNQSByZW1hcHBlciwgaTkxNV9nZW1f c2hyaW5rIHdpbGwgcmV0dXJuIDAuCiAJCSAqLwogCQlHRU1fQlVHX09OKG9iai0+bW0ucGFnZXMg PT0gcGFnZXMpOwotCX0gd2hpbGUgKGk5MTVfZ2VtX3Nocmluayh0b19pOTE1KG9iai0+YmFzZS5k ZXYpLAorCX0gd2hpbGUgKGk5MTVfZ2VtX3NocmluayhOVUxMLCB0b19pOTE1KG9iai0+YmFzZS5k ZXYpLAogCQkJCSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBOVUxMLAogCQkJCSBJOTE1 X1NIUklOS19CT1VORCB8CiAJCQkJIEk5MTVfU0hSSU5LX1VOQk9VTkQpKTsKLS0gCjIuMjkuMi4y MjIuZzVkMmE5MmQxMGY4CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK