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=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS 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 6F2D0C433E0 for ; Tue, 22 Dec 2020 23:59:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 24F3122B2D for ; Tue, 22 Dec 2020 23:59:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726159AbgLVX7a (ORCPT ); Tue, 22 Dec 2020 18:59:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLVX73 (ORCPT ); Tue, 22 Dec 2020 18:59:29 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 786ECC0613D3 for ; Tue, 22 Dec 2020 15:58:48 -0800 (PST) Date: Tue, 22 Dec 2020 23:52:47 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1608681526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0qo++ejZpQyvA9FnKYwBgDVBaFXXiQw4LqaE4LMXom0=; b=Mu3oDQg0od/2dsoKUoBcUNru3IVizbBgnZPq6UMCUgtYXk8L34VKGmNYStyjW7cfUUaTPD AmUaHYqv7LSvNQs24bzxdft+EysE2L7ga0CxB9mQnqoaf2z60VgBd/79OQWSBd+rPoRo7f skRqKD4G1caX8vCpVCg1jUdqXiYvjZF+H+766FC1FH68h3D3kvm4J9H7LxFgpWHvRwlcjG 6+1FKfUkXuR6GDT6NEj2WV5AgyJIPl+qNz43pNzalXlsj/T+CZidwRuCUILSS5PEKcWdfT X43CNFEJIPro24goi9Mrugg2qHKJSHC6z5RB/trpq+qID1rBZEi/qxOZ9qk3PQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1608681526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0qo++ejZpQyvA9FnKYwBgDVBaFXXiQw4LqaE4LMXom0=; b=gyjb+61of74cbBzERDXrzgMHINMhRb5K4yowz4OZQiVyvkqalLgQunz6QpisnQnNmc9l0R jr1x3idyLNgpZTAw== From: Thomas Gleixner To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, x86@kernel.org Subject: [GIT pull] irq/core for v5.11-rc1 Message-ID: <160868116773.15975.16926726831905097728.tglx@nanos> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TGludXMsCgpwbGVhc2UgcHVsbCB0aGUgbGF0ZXN0IGlycS9jb3JlIGJyYW5jaCBmcm9tOgoKICAg Z2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RpcC90aXAuZ2l0 IGlycS1jb3JlLTIwMjAtMTItMjMKCnVwIHRvOiAgNjRhMWI5NWJiOWZlOiBnZW5pcnE6IFJlc3Ry aWN0IGV4cG9ydCBvZiBpcnFfdG9fZGVzYygpCgpUaGlzIGlzIHRoZSBzZWNvbmQgYXR0ZW1wdCBh ZnRlciB0aGUgZmlyc3Qgb25lIGZhaWxlZCBtaXNlcmFibHkgYW5kIGdvdAp6YXBwZWQgdG8gdW5i bG9jayB0aGUgcmVzdCBvZiB0aGUgaW50ZXJydXB0IHJlbGF0ZWQgcGF0Y2hlcy4gSSdtIHN0aWxs CmVtYmFycmFzc2VkIGFib3V0IHRoYXQuCgpQbGVhc2UgY29uc2lkZXIgdG8gcHVsbCB0aGlzIGNs ZWFudXA6CgogIEEgdHJlZXdpZGUgY2xlYW51cCBvZiBpbnRlcnJ1cHQgZGVzY3JpcHRvciAoYWIp dXNlIHdpdGggYWxsIHNvcnRzIG9mIHJhY3kKICBhY2Nlc3NlcywgaW5lZmZpY2llbnQgYW5kIGRp c2Z1bmN0aW9uYWwgY29kZS4gVGhlIGdvYWwgaXMgdG8gcmVtb3ZlIHRoZQogIGV4cG9ydCBvZiBp cnFfdG9fZGVzYygpIHRvIHByZXZlbnQgdGhlc2UgdGhpbmdzIGZyb20gY3JlZXBpbmcgdXAgYWdh aW4uCgpUaGFua3MsCgoJdGdseAoKLS0tLS0tLS0tLS0tLS0tLS0tPgpUaG9tYXMgR2xlaXhuZXIg KDMwKToKICAgICAgZ2VuaXJxOiBNb3ZlIGlycV9oYXNfYWN0aW9uKCkgaW50byBjb3JlIGNvZGUK ICAgICAgZ2VuaXJxOiBNb3ZlIHN0YXR1cyBmbGFnIGNoZWNrcyB0byBjb3JlCiAgICAgIGdlbmly cTogTW92ZSBpcnFfc2V0X2xvY2tkZXBfY2xhc3MoKSB0byBjb3JlCiAgICAgIGdlbmlycTogUHJv dmlkZSBpcnFfZ2V0X2VmZmVjdGl2ZV9hZmZpbml0eSgpCiAgICAgIGdlbmlycTogQW5ub3RhdGUg aXJxIHN0YXRzIGRhdGEgcmFjZXMKICAgICAgcGFyaXNjL2lycTogU2ltcGxpZnkgaXJxIGNvdW50 IG91dHB1dCBmb3IgL3Byb2MvaW50ZXJydXB0cwogICAgICBnZW5pcnE6IE1ha2Uga3N0YXRfaXJx cygpIHN0YXRpYwogICAgICBnZW5pcnE6IFByb3ZpZGUga3N0YXRfaXJxZGVzY19jcHUoKQogICAg ICBBUk06IHNtcDogVXNlIGlycV9kZXNjX2tzdGF0X2NwdSgpIGluIHNob3dfaXBpX2xpc3QoKQog ICAgICBhcm02NC9zbXA6IFVzZSBpcnFfZGVzY19rc3RhdF9jcHUoKSBpbiBhcmNoX3Nob3dfaW50 ZXJydXB0cygpCiAgICAgIHBhcmlzYy9pcnE6IFVzZSBpcnFfZGVzY19rc3RhdF9jcHUoKSBpbiBz aG93X2ludGVycnVwdHMoKQogICAgICBzMzkwL2lycTogVXNlIGlycV9kZXNjX2tzdGF0X2NwdSgp IGluIHNob3dfbXNpX2ludGVycnVwdCgpCiAgICAgIGRybS9pOTE1L2xwZV9hdWRpbzogUmVtb3Zl IHBvaW50bGVzcyBpcnFfdG9fZGVzYygpIHVzYWdlCiAgICAgIGRybS9pOTE1L3BtdTogUmVwbGFj ZSBvcGVuIGNvZGVkIGtzdGF0X2lycXMoKSBjb3B5CiAgICAgIHBpbmN0cmw6IG5vbWFkaWs6IFVz ZSBpcnFfaGFzX2FjdGlvbigpCiAgICAgIG1mZDogYWI4NTAwLWRlYnVnZnM6IFJlbW92ZSB0aGUg cmFjeSBmaWRkbGluZyB3aXRoIGlycV9kZXNjCiAgICAgIE5UQi9tc2k6IFVzZSBpcnFfaGFzX2Fj dGlvbigpCiAgICAgIFBDSTogeGlsaW54LW53bDogVXNlIGlycV9kYXRhX2dldF9pcnFfY2hpcF9k YXRhKCkKICAgICAgUENJOiBtb2JpdmVpbDogVXNlIGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRh KCkKICAgICAgbmV0L21seDQ6IFJlcGxhY2UgaXJxX3RvX2Rlc2MoKSBhYnVzZQogICAgICBuZXQv bWx4NDogVXNlIGVmZmVjdGl2ZSBpbnRlcnJ1cHQgYWZmaW5pdHkKICAgICAgbmV0L21seDU6IFJl cGxhY2UgaXJxX3RvX2Rlc2MoKSBhYnVzZQogICAgICBuZXQvbWx4NTogVXNlIGVmZmVjdGl2ZSBp bnRlcnJ1cHQgYWZmaW5pdHkKICAgICAgeGVuL2V2ZW50czogUmVtb3ZlIHVudXNlZCBiaW5kX2V2 dGNobl90b19pcnFfbGF0ZWVvaSgpCiAgICAgIHhlbi9ldmVudHM6IFJlbW92ZSBkaXNmdW5jdCBh ZmZpbml0eSBzcHJlYWRpbmcKICAgICAgeGVuL2V2ZW50czogVXNlIGltbWVkaWF0ZSBhZmZpbml0 eSBzZXR0aW5nCiAgICAgIHhlbi9ldmVudHM6IE9ubHkgZm9yY2UgYWZmaW5pdHkgbWFzayBmb3Ig cGVyY3B1IGludGVycnVwdHMKICAgICAgeGVuL2V2ZW50czogUmVkdWNlIGlycV9pbmZvOjogU3B1 cmlvdXNfY250IHN0b3JhZ2Ugc2l6ZQogICAgICB4ZW4vZXZlbnRzOiBJbXBsZW1lbnQgaXJxIGRp c3RyaWJ1dGlvbgogICAgICBnZW5pcnE6IFJlc3RyaWN0IGV4cG9ydCBvZiBpcnFfdG9fZGVzYygp CgoKIGFyY2gvYWxwaGEva2VybmVsL3N5c19qZW5zZW4uYyAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBhcmNoL2FybS9rZXJuZWwvc21wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogYXJjaC9hcm02NC9rZXJuZWwvc21wLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGFyY2gvcGFyaXNjL2tlcm5lbC9pcnEuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA3ICstCiBhcmNoL3MzOTAva2VybmVsL2lycS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC94ODYva2VybmVsL3RvcG9sb2d5LmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9scGVfYXVkaW8uYyAgICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYyAgICAgICAgICAgICAgICAgICAgfCAgMzQgKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wbXUuYyAgICAgICAgICAgICAgICAgICAgfCAgMTkgKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BtdS5oICAgICAgICAgICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL21mZC9h Yjg1MDAtZGVidWdmcy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9jcS5jICAgICAgICAgfCAgIDggKy0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYyAgICAgICAgIHwgICA2ICstCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCAgICAgICB8ICAgMyAr LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggICAgICAgfCAg IDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMg IHwgICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhy eC5jICB8ICAgNiArLQogZHJpdmVycy9udGIvbXNpLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKy0KIC4uLi9wY2kvY29udHJvbGxlci9tb2JpdmVpbC9wY2llLW1vYml2 ZWlsLWhvc3QuYyAgIHwgICA4ICstCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54 LW53bC5jICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3Ry bC1ub21hZGlrLmMgICAgICAgICAgfCAgMTEgKy0KIGRyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNf YmFzZS5jICAgICAgICAgICAgICAgICAgIHwgMTgyICsrKysrKysrKysrKystLS0tLS0tLQogZHJp dmVycy94ZW4vZXZ0Y2huLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0t LQogaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogaW5jbHVkZS9saW51eC9pcnEuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDcgKwogaW5jbHVkZS9saW51eC9pcnFkZXNjLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKystLS0KIGluY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAxIC0KIGtlcm5lbC9pcnEvaXJxZGVzYy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQ1ICsrKy0tCiBrZXJuZWwvaXJxL21hbmFnZS5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNyArKysrKwoga2VybmVsL2lycS9wcm9jLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIDMwIGZpbGVzIGNoYW5nZWQsIDI4 MSBpbnNlcnRpb25zKCspLCAyMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBo YS9rZXJuZWwvc3lzX2plbnNlbi5jIGIvYXJjaC9hbHBoYS9rZXJuZWwvc3lzX2plbnNlbi5jCmlu ZGV4IDBhMmFiNmNiMThkYi4uZTVkODcwZmYyMjVmIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2tl cm5lbC9zeXNfamVuc2VuLmMKKysrIGIvYXJjaC9hbHBoYS9rZXJuZWwvc3lzX2plbnNlbi5jCkBA IC03LDcgKzcsNyBAQAogICoKICAqIENvZGUgc3VwcG9ydGluZyB0aGUgSmVuc2VuLgogICovCi0K KyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4K ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9rZXJuZWwvc21wLmMgYi9hcmNoL2FybS9rZXJuZWwvc21wLmMKaW5kZXgg NDgwOTljNmUxZTRhLi5lNjZjNDZhYmE1YjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9z bXAuYworKysgYi9hcmNoL2FybS9rZXJuZWwvc21wLmMKQEAgLTU1MCw3ICs1NTAsNyBAQCB2b2lk IHNob3dfaXBpX2xpc3Qoc3RydWN0IHNlcV9maWxlICpwLCBpbnQgcHJlYykKIAkJc2VxX3ByaW50 ZihwLCAiJSpzJXU6ICIsIHByZWMgLSAxLCAiSVBJIiwgaSk7CiAKIAkJZm9yX2VhY2hfb25saW5l X2NwdShjcHUpCi0JCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGtzdGF0X2lycXNfY3B1KGlycSwg Y3B1KSk7CisJCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGlycV9kZXNjX2tzdGF0X2NwdShpcGlf ZGVzY1tpXSwgY3B1KSk7CiAKIAkJc2VxX3ByaW50ZihwLCAiICVzXG4iLCBpcGlfdHlwZXNbaV0p OwogCX0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3NtcC5jIGIvYXJjaC9hcm02NC9r ZXJuZWwvc21wLmMKaW5kZXggMThlOTcyN2QzZjY0Li5iMmU1ZGMxMWFiZWQgMTAwNjQ0Ci0tLSBh L2FyY2gvYXJtNjQva2VybmVsL3NtcC5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3NtcC5jCkBA IC04MTAsNyArODEwLDcgQEAgaW50IGFyY2hfc2hvd19pbnRlcnJ1cHRzKHN0cnVjdCBzZXFfZmls ZSAqcCwgaW50IHByZWMpCiAJCXNlcV9wcmludGYocCwgIiUqcyV1OiVzIiwgcHJlYyAtIDEsICJJ UEkiLCBpLAogCQkJICAgcHJlYyA+PSA0ID8gIiAiIDogIiIpOwogCQlmb3JfZWFjaF9vbmxpbmVf Y3B1KGNwdSkKLQkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwga3N0YXRfaXJxc19jcHUoaXJxLCBj cHUpKTsKKwkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgaXJxX2Rlc2Nfa3N0YXRfY3B1KGlwaV9k ZXNjW2ldLCBjcHUpKTsKIAkJc2VxX3ByaW50ZihwLCAiICAgICAgJXNcbiIsIGlwaV90eXBlc1tp XSk7CiAJfQogCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvaXJxLmMgYi9hcmNoL3Bh cmlzYy9rZXJuZWwvaXJxLmMKaW5kZXggZTc2Yzg2NjE5OTQ5Li40OWNkNmQyY2FlZmIgMTAwNjQ0 Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9pcnEuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwv aXJxLmMKQEAgLTIxNiwxMiArMjE2LDkgQEAgaW50IHNob3dfaW50ZXJydXB0cyhzdHJ1Y3Qgc2Vx X2ZpbGUgKnAsIHZvaWQgKnYpCiAJCWlmICghYWN0aW9uKQogCQkJZ290byBza2lwOwogCQlzZXFf cHJpbnRmKHAsICIlM2Q6ICIsIGkpOwotI2lmZGVmIENPTkZJR19TTVAKKwogCQlmb3JfZWFjaF9v bmxpbmVfY3B1KGopCi0JCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGtzdGF0X2lycXNfY3B1KGks IGopKTsKLSNlbHNlCi0JCXNlcV9wcmludGYocCwgIiUxMHUgIiwga3N0YXRfaXJxcyhpKSk7Ci0j ZW5kaWYKKwkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgaXJxX2Rlc2Nfa3N0YXRfY3B1KGRlc2Ms IGopKTsKIAogCQlzZXFfcHJpbnRmKHAsICIgJTE0cyIsIGlycV9kZXNjX2dldF9jaGlwKGRlc2Mp LT5uYW1lKTsKICNpZm5kZWYgUEFSSVNDX0lSUV9DUjE2X0NPVU5UUwpkaWZmIC0tZ2l0IGEvYXJj aC9zMzkwL2tlcm5lbC9pcnEuYyBiL2FyY2gvczM5MC9rZXJuZWwvaXJxLmMKaW5kZXggMzUxNDQy MGYwMjU5Li5mOGE4Yjk0MjhhZTIgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvaXJxLmMK KysrIGIvYXJjaC9zMzkwL2tlcm5lbC9pcnEuYwpAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyB2 b2lkIHNob3dfbXNpX2ludGVycnVwdChzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIGludCBpcnEpCiAJcmF3 X3NwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAJc2VxX3ByaW50ZihwLCAi JTNkOiAiLCBpcnEpOwogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQotCQlzZXFfcHJpbnRmKHAs ICIlMTB1ICIsIGtzdGF0X2lycXNfY3B1KGlycSwgY3B1KSk7CisJCXNlcV9wcmludGYocCwgIiUx MHUgIiwgaXJxX2Rlc2Nfa3N0YXRfY3B1KGRlc2MsIGNwdSkpOwogCiAJaWYgKGRlc2MtPmlycV9k YXRhLmNoaXApCiAJCXNlcV9wcmludGYocCwgIiAlOHMiLCBkZXNjLT5pcnFfZGF0YS5jaGlwLT5u YW1lKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90b3BvbG9neS5jIGIvYXJjaC94ODYv a2VybmVsL3RvcG9sb2d5LmMKaW5kZXggMGEyZWM4MDFiNjNmLi5mNTQ3N2VhYjU2OTIgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90 b3BvbG9neS5jCkBAIC0yNSw2ICsyNSw3IEBACiAgKgogICogU2VuZCBmZWVkYmFjayB0byA8Y29s cGF0Y2hAdXMuaWJtLmNvbT4KICAqLworI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2lu Y2x1ZGUgPGxpbnV4L25vZGVtYXNrLmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5j bHVkZSA8bGludXgvbW16b25lLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2xwZV9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9scGVfYXVkaW8uYwppbmRleCBhZDVjYzEzMDM3YWUuLjFjOTM5ZjljOWJjOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9scGVfYXVkaW8uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xwZV9hdWRpby5jCkBAIC0yOTcs MTMgKzI5Nyw5IEBAIGludCBpbnRlbF9scGVfYXVkaW9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHZvaWQgaW50ZWxfbHBlX2F1ZGlvX3RlYXJkb3duKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7 Ci0KIAlpZiAoIUhBU19MUEVfQVVESU8oZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQlkZXNjID0g aXJxX3RvX2Rlc2MoZGV2X3ByaXYtPmxwZV9hdWRpby5pcnEpOwotCiAJbHBlX2F1ZGlvX3BsYXRk ZXZfZGVzdHJveShkZXZfcHJpdik7CiAKIAlpcnFfZnJlZV9kZXNjKGRldl9wcml2LT5scGVfYXVk aW8uaXJxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDc1OWY1MjNjNmE2Yi4uZTc0MWNk N2Y3ZmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTYwLDYgKzYwLDI0IEBACiAgKiBh bmQgcmVsYXRlZCBmaWxlcywgYnV0IHRoYXQgd2lsbCBiZSBkZXNjcmliZWQgaW4gc2VwYXJhdGUg Y2hhcHRlcnMuCiAgKi8KIAorLyoKKyAqIEludGVycnVwdCBzdGF0aXN0aWMgZm9yIFBNVS4gSW5j cmVtZW50cyB0aGUgY291bnRlciBvbmx5IGlmIHRoZQorICogaW50ZXJydXB0IG9yaWdpbmF0ZWQg ZnJvbSB0aGUgdGhlIEdQVSBzbyBpbnRlcnJ1cHRzIGZyb20gYSBkZXZpY2Ugd2hpY2gKKyAqIHNo YXJlcyB0aGUgaW50ZXJydXB0IGxpbmUgYXJlIG5vdCBhY2NvdW50ZWQuCisgKi8KK3N0YXRpYyBp bmxpbmUgdm9pZCBwbXVfaXJxX3N0YXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAor CQkJCSBpcnFyZXR1cm5fdCByZXMpCit7CisJaWYgKHVubGlrZWx5KHJlcyAhPSBJUlFfSEFORExF RCkpCisJCXJldHVybjsKKworCS8qCisJICogQSBjbGV2ZXIgY29tcGlsZXIgdHJhbnNsYXRlcyB0 aGF0IGludG8gSU5DLiBBIG5vdCBzbyBjbGV2ZXIgb25lCisJICogc2hvdWxkIGF0IGxlYXN0IHBy ZXZlbnQgc3RvcmUgdGVhcmluZy4KKwkgKi8KKwlXUklURV9PTkNFKGk5MTUtPnBtdS5pcnFfY291 bnQsIGk5MTUtPnBtdS5pcnFfY291bnQgKyAxKTsKK30KKwogdHlwZWRlZiBib29sICgqbG9uZ19w dWxzZV9kZXRlY3RfZnVuYykoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCk7CiAKIHN0YXRpYyBj b25zdCB1MzIgaHBkX2lsa1tIUERfTlVNX1BJTlNdID0gewpAQCAtMTU5OSw2ICsxNjE3LDggQEAg c3RhdGljIGlycXJldHVybl90IHZhbGxleXZpZXdfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAq YXJnKQogCQl2YWxsZXl2aWV3X3BpcGVzdGF0X2lycV9oYW5kbGVyKGRldl9wcml2LCBwaXBlX3N0 YXRzKTsKIAl9IHdoaWxlICgwKTsKIAorCXBtdV9pcnFfc3RhdHMoZGV2X3ByaXYsIHJldCk7CisK IAllbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cygmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJ cmV0dXJuIHJldDsKQEAgLTE2NzYsNiArMTY5Niw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjaGVy cnl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAkJdmFsbGV5dmlld19waXBl c3RhdF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcGlwZV9zdGF0cyk7CiAJfSB3aGlsZSAoMCk7CiAK KwlwbXVfaXJxX3N0YXRzKGRldl9wcml2LCByZXQpOworCiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fz c2VydHMoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXJldHVybiByZXQ7CkBAIC0yMTAzLDYg KzIxMjUsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaWxrX2lycV9oYW5kbGVyKGludCBpcnEsIHZv aWQgKmFyZykKIAlpZiAoc2RlX2llcikKIAkJcmF3X3JlZ193cml0ZShyZWdzLCBTREVJRVIsIHNk ZV9pZXIpOwogCisJcG11X2lycV9zdGF0cyhpOTE1LCByZXQpOworCiAJLyogSVJRcyBhcmUgc3lu Y2VkIGR1cmluZyBydW50aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICov CiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCkBAIC0y NDE5LDYgKzI0NDMsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQg aXJxLCB2b2lkICphcmcpCiAKIAlnZW44X21hc3Rlcl9pbnRyX2VuYWJsZShyZWdzKTsKIAorCXBt dV9pcnFfc3RhdHMoZGV2X3ByaXYsIElSUV9IQU5ETEVEKTsKKwogCXJldHVybiBJUlFfSEFORExF RDsKIH0KIApAQCAtMjUxNCw2ICsyNTQwLDggQEAgX19nZW4xMV9pcnFfaGFuZGxlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCiAKIAlnZW4xMV9ndV9taXNjX2lycV9oYW5k bGVyKGd0LCBndV9taXNjX2lpcik7CiAKKwlwbXVfaXJxX3N0YXRzKGk5MTUsIElSUV9IQU5ETEVE KTsKKwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMzY4OCw2ICszNzE2LDggQEAgc3Rh dGljIGlycXJldHVybl90IGk4eHhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlp OHh4X3BpcGVzdGF0X2lycV9oYW5kbGVyKGRldl9wcml2LCBpaXIsIHBpcGVfc3RhdHMpOwogCX0g d2hpbGUgKDApOwogCisJcG11X2lycV9zdGF0cyhkZXZfcHJpdiwgcmV0KTsKKwogCWVuYWJsZV9y cG1fd2FrZXJlZl9hc3NlcnRzKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAKIAlyZXR1cm4gcmV0 OwpAQCAtMzc5Niw2ICszODI2LDggQEAgc3RhdGljIGlycXJldHVybl90IGk5MTVfaXJxX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlpOTE1X3BpcGVzdGF0X2lycV9oYW5kbGVyKGRldl9w cml2LCBpaXIsIHBpcGVfc3RhdHMpOwogCX0gd2hpbGUgKDApOwogCisJcG11X2lycV9zdGF0cyhk ZXZfcHJpdiwgcmV0KTsKKwogCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKCZkZXZfcHJpdi0+ cnVudGltZV9wbSk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtMzk0MSw2ICszOTczLDggQEAgc3RhdGlj IGlycXJldHVybl90IGk5NjVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlpOTY1 X3BpcGVzdGF0X2lycV9oYW5kbGVyKGRldl9wcml2LCBpaXIsIHBpcGVfc3RhdHMpOwogCX0gd2hp bGUgKDApOwogCisJcG11X2lycV9zdGF0cyhkZXZfcHJpdiwgSVJRX0hBTkRMRUQpOworCiAJZW5h YmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXJldHVy biByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYwppbmRleCA2OWMwZmEyMGViYTEuLjNiODhjYjAx YjRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jCkBAIC00LDcgKzQsNiBAQAogICogQ29weXJp Z2h0IMKpIDIwMTctMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgogICovCiAKLSNpbmNsdWRlIDxsaW51 eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAKICNpbmNsdWRlICJndC9p bnRlbF9lbmdpbmUuaCIKQEAgLTQyMywyMiArNDIyLDYgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9y ZXN0YXJ0IGk5MTVfc2FtcGxlKHN0cnVjdCBocnRpbWVyICpocnRpbWVyKQogCXJldHVybiBIUlRJ TUVSX1JFU1RBUlQ7CiB9CiAKLXN0YXRpYyB1NjQgY291bnRfaW50ZXJydXB0cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQkvKiBvcGVuLWNvZGVkIGtzdGF0X2lycXMoKSAqLwot CXN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGk5MTUtPmRybS5wZGV2LT5pcnEp OwotCXU2NCBzdW0gPSAwOwotCWludCBjcHU7Ci0KLQlpZiAoIWRlc2MgfHwgIWRlc2MtPmtzdGF0 X2lycXMpCi0JCXJldHVybiAwOwotCi0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkKLQkJc3Vt ICs9ICpwZXJfY3B1X3B0cihkZXNjLT5rc3RhdF9pcnFzLCBjcHUpOwotCi0JcmV0dXJuIHN1bTsK LX0KLQogc3RhdGljIHZvaWQgaTkxNV9wbXVfZXZlbnRfZGVzdHJveShzdHJ1Y3QgcGVyZl9ldmVu dCAqZXZlbnQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQpAQCAtNTgxLDcg KzU2NCw3IEBAIHN0YXRpYyB1NjQgX19pOTE1X3BtdV9ldmVudF9yZWFkKHN0cnVjdCBwZXJmX2V2 ZW50ICpldmVudCkKIAkJCQkgICBVU0VDX1BFUl9TRUMgLyogdG8gTUh6ICovKTsKIAkJCWJyZWFr OwogCQljYXNlIEk5MTVfUE1VX0lOVEVSUlVQVFM6Ci0JCQl2YWwgPSBjb3VudF9pbnRlcnJ1cHRz KGk5MTUpOworCQkJdmFsID0gUkVBRF9PTkNFKHBtdS0+aXJxX2NvdW50KTsKIAkJCWJyZWFrOwog CQljYXNlIEk5MTVfUE1VX1JDNl9SRVNJREVOQ1k6CiAJCQl2YWwgPSBnZXRfcmM2KCZpOTE1LT5n dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuaAppbmRleCA5NDFmMGMxNDAzN2MuLjllNDljNjQ5MDc4 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5oCkBAIC0xMDcsNiArMTA3LDE0IEBAIHN0cnVjdCBp OTE1X3BtdSB7CiAJICogQHNsZWVwX2xhc3Q6IExhc3QgdGltZSBHVCBwYXJrZWQgZm9yIFJDNiBl c3RpbWF0aW9uLgogCSAqLwogCWt0aW1lX3Qgc2xlZXBfbGFzdDsKKwkvKioKKwkgKiBAaXJxX2Nv dW50OiBOdW1iZXIgb2YgaW50ZXJydXB0cworCSAqCisJICogSW50ZW50aW9uYWxseSB1bnNpZ25l ZCBsb25nIHRvIGF2b2lkIGF0b21pY3Mgb3IgaGV1cmlzdGljcyBvbiAzMmJpdC4KKwkgKiA0ZTkg aW50ZXJydXB0cyBhcmUgYSBsb3QgYW5kIHBvc3Rwcm9jZXNzaW5nIGNhbiByZWFsbHkgZGVhbCB3 aXRoIGFuCisJICogb2NjYXNpb25hbCB3cmFwYXJvdW5kIGVhc2lseS4gSXQncyAzMmJpdCBhZnRl ciBhbGwuCisJICovCisJdW5zaWduZWQgbG9uZyBpcnFfY291bnQ7CiAJLyoqCiAJICogQGV2ZW50 c19hdHRyX2dyb3VwOiBEZXZpY2UgZXZlbnRzIGF0dHJpYnV0ZSBncm91cC4KIAkgKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWZkL2FiODUwMC1kZWJ1Z2ZzLmMgYi9kcml2ZXJzL21mZC9hYjg1MDAt ZGVidWdmcy5jCmluZGV4IDZkMWJmN2MzY2EzYi4uYTMyMDM5MzY2YTkzIDEwMDY0NAotLS0gYS9k cml2ZXJzL21mZC9hYjg1MDAtZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvbWZkL2FiODUwMC1kZWJ1 Z2ZzLmMKQEAgLTE1MTMsMjQgKzE1MTMsMTQgQEAgc3RhdGljIGludCBhYjg1MDBfaW50ZXJydXB0 c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcCkKIHsKIAlpbnQgbGluZTsKIAotCXNl cV9wdXRzKHMsICJuYW1lOiBudW1iZXI6ICBudW1iZXIgb2Y6IHdha2U6XG4iKTsKKwlzZXFfcHV0 cyhzLCAibmFtZTogbnVtYmVyOiBpcnE6IG51bWJlciBvZjogd2FrZTpcbiIpOwogCiAJZm9yIChs aW5lID0gMDsgbGluZSA8IG51bV9pbnRlcnJ1cHRfbGluZXM7IGxpbmUrKykgewotCQlzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhsaW5lICsgaXJxX2ZpcnN0KTsKLQotCQlzZXFf cHJpbnRmKHMsICIlM2k6ICAlNmkgJTRpIiwKKwkJc2VxX3ByaW50ZihzLCAiJTNpOiAgJTRpICU2 aSAlNGlcbiIsCiAJCQkgICBsaW5lLAorCQkJICAgbGluZSArIGlycV9maXJzdCwKIAkJCSAgIG51 bV9pbnRlcnJ1cHRzW2xpbmVdLAogCQkJICAgbnVtX3dha2VfaW50ZXJydXB0c1tsaW5lXSk7Ci0K LQkJaWYgKGRlc2MgJiYgZGVzYy0+bmFtZSkKLQkJCXNlcV9wcmludGYocywgIi0lLThzIiwgZGVz Yy0+bmFtZSk7Ci0JCWlmIChkZXNjICYmIGRlc2MtPmFjdGlvbikgewotCQkJc3RydWN0IGlycWFj dGlvbiAqYWN0aW9uID0gZGVzYy0+YWN0aW9uOwotCi0JCQlzZXFfcHJpbnRmKHMsICIgICVzIiwg YWN0aW9uLT5uYW1lKTsKLQkJCXdoaWxlICgoYWN0aW9uID0gYWN0aW9uLT5uZXh0KSAhPSBOVUxM KQotCQkJCXNlcV9wcmludGYocywgIiwgJXMiLCBhY3Rpb24tPm5hbWUpOwogCQl9CiAJCXNlcV9w dXRjKHMsICdcbicpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvZW5fY3EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5f Y3EuYwppbmRleCA3NGQ0NjY3OTZiN2MuLmQ1ZmM3MmIxYTM2ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9jcS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fY3EuYwpAQCAtOTAsNyArOTAsNyBAQCBpbnQgbWx4NF9l bl9hY3RpdmF0ZV9jcShzdHJ1Y3QgbWx4NF9lbl9wcml2ICpwcml2LCBzdHJ1Y3QgbWx4NF9lbl9j cSAqY3EsCiAJCQlpbnQgY3FfaWR4KQogewogCXN0cnVjdCBtbHg0X2VuX2RldiAqbWRldiA9IHBy aXYtPm1kZXY7Ci0JaW50IGVyciA9IDA7CisJaW50IGlycSwgZXJyID0gMDsKIAlpbnQgdGltZXN0 YW1wX2VuID0gMDsKIAlib29sIGFzc2lnbmVkX2VxID0gZmFsc2U7CiAKQEAgLTExNiwxMCArMTE2 LDggQEAgaW50IG1seDRfZW5fYWN0aXZhdGVfY3Eoc3RydWN0IG1seDRfZW5fcHJpdiAqcHJpdiwg c3RydWN0IG1seDRfZW5fY3EgKmNxLAogCiAJCQlhc3NpZ25lZF9lcSA9IHRydWU7CiAJCX0KLQot CQljcS0+aXJxX2Rlc2MgPQotCQkJaXJxX3RvX2Rlc2MobWx4NF9lcV9nZXRfaXJxKG1kZXYtPmRl diwKLQkJCQkJCSAgICBjcS0+dmVjdG9yKSk7CisJCWlycSA9IG1seDRfZXFfZ2V0X2lycShtZGV2 LT5kZXYsIGNxLT52ZWN0b3IpOworCQljcS0+YWZmX21hc2sgPSBpcnFfZ2V0X2VmZmVjdGl2ZV9h ZmZpbml0eV9tYXNrKGlycSk7CiAJfSBlbHNlIHsKIAkJLyogRm9yIFRYIHdlIHVzZSB0aGUgc2Ft ZSBpcnEgcGVyCiAJCXJpbmcgd2UgYXNzaWduZWQgZm9yIHRoZSBSWCAgICAqLwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCmluZGV4IDUwMmQxYjk3ODU1Yy4uMzk5 NDU5YWRlZTdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L2VuX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5j CkBAIC05NTksOCArOTU5LDYgQEAgaW50IG1seDRfZW5fcG9sbF9yeF9jcShzdHJ1Y3QgbmFwaV9z dHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAKIAkvKiBJZiB3ZSB1c2VkIHVwIGFsbCB0aGUgcXVv dGEgLSB3ZSdyZSBwcm9iYWJseSBub3QgZG9uZSB5ZXQuLi4gKi8KIAlpZiAoZG9uZSA9PSBidWRn ZXQgfHwgIWNsZWFuX2NvbXBsZXRlKSB7Ci0JCWNvbnN0IHN0cnVjdCBjcHVtYXNrICphZmY7Ci0J CXN0cnVjdCBpcnFfZGF0YSAqaWRhdGE7CiAJCWludCBjcHVfY3VycjsKIAogCQkvKiBpbiBjYXNl IHdlIGdvdCBoZXJlIGJlY2F1c2Ugb2YgIWNsZWFuX2NvbXBsZXRlICovCkBAIC05NjksMTAgKzk2 Nyw4IEBAIGludCBtbHg0X2VuX3BvbGxfcnhfY3Eoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBp bnQgYnVkZ2V0KQogCQlJTkNfUEVSRl9DT1VOVEVSKHByaXYtPnBzdGF0cy5uYXBpX3F1b3RhKTsK IAogCQljcHVfY3VyciA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQkJaWRhdGEgPSBpcnFfZGVzY19n ZXRfaXJxX2RhdGEoY3EtPmlycV9kZXNjKTsKLQkJYWZmID0gaXJxX2RhdGFfZ2V0X2FmZmluaXR5 X21hc2soaWRhdGEpOwogCi0JCWlmIChsaWtlbHkoY3B1bWFza190ZXN0X2NwdShjcHVfY3Vyciwg YWZmKSkpCisJCWlmIChsaWtlbHkoY3B1bWFza190ZXN0X2NwdShjcHVfY3VyciwgY3EtPmFmZl9t YXNrKSkpCiAJCQlyZXR1cm4gYnVkZ2V0OwogCiAJCS8qIEN1cnJlbnQgY3B1IGlzIG5vdCBhY2Nv cmRpbmcgdG8gc21wX2lycV9hZmZpbml0eSAtCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvbWx4NF9lbi5oCmluZGV4IGE0NmVmZTM3Y2ZhOS4uNDhkNzFlMGM3MWU0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaAorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaApAQCAtNDYsNiAr NDYsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSA8bGludXgvY3B1X3JtYXAuaD4KICNpbmNsdWRlIDxs aW51eC9wdHBfY2xvY2tfa2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVk ZSA8bmV0L3hkcC5oPgogCiAjaW5jbHVkZSA8bGludXgvbWx4NC9kZXZpY2UuaD4KQEAgLTM4MCw3 ICszODEsNyBAQCBzdHJ1Y3QgbWx4NF9lbl9jcSB7CiAJc3RydWN0IG1seDRfY3FlICpidWY7CiAj ZGVmaW5lIE1MWDRfRU5fT1BDT0RFX0VSUk9SCTB4MWUKIAotCXN0cnVjdCBpcnFfZGVzYyAqaXJx X2Rlc2M7CisJY29uc3Qgc3RydWN0IGNwdW1hc2sgKmFmZl9tYXNrOwogfTsKIAogc3RydWN0IG1s eDRfZW5fcG9ydF9wcm9maWxlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuLmgKaW5kZXggMmYwNWIwZjlkZTAxLi40NWZkNTg1ZDEwMWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCkBAIC02NjksNyArNjY5LDcg QEAgc3RydWN0IG1seDVlX2NoYW5uZWwgewogCXNwaW5sb2NrX3QgICAgICAgICAgICAgICAgIGFz eW5jX2ljb3NxX2xvY2s7CiAKIAkvKiBkYXRhIHBhdGggLSBhY2Nlc3NlZCBwZXIgbmFwaSBwb2xs ICovCi0Jc3RydWN0IGlycV9kZXNjICppcnFfZGVzYzsKKwljb25zdCBzdHJ1Y3QgY3B1bWFzawkg ICphZmZfbWFzazsKIAlzdHJ1Y3QgbWx4NWVfY2hfc3RhdHMgICAgICpzdGF0czsKIAogCS8qIGNv bnRyb2wgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fbWFpbi5jCmluZGV4IGViY2U5NzkyMWUwMy4uOWJjZjczZjQxN2QwIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTE5OTgs NyArMTk5OCw3IEBAIHN0YXRpYyBpbnQgbWx4NWVfb3Blbl9jaGFubmVsKHN0cnVjdCBtbHg1ZV9w cml2ICpwcml2LCBpbnQgaXgsCiAJYy0+bnVtX3RjICAgPSBwYXJhbXMtPm51bV90YzsKIAljLT54 ZHAgICAgICA9ICEhcGFyYW1zLT54ZHBfcHJvZzsKIAljLT5zdGF0cyAgICA9ICZwcml2LT5jaGFu bmVsX3N0YXRzW2l4XS5jaDsKLQljLT5pcnFfZGVzYyA9IGlycV90b19kZXNjKGlycSk7CisJYy0+ YWZmX21hc2sgPSBpcnFfZ2V0X2VmZmVjdGl2ZV9hZmZpbml0eV9tYXNrKGlycSk7CiAJYy0+bGFn X3BvcnQgPSBtbHg1ZV9lbnVtZXJhdGVfbGFnX3BvcnQocHJpdi0+bWRldiwgaXgpOwogCiAJbmV0 aWZfbmFwaV9hZGQobmV0ZGV2LCAmYy0+bmFwaSwgbWx4NWVfbmFwaV9wb2xsLCA2NCk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYwppbmRl eCBkNTg2ODY3MGY4YTUuLjc5M2UzMTNkY2I4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jCkBAIC00MCwxMiArNDAsOCBAQAogc3Rh dGljIGlubGluZSBib29sIG1seDVlX2NoYW5uZWxfbm9fYWZmaW5pdHlfY2hhbmdlKHN0cnVjdCBt bHg1ZV9jaGFubmVsICpjKQogewogCWludCBjdXJyZW50X2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQo KTsKLQljb25zdCBzdHJ1Y3QgY3B1bWFzayAqYWZmOwotCXN0cnVjdCBpcnFfZGF0YSAqaWRhdGE7 CiAKLQlpZGF0YSA9IGlycV9kZXNjX2dldF9pcnFfZGF0YShjLT5pcnFfZGVzYyk7Ci0JYWZmID0g aXJxX2RhdGFfZ2V0X2FmZmluaXR5X21hc2soaWRhdGEpOwotCXJldHVybiBjcHVtYXNrX3Rlc3Rf Y3B1KGN1cnJlbnRfY3B1LCBhZmYpOworCXJldHVybiBjcHVtYXNrX3Rlc3RfY3B1KGN1cnJlbnRf Y3B1LCBjLT5hZmZfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkIG1seDVlX2hhbmRsZV90eF9kaW0o c3RydWN0IG1seDVlX3R4cXNxICpzcSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnRiL21zaS5jIGIv ZHJpdmVycy9udGIvbXNpLmMKaW5kZXggMGE1ZTg4NGE5MjBjLi4zZjA1Y2ZiYzczYWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbnRiL21zaS5jCisrKyBiL2RyaXZlcnMvbnRiL21zaS5jCkBAIC0yODIs MTUgKzI4MiwxMyBAQCBpbnQgbnRibV9tc2lfcmVxdWVzdF90aHJlYWRlZF9pcnEoc3RydWN0IG50 Yl9kZXYgKm50YiwgaXJxX2hhbmRsZXJfdCBoYW5kbGVyLAogCQkJCSAgc3RydWN0IG50Yl9tc2lf ZGVzYyAqbXNpX2Rlc2MpCiB7CiAJc3RydWN0IG1zaV9kZXNjICplbnRyeTsKLQlzdHJ1Y3QgaXJx X2Rlc2MgKmRlc2M7CiAJaW50IHJldDsKIAogCWlmICghbnRiLT5tc2kpCiAJCXJldHVybiAtRUlO VkFMOwogCiAJZm9yX2VhY2hfcGNpX21zaV9lbnRyeShlbnRyeSwgbnRiLT5wZGV2KSB7Ci0JCWRl c2MgPSBpcnFfdG9fZGVzYyhlbnRyeS0+aXJxKTsKLQkJaWYgKGRlc2MtPmFjdGlvbikKKwkJaWYg KGlycV9oYXNfYWN0aW9uKGVudHJ5LT5pcnEpKQogCQkJY29udGludWU7CiAKIAkJcmV0ID0gZGV2 bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmbnRiLT5kZXYsIGVudHJ5LT5pcnEsIGhhbmRsZXIsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwt aG9zdC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9tb2JpdmVpbC9wY2llLW1vYml2ZWlsLWhv c3QuYwppbmRleCBhMjYzMmQwMmNlOGYuLmM2MzdkZTNhMzg5YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9tb2JpdmVpbC9wY2llLW1vYml2ZWlsLWhvc3QuYworKysgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jCkBAIC0zMDYs MTMgKzMwNiwxMSBAQCBpbnQgbW9iaXZlaWxfaG9zdF9pbml0KHN0cnVjdCBtb2JpdmVpbF9wY2ll ICpwY2llLCBib29sIHJlaW5pdCkKIAogc3RhdGljIHZvaWQgbW9iaXZlaWxfbWFza19pbnR4X2ly cShzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCiB7Ci0Jc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJx X3RvX2Rlc2MoZGF0YS0+aXJxKTsKLQlzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZTsKKwlzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEp OwogCXN0cnVjdCBtb2JpdmVpbF9yb290X3BvcnQgKnJwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAJdTMyIG1hc2ssIHNoaWZ0ZWRfdmFsOwogCi0JcGNpZSA9IGlycV9kZXNjX2dldF9jaGlwX2Rh dGEoZGVzYyk7CiAJcnAgPSAmcGNpZS0+cnA7CiAJbWFzayA9IDEgPDwgKChkYXRhLT5od2lycSAr IFBBQl9JTlRYX1NUQVJUKSAtIDEpOwogCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcnAtPmludHhf bWFza19sb2NrLCBmbGFncyk7CkBAIC0zMjQsMTMgKzMyMiwxMSBAQCBzdGF0aWMgdm9pZCBtb2Jp dmVpbF9tYXNrX2ludHhfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKIAogc3RhdGljIHZvaWQg bW9iaXZlaWxfdW5tYXNrX2ludHhfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKIHsKLQlzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhkYXRhLT5pcnEpOwotCXN0cnVjdCBtb2Jp dmVpbF9wY2llICpwY2llOworCXN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7CiAJc3RydWN0IG1vYml2ZWlsX3Jvb3RfcG9ydCAqcnA7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgc2hpZnRlZF92YWwsIG1hc2s7CiAKLQlwY2ll ID0gaXJxX2Rlc2NfZ2V0X2NoaXBfZGF0YShkZXNjKTsKIAlycCA9ICZwY2llLT5ycDsKIAltYXNr ID0gMSA8PCAoKGRhdGEtPmh3aXJxICsgUEFCX0lOVFhfU1RBUlQpIC0gMSk7CiAJcmF3X3NwaW5f bG9ja19pcnFzYXZlKCZycC0+aW50eF9tYXNrX2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaWUteGlsaW54LW53bC5jCmluZGV4IGYzY2Y3ZDYxOTI0Zi4uMjIxMzVkZjc5ZDgz IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jCisr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMKQEAgLTM3OSwxMyAr Mzc5LDExIEBAIHN0YXRpYyB2b2lkIG53bF9wY2llX21zaV9oYW5kbGVyX2xvdyhzdHJ1Y3QgaXJx X2Rlc2MgKmRlc2MpCiAKIHN0YXRpYyB2b2lkIG53bF9tYXNrX2xlZ19pcnEoc3RydWN0IGlycV9k YXRhICpkYXRhKQogewotCXN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGRhdGEt PmlycSk7Ci0Jc3RydWN0IG53bF9wY2llICpwY2llOworCXN0cnVjdCBud2xfcGNpZSAqcGNpZSA9 IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAJdTMyIG1hc2s7CiAJdTMyIHZhbDsKIAotCXBjaWUgPSBpcnFfZGVzY19nZXRfY2hpcF9kYXRh KGRlc2MpOwogCW1hc2sgPSAxIDw8IChkYXRhLT5od2lycSAtIDEpOwogCXJhd19zcGluX2xvY2tf aXJxc2F2ZSgmcGNpZS0+bGVnX21hc2tfbG9jaywgZmxhZ3MpOwogCXZhbCA9IG53bF9icmlkZ2Vf cmVhZGwocGNpZSwgTVNHRl9MRUdfTUFTSyk7CkBAIC0zOTUsMTMgKzM5MywxMSBAQCBzdGF0aWMg dm9pZCBud2xfbWFza19sZWdfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKIAogc3RhdGljIHZv aWQgbndsX3VubWFza19sZWdfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkKIHsKLQlzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhkYXRhLT5pcnEpOwotCXN0cnVjdCBud2xfcGNp ZSAqcGNpZTsKKwlzdHJ1Y3QgbndsX3BjaWUgKnBjaWUgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBf ZGF0YShkYXRhKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXUzMiBtYXNrOwogCXUzMiB2YWw7 CiAKLQlwY2llID0gaXJxX2Rlc2NfZ2V0X2NoaXBfZGF0YShkZXNjKTsKIAltYXNrID0gMSA8PCAo ZGF0YS0+aHdpcnEgLSAxKTsKIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBjaWUtPmxlZ19tYXNr X2xvY2ssIGZsYWdzKTsKIAl2YWwgPSBud2xfYnJpZGdlX3JlYWRsKHBjaWUsIE1TR0ZfTEVHX01B U0spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1ub21hZGlr LmMgYi9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLW5vbWFkaWsuYwppbmRleCA2NTdl MzVhNzVkODQuLmQ0ZWExMDgwM2ZkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL25vbWFk aWsvcGluY3RybC1ub21hZGlrLmMKKysrIGIvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3Ry bC1ub21hZGlrLmMKQEAgLTk0OCw4ICs5NDgsOCBAQCBzdGF0aWMgdm9pZCBubWtfZ3Bpb19kYmdf c2hvd19vbmUoc3RydWN0IHNlcV9maWxlICpzLAogCQkJICAgKG1vZGUgPCAwKSA/ICJ1bmtub3du IiA6IG1vZGVzW21vZGVdKTsKIAl9IGVsc2UgewogCQlpbnQgaXJxID0gY2hpcC0+dG9faXJxKGNo aXAsIG9mZnNldCk7Ci0JCXN0cnVjdCBpcnFfZGVzYwkqZGVzYyA9IGlycV90b19kZXNjKGlycSk7 CiAJCWNvbnN0IGludCBwdWxsaWR4ID0gcHVsbCA/IDEgOiAwOworCQlib29sIHdha2U7CiAJCWlu dCB2YWw7CiAJCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHVsbHNbXSA9IHsKIAkJCSJub25l ICAgICAgICAiLApAQCAtOTY5LDggKzk2OSw5IEBAIHN0YXRpYyB2b2lkIG5ta19ncGlvX2RiZ19z aG93X29uZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsCiAJCSAqIFRoaXMgcmFjZXMgd2l0aCByZXF1ZXN0 X2lycSgpLCBzZXRfaXJxX3R5cGUoKSwKIAkJICogYW5kIHNldF9pcnFfd2FrZSgpIC4uLiBidXQg dGhvc2UgYXJlICJyYXJlIi4KIAkJICovCi0JCWlmIChpcnEgPiAwICYmIGRlc2MgJiYgZGVzYy0+ YWN0aW9uKSB7CisJCWlmIChpcnEgPiAwICYmIGlycV9oYXNfYWN0aW9uKGlycSkpIHsKIAkJCWNo YXIgKnRyaWdnZXI7CisJCQlib29sIHdha2U7CiAKIAkJCWlmIChubWtfY2hpcC0+ZWRnZV9yaXNp bmcgJiBCSVQob2Zmc2V0KSkKIAkJCQl0cmlnZ2VyID0gImVkZ2UtcmlzaW5nIjsKQEAgLTk3OSwx MCArOTgwLDEwIEBAIHN0YXRpYyB2b2lkIG5ta19ncGlvX2RiZ19zaG93X29uZShzdHJ1Y3Qgc2Vx X2ZpbGUgKnMsCiAJCQllbHNlCiAJCQkJdHJpZ2dlciA9ICJlZGdlLXVuZGVmaW5lZCI7CiAKKwkJ CXdha2UgPSAhIShubWtfY2hpcC0+cmVhbF93YWtlICYgQklUKG9mZnNldCkpOworCiAJCQlzZXFf cHJpbnRmKHMsICIgaXJxLSVkICVzJXMiLAotCQkJCSAgIGlycSwgdHJpZ2dlciwKLQkJCQkgICBp cnFkX2lzX3dha2V1cF9zZXQoJmRlc2MtPmlycV9kYXRhKQotCQkJCSAgID8gIiB3YWtldXAiIDog IiIpOworCQkJCSAgIGlycSwgdHJpZ2dlciwgd2FrZSA/ICIgd2FrZXVwIiA6ICIiKTsKIAkJfQog CX0KIAljbGtfZGlzYWJsZShubWtfY2hpcC0+Y2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L2V2ZW50cy9ldmVudHNfYmFzZS5jIGIvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMK aW5kZXggNjAzOGM0YzM1ZGI1Li5hODAzMDMzMmExOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu L2V2ZW50cy9ldmVudHNfYmFzZS5jCisrKyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfYmFz ZS5jCkBAIC05NSw3ICs5NSw4IEBAIHN0cnVjdCBpcnFfaW5mbyB7CiAJc3RydWN0IGxpc3RfaGVh ZCBsaXN0OwogCXN0cnVjdCBsaXN0X2hlYWQgZW9pX2xpc3Q7CiAJc2hvcnQgcmVmY250OwotCXNo b3J0IHNwdXJpb3VzX2NudDsKKwl1OCBzcHVyaW91c19jbnQ7CisJdTggaXNfYWNjb3VudGVkOwog CWVudW0geGVuX2lycV90eXBlIHR5cGU7IC8qIHR5cGUgKi8KIAl1bnNpZ25lZCBpcnE7CiAJZXZ0 Y2huX3BvcnRfdCBldnRjaG47ICAgLyogZXZlbnQgY2hhbm5lbCAqLwpAQCAtMTYxLDYgKzE2Miw5 IEBAIHN0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQgW05SX1ZJUlFTXSwgdmlycV90b19pcnEpID0g e1swIC4uLiBOUl9WSVJRUy0xXSA9IC0xfTsKIC8qIElSUSA8LT4gSVBJIG1hcHBpbmcgKi8KIHN0 YXRpYyBERUZJTkVfUEVSX0NQVShpbnQgW1hFTl9OUl9JUElTXSwgaXBpX3RvX2lycSkgPSB7WzAg Li4uIFhFTl9OUl9JUElTLTFdID0gLTF9OwogCisvKiBFdmVudCBjaGFubmVsIGRpc3RyaWJ1dGlv biBkYXRhICovCitzdGF0aWMgYXRvbWljX3QgY2hhbm5lbHNfb25fY3B1W05SX0NQVVNdOworCiBz dGF0aWMgaW50ICoqZXZ0Y2huX3RvX2lycTsKICNpZmRlZiBDT05GSUdfWDg2CiBzdGF0aWMgdW5z aWduZWQgbG9uZyAqcGlycV9lb2lfbWFwOwpAQCAtMjU3LDYgKzI2MSwzMiBAQCBzdGF0aWMgdm9p ZCBzZXRfaW5mb19mb3JfaXJxKHVuc2lnbmVkIGludCBpcnEsIHN0cnVjdCBpcnFfaW5mbyAqaW5m bykKIAkJaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBpbmZvKTsKIH0KIAorLyogUGVyIENQVSBjaGFu bmVsIGFjY291bnRpbmcgKi8KK3N0YXRpYyB2b2lkIGNoYW5uZWxzX29uX2NwdV9kZWMoc3RydWN0 IGlycV9pbmZvICppbmZvKQoreworCWlmICghaW5mby0+aXNfYWNjb3VudGVkKQorCQlyZXR1cm47 CisKKwlpbmZvLT5pc19hY2NvdW50ZWQgPSAwOworCisJaWYgKFdBUk5fT05fT05DRShpbmZvLT5j cHUgPj0gbnJfY3B1X2lkcykpCisJCXJldHVybjsKKworCVdBUk5fT05fT05DRSghYXRvbWljX2Fk ZF91bmxlc3MoJmNoYW5uZWxzX29uX2NwdVtpbmZvLT5jcHVdLCAtMSAsIDApKTsKK30KKworc3Rh dGljIHZvaWQgY2hhbm5lbHNfb25fY3B1X2luYyhzdHJ1Y3QgaXJxX2luZm8gKmluZm8pCit7CisJ aWYgKFdBUk5fT05fT05DRShpbmZvLT5jcHUgPj0gbnJfY3B1X2lkcykpCisJCXJldHVybjsKKwor CWlmIChXQVJOX09OX09OQ0UoIWF0b21pY19hZGRfdW5sZXNzKCZjaGFubmVsc19vbl9jcHVbaW5m by0+Y3B1XSwgMSwKKwkJCQkJICAgIElOVF9NQVgpKSkKKwkJcmV0dXJuOworCisJaW5mby0+aXNf YWNjb3VudGVkID0gMTsKK30KKwogLyogQ29uc3RydWN0b3JzIGZvciBwYWNrZWQgSVJRIGluZm9y bWF0aW9uLiAqLwogc3RhdGljIGludCB4ZW5faXJxX2luZm9fY29tbW9uX3NldHVwKHN0cnVjdCBp cnFfaW5mbyAqaW5mbywKIAkJCQkgICAgIHVuc2lnbmVkIGlycSwKQEAgLTMzOSw2ICszNjksNyBA QCBzdGF0aWMgdm9pZCB4ZW5faXJxX2luZm9fY2xlYW51cChzdHJ1Y3QgaXJxX2luZm8gKmluZm8p CiB7CiAJc2V0X2V2dGNobl90b19pcnEoaW5mby0+ZXZ0Y2huLCAtMSk7CiAJaW5mby0+ZXZ0Y2hu ID0gMDsKKwljaGFubmVsc19vbl9jcHVfZGVjKGluZm8pOwogfQogCiAvKgpAQCAtNDMzLDE4ICs0 NjQsMjUgQEAgc3RhdGljIGJvb2wgcGlycV9uZWVkc19lb2lfZmxhZyh1bnNpZ25lZCBpcnEpCiAJ cmV0dXJuIGluZm8tPnUucGlycS5mbGFncyAmIFBJUlFfTkVFRFNfRU9JOwogfQogCi1zdGF0aWMg dm9pZCBiaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huX3BvcnRfdCBldnRjaG4sIHVuc2lnbmVkIGlu dCBjcHUpCitzdGF0aWMgdm9pZCBiaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huX3BvcnRfdCBldnRj aG4sIHVuc2lnbmVkIGludCBjcHUsCisJCQkgICAgICAgYm9vbCBmb3JjZV9hZmZpbml0eSkKIHsK IAlpbnQgaXJxID0gZ2V0X2V2dGNobl90b19pcnEoZXZ0Y2huKTsKIAlzdHJ1Y3QgaXJxX2luZm8g KmluZm8gPSBpbmZvX2Zvcl9pcnEoaXJxKTsKIAogCUJVR19PTihpcnEgPT0gLTEpOwotI2lmZGVm IENPTkZJR19TTVAKLQljcHVtYXNrX2NvcHkoaXJxX2dldF9hZmZpbml0eV9tYXNrKGlycSksIGNw dW1hc2tfb2YoY3B1KSk7Ci0jZW5kaWYKKworCWlmIChJU19FTkFCTEVEKENPTkZJR19TTVApICYm IGZvcmNlX2FmZmluaXR5KSB7CisJCWNwdW1hc2tfY29weShpcnFfZ2V0X2FmZmluaXR5X21hc2so aXJxKSwgY3B1bWFza19vZihjcHUpKTsKKwkJY3B1bWFza19jb3B5KGlycV9nZXRfZWZmZWN0aXZl X2FmZmluaXR5X21hc2soaXJxKSwKKwkJCSAgICAgY3B1bWFza19vZihjcHUpKTsKKwl9CisKIAl4 ZW5fZXZ0Y2huX3BvcnRfYmluZF90b19jcHUoZXZ0Y2huLCBjcHUsIGluZm8tPmNwdSk7CiAKKwlj aGFubmVsc19vbl9jcHVfZGVjKGluZm8pOwogCWluZm8tPmNwdSA9IGNwdTsKKwljaGFubmVsc19v bl9jcHVfaW5jKGluZm8pOwogfQogCiAvKioKQEAgLTUyMyw4ICs1NjEsMTAgQEAgc3RhdGljIHZv aWQgeGVuX2lycV9sYXRlZW9pX2xvY2tlZChzdHJ1Y3QgaXJxX2luZm8gKmluZm8sIGJvb2wgc3B1 cmlvdXMpCiAJCXJldHVybjsKIAogCWlmIChzcHVyaW91cykgewotCQlpZiAoKDEgPDwgaW5mby0+ c3B1cmlvdXNfY250KSA8IChIWiA8PCAyKSkKLQkJCWluZm8tPnNwdXJpb3VzX2NudCsrOworCQlp ZiAoKDEgPDwgaW5mby0+c3B1cmlvdXNfY250KSA8IChIWiA8PCAyKSkgeworCQkJaWYgKGluZm8t PnNwdXJpb3VzX2NudCAhPSAweEZGKQorCQkJCWluZm8tPnNwdXJpb3VzX2NudCsrOworCQl9CiAJ CWlmIChpbmZvLT5zcHVyaW91c19jbnQgPiAxKSB7CiAJCQlkZWxheSA9IDEgPDwgKGluZm8tPnNw dXJpb3VzX2NudCAtIDIpOwogCQkJaWYgKGRlbGF5ID4gSFopCkBAIC02MTUsMTEgKzY1NSw2IEBA IHN0YXRpYyB2b2lkIHhlbl9pcnFfaW5pdCh1bnNpZ25lZCBpcnEpCiB7CiAJc3RydWN0IGlycV9p bmZvICppbmZvOwogCi0jaWZkZWYgQ09ORklHX1NNUAotCS8qIEJ5IGRlZmF1bHQgYWxsIGV2ZW50 IGNoYW5uZWxzIG5vdGlmeSBDUFUjMC4gKi8KLQljcHVtYXNrX2NvcHkoaXJxX2dldF9hZmZpbml0 eV9tYXNrKGlycSksIGNwdW1hc2tfb2YoMCkpOwotI2VuZGlmCi0KIAlpbmZvID0ga3phbGxvYyhz aXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoaW5mbyA9PSBOVUxMKQogCQlwYW5pYygi VW5hYmxlIHRvIGFsbG9jYXRlIG1ldGFkYXRhIGZvciBJUlElZFxuIiwgaXJxKTsKQEAgLTYyOCw2 ICs2NjMsMTEgQEAgc3RhdGljIHZvaWQgeGVuX2lycV9pbml0KHVuc2lnbmVkIGlycSkKIAlpbmZv LT5yZWZjbnQgPSAtMTsKIAogCXNldF9pbmZvX2Zvcl9pcnEoaXJxLCBpbmZvKTsKKwkvKgorCSAq IEludGVycnVwdCBhZmZpbml0eSBzZXR0aW5nIGNhbiBiZSBpbW1lZGlhdGUuIE5vIHBvaW50CisJ ICogaW4gZGVsYXlpbmcgaXQgdW50aWwgYW4gaW50ZXJydXB0IGlzIGhhbmRsZWQuCisJICovCisJ aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTU9WRV9QQ05UWFQpOwogCiAJSU5JVF9MSVNU X0hFQUQoJmluZm8tPmVvaV9saXN0KTsKIAlsaXN0X2FkZF90YWlsKCZpbmZvLT5saXN0LCAmeGVu X2lycV9saXN0X2hlYWQpOwpAQCAtNzM5LDE4ICs3NzksNyBAQCBzdGF0aWMgdm9pZCBlb2lfcGly cShzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCiAJaWYgKCFWQUxJRF9FVlRDSE4oZXZ0Y2huKSkKIAkJ cmV0dXJuOwogCi0JaWYgKHVubGlrZWx5KGlycWRfaXNfc2V0YWZmaW5pdHlfcGVuZGluZyhkYXRh KSkgJiYKLQkgICAgbGlrZWx5KCFpcnFkX2lycV9kaXNhYmxlZChkYXRhKSkpIHsKLQkJaW50IG1h c2tlZCA9IHRlc3RfYW5kX3NldF9tYXNrKGV2dGNobik7Ci0KLQkJY2xlYXJfZXZ0Y2huKGV2dGNo bik7Ci0KLQkJaXJxX21vdmVfbWFza2VkX2lycShkYXRhKTsKLQotCQlpZiAoIW1hc2tlZCkKLQkJ CXVubWFza19ldnRjaG4oZXZ0Y2huKTsKLQl9IGVsc2UKLQkJY2xlYXJfZXZ0Y2huKGV2dGNobik7 CisJY2xlYXJfZXZ0Y2huKGV2dGNobik7CiAKIAlpZiAocGlycV9uZWVkc19lb2koZGF0YS0+aXJx KSkgewogCQlyYyA9IEhZUEVSVklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1BfZW9pLCAmZW9pKTsK QEAgLTc5NCw3ICs4MjMsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RhcnR1cF9waXJxKHVu c2lnbmVkIGludCBpcnEpCiAJCWdvdG8gZXJyOwogCiAJaW5mby0+ZXZ0Y2huID0gZXZ0Y2huOwot CWJpbmRfZXZ0Y2huX3RvX2NwdShldnRjaG4sIDApOworCWJpbmRfZXZ0Y2huX3RvX2NwdShldnRj aG4sIDAsIGZhbHNlKTsKIAogCXJjID0geGVuX2V2dGNobl9wb3J0X3NldHVwKGV2dGNobik7CiAJ aWYgKHJjKQpAQCAtMTExMyw4ICsxMTQyLDE0IEBAIHN0YXRpYyBpbnQgYmluZF9ldnRjaG5fdG9f aXJxX2NoaXAoZXZ0Y2huX3BvcnRfdCBldnRjaG4sIHN0cnVjdCBpcnFfY2hpcCAqY2hpcCkKIAkJ CWlycSA9IHJldDsKIAkJCWdvdG8gb3V0OwogCQl9Ci0JCS8qIE5ldyBpbnRlcmRvbWFpbiBldmVu dHMgYXJlIGJvdW5kIHRvIFZDUFUgMC4gKi8KLQkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwg MCk7CisJCS8qCisJCSAqIE5ldyBpbnRlcmRvbWFpbiBldmVudHMgYXJlIGluaXRpYWxseSBib3Vu ZCB0byB2Q1BVMCBUaGlzCisJCSAqIGlzIHJlcXVpcmVkIHRvIHNldHVwIHRoZSBldmVudCBjaGFu bmVsIGluIHRoZSBmaXJzdAorCQkgKiBwbGFjZSBhbmQgYWxzbyBpbXBvcnRhbnQgZm9yIFVQIGd1 ZXN0cyBiZWNhdXNlIHRoZQorCQkgKiBhZmZpbml0eSBzZXR0aW5nIGlzIG5vdCBpbnZva2VkIG9u IHRoZW0gc28gbm90aGluZyB3b3VsZAorCQkgKiBiaW5kIHRoZSBjaGFubmVsLgorCQkgKi8KKwkJ YmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgMCwgZmFsc2UpOwogCX0gZWxzZSB7CiAJCXN0cnVj dCBpcnFfaW5mbyAqaW5mbyA9IGluZm9fZm9yX2lycShpcnEpOwogCQlXQVJOX09OKGluZm8gPT0g TlVMTCB8fCBpbmZvLT50eXBlICE9IElSUVRfRVZUQ0hOKTsKQEAgLTExMzIsMTIgKzExNjcsNiBA QCBpbnQgYmluZF9ldnRjaG5fdG9faXJxKGV2dGNobl9wb3J0X3QgZXZ0Y2huKQogfQogRVhQT1JU X1NZTUJPTF9HUEwoYmluZF9ldnRjaG5fdG9faXJxKTsKIAotaW50IGJpbmRfZXZ0Y2huX3RvX2ly cV9sYXRlZW9pKGV2dGNobl9wb3J0X3QgZXZ0Y2huKQotewotCXJldHVybiBiaW5kX2V2dGNobl90 b19pcnFfY2hpcChldnRjaG4sICZ4ZW5fbGF0ZWVvaV9jaGlwKTsKLX0KLUVYUE9SVF9TWU1CT0xf R1BMKGJpbmRfZXZ0Y2huX3RvX2lycV9sYXRlZW9pKTsKLQogc3RhdGljIGludCBiaW5kX2lwaV90 b19pcnEodW5zaWduZWQgaW50IGlwaSwgdW5zaWduZWQgaW50IGNwdSkKIHsKIAlzdHJ1Y3QgZXZ0 Y2huX2JpbmRfaXBpIGJpbmRfaXBpOwpAQCAtMTE2OCw3ICsxMTk3LDExIEBAIHN0YXRpYyBpbnQg YmluZF9pcGlfdG9faXJxKHVuc2lnbmVkIGludCBpcGksIHVuc2lnbmVkIGludCBjcHUpCiAJCQlp cnEgPSByZXQ7CiAJCQlnb3RvIG91dDsKIAkJfQotCQliaW5kX2V2dGNobl90b19jcHUoZXZ0Y2hu LCBjcHUpOworCQkvKgorCQkgKiBGb3JjZSB0aGUgYWZmaW5pdHkgbWFzayB0byB0aGUgdGFyZ2V0 IENQVSBzbyBwcm9jIHNob3dzCisJCSAqIHRoZSBjb3JyZWN0IHRhcmdldC4KKwkJICovCisJCWJp bmRfZXZ0Y2huX3RvX2NwdShldnRjaG4sIGNwdSwgdHJ1ZSk7CiAJfSBlbHNlIHsKIAkJc3RydWN0 IGlycV9pbmZvICppbmZvID0gaW5mb19mb3JfaXJxKGlycSk7CiAJCVdBUk5fT04oaW5mbyA9PSBO VUxMIHx8IGluZm8tPnR5cGUgIT0gSVJRVF9JUEkpOwpAQCAtMTI4MSw3ICsxMzE0LDExIEBAIGlu dCBiaW5kX3ZpcnFfdG9faXJxKHVuc2lnbmVkIGludCB2aXJxLCB1bnNpZ25lZCBpbnQgY3B1LCBi b29sIHBlcmNwdSkKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQkJYmluZF9ldnRjaG5fdG9fY3B1KGV2 dGNobiwgY3B1KTsKKwkJLyoKKwkJICogRm9yY2UgdGhlIGFmZmluaXR5IG1hc2sgZm9yIHBlcmNw dSBpbnRlcnJ1cHRzIHNvIHByb2MKKwkJICogc2hvd3MgdGhlIGNvcnJlY3QgdGFyZ2V0LgorCQkg Ki8KKwkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgY3B1LCBwZXJjcHUpOwogCX0gZWxzZSB7 CiAJCXN0cnVjdCBpcnFfaW5mbyAqaW5mbyA9IGluZm9fZm9yX2lycShpcnEpOwogCQlXQVJOX09O KGluZm8gPT0gTlVMTCB8fCBpbmZvLT50eXBlICE9IElSUVRfVklSUSk7CkBAIC0xNjQ2LDkgKzE2 ODMsNyBAQCB2b2lkIHJlYmluZF9ldnRjaG5faXJxKGV2dGNobl9wb3J0X3QgZXZ0Y2huLCBpbnQg aXJxKQogCiAJbXV0ZXhfdW5sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CiAKLSAgICAg ICAgYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgaW5mby0+Y3B1KTsKLQkvKiBUaGlzIHdpbGwg YmUgZGVmZXJyZWQgdW50aWwgaW50ZXJydXB0IGlzIHByb2Nlc3NlZCAqLwotCWlycV9zZXRfYWZm aW5pdHkoaXJxLCBjcHVtYXNrX29mKGluZm8tPmNwdSkpOworCWJpbmRfZXZ0Y2huX3RvX2NwdShl dnRjaG4sIGluZm8tPmNwdSwgZmFsc2UpOwogCiAJLyogVW5tYXNrIHRoZSBldmVudCBjaGFubmVs LiAqLwogCWVuYWJsZV9pcnEoaXJxKTsKQEAgLTE2ODIsNyArMTcxNyw3IEBAIHN0YXRpYyBpbnQg eGVuX3JlYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobl9wb3J0X3QgZXZ0Y2huLCB1bnNpZ25lZCBp bnQgdGNwdSkKIAkgKiBpdCwgYnV0IGRvbid0IGRvIHRoZSB4ZW5saW51eC1sZXZlbCByZWJpbmQg aW4gdGhhdCBjYXNlLgogCSAqLwogCWlmIChIWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AoRVZU Q0hOT1BfYmluZF92Y3B1LCAmYmluZF92Y3B1KSA+PSAwKQotCQliaW5kX2V2dGNobl90b19jcHUo ZXZ0Y2huLCB0Y3B1KTsKKwkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgdGNwdSwgZmFsc2Up OwogCiAJaWYgKCFtYXNrZWQpCiAJCXVubWFza19ldnRjaG4oZXZ0Y2huKTsKQEAgLTE2OTAsMjcg KzE3MjUsNDcgQEAgc3RhdGljIGludCB4ZW5fcmViaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huX3Bv cnRfdCBldnRjaG4sIHVuc2lnbmVkIGludCB0Y3B1KQogCXJldHVybiAwOwogfQogCisvKgorICog RmluZCB0aGUgQ1BVIHdpdGhpbiBAZGVzdCBtYXNrIHdoaWNoIGhhcyB0aGUgbGVhc3QgbnVtYmVy IG9mIGNoYW5uZWxzCisgKiBhc3NpZ25lZC4gVGhpcyBpcyBub3QgcHJlY2lzZSBhcyB0aGUgcGVy IGNwdSBjb3VudHMgY2FuIGJlIG1vZGlmaWVkCisgKiBjb25jdXJyZW50bHkuCisgKi8KK3N0YXRp YyB1bnNpZ25lZCBpbnQgc2VsZWN0X3RhcmdldF9jcHUoY29uc3Qgc3RydWN0IGNwdW1hc2sgKmRl c3QpCit7CisJdW5zaWduZWQgaW50IGNwdSwgYmVzdF9jcHUgPSBVSU5UX01BWCwgbWluY2ggPSBV SU5UX01BWDsKKworCWZvcl9lYWNoX2NwdV9hbmQoY3B1LCBkZXN0LCBjcHVfb25saW5lX21hc2sp IHsKKwkJdW5zaWduZWQgaW50IGN1cmNoID0gYXRvbWljX3JlYWQoJmNoYW5uZWxzX29uX2NwdVtj cHVdKTsKKworCQlpZiAoY3VyY2ggPCBtaW5jaCkgeworCQkJbWluY2ggPSBjdXJjaDsKKwkJCWJl c3RfY3B1ID0gY3B1OworCQl9CisJfQorCisJLyoKKwkgKiBDYXRjaCB0aGUgdW5saWtlbHkgY2Fz ZSB0aGF0IGRlc3QgY29udGFpbnMgbm8gb25saW5lIENQVXMuIENhbid0CisJICogcmVjdXJzZS4K KwkgKi8KKwlpZiAoYmVzdF9jcHUgPT0gVUlOVF9NQVgpCisJCXJldHVybiBzZWxlY3RfdGFyZ2V0 X2NwdShjcHVfb25saW5lX21hc2spOworCisJcmV0dXJuIGJlc3RfY3B1OworfQorCiBzdGF0aWMg aW50IHNldF9hZmZpbml0eV9pcnEoc3RydWN0IGlycV9kYXRhICpkYXRhLCBjb25zdCBzdHJ1Y3Qg Y3B1bWFzayAqZGVzdCwKIAkJCSAgICBib29sIGZvcmNlKQogewotCXVuc2lnbmVkIHRjcHUgPSBj cHVtYXNrX2ZpcnN0X2FuZChkZXN0LCBjcHVfb25saW5lX21hc2spOwotCWludCByZXQgPSB4ZW5f cmViaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huX2Zyb21faXJxKGRhdGEtPmlycSksIHRjcHUpOwor CXVuc2lnbmVkIGludCB0Y3B1ID0gc2VsZWN0X3RhcmdldF9jcHUoZGVzdCk7CisJaW50IHJldDsK IAorCXJldCA9IHhlbl9yZWJpbmRfZXZ0Y2huX3RvX2NwdShldnRjaG5fZnJvbV9pcnEoZGF0YS0+ aXJxKSwgdGNwdSk7CiAJaWYgKCFyZXQpCiAJCWlycV9kYXRhX3VwZGF0ZV9lZmZlY3RpdmVfYWZm aW5pdHkoZGF0YSwgY3B1bWFza19vZih0Y3B1KSk7CiAKIAlyZXR1cm4gcmV0OwogfQogCi0vKiBU byBiZSBjYWxsZWQgd2l0aCBkZXNjLT5sb2NrIGhlbGQuICovCi1pbnQgeGVuX3NldF9hZmZpbml0 eV9ldnRjaG4oc3RydWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgdGNwdSkKLXsKLQlz dHJ1Y3QgaXJxX2RhdGEgKmQgPSBpcnFfZGVzY19nZXRfaXJxX2RhdGEoZGVzYyk7Ci0KLQlyZXR1 cm4gc2V0X2FmZmluaXR5X2lycShkLCBjcHVtYXNrX29mKHRjcHUpLCBmYWxzZSk7Ci19Ci1FWFBP UlRfU1lNQk9MX0dQTCh4ZW5fc2V0X2FmZmluaXR5X2V2dGNobik7Ci0KIHN0YXRpYyB2b2lkIGVu YWJsZV9keW5pcnEoc3RydWN0IGlycV9kYXRhICpkYXRhKQogewogCWV2dGNobl9wb3J0X3QgZXZ0 Y2huID0gZXZ0Y2huX2Zyb21faXJxKGRhdGEtPmlycSk7CkBAIC0xNzM0LDE4ICsxNzg5LDcgQEAg c3RhdGljIHZvaWQgYWNrX2R5bmlycShzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCiAJaWYgKCFWQUxJ RF9FVlRDSE4oZXZ0Y2huKSkKIAkJcmV0dXJuOwogCi0JaWYgKHVubGlrZWx5KGlycWRfaXNfc2V0 YWZmaW5pdHlfcGVuZGluZyhkYXRhKSkgJiYKLQkgICAgbGlrZWx5KCFpcnFkX2lycV9kaXNhYmxl ZChkYXRhKSkpIHsKLQkJaW50IG1hc2tlZCA9IHRlc3RfYW5kX3NldF9tYXNrKGV2dGNobik7Ci0K LQkJY2xlYXJfZXZ0Y2huKGV2dGNobik7Ci0KLQkJaXJxX21vdmVfbWFza2VkX2lycShkYXRhKTsK LQotCQlpZiAoIW1hc2tlZCkKLQkJCXVubWFza19ldnRjaG4oZXZ0Y2huKTsKLQl9IGVsc2UKLQkJ Y2xlYXJfZXZ0Y2huKGV2dGNobik7CisJY2xlYXJfZXZ0Y2huKGV2dGNobik7CiB9CiAKIHN0YXRp YyB2b2lkIG1hc2tfYWNrX2R5bmlycShzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCkBAIC0xODMwLDcg KzE4NzQsOCBAQCBzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV92aXJxcyh1bnNpZ25lZCBpbnQgY3B1 KQogCiAJCS8qIFJlY29yZCB0aGUgbmV3IG1hcHBpbmcuICovCiAJCSh2b2lkKXhlbl9pcnFfaW5m b192aXJxX3NldHVwKGNwdSwgaXJxLCBldnRjaG4sIHZpcnEpOwotCQliaW5kX2V2dGNobl90b19j cHUoZXZ0Y2huLCBjcHUpOworCQkvKiBUaGUgYWZmaW5pdHkgbWFzayBpcyBzdGlsbCB2YWxpZCAq LworCQliaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huLCBjcHUsIGZhbHNlKTsKIAl9CiB9CiAKQEAg LTE4NTUsNyArMTkwMCw4IEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVfY3B1X2lwaXModW5zaWduZWQg aW50IGNwdSkKIAogCQkvKiBSZWNvcmQgdGhlIG5ldyBtYXBwaW5nLiAqLwogCQkodm9pZCl4ZW5f aXJxX2luZm9faXBpX3NldHVwKGNwdSwgaXJxLCBldnRjaG4sIGlwaSk7Ci0JCWJpbmRfZXZ0Y2hu X3RvX2NwdShldnRjaG4sIGNwdSk7CisJCS8qIFRoZSBhZmZpbml0eSBtYXNrIGlzIHN0aWxsIHZh bGlkICovCisJCWJpbmRfZXZ0Y2huX3RvX2NwdShldnRjaG4sIGNwdSwgZmFsc2UpOwogCX0KIH0K IApAQCAtMTkzOCw4ICsxOTg0LDEyIEBAIHZvaWQgeGVuX2lycV9yZXN1bWUodm9pZCkKIAl4ZW5f ZXZ0Y2huX3Jlc3VtZSgpOwogCiAJLyogTm8gSVJRIDwtPiBldmVudC1jaGFubmVsIG1hcHBpbmdz LiAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5mbywgJnhlbl9pcnFfbGlzdF9oZWFkLCBsaXN0 KQotCQlpbmZvLT5ldnRjaG4gPSAwOyAvKiB6YXAgZXZlbnQtY2hhbm5lbCBiaW5kaW5nICovCisJ bGlzdF9mb3JfZWFjaF9lbnRyeShpbmZvLCAmeGVuX2lycV9saXN0X2hlYWQsIGxpc3QpIHsKKwkJ LyogWmFwIGV2ZW50LWNoYW5uZWwgYmluZGluZyAqLworCQlpbmZvLT5ldnRjaG4gPSAwOworCQkv KiBBZGp1c3QgYWNjb3VudGluZyAqLworCQljaGFubmVsc19vbl9jcHVfZGVjKGluZm8pOworCX0K IAogCWNsZWFyX2V2dGNobl90b19pcnFfYWxsKCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L2V2dGNobi5jIGIvZHJpdmVycy94ZW4vZXZ0Y2huLmMKaW5kZXggNWRjMDE2ZDY4ZjgzLi5hN2E4 NTcxOWE4YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2V2dGNobi5jCisrKyBiL2RyaXZlcnMv eGVuL2V2dGNobi5jCkBAIC00MjEsMzYgKzQyMSw2IEBAIHN0YXRpYyB2b2lkIGV2dGNobl91bmJp bmRfZnJvbV91c2VyKHN0cnVjdCBwZXJfdXNlcl9kYXRhICp1LAogCWRlbF9ldnRjaG4odSwgZXZ0 Y2huKTsKIH0KIAotc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgYmluZF9sYXN0X3NlbGVjdGVk X2NwdSk7Ci0KLXN0YXRpYyB2b2lkIGV2dGNobl9iaW5kX2ludGVyZG9tX25leHRfdmNwdShldnRj aG5fcG9ydF90IGV2dGNobikKLXsKLQl1bnNpZ25lZCBpbnQgc2VsZWN0ZWRfY3B1LCBpcnE7Ci0J c3RydWN0IGlycV9kZXNjICpkZXNjOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlpcnEgPSBp cnFfZnJvbV9ldnRjaG4oZXZ0Y2huKTsKLQlkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKLQotCWlm ICghZGVzYykKLQkJcmV0dXJuOwotCi0JcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2Nr LCBmbGFncyk7Ci0Jc2VsZWN0ZWRfY3B1ID0gdGhpc19jcHVfcmVhZChiaW5kX2xhc3Rfc2VsZWN0 ZWRfY3B1KTsKLQlzZWxlY3RlZF9jcHUgPSBjcHVtYXNrX25leHRfYW5kKHNlbGVjdGVkX2NwdSwK LQkJCWRlc2MtPmlycV9jb21tb25fZGF0YS5hZmZpbml0eSwgY3B1X29ubGluZV9tYXNrKTsKLQot CWlmICh1bmxpa2VseShzZWxlY3RlZF9jcHUgPj0gbnJfY3B1X2lkcykpCi0JCXNlbGVjdGVkX2Nw dSA9IGNwdW1hc2tfZmlyc3RfYW5kKGRlc2MtPmlycV9jb21tb25fZGF0YS5hZmZpbml0eSwKLQkJ CQljcHVfb25saW5lX21hc2spOwotCi0JdGhpc19jcHVfd3JpdGUoYmluZF9sYXN0X3NlbGVjdGVk X2NwdSwgc2VsZWN0ZWRfY3B1KTsKLQotCS8qIHVubWFzayBleHBlY3RzIGlycXMgdG8gYmUgZGlz YWJsZWQgKi8KLQl4ZW5fc2V0X2FmZmluaXR5X2V2dGNobihkZXNjLCBzZWxlY3RlZF9jcHUpOwot CXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Ci19Ci0KIHN0 YXRpYyBsb25nIGV2dGNobl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJCSB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKQEAgLTUwOCwxMCArNDc4LDggQEAgc3RhdGlj IGxvbmcgZXZ0Y2huX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLAogCQkJYnJlYWs7CiAKIAkJcmMg PSBldnRjaG5fYmluZF90b191c2VyKHUsIGJpbmRfaW50ZXJkb21haW4ubG9jYWxfcG9ydCk7Ci0J CWlmIChyYyA9PSAwKSB7CisJCWlmIChyYyA9PSAwKQogCQkJcmMgPSBiaW5kX2ludGVyZG9tYWlu LmxvY2FsX3BvcnQ7Ci0JCQlldnRjaG5fYmluZF9pbnRlcmRvbV9uZXh0X3ZjcHUocmMpOwotCQl9 CiAJCWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaCBi L2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmgKaW5kZXggODcwYjMyNTFlMTc0Li5iYjhmZjkwODNl N2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmgKKysrIGIvaW5jbHVkZS9s aW51eC9pbnRlcnJ1cHQuaApAQCAtMjMyLDYgKzIzMiw3IEBAIGV4dGVybiB2b2lkIGRldm1fZnJl ZV9pcnEoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaXJxLCB2b2lkICpkZXZfaWQp OwogIyBkZWZpbmUgbG9jYWxfaXJxX2VuYWJsZV9pbl9oYXJkaXJxKCkJbG9jYWxfaXJxX2VuYWJs ZSgpCiAjZW5kaWYKIAorYm9vbCBpcnFfaGFzX2FjdGlvbih1bnNpZ25lZCBpbnQgaXJxKTsKIGV4 dGVybiB2b2lkIGRpc2FibGVfaXJxX25vc3luYyh1bnNpZ25lZCBpbnQgaXJxKTsKIGV4dGVybiBi b29sIGRpc2FibGVfaGFyZGlycSh1bnNpZ25lZCBpbnQgaXJxKTsKIGV4dGVybiB2b2lkIGRpc2Fi bGVfaXJxKHVuc2lnbmVkIGludCBpcnEpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcnEu aCBiL2luY2x1ZGUvbGludXgvaXJxLmgKaW5kZXggYzMzMjg3MWQ1OWRhLi40YWViMWM0YzdlMDcg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXJxLmgKKysrIGIvaW5jbHVkZS9saW51eC9pcnEu aApAQCAtOTA2LDYgKzkwNiwxMyBAQCBzdHJ1Y3QgY3B1bWFzayAqaXJxX2RhdGFfZ2V0X2VmZmVj dGl2ZV9hZmZpbml0eV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKIH0KICNlbmRpZgogCitzdGF0 aWMgaW5saW5lIHN0cnVjdCBjcHVtYXNrICppcnFfZ2V0X2VmZmVjdGl2ZV9hZmZpbml0eV9tYXNr KHVuc2lnbmVkIGludCBpcnEpCit7CisJc3RydWN0IGlycV9kYXRhICpkID0gaXJxX2dldF9pcnFf ZGF0YShpcnEpOworCisJcmV0dXJuIGQgPyBpcnFfZGF0YV9nZXRfZWZmZWN0aXZlX2FmZmluaXR5 X21hc2soZCkgOiBOVUxMOworfQorCiB1bnNpZ25lZCBpbnQgYXJjaF9keW5pcnFfbG93ZXJfYm91 bmQodW5zaWduZWQgaW50IGZyb20pOwogCiBpbnQgX19pcnFfYWxsb2NfZGVzY3MoaW50IGlycSwg dW5zaWduZWQgaW50IGZyb20sIHVuc2lnbmVkIGludCBjbnQsIGludCBub2RlLApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9pcnFkZXNjLmggYi9pbmNsdWRlL2xpbnV4L2lycWRlc2MuaAppbmRl eCA1NzQ1NDkxMzAzZTAuLjg5MWIzMjMyNjZkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9p cnFkZXNjLmgKKysrIGIvaW5jbHVkZS9saW51eC9pcnFkZXNjLmgKQEAgLTExMyw2ICsxMTMsMTIg QEAgc3RhdGljIGlubGluZSB2b2lkIGlycV91bmxvY2tfc3BhcnNlKHZvaWQpIHsgfQogZXh0ZXJu IHN0cnVjdCBpcnFfZGVzYyBpcnFfZGVzY1tOUl9JUlFTXTsKICNlbmRpZgogCitzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGludCBpcnFfZGVzY19rc3RhdF9jcHUoc3RydWN0IGlycV9kZXNjICpkZXNj LAorCQkJCQkgICAgICB1bnNpZ25lZCBpbnQgY3B1KQoreworCXJldHVybiBkZXNjLT5rc3RhdF9p cnFzID8gKnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2lycXMsIGNwdSkgOiAwOworfQorCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCBpcnFfZGVzYyAqaXJxX2RhdGFfdG9fZGVzYyhzdHJ1Y3QgaXJxX2Rh dGEgKmRhdGEpCiB7CiAJcmV0dXJuIGNvbnRhaW5lcl9vZihkYXRhLT5jb21tb24sIHN0cnVjdCBp cnFfZGVzYywgaXJxX2NvbW1vbl9kYXRhKTsKQEAgLTE3OSwxMiArMTg1LDcgQEAgaW50IGhhbmRs ZV9kb21haW5fbm1pKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sIHVuc2lnbmVkIGludCBod2ly cSwKIC8qIFRlc3QgdG8gc2VlIGlmIGEgZHJpdmVyIGhhcyBzdWNjZXNzZnVsbHkgcmVxdWVzdGVk IGFuIGlycSAqLwogc3RhdGljIGlubGluZSBpbnQgaXJxX2Rlc2NfaGFzX2FjdGlvbihzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MpCiB7Ci0JcmV0dXJuIGRlc2MtPmFjdGlvbiAhPSBOVUxMOwotfQotCi1z dGF0aWMgaW5saW5lIGludCBpcnFfaGFzX2FjdGlvbih1bnNpZ25lZCBpbnQgaXJxKQotewotCXJl dHVybiBpcnFfZGVzY19oYXNfYWN0aW9uKGlycV90b19kZXNjKGlycSkpOworCXJldHVybiBkZXNj ICYmIGRlc2MtPmFjdGlvbiAhPSBOVUxMOwogfQogCiAvKioKQEAgLTIyOCw0MCArMjI5LDMxIEBA IGlycV9zZXRfY2hpcF9oYW5kbGVyX25hbWVfbG9ja2VkKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSwg c3RydWN0IGlycV9jaGlwICpjaGlwLAogCWRhdGEtPmNoaXAgPSBjaGlwOwogfQogCitib29sIGly cV9jaGVja19zdGF0dXNfYml0KHVuc2lnbmVkIGludCBpcnEsIHVuc2lnbmVkIGludCBiaXRtYXNr KTsKKwogc3RhdGljIGlubGluZSBib29sIGlycV9iYWxhbmNpbmdfZGlzYWJsZWQodW5zaWduZWQg aW50IGlycSkKIHsKLQlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7Ci0KLQlkZXNjID0gaXJxX3RvX2Rl c2MoaXJxKTsKLQlyZXR1cm4gZGVzYy0+c3RhdHVzX3VzZV9hY2Nlc3NvcnMgJiBJUlFfTk9fQkFM QU5DSU5HX01BU0s7CisJcmV0dXJuIGlycV9jaGVja19zdGF0dXNfYml0KGlycSwgSVJRX05PX0JB TEFOQ0lOR19NQVNLKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlycV9pc19wZXJjcHUodW5z aWduZWQgaW50IGlycSkKIHsKLQlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7Ci0KLQlkZXNjID0gaXJx X3RvX2Rlc2MoaXJxKTsKLQlyZXR1cm4gZGVzYy0+c3RhdHVzX3VzZV9hY2Nlc3NvcnMgJiBJUlFf UEVSX0NQVTsKKwlyZXR1cm4gaXJxX2NoZWNrX3N0YXR1c19iaXQoaXJxLCBJUlFfUEVSX0NQVSk7 CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpcnFfaXNfcGVyY3B1X2RldmlkKHVuc2lnbmVkIGlu dCBpcnEpCiB7Ci0Jc3RydWN0IGlycV9kZXNjICpkZXNjOwotCi0JZGVzYyA9IGlycV90b19kZXNj KGlycSk7Ci0JcmV0dXJuIGRlc2MtPnN0YXR1c191c2VfYWNjZXNzb3JzICYgSVJRX1BFUl9DUFVf REVWSUQ7CisJcmV0dXJuIGlycV9jaGVja19zdGF0dXNfYml0KGlycSwgSVJRX1BFUl9DUFVfREVW SUQpOwogfQogCit2b2lkIF9faXJxX3NldF9sb2NrZGVwX2NsYXNzKHVuc2lnbmVkIGludCBpcnEs IHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqbG9ja19jbGFzcywKKwkJCSAgICAgc3RydWN0IGxvY2tf Y2xhc3Nfa2V5ICpyZXF1ZXN0X2NsYXNzKTsKIHN0YXRpYyBpbmxpbmUgdm9pZAogaXJxX3NldF9s b2NrZGVwX2NsYXNzKHVuc2lnbmVkIGludCBpcnEsIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqbG9j a19jbGFzcywKIAkJICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpyZXF1ZXN0X2NsYXNzKQog ewotCXN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7Ci0KLQlpZiAoZGVz YykgewotCQlsb2NrZGVwX3NldF9jbGFzcygmZGVzYy0+bG9jaywgbG9ja19jbGFzcyk7Ci0JCWxv Y2tkZXBfc2V0X2NsYXNzKCZkZXNjLT5yZXF1ZXN0X211dGV4LCByZXF1ZXN0X2NsYXNzKTsKLQl9 CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0xPQ0tERVApKQorCQlfX2lycV9zZXRfbG9ja2RlcF9j bGFzcyhpcnEsIGxvY2tfY2xhc3MsIHJlcXVlc3RfY2xhc3MpOwogfQogCiAjZW5kaWYKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaCBiL2luY2x1ZGUvbGludXgva2VybmVs X3N0YXQuaAppbmRleCA4OWYwNzQ1YzA5NmQuLjQ0YWUxYTdlYjllMyAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCisrKyBiL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQu aApAQCAtNjcsNyArNjcsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBrc3RhdF9zb2Z0 aXJxc19jcHUodW5zaWduZWQgaW50IGlycSwgaW50IGNwdSkKIC8qCiAgKiBOdW1iZXIgb2YgaW50 ZXJydXB0cyBwZXIgc3BlY2lmaWMgSVJRIHNvdXJjZSwgc2luY2UgYm9vdHVwCiAgKi8KLWV4dGVy biB1bnNpZ25lZCBpbnQga3N0YXRfaXJxcyh1bnNpZ25lZCBpbnQgaXJxKTsKIGV4dGVybiB1bnNp Z25lZCBpbnQga3N0YXRfaXJxc191c3IodW5zaWduZWQgaW50IGlycSk7CiAKIC8qCmRpZmYgLS1n aXQgYS9rZXJuZWwvaXJxL2lycWRlc2MuYyBiL2tlcm5lbC9pcnEvaXJxZGVzYy5jCmluZGV4IGU4 MTBlYjk5MDZlYS4uM2QwYmMzOGEwYmNmIDEwMDY0NAotLS0gYS9rZXJuZWwvaXJxL2lycWRlc2Mu YworKysgYi9rZXJuZWwvaXJxL2lycWRlc2MuYwpAQCAtMTQ3LDEyICsxNDcsMTIgQEAgc3RhdGlj IHNzaXplX3QgcGVyX2NwdV9jb3VudF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSAg c3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0IGlycV9k ZXNjICpkZXNjID0gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBpcnFfZGVzYywga29iaik7Ci0J aW50IGNwdSwgaXJxID0gZGVzYy0+aXJxX2RhdGEuaXJxOwogCXNzaXplX3QgcmV0ID0gMDsKIAlj aGFyICpwID0gIiI7CisJaW50IGNwdTsKIAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsK LQkJdW5zaWduZWQgaW50IGMgPSBrc3RhdF9pcnFzX2NwdShpcnEsIGNwdSk7CisJCXVuc2lnbmVk IGludCBjID0gaXJxX2Rlc2Nfa3N0YXRfY3B1KGRlc2MsIGNwdSk7CiAKIAkJcmV0ICs9IHNjbnBy aW50ZihidWYgKyByZXQsIFBBR0VfU0laRSAtIHJldCwgIiVzJXUiLCBwLCBjKTsKIAkJcCA9ICIs IjsKQEAgLTM1Miw3ICszNTIsOSBAQCBzdHJ1Y3QgaXJxX2Rlc2MgKmlycV90b19kZXNjKHVuc2ln bmVkIGludCBpcnEpCiB7CiAJcmV0dXJuIHJhZGl4X3RyZWVfbG9va3VwKCZpcnFfZGVzY190cmVl LCBpcnEpOwogfQotRVhQT1JUX1NZTUJPTChpcnFfdG9fZGVzYyk7CisjaWZkZWYgQ09ORklHX0tW TV9CT09LM1NfNjRfSFYKK0VYUE9SVF9TWU1CT0xfR1BMKGlycV90b19kZXNjKTsKKyNlbmRpZgog CiBzdGF0aWMgdm9pZCBkZWxldGVfaXJxX2Rlc2ModW5zaWduZWQgaW50IGlycSkKIHsKQEAgLTky NCwxNSArOTI2LDcgQEAgc3RhdGljIGJvb2wgaXJxX2lzX25taShzdHJ1Y3QgaXJxX2Rlc2MgKmRl c2MpCiAJcmV0dXJuIGRlc2MtPmlzdGF0ZSAmIElSUVNfTk1JOwogfQogCi0vKioKLSAqIGtzdGF0 X2lycXMgLSBHZXQgdGhlIHN0YXRpc3RpY3MgZm9yIGFuIGludGVycnVwdAotICogQGlycToJVGhl IGludGVycnVwdCBudW1iZXIKLSAqCi0gKiBSZXR1cm5zIHRoZSBzdW0gb2YgaW50ZXJydXB0IGNv dW50cyBvbiBhbGwgY3B1cyBzaW5jZSBib290IGZvcgotICogQGlycS4gVGhlIGNhbGxlciBtdXN0 IGVuc3VyZSB0aGF0IHRoZSBpbnRlcnJ1cHQgaXMgbm90IHJlbW92ZWQKLSAqIGNvbmN1cnJlbnRs eS4KLSAqLwotdW5zaWduZWQgaW50IGtzdGF0X2lycXModW5zaWduZWQgaW50IGlycSkKK3N0YXRp YyB1bnNpZ25lZCBpbnQga3N0YXRfaXJxcyh1bnNpZ25lZCBpbnQgaXJxKQogewogCXN0cnVjdCBp cnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAJdW5zaWduZWQgaW50IHN1bSA9IDA7 CkBAIC05NDMsMjEgKzkzNywyMiBAQCB1bnNpZ25lZCBpbnQga3N0YXRfaXJxcyh1bnNpZ25lZCBp bnQgaXJxKQogCWlmICghaXJxX3NldHRpbmdzX2lzX3Blcl9jcHVfZGV2aWQoZGVzYykgJiYKIAkg ICAgIWlycV9zZXR0aW5nc19pc19wZXJfY3B1KGRlc2MpICYmCiAJICAgICFpcnFfaXNfbm1pKGRl c2MpKQotCSAgICByZXR1cm4gZGVzYy0+dG90X2NvdW50OworCQlyZXR1cm4gZGF0YV9yYWNlKGRl c2MtPnRvdF9jb3VudCk7CiAKIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlzdW0gKz0g KnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2lycXMsIGNwdSk7CisJCXN1bSArPSBkYXRhX3JhY2Uo KnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2lycXMsIGNwdSkpOwogCXJldHVybiBzdW07CiB9CiAK IC8qKgotICoga3N0YXRfaXJxc191c3IgLSBHZXQgdGhlIHN0YXRpc3RpY3MgZm9yIGFuIGludGVy cnVwdAorICoga3N0YXRfaXJxc191c3IgLSBHZXQgdGhlIHN0YXRpc3RpY3MgZm9yIGFuIGludGVy cnVwdCBmcm9tIHRocmVhZCBjb250ZXh0CiAgKiBAaXJxOglUaGUgaW50ZXJydXB0IG51bWJlcgog ICoKICAqIFJldHVybnMgdGhlIHN1bSBvZiBpbnRlcnJ1cHQgY291bnRzIG9uIGFsbCBjcHVzIHNp bmNlIGJvb3QgZm9yIEBpcnEuCi0gKiBDb250cmFyeSB0byBrc3RhdF9pcnFzKCkgdGhpcyBjYW4g YmUgY2FsbGVkIGZyb20gYW55IGNvbnRleHQuCi0gKiBJdCB1c2VzIHJjdSBzaW5jZSBhIGNvbmN1 cnJlbnQgcmVtb3ZhbCBvZiBhbiBpbnRlcnJ1cHQgZGVzY3JpcHRvciBpcwotICogb2JzZXJ2aW5n IGFuIHJjdSBncmFjZSBwZXJpb2QgYmVmb3JlIGRlbGF5ZWRfZnJlZV9kZXNjKCkvaXJxX2tvYmpf cmVsZWFzZSgpLgorICoKKyAqIEl0IHVzZXMgcmN1IHRvIHByb3RlY3QgdGhlIGFjY2VzcyBzaW5j ZSBhIGNvbmN1cnJlbnQgcmVtb3ZhbCBvZiBhbgorICogaW50ZXJydXB0IGRlc2NyaXB0b3IgaXMg b2JzZXJ2aW5nIGFuIHJjdSBncmFjZSBwZXJpb2QgYmVmb3JlCisgKiBkZWxheWVkX2ZyZWVfZGVz YygpL2lycV9rb2JqX3JlbGVhc2UoKS4KICAqLwogdW5zaWduZWQgaW50IGtzdGF0X2lycXNfdXNy KHVuc2lnbmVkIGludCBpcnEpCiB7CkBAIC05NjgsMyArOTYzLDE3IEBAIHVuc2lnbmVkIGludCBr c3RhdF9pcnFzX3Vzcih1bnNpZ25lZCBpbnQgaXJxKQogCXJjdV9yZWFkX3VubG9jaygpOwogCXJl dHVybiBzdW07CiB9CisKKyNpZmRlZiBDT05GSUdfTE9DS0RFUAordm9pZCBfX2lycV9zZXRfbG9j a2RlcF9jbGFzcyh1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmxvY2tf Y2xhc3MsCisJCQkgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqcmVxdWVzdF9jbGFzcykKK3sK KwlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOworCisJaWYgKGRlc2Mp IHsKKwkJbG9ja2RlcF9zZXRfY2xhc3MoJmRlc2MtPmxvY2ssIGxvY2tfY2xhc3MpOworCQlsb2Nr ZGVwX3NldF9jbGFzcygmZGVzYy0+cmVxdWVzdF9tdXRleCwgcmVxdWVzdF9jbGFzcyk7CisJfQor fQorRVhQT1JUX1NZTUJPTF9HUEwoX19pcnFfc2V0X2xvY2tkZXBfY2xhc3MpOworI2VuZGlmCmRp ZmYgLS1naXQgYS9rZXJuZWwvaXJxL21hbmFnZS5jIGIva2VybmVsL2lycS9tYW5hZ2UuYwppbmRl eCBjODI2YmE0MTQxZmUuLmFiODU2N2YzMjUwMSAxMDA2NDQKLS0tIGEva2VybmVsL2lycS9tYW5h Z2UuYworKysgYi9rZXJuZWwvaXJxL21hbmFnZS5jCkBAIC0yODIyLDMgKzI4MjIsNDAgQEAgaW50 IGlycV9zZXRfaXJxY2hpcF9zdGF0ZSh1bnNpZ25lZCBpbnQgaXJxLCBlbnVtIGlycWNoaXBfaXJx X3N0YXRlIHdoaWNoLAogCXJldHVybiBlcnI7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcnFfc2V0 X2lycWNoaXBfc3RhdGUpOworCisvKioKKyAqIGlycV9oYXNfYWN0aW9uIC0gQ2hlY2sgd2hldGhl ciBhbiBpbnRlcnJ1cHQgaXMgcmVxdWVzdGVkCisgKiBAaXJxOglUaGUgbGludXggaXJxIG51bWJl cgorICoKKyAqIFJldHVybnM6IEEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUKKyAqLwor Ym9vbCBpcnFfaGFzX2FjdGlvbih1bnNpZ25lZCBpbnQgaXJxKQoreworCWJvb2wgcmVzOworCisJ cmN1X3JlYWRfbG9jaygpOworCXJlcyA9IGlycV9kZXNjX2hhc19hY3Rpb24oaXJxX3RvX2Rlc2Mo aXJxKSk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcmV0dXJuIHJlczsKK30KK0VYUE9SVF9TWU1C T0xfR1BMKGlycV9oYXNfYWN0aW9uKTsKKworLyoqCisgKiBpcnFfY2hlY2tfc3RhdHVzX2JpdCAt IENoZWNrIHdoZXRoZXIgYml0cyBpbiB0aGUgaXJxIGRlc2NyaXB0b3Igc3RhdHVzIGFyZSBzZXQK KyAqIEBpcnE6CVRoZSBsaW51eCBpcnEgbnVtYmVyCisgKiBAYml0bWFzazoJVGhlIGJpdG1hc2sg dG8gZXZhbHVhdGUKKyAqCisgKiBSZXR1cm5zOiBUcnVlIGlmIG9uZSBvZiB0aGUgYml0cyBpbiBA Yml0bWFzayBpcyBzZXQKKyAqLworYm9vbCBpcnFfY2hlY2tfc3RhdHVzX2JpdCh1bnNpZ25lZCBp bnQgaXJxLCB1bnNpZ25lZCBpbnQgYml0bWFzaykKK3sKKwlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7 CisJYm9vbCByZXMgPSBmYWxzZTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlkZXNjID0gaXJxX3Rv X2Rlc2MoaXJxKTsKKwlpZiAoZGVzYykKKwkJcmVzID0gISEoZGVzYy0+c3RhdHVzX3VzZV9hY2Nl c3NvcnMgJiBiaXRtYXNrKTsKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlyZXR1cm4gcmVzOworfQpk aWZmIC0tZ2l0IGEva2VybmVsL2lycS9wcm9jLmMgYi9rZXJuZWwvaXJxL3Byb2MuYwppbmRleCA3 MjUxM2VkMmE1ZmMuLjk4MTM4Nzg4Y2IwNCAxMDA2NDQKLS0tIGEva2VybmVsL2lycS9wcm9jLmMK KysrIGIva2VybmVsL2lycS9wcm9jLmMKQEAgLTQ4OCw5ICs0ODgsMTAgQEAgaW50IHNob3dfaW50 ZXJydXB0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQgKnYpCiAJaWYgKCFkZXNjIHx8IGlycV9z ZXR0aW5nc19pc19oaWRkZW4oZGVzYykpCiAJCWdvdG8gb3V0c3BhcnNlOwogCi0JaWYgKGRlc2Mt PmtzdGF0X2lycXMpCisJaWYgKGRlc2MtPmtzdGF0X2lycXMpIHsKIAkJZm9yX2VhY2hfb25saW5l X2NwdShqKQotCQkJYW55X2NvdW50IHw9ICpwZXJfY3B1X3B0cihkZXNjLT5rc3RhdF9pcnFzLCBq KTsKKwkJCWFueV9jb3VudCB8PSBkYXRhX3JhY2UoKnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2ly cXMsIGopKTsKKwl9CiAKIAlpZiAoKCFkZXNjLT5hY3Rpb24gfHwgaXJxX2Rlc2NfaXNfY2hhaW5l ZChkZXNjKSkgJiYgIWFueV9jb3VudCkKIAkJZ290byBvdXRzcGFyc2U7Cgo=