From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC] mm: Replace all open encodings for NUMA_NO_NODE From: Anshuman Khandual Message-Id: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> Date: Mon, 12 Nov 2018 08:11:55 +0530 To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-media@vger.kernel.org, iommu@lists.linux-foundation.org, linux-rdma@vger.kernel.org, dmaengine@vger.kernel.org, linux-block@vger.kernel.org, sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-ia64@vger.kernel.org, linux-alpha@vger.kernel.org List-ID: QXQgcHJlc2VudCB0aGVyZSBhcmUgbXVsdGlwbGUgcGxhY2VzIHdoZXJlIGludmFsaWQgbm9kZSBu dW1iZXIgaXMgZW5jb2RlZAphcyAtMS4gRXZlbiB0aG91Z2ggaW1wbGljaXRseSB1bmRlcnN0b29k IGl0IGlzIGFsd2F5cyBiZXR0ZXIgdG8gaGF2ZSBtYWNyb3MKaW4gdGhlcmUuIFJlcGxhY2UgdGhl c2Ugb3BlbiBlbmNvZGluZ3MgZm9yIGFuIGludmFsaWQgbm9kZSBudW1iZXIgd2l0aCB0aGUKZ2xv YmFsIG1hY3JvIE5VTUFfTk9fTk9ERS4gVGhpcyBoZWxwcyByZW1vdmUgTlVNQSByZWxhdGVkIGFz c3VtcHRpb25zIGxpa2UKJ2ludmFsaWQgbm9kZScgZnJvbSB2YXJpb3VzIHBsYWNlcyByZWRpcmVj dGluZyB0aGVtIHRvIGEgY29tbW9uIGRlZmluaXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbnNodW1h biBLaGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT4KLS0tCkJ1aWxkIHRlc3RlZCB0 aGlzIHdpdGggbXVsdGlwbGUgY3Jvc3MgY29tcGlsZXIgb3B0aW9ucyBsaWtlIGFscGhhLCBzcGFy YywKYXJtNjQsIHg4NiwgcG93ZXJwYzY0bGUgZXRjIHdpdGggdGhlaXIgZGVmYXVsdCBjb25maWcg d2hpY2ggbWlnaHQgbm90IGhhdmUKY29tcGlsZWQgdGVzdGVkIGFsbCBkcml2ZXIgcmVsYXRlZCBj aGFuZ2VzLiBJIHdpbGwgYXBwcmVjaWF0ZSBmb2xrcyBnaXZpbmcKdGhpcyBhIHRlc3QgaW4gdGhl aXIgcmVzcGVjdGl2ZSBidWlsZCBlbnZpcm9ubWVudC4KCkFsbCB0aGVzZSBwbGFjZXMgZm9yIHJl cGxhY2VtZW50IHdlcmUgZm91bmQgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGdyZXAKcGF0dGVy bnMgb24gdGhlIGVudGlyZSBrZXJuZWwgY29kZS4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoaXMg bWlnaHQgaGF2ZQptaXNzZWQgc29tZSBpbnN0YW5jZXMuIFRoaXMgbWlnaHQgYWxzbyBoYXZlIHJl cGxhY2VkIHNvbWUgZmFsc2UgcG9zaXRpdmVzLgpJIHdpbGwgYXBwcmVjaWF0ZSBzdWdnZXN0aW9u cywgaW5wdXRzIGFuZCByZXZpZXcuCgoxLiBnaXQgZ3JlcCAibmlkID09IC0xIgoyLiBnaXQgZ3Jl cCAibm9kZSA9PSAtMSIKMy4gZ2l0IGdyZXAgIm5pZCA9IC0xIgo0LiBnaXQgZ3JlcCAibm9kZSA9 IC0xIgoKIGFyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCAgICAgICAgICAgICB8ICAy ICstCiBhcmNoL2lhNjQva2VybmVsL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tCiBhcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaCAgICAgICAgIHwgIDIgKy0K IGFyY2gvcG93ZXJwYy9rZXJuZWwvcGFjYS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyAgICAgICAgICAgICAgfCAgMiArLQogYXJj aC9wb3dlcnBjL21tL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0t LS0tLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9tZW10cmFjZS5jICAgICB8ICA0 ICsrLS0KIGFyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMgICAgICAgICAgICAgICAgICB8ICAy ICstCiBhcmNoL3NwYXJjL2tlcm5lbC9wY2lfZmlyZS5jICAgICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6by5jICAgICAgICAgICAgICAgIHwgIDIgKy0K IGFyY2gvc3BhcmMva2VybmVsL3BjaWMuYyAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0t LQogYXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jICAgICAgICAgICAgIHwgIDIgKy0K IGFyY2gvc3BhcmMva2VybmVsL3NidXMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3NwYXJjL21tL2luaXRfNjQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0K IGFyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3NwYXJjL3Byb20vaW5pdF82NC5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBh cmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKyst LS0tLS0KIGFyY2gvc3BhcmMvcHJvbS90cmVlXzY0LmMgICAgICAgICAgICAgICAgICAgICB8IDE4 ICsrKysrKysrKy0tLS0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmggICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMgICAg ICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jICAgICAg ICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRp cDMyeHguYyAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZG1hL2RtYWVuZ2luZS5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEv YWZmaW5pdHkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2lu aXQuYyAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2lvbW11L2RtYXIuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2ZmIuYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQt b3NkLmMgICAgICB8ICAyICstCiBkcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jICAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVf bWFpbi5jIHwgIDQgKystLQogZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYyAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIuYyAgICAgICAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvb2NmczIvZGxtL2RsbWNvbW1vbi5oICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL29jZnMyL2RsbS9kbG1kb21haW4uYyAgICAgICAgICAgICAgICAgICAgICB8 IDEwICsrKysrLS0tLS0KIGZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBmcy9vY2ZzMi9kbG0vZGxtcmVjb3ZlcnkuYyAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvb2NmczIvc3RhY2tfdXNlci5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrLS0tCiBpbml0L2luaXRfdGFzay5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQoga2VybmVsL2t0aHJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGtlcm5lbC9zY2hlZC9mYWlyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE1ICsrKysrKysrLS0tLS0tLQogbGliL2NwdW1hc2suYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIG1tL2h1Z2VfbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogbW0vaHVnZXRsYi5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL2tzbS5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBtbS9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNiArKystLS0KIG1tL21lbW9yeV9ob3RwbHVnLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogbW0vbWVtcG9saWN5LmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIG1tL3BhZ2VfZXh0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvY29yZS9wa3RnZW4uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3FydHIvcXJ0ci5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL3BlcmYvYmVuY2gvbnVtYS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogNTcgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlv bnMoKyksIDEyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUv YXNtL3RvcG9sb2d5LmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgKaW5kZXgg ZTZlMTNhOC4uZjZkYzg5YyAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS90b3Bv bG9neS5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaApAQCAtMjksNyAr MjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdW1hc2tfb2Zfbm9kZShpbnQg bm9kZSkKIHsKIAlpbnQgY3B1OwogCi0JaWYgKG5vZGUgPT0gLTEpCisJaWYgKG5vZGUgPT0gTlVN QV9OT19OT0RFKQogCQlyZXR1cm4gY3B1X2FsbF9tYXNrOwogCiAJY3B1bWFza19jbGVhcigmbm9k ZV90b19jcHVtYXNrX21hcFtub2RlXSk7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL251 bWEuYyBiL2FyY2gvaWE2NC9rZXJuZWwvbnVtYS5jCmluZGV4IDkyYzM3NjIuLjEzMTVkYTYgMTAw NjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvbnVtYS5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwv bnVtYS5jCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgX19pbml0IGJ1aWxkX2NwdV90b19ub2RlX21h cCh2b2lkKQogCQljcHVtYXNrX2NsZWFyKCZub2RlX3RvX2NwdV9tYXNrW25vZGVdKTsKIAogCWZv cl9lYWNoX3Bvc3NpYmxlX2Vhcmx5X2NwdShjcHUpIHsKLQkJbm9kZSA9IC0xOworCQlub2RlID0g TlVNQV9OT19OT0RFOwogCQlmb3IgKGkgPSAwOyBpIDwgTlJfQ1BVUzsgKytpKQogCQkJaWYgKGNw dV9waHlzaWNhbF9pZChjcHUpID09IG5vZGVfY3B1aWRbaV0ucGh5c19pZCkgewogCQkJCW5vZGUg PSBub2RlX2NwdWlkW2ldLm5pZDsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9tbS9kaXNjb250aWcu YyBiL2FyY2gvaWE2NC9tbS9kaXNjb250aWcuYwppbmRleCA4YTk2NTc4Li5mOWMzNjc1IDEwMDY0 NAotLS0gYS9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMKKysrIGIvYXJjaC9pYTY0L21tL2Rpc2Nv bnRpZy5jCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBfX2luaXQgc2V0dXBfcGVyX2NwdV9hcmVh cyh2b2lkKQogCSAqIENQVXMgYXJlIHB1dCBpbnRvIGdyb3VwcyBhY2NvcmRpbmcgdG8gbm9kZS4g IFdhbGsgY3B1X21hcAogCSAqIGFuZCBjcmVhdGUgbmV3IGdyb3VwcyBhdCBub2RlIGJvdW5kYXJp ZXMuCiAJICovCi0JcHJldl9ub2RlID0gLTE7CisJcHJldl9ub2RlID0gTlVNQV9OT19OT0RFOwog CWFpLT5ucl9ncm91cHMgPSAwOwogCWZvciAodW5pdCA9IDA7IHVuaXQgPCBucl91bml0czsgdW5p dCsrKSB7CiAJCWNwdSA9IGNwdV9tYXBbdW5pdF07CkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0ICptZW1vcnlfbGVzc19ub2RlX2FsbG9jKGludCBuaWQsIHVuc2lnbmVkIGxv bmcgcGVybm9kZXNpemUpCiB7CiAJdm9pZCAqcHRyID0gTlVMTDsKIAl1OCBiZXN0ID0gMHhmZjsK LQlpbnQgYmVzdG5vZGUgPSAtMSwgbm9kZSwgYW55bm9kZSA9IDA7CisJaW50IGJlc3Rub2RlID0g TlVNQV9OT19OT0RFLCBub2RlLCBhbnlub2RlID0gMDsKIAogCWZvcl9lYWNoX29ubGluZV9ub2Rl KG5vZGUpIHsKIAkJaWYgKG5vZGVfaXNzZXQobm9kZSwgbWVtb3J5X2xlc3NfbWFzaykpCkBAIC00 NDcsNyArNDQ3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0ICptZW1vcnlfbGVzc19ub2RlX2FsbG9j KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGVybm9kZXNpemUpCiAJCWFueW5vZGUgPSBub2RlOwog CX0KIAotCWlmIChiZXN0bm9kZSA9PSAtMSkKKwlpZiAoYmVzdG5vZGUgPT0gTlVNQV9OT19OT0RF KQogCQliZXN0bm9kZSA9IGFueW5vZGU7CiAKIAlwdHIgPSBtZW1ibG9ja19hbGxvY190cnlfbmlk KHBlcm5vZGVzaXplLCBQRVJDUFVfUEFHRV9TSVpFLApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L3Nu L2tlcm5lbC9pb19jb21tb24uYyBiL2FyY2gvaWE2NC9zbi9rZXJuZWwvaW9fY29tbW9uLmMKaW5k ZXggOGRmMTNkMC4uODZiM2ZjYiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19j b21tb24uYworKysgYi9hcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jCkBAIC0zNDQsNyAr MzQ0LDcgQEAgc25fY29tbW9uX2J1c19maXh1cChzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQlwcmlu dGsoS0VSTl9XQVJOSU5HICJvbiBub2RlICVkIGJ1dCBvbmx5ICVkIG5vZGVzIG9ubGluZS4iCiAJ CSAgICAgICAiQXNzb2NpYXRpb24gc2V0IHRvIHVuZGV0ZXJtaW5lZC5cbiIsCiAJCSAgICAgICBj b250cm9sbGVyLT5ub2RlLCBudW1fb25saW5lX25vZGVzKCkpOwotCQljb250cm9sbGVyLT5ub2Rl ID0gLTE7CisJCWNvbnRyb2xsZXItPm5vZGUgPSBOVU1BX05PX05PREU7CiAJfQogfQogCmRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oIGIvYXJjaC9wb3dl cnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAppbmRleCA5NGQ0NDkwLi4yNWE5ZTMzIDEwMDY0 NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oCisrKyBiL2FyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKQEAgLTI2NCw3ICsyNjQsNyBAQCBleHRl cm4gaW50IHBjaWJpb3NfbWFwX2lvX3NwYWNlKHN0cnVjdCBwY2lfYnVzICpidXMpOwogI2lmZGVm IENPTkZJR19OVU1BCiAjZGVmaW5lIFBIQl9TRVRfTk9ERShQSEIsIE5PREUpCQkoKFBIQiktPm5v ZGUgPSAoTk9ERSkpCiAjZWxzZQotI2RlZmluZSBQSEJfU0VUX05PREUoUEhCLCBOT0RFKQkJKChQ SEIpLT5ub2RlID0gLTEpCisjZGVmaW5lIFBIQl9TRVRfTk9ERShQSEIsIE5PREUpCQkoKFBIQikt Pm5vZGUgPSBOVU1BX05PX05PREUpCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19QUEM2NCAq LwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMgYi9hcmNoL3Bvd2VycGMv a2VybmVsL3BhY2EuYwppbmRleCA5MTNiZmNhLi42YTBiZDUxIDEwMDY0NAotLS0gYS9hcmNoL3Bv d2VycGMva2VybmVsL3BhY2EuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BhY2EuYwpAQCAt MzYsNyArMzYsNyBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jX3BhY2FfZGF0YSh1bnNpZ25l ZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24sCiAJICogd2hpY2ggd2lsbCBwdXQgaXRz IHBhY2EgaW4gdGhlIHJpZ2h0IHBsYWNlLgogCSAqLwogCWlmIChjcHUgPT0gYm9vdF9jcHVpZCkg ewotCQluaWQgPSAtMTsKKwkJbmlkID0gTlVNQV9OT19OT0RFOwogCQltZW1ibG9ja19zZXRfYm90 dG9tX3VwKHRydWUpOwogCX0gZWxzZSB7CiAJCW5pZCA9IGVhcmx5X2NwdV90b19ub2RlKGNwdSk7 CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyBiL2FyY2gvcG93 ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCmluZGV4IDg4ZTRmNjkuLjE0YzMzYTkgMTAwNjQ0Ci0t LSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9r ZXJuZWwvcGNpLWNvbW1vbi5jCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0IHBjaV9jb250cm9s bGVyICpwY2liaW9zX2FsbG9jX2NvbnRyb2xsZXIoc3RydWN0IGRldmljZV9ub2RlICpkZXYpCiAJ CWludCBuaWQgPSBvZl9ub2RlX3RvX25pZChkZXYpOwogCiAJCWlmIChuaWQgPCAwIHx8ICFub2Rl X29ubGluZShuaWQpKQotCQkJbmlkID0gLTE7CisJCQluaWQgPSBOVU1BX05PX05PREU7CiAKIAkJ UEhCX1NFVF9OT0RFKHBoYiwgbmlkKTsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0v bnVtYS5jIGIvYXJjaC9wb3dlcnBjL21tL251bWEuYwppbmRleCAzYTA0OGU5Li43NzgwOGEyIDEw MDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vbnVtYS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9u dW1hLmMKQEAgLTIxNSw3ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplX2Rpc3RhbmNl X2xvb2t1cF90YWJsZShpbnQgbmlkLAogICovCiBzdGF0aWMgaW50IGFzc29jaWF0aXZpdHlfdG9f bmlkKGNvbnN0IF9fYmUzMiAqYXNzb2NpYXRpdml0eSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50 IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAogCWlmIChtaW5fY29tbW9uX2RlcHRoID09IC0xKQogCQln b3RvIG91dDsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgaW50IGFzc29jaWF0aXZpdHlfdG9f bmlkKGNvbnN0IF9fYmUzMiAqYXNzb2NpYXRpdml0eSkKIAogCS8qIFBPV0VSNCBMUEFSIHVzZXMg MHhmZmZmIGFzIGludmFsaWQgbm9kZSAqLwogCWlmIChuaWQgPT0gMHhmZmZmIHx8IG5pZCA+PSBN QVhfTlVNTk9ERVMpCi0JCW5pZCA9IC0xOworCQluaWQgPSBOVU1BX05PX05PREU7CiAKIAlpZiAo bmlkID4gMCAmJgogCQlvZl9yZWFkX251bWJlcihhc3NvY2lhdGl2aXR5LCAxKSA+PSBkaXN0YW5j ZV9yZWZfcG9pbnRzX2RlcHRoKSB7CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIGludCBhc3Nv Y2lhdGl2aXR5X3RvX25pZChjb25zdCBfX2JlMzIgKmFzc29jaWF0aXZpdHkpCiAgKi8KIHN0YXRp YyBpbnQgb2Zfbm9kZV90b19uaWRfc2luZ2xlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2aWNlKQog ewotCWludCBuaWQgPSAtMTsKKwlpbnQgbmlkID0gTlVNQV9OT19OT0RFOwogCWNvbnN0IF9fYmUz MiAqdG1wOwogCiAJdG1wID0gb2ZfZ2V0X2Fzc29jaWF0aXZpdHkoZGV2aWNlKTsKQEAgLTI1Niw3 ICsyNTYsNyBAQCBzdGF0aWMgaW50IG9mX25vZGVfdG9fbmlkX3NpbmdsZShzdHJ1Y3QgZGV2aWNl X25vZGUgKmRldmljZSkKIC8qIFdhbGsgdGhlIGRldmljZSB0cmVlIHVwd2FyZHMsIGxvb2tpbmcg Zm9yIGFuIGFzc29jaWF0aXZpdHkgaWQgKi8KIGludCBvZl9ub2RlX3RvX25pZChzdHJ1Y3QgZGV2 aWNlX25vZGUgKmRldmljZSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9f Tk9ERTsKIAogCW9mX25vZGVfZ2V0KGRldmljZSk7CiAJd2hpbGUgKGRldmljZSkgewpAQCAtNDU0 LDcgKzQ1NCw3IEBAIHN0YXRpYyBpbnQgb2ZfZHJjb25mX3RvX25pZF9zaW5nbGUoc3RydWN0IGRy bWVtX2xtYiAqbG1iKQogICovCiBzdGF0aWMgaW50IG51bWFfc2V0dXBfY3B1KHVuc2lnbmVkIGxv bmcgbGNwdSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAlz dHJ1Y3QgZGV2aWNlX25vZGUgKmNwdTsKIAogCS8qCkBAIC05MzAsNyArOTMwLDcgQEAgc3RhdGlj IGludCBob3RfYWRkX2RyY29uZl9zY25fdG9fbmlkKHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiB7 CiAJc3RydWN0IGRybWVtX2xtYiAqbG1iOwogCXVuc2lnbmVkIGxvbmcgbG1iX3NpemU7Ci0JaW50 IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAKIAlsbWJfc2l6ZSA9IGRybWVt X2xtYl9zaXplKCk7CiAKQEAgLTk2MCw3ICs5NjAsNyBAQCBzdGF0aWMgaW50IGhvdF9hZGRfZHJj b25mX3Njbl90b19uaWQodW5zaWduZWQgbG9uZyBzY25fYWRkcikKIHN0YXRpYyBpbnQgaG90X2Fk ZF9ub2RlX3Njbl90b19uaWQodW5zaWduZWQgbG9uZyBzY25fYWRkcikKIHsKIAlzdHJ1Y3QgZGV2 aWNlX25vZGUgKm1lbW9yeTsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9E RTsKIAogCWZvcl9lYWNoX25vZGVfYnlfdHlwZShtZW1vcnksICJtZW1vcnkiKSB7CiAJCXVuc2ln bmVkIGxvbmcgc3RhcnQsIHNpemU7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3Bvd2VybnYvbWVtdHJhY2UuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9tZW10 cmFjZS5jCmluZGV4IDg0ZDAzOGUuLjFjZTNiZmMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcG93ZXJudi9tZW10cmFjZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMv cG93ZXJudi9tZW10cmFjZS5jCkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGludCBtZW10cmFj ZV9vbmxpbmUodm9pZCkKIAkJZW50ID0gJm1lbXRyYWNlX2FycmF5W2ldOwogCiAJCS8qIFdlIGhh dmUgb25saW5lZCB0aGlzIGNodW5rIHByZXZpb3VzbHkgKi8KLQkJaWYgKGVudC0+bmlkID09IC0x KQorCQlpZiAoZW50LT5uaWQgPT0gTlVNQV9OT19OT0RFKQogCQkJY29udGludWU7CiAKIAkJLyog UmVtb3ZlIGZyb20gaW8gbWFwcGluZ3MgKi8KQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgaW50 IG1lbXRyYWNlX29ubGluZSh2b2lkKQogCQkgKi8KIAkJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZl KGVudC0+ZGlyKTsKIAkJcHJfaW5mbygiQWRkZWQgdHJhY2UgbWVtb3J5IGJhY2sgdG8gbm9kZSAl ZFxuIiwgZW50LT5uaWQpOwotCQllbnQtPnNpemUgPSBlbnQtPnN0YXJ0ID0gZW50LT5uaWQgPSAt MTsKKwkJZW50LT5zaXplID0gZW50LT5zdGFydCA9IGVudC0+bmlkID0gTlVNQV9OT19OT0RFOwog CX0KIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJu ZWwvYXV4aW9fMzIuYyBiL2FyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMKaW5kZXggYTMyZDU4 OC4uMzlmNmM1OSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYworKysg Yi9hcmNoL3NwYXJjL2tlcm5lbC9hdXhpb18zMi5jCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBf X2luaXQgYXV4aW9fcG93ZXJfcHJvYmUodm9pZCkKIAlub2RlID0gcHJvbV9zZWFyY2hzaWJsaW5n cyhub2RlLCAib2JpbyIpOwogCW5vZGUgPSBwcm9tX2dldGNoaWxkKG5vZGUpOwogCW5vZGUgPSBw cm9tX3NlYXJjaHNpYmxpbmdzKG5vZGUsICJwb3dlciIpOwotCWlmIChub2RlID09IDAgfHwgKHMz Milub2RlID09IC0xKQorCWlmIChub2RlID09IDAgfHwgKHMzMilub2RlID09IE5VTUFfTk9fTk9E RSkKIAkJcmV0dXJuOwogCiAJLyogTWFwIHRoZSBwb3dlciBjb250cm9sIHJlZ2lzdGVyLiAqLwpk aWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX2ZpcmUuYyBiL2FyY2gvc3BhcmMva2Vy bmVsL3BjaV9maXJlLmMKaW5kZXggYmU3MWFlMC4uNDc0ZDNiZSAxMDA2NDQKLS0tIGEvYXJjaC9z cGFyYy9rZXJuZWwvcGNpX2ZpcmUuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfZmlyZS5j CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGljIGludCBwY2lfZmlyZV9wYm1faW5pdChzdHJ1Y3Qg cGNpX3BibV9pbmZvICpwYm0sCiAJc3RydWN0IGRldmljZV9ub2RlICpkcCA9IG9wLT5kZXYub2Zf bm9kZTsKIAlpbnQgZXJyOwogCi0JcGJtLT5udW1hX25vZGUgPSAtMTsKKwlwYm0tPm51bWFfbm9k ZSA9IE5VTUFfTk9fTk9ERTsKIAogCXBibS0+cGNpX29wcyA9ICZzdW40dV9wY2lfb3BzOwogCXBi bS0+Y29uZmlnX3NwYWNlX3JlZ19iaXRzID0gMTI7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tl cm5lbC9wY2lfc2NoaXpvLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfc2NoaXpvLmMKaW5kZXgg OTM0Yjk3Yy4uODdiYjIzMSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6 by5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaV9zY2hpem8uYwpAQCAtMTM0Nyw3ICsxMzQ3 LDcgQEAgc3RhdGljIGludCBzY2hpem9fcGJtX2luaXQoc3RydWN0IHBjaV9wYm1faW5mbyAqcGJt LAogCXBibS0+bmV4dCA9IHBjaV9wYm1fcm9vdDsKIAlwY2lfcGJtX3Jvb3QgPSBwYm07CiAKLQlw Ym0tPm51bWFfbm9kZSA9IC0xOworCXBibS0+bnVtYV9ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJ cGJtLT5wY2lfb3BzID0gJnN1bjR1X3BjaV9vcHM7CiAJcGJtLT5jb25maWdfc3BhY2VfcmVnX2Jp dHMgPSA4OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jIGIvYXJjaC9zcGFy Yy9rZXJuZWwvcGNpYy5jCmluZGV4IGVlNGM5YTkuLmQ1ZmU4OTggMTAwNjQ0Ci0tLSBhL2FyY2gv c3BhcmMva2VybmVsL3BjaWMuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMKQEAgLTQ3 Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBwY2ljX21hcF9wY2lfZGV2aWNlKHN0cnVjdCBsaW51 eF9wY2ljICpwY2ljLAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGo7CiAKLQlpZiAobm9k ZSA9PSAwIHx8IG5vZGUgPT0gLTEpIHsKKwlpZiAobm9kZSA9PSAwIHx8IG5vZGUgPT0gTlVNQV9O T19OT0RFKSB7CiAJCXN0cmNweShuYW1lYnVmLCAiPz8/Iik7CiAJfSBlbHNlIHsKIAkJcHJvbV9n ZXRzdHJpbmcobm9kZSwgIm5hbWUiLCBuYW1lYnVmLCA2Myk7IG5hbWVidWZbNjNdID0gMDsKQEAg LTUzNSw3ICs1MzUsNyBAQCBwY2ljX2ZpbGxfaXJxKHN0cnVjdCBsaW51eF9wY2ljICpwY2ljLCBz dHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbm9kZSkKIAlpbnQgaSwgaXZlYzsKIAljaGFyIG5hbWVi dWZbNjRdOwogCi0JaWYgKG5vZGUgPT0gMCB8fCBub2RlID09IC0xKSB7CisJaWYgKG5vZGUgPT0g MCB8fCBub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQlzdHJjcHkobmFtZWJ1ZiwgIj8/PyIpOwog CX0gZWxzZSB7CiAJCXByb21fZ2V0c3RyaW5nKG5vZGUsICJuYW1lIiwgbmFtZWJ1Ziwgc2l6ZW9m KG5hbWVidWYpKTsKQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIHBjaWJpb3NfZml4dXBfYnVzKHN0 cnVjdCBwY2lfYnVzICpidXMpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZidXMtPmRldmlj ZXMsIGJ1c19saXN0KSB7CiAJCW5vZGUgPSBwZGV2X3RvX3Bub2RlKCZwY2ljLT5wYm0sIGRldik7 CiAJCWlmKG5vZGUgPT0gMCkKLQkJCW5vZGUgPSAtMTsKKwkJCW5vZGUgPSBOVU1BX05PX05PREU7 CiAKIAkJLyogY29va2llcyAqLwogCQlwY3AgPSBwY2lfZGV2Y29va2llX2FsbG9jKCk7CmRpZmYg LS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9wc3ljaG9fY29tbW9uLmMgYi9hcmNoL3NwYXJjL2tl cm5lbC9wc3ljaG9fY29tbW9uLmMKaW5kZXggODFhYTkxZS4uZGNiZjQ5MiAxMDA2NDQKLS0tIGEv YXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVs L3BzeWNob19jb21tb24uYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIHZvaWQgcHN5Y2hvX3BibV9pbml0 X2NvbW1vbihzdHJ1Y3QgcGNpX3BibV9pbmZvICpwYm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug Km9wCiAJc3RydWN0IGRldmljZV9ub2RlICpkcCA9IG9wLT5kZXYub2Zfbm9kZTsKIAogCXBibS0+ bmFtZSA9IGRwLT5mdWxsX25hbWU7Ci0JcGJtLT5udW1hX25vZGUgPSAtMTsKKwlwYm0tPm51bWFf bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlwYm0tPmNoaXBfdHlwZSA9IGNoaXBfdHlwZTsKIAlwYm0t PmNoaXBfdmVyc2lvbiA9IG9mX2dldGludHByb3BfZGVmYXVsdChkcCwgInZlcnNpb24jIiwgMCk7 CiAJcGJtLT5jaGlwX3JldmlzaW9uID0gb2ZfZ2V0aW50cHJvcF9kZWZhdWx0KGRwLCAibW9kdWxl LXJldmlzaW9uIyIsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvc2J1cy5jIGIv YXJjaC9zcGFyYy9rZXJuZWwvc2J1cy5jCmluZGV4IGMxMzNkZmMuLjI4YTRhYTkgMTAwNjQ0Ci0t LSBhL2FyY2gvc3BhcmMva2VybmVsL3NidXMuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9zYnVz LmMKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc2J1c19pb21tdV9pbml0 KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9wKQogCiAJb3AtPmRldi5hcmNoZGF0YS5pb21tdSA9 IGlvbW11OwogCW9wLT5kZXYuYXJjaGRhdGEuc3RjID0gc3RyYnVmOwotCW9wLT5kZXYuYXJjaGRh dGEubnVtYV9ub2RlID0gLTE7CisJb3AtPmRldi5hcmNoZGF0YS5udW1hX25vZGUgPSBOVU1BX05P X05PREU7CiAKIAlyZWdfYmFzZSA9IHJlZ3MgKyBTWVNJT19JT01NVVJFR19CQVNFOwogCWlvbW11 LT5pb21tdV9jb250cm9sID0gcmVnX2Jhc2UgKyBJT01NVV9DT05UUk9MOwpkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9tbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwppbmRleCAz YzhhYWMyLi5jYjFiZWQxIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL2luaXRfNjQuYworKysg Yi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwpAQCAtOTc2LDEzICs5NzYsMTMgQEAgc3RhdGljIHU2 NCBfX2luaXQgbWVtYmxvY2tfbmlkX3JhbmdlX3N1bjR1KHU2NCBzdGFydCwgdTY0IGVuZCwgaW50 ICpuaWQpCiB7CiAJaW50IHByZXZfbmlkLCBuZXdfbmlkOwogCi0JcHJldl9uaWQgPSAtMTsKKwlw cmV2X25pZCA9IE5VTUFfTk9fTk9ERTsKIAlmb3IgKCA7IHN0YXJ0IDwgZW5kOyBzdGFydCArPSBQ QUdFX1NJWkUpIHsKIAkJZm9yIChuZXdfbmlkID0gMDsgbmV3X25pZCA8IG51bV9ub2RlX21hc2tz OyBuZXdfbmlkKyspIHsKIAkJCXN0cnVjdCBub2RlX21lbV9tYXNrICpwID0gJm5vZGVfbWFza3Nb bmV3X25pZF07CiAKIAkJCWlmICgoc3RhcnQgJiBwLT5tYXNrKSA9PSBwLT5tYXRjaCkgewotCQkJ CWlmIChwcmV2X25pZCA9PSAtMSkKKwkJCQlpZiAocHJldl9uaWQgPT0gTlVNQV9OT19OT0RFKQog CQkJCQlwcmV2X25pZCA9IG5ld19uaWQ7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0xMjA4LDcgKzEy MDgsNyBAQCBpbnQgb2Zfbm9kZV90b19uaWQoc3RydWN0IGRldmljZV9ub2RlICpkcCkKIAltZCA9 IG1kZXNjX2dyYWIoKTsKIAogCWNvdW50ID0gMDsKLQluaWQgPSAtMTsKKwluaWQgPSBOVU1BX05P X05PREU7CiAJbWRlc2NfZm9yX2VhY2hfbm9kZV9ieV9uYW1lKG1kLCBncnAsICJncm91cCIpIHsK IAkJaWYgKCFzY2FuX2FyY3NfZm9yX2NmZ19oYW5kbGUobWQsIGdycCwgY2ZnX2hhbmRsZSkpIHsK IAkJCW5pZCA9IGNvdW50OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYyBi L2FyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMKaW5kZXggZDIwNDcwMS4uNGM2ZTU0MCAxMDA2NDQK LS0tIGEvYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYworKysgYi9hcmNoL3NwYXJjL3Byb20vaW5p dF8zMi5jCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgX19pbml0IHByb21faW5pdChzdHJ1Y3QgbGlu dXhfcm9tdmVjICpycCkKIAlwcm9tX25vZGVvcHMgPSByb212ZWMtPnB2X25vZGVvcHM7CiAKIAlw cm9tX3Jvb3Rfbm9kZSA9IHByb21fZ2V0c2libGluZygwKTsKLQlpZiAoKHByb21fcm9vdF9ub2Rl ID09IDApIHx8ICgoczMyKXByb21fcm9vdF9ub2RlID09IC0xKSkKKwlpZiAoKHByb21fcm9vdF9u b2RlID09IDApIHx8ICgoczMyKXByb21fcm9vdF9ub2RlID09IE5VTUFfTk9fTk9ERSkpCiAJCXBy b21faGFsdCgpOwogCiAJaWYoKCgodW5zaWduZWQgbG9uZykgcHJvbV9ub2Rlb3BzKSA9PSAwKSB8 fCAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvcHJvbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL3By b20vaW5pdF82NC5jCmluZGV4IDEwM2FhOTEuLjg1NjY5YzAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMvcHJvbS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9wcm9tL2luaXRfNjQuYwpAQCAtMzYs MTMgKzM2LDEzIEBAIHZvaWQgX19pbml0IHByb21faW5pdCh2b2lkICpjaWZfaGFuZGxlcikKIAlw cm9tX2NpZl9pbml0KGNpZl9oYW5kbGVyKTsKIAogCXByb21fY2hvc2VuX25vZGUgPSBwcm9tX2Zp bmRkZXZpY2UocHJvbV9jaG9zZW5fcGF0aCk7Ci0JaWYgKCFwcm9tX2Nob3Nlbl9ub2RlIHx8IChz MzIpcHJvbV9jaG9zZW5fbm9kZSA9PSAtMSkKKwlpZiAoIXByb21fY2hvc2VuX25vZGUgfHwgKHMz Milwcm9tX2Nob3Nlbl9ub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcHJvbV9oYWx0KCk7CiAKIAlw cm9tX3N0ZG91dCA9IHByb21fZ2V0aW50KHByb21fY2hvc2VuX25vZGUsICJzdGRvdXQiKTsKIAog CW5vZGUgPSBwcm9tX2ZpbmRkZXZpY2UoIi9vcGVucHJvbSIpOwotCWlmICghbm9kZSB8fCAoczMy KW5vZGUgPT0gLTEpCisJaWYgKCFub2RlIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJ CXByb21faGFsdCgpOwogCiAJcHJvbV9nZXRzdHJpbmcobm9kZSwgInZlcnNpb24iLCBwcm9tX3Zl cnNpb24sIHNpemVvZihwcm9tX3ZlcnNpb24pKTsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvcHJv bS90cmVlXzMyLmMgYi9hcmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jCmluZGV4IDBmZWQ4OTMuLjJk MGEyMDQgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvcHJvbS90cmVlXzMyLmMKKysrIGIvYXJjaC9z cGFyYy9wcm9tL3RyZWVfMzIuYwpAQCAtNDEsMTEgKzQxLDExIEBAIHBoYW5kbGUgcHJvbV9nZXRj aGlsZChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMyKW5vZGUg PT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJ Y25vZGUgPSBfX3Byb21fZ2V0Y2hpbGQobm9kZSk7Ci0JaWYgKGNub2RlID09IDAgfHwgKHMzMilj bm9kZSA9PSAtMSkKKwlpZiAoY25vZGUgPT0gMCB8fCAoczMyKWNub2RlID09IE5VTUFfTk9fTk9E RSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gY25vZGU7CkBAIC03MywxMSArNzMsMTEgQEAgcGhh bmRsZSBwcm9tX2dldHNpYmxpbmcocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgc2libm9kZTsK IAotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybiAwOwogCiAJc2libm9kZSA9IF9fcHJvbV9nZXRzaWJsaW5nKG5vZGUpOwotCWlm IChzaWJub2RlID09IDAgfHwgKHMzMilzaWJub2RlID09IC0xKQorCWlmIChzaWJub2RlID09IDAg fHwgKHMzMilzaWJub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4g c2libm9kZTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgY2hhciAqX19wcm9tX25leHRwcm9w KHBoYW5kbGUgbm9kZSwgY2hhciAqIG9wcm9wKQogICovCiBjaGFyICpwcm9tX25leHRwcm9wKHBo YW5kbGUgbm9kZSwgY2hhciAqb3Byb3AsIGNoYXIgKmJ1ZmZlcikKIHsKLQlpZiAobm9kZSA9PSAw IHx8IChzMzIpbm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9PSAwIHx8IChzMzIpbm9kZSA9PSBOVU1B X05PX05PREUpCiAJCXJldHVybiAiIjsKIAogCXJldHVybiBfX3Byb21fbmV4dHByb3Aobm9kZSwg b3Byb3ApOwpAQCAtMzA0LDcgKzMwNCw3IEBAIHBoYW5kbGUgcHJvbV9pbnN0MnBrZyhpbnQgaW5z dCkKIAlub2RlID0gKCpyb212ZWMtPnB2X3YyZGV2b3BzLnYyX2luc3QycGtnKShpbnN0KTsKIAly ZXN0b3JlX2N1cnJlbnQoKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcm9tX2xvY2ssIGZs YWdzKTsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19O T0RFKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvc3Bh cmMvcHJvbS90cmVlXzY0LmMgYi9hcmNoL3NwYXJjL3Byb20vdHJlZV82NC5jCmluZGV4IDk4OWU3 OTkuLjJiNGM1MTUgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvcHJvbS90cmVlXzY0LmMKKysrIGIv YXJjaC9zcGFyYy9wcm9tL3RyZWVfNjQuYwpAQCAtNDQsMTAgKzQ0LDEwIEBAIHBoYW5kbGUgcHJv bV9nZXRjaGlsZChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMy KW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAw OwogCWNub2RlID0gX19wcm9tX2dldGNoaWxkKG5vZGUpOwotCWlmICgoczMyKWNub2RlID09IC0x KQorCWlmICgoczMyKWNub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJu IGNub2RlOwogfQpAQCAtNTcsMTAgKzU3LDEwIEBAIGlubGluZSBwaGFuZGxlIHByb21fZ2V0cGFy ZW50KHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIGNub2RlOwogCi0JaWYgKChzMzIpbm9kZSA9 PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJY25v ZGUgPSBwcm9tX25vZGVfdG9fbm9kZSgicGFyZW50Iiwgbm9kZSk7Ci0JaWYgKChzMzIpY25vZGUg PT0gLTEpCisJaWYgKChzMzIpY25vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAly ZXR1cm4gY25vZGU7CiB9CkBAIC03NywxMCArNzcsMTAgQEAgcGhhbmRsZSBwcm9tX2dldHNpYmxp bmcocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgc2libm9kZTsKIAotCWlmICgoczMyKW5vZGUg PT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCXNp Ym5vZGUgPSBfX3Byb21fZ2V0c2libGluZyhub2RlKTsKLQlpZiAoKHMzMilzaWJub2RlID09IC0x KQorCWlmICgoczMyKXNpYm5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCXJl dHVybiBzaWJub2RlOwpAQCAtMjQxLDcgKzI0MSw3IEBAIGNoYXIgKnByb21fZmlyc3Rwcm9wKHBo YW5kbGUgbm9kZSwgY2hhciAqYnVmZmVyKQogCXVuc2lnbmVkIGxvbmcgYXJnc1s3XTsKIAogCSpi dWZmZXIgPSAwOwotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1B X05PX05PREUpCiAJCXJldHVybiBidWZmZXI7CiAKIAlhcmdzWzBdID0gKHVuc2lnbmVkIGxvbmcp IHByb21fbmV4dHByb3BfbmFtZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBjaGFyICpwcm9tX25leHRw cm9wKHBoYW5kbGUgbm9kZSwgY29uc3QgY2hhciAqb3Byb3AsIGNoYXIgKmJ1ZmZlcikKIAl1bnNp Z25lZCBsb25nIGFyZ3NbN107CiAJY2hhciBidWZbMzJdOwogCi0JaWYgKChzMzIpbm9kZSA9PSAt MSkgeworCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCSpidWZmZXIgPSAwOwog CQlyZXR1cm4gYnVmZmVyOwogCX0KQEAgLTM3MCw3ICszNzAsNyBAQCBpbmxpbmUgcGhhbmRsZSBw cm9tX2luc3QycGtnKGludCBpbnN0KQogCXAxMjc1X2NtZF9kaXJlY3QoYXJncyk7CiAKIAlub2Rl ID0gKGludCkgYXJnc1s0XTsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUg PT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNp LmgKaW5kZXggNjYyOTYzNi4uZGVlMmEzMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vcGNpLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKQEAgLTE0MSw3ICsxNDEs NyBAQCBjcHVtYXNrX29mX3BjaWJ1cyhjb25zdCBzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogCWludCBu b2RlOwogCiAJbm9kZSA9IF9fcGNpYnVzX3RvX25vZGUoYnVzKTsKLQlyZXR1cm4gKG5vZGUgPT0g LTEpID8gY3B1X29ubGluZV9tYXNrIDoKKwlyZXR1cm4gKG5vZGUgPT0gTlVNQV9OT19OT0RFKSA/ IGNwdV9vbmxpbmVfbWFzayA6CiAJCQkgICAgICBjcHVtYXNrX29mX25vZGUobm9kZSk7CiB9CiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMgYi9h cmNoL3g4Ni9rZXJuZWwvYXBpYy94MmFwaWNfdXZfeC5jCmluZGV4IDM5MWYzNTguLjNjMzM3OGEg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMKKysrIGIvYXJj aC94ODYva2VybmVsL2FwaWMveDJhcGljX3V2X3guYwpAQCAtMTM5MCw3ICsxMzkwLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGJ1aWxkX3NvY2tldF90YWJsZXModm9pZCkKIAl9CiAKIAkvKiBTZXQg c29ja2V0IC0+IG5vZGUgdmFsdWVzOiAqLwotCWxuaWQgPSAtMTsKKwlsbmlkID0gTlVNQV9OT19O T0RFOwogCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgewogCQlpbnQgbmlkID0gY3B1X3RvX25v ZGUoY3B1KTsKIAkJaW50IGFwaWNpZCwgc29ja2lkOwpAQCAtMTUyMSw3ICsxNTIxLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IHV2X3N5c3RlbV9pbml0X2h1Yih2b2lkKQogCQkJbmV3X2h1Yi0+cG5v ZGUgPSAweGZmZmY7CiAKIAkJbmV3X2h1Yi0+bnVtYV9ibGFkZV9pZCA9IHV2X25vZGVfdG9fYmxh ZGVfaWQobm9kZWlkKTsKLQkJbmV3X2h1Yi0+bWVtb3J5X25pZCA9IC0xOworCQluZXdfaHViLT5t ZW1vcnlfbmlkID0gTlVNQV9OT19OT0RFOwogCQluZXdfaHViLT5ucl9wb3NzaWJsZV9jcHVzID0g MDsKIAkJbmV3X2h1Yi0+bnJfb25saW5lX2NwdXMgPSAwOwogCX0KQEAgLTE1MzgsNyArMTUzOCw3 IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB1dl9zeXN0ZW1faW5pdF9odWIodm9pZCkKIAogCQl1dl9j cHVfaW5mb19wZXIoY3B1KS0+cF91dl9odWJfaW5mbyA9IHV2X2h1Yl9pbmZvX2xpc3Qobm9kZWlk KTsKIAkJdXZfY3B1X2luZm9fcGVyKGNwdSktPmJsYWRlX2NwdV9pZCA9IHV2X2NwdV9odWJfaW5m byhjcHUpLT5ucl9wb3NzaWJsZV9jcHVzKys7Ci0JCWlmICh1dl9jcHVfaHViX2luZm8oY3B1KS0+ bWVtb3J5X25pZCA9PSAtMSkKKwkJaWYgKHV2X2NwdV9odWJfaW5mbyhjcHUpLT5tZW1vcnlfbmlk ID09IE5VTUFfTk9fTk9ERSkKIAkJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5tZW1vcnlfbmlkID0g Y3B1X3RvX25vZGUoY3B1KTsKIAogCQkvKiBJbml0IG1lbW9yeWxlc3Mgbm9kZTogKi8KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9v dC5jCmluZGV4IGE5MTM0ZDEuLmMxZDQ1ZGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9z bXBib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwpAQCAtODQxLDcgKzg0MSw3 IEBAIHdha2V1cF9zZWNvbmRhcnlfY3B1X3ZpYV9pbml0KGludCBwaHlzX2FwaWNpZCwgdW5zaWdu ZWQgbG9uZyBzdGFydF9laXApCiAvKiByZWR1Y2UgdGhlIG51bWJlciBvZiBsaW5lcyBwcmludGVk IHdoZW4gYm9vdGluZyBhIGxhcmdlIGNwdSBjb3VudCBzeXN0ZW0gKi8KIHN0YXRpYyB2b2lkIGFu bm91bmNlX2NwdShpbnQgY3B1LCBpbnQgYXBpY2lkKQogewotCXN0YXRpYyBpbnQgY3VycmVudF9u b2RlID0gLTE7CisJc3RhdGljIGludCBjdXJyZW50X25vZGUgPSBOVU1BX05PX05PREU7CiAJaW50 IG5vZGUgPSBlYXJseV9jcHVfdG9fbm9kZShjcHUpOwogCXN0YXRpYyBpbnQgd2lkdGgsIG5vZGVf d2lkdGg7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jIGIv YXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKaW5kZXggMjRkMjE3NS4uNzA5ODEyNyAx MDA2NDQKLS0tIGEvYXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKKysrIGIvYXJjaC94 ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKQEAgLTI5LDEwICsyOSwxMCBAQCBzdGF0aWMgcGhh bmRsZSBfX2luaXQgb2xwY19kdF9nZXRzaWJsaW5nKHBoYW5kbGUgbm9kZSkKIAljb25zdCB2b2lk ICphcmdzW10gPSB7ICh2b2lkICopbm9kZSB9OwogCXZvaWQgKnJlc1tdID0geyAmbm9kZSB9Owog Ci0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkK IAkJcmV0dXJuIDA7CiAKLQlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIp bm9kZSA9PSAtMSkKKwlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIpbm9k ZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5vZGU7CkBAIC00Mywx MCArNDMsMTAgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZ2V0Y2hpbGQocGhhbmRs ZSBub2RlKQogCWNvbnN0IHZvaWQgKmFyZ3NbXSA9IHsgKHZvaWQgKilub2RlIH07CiAJdm9pZCAq cmVzW10gPSB7ICZub2RlIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5v ZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAotCWlmIChvbHBjX29mdygiY2hpbGQi LCBhcmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSAtMSkgeworCWlmIChvbHBjX29mdygiY2hpbGQi LCBhcmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJcHJfZXJyKCJQ Uk9NOiAlczogZmV0Y2hpbmcgY2hpbGQgZmFpbGVkIVxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4g MDsKIAl9CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG9scGNfZHRfZ2V0cHJv cGxlbihwaGFuZGxlIG5vZGUsIGNvbnN0IGNoYXIgKnByb3ApCiAJaW50IGxlbjsKIAl2b2lkICpy ZXNbXSA9IHsgJmxlbiB9OwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJnZXRwcm9w bGVuIiwgYXJncywgcmVzKSkgewpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IG9scGNfZHRfbmV4dHByb3AocGhhbmRsZSBub2RlLCBjaGFyICpwcmV2LCBjaGFyICpidWYpCiAK IAlidWZbMF0gPSAnXDAnOwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJuZXh0cHJv cCIsIGFyZ3MsIHJlcykgfHwgc3VjY2VzcyAhPSAxKQpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRp YyBpbnQgX19pbml0IG9scGNfZHRfcGtnMnBhdGgocGhhbmRsZSBub2RlLCBjaGFyICpidWYsCiAJ Y29uc3Qgdm9pZCAqYXJnc1tdID0geyAodm9pZCAqKW5vZGUsIGJ1ZiwgKHZvaWQgKilidWZsZW4g fTsKIAl2b2lkICpyZXNbXSA9IHsgbGVuIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlm ICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gLTE7CiAKIAlpZiAob2xwY19v ZncoInBhY2thZ2UtdG8tcGF0aCIsIGFyZ3MsIHJlcykgfHwgKmxlbiA8IDEpCkBAIC0xNzYsNyAr MTc2LDcgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZmluZGRldmljZShjb25zdCBj aGFyICpwYXRoKQogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoKHMzMikgbm9kZSA9PSAtMSkKKwlp ZiAoKHMzMikgbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5v ZGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMgYi9kcml2 ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMKaW5kZXggYTdkYWE4YS4uYjg4OTQ1MiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jCisrKyBiL2RyaXZlcnMv YmxvY2svbXRpcDMyeHgvbXRpcDMyeHguYwpAQCAtNDA4NCw5ICs0MDg0LDkgQEAgc3RhdGljIGlu dCBnZXRfbGVhc3RfdXNlZF9jcHVfb25fbm9kZShpbnQgbm9kZSkKIC8qIEhlbHBlciBmb3Igc2Vs ZWN0aW5nIGEgbm9kZSBpbiByb3VuZCByb2JpbiBtb2RlICovCiBzdGF0aWMgaW5saW5lIGludCBt dGlwX2dldF9uZXh0X3JyX25vZGUodm9pZCkKIHsKLQlzdGF0aWMgaW50IG5leHRfbm9kZSA9IC0x OworCXN0YXRpYyBpbnQgbmV4dF9ub2RlID0gTlVNQV9OT19OT0RFOwogCi0JaWYgKG5leHRfbm9k ZSA9PSAtMSkgeworCWlmIChuZXh0X25vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCW5leHRfbm9k ZSA9IGZpcnN0X29ubGluZV9ub2RlOwogCQlyZXR1cm4gbmV4dF9ub2RlOwogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jIGIvZHJpdmVycy9kbWEvZG1hZW5naW5lLmMKaW5k ZXggZjFhNDQxYWIuLjFhZWVmYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5j CisrKyBiL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jCkBAIC0zODYsNyArMzg2LDggQEAgRVhQT1JU X1NZTUJPTChkbWFfaXNzdWVfcGVuZGluZ19hbGwpOwogc3RhdGljIGJvb2wgZG1hX2NoYW5faXNf bG9jYWwoc3RydWN0IGRtYV9jaGFuICpjaGFuLCBpbnQgY3B1KQogewogCWludCBub2RlID0gZGV2 X3RvX25vZGUoY2hhbi0+ZGV2aWNlLT5kZXYpOwotCXJldHVybiBub2RlID09IC0xIHx8IGNwdW1h c2tfdGVzdF9jcHUoY3B1LCBjcHVtYXNrX29mX25vZGUobm9kZSkpOworCXJldHVybiBub2RlID09 IE5VTUFfTk9fTk9ERSB8fAorCQljcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19vZl9ub2Rl KG5vZGUpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZp MS9hZmZpbml0eS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvYWZmaW5pdHkuYwppbmRl eCAyYmFmMzhjLi4zZThhY2I4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZp MS9hZmZpbml0eS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2FmZmluaXR5LmMK QEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIGhmaTFfZGV2X2FmZmluaXR5X2NsZWFuX3VwKHN0cnVj dCBoZmkxX2RldmRhdGEgKmRkKQogCV9kZXZfY29tcF92ZWN0X2NwdV9tYXNrX2NsZWFuX3VwKGRk LCBlbnRyeSk7CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZub2RlX2FmZmluaXR5LmxvY2spOwot CWRkLT5ub2RlID0gLTE7CisJZGQtPm5vZGUgPSBOVU1BX05PX05PREU7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9pbml0LmMgYi9kcml2ZXJzL2luZmlu aWJhbmQvaHcvaGZpMS9pbml0LmMKaW5kZXggMDkwNDQ5MC4uMGJmNDU3NyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvaW5pdC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFu ZC9ody9oZmkxL2luaXQuYwpAQCAtMTMwMyw3ICsxMzAzLDcgQEAgc3RhdGljIHN0cnVjdCBoZmkx X2RldmRhdGEgKmhmaTFfYWxsb2NfZGV2ZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJZGQt PnVuaXQgPSByZXQ7CiAJCWxpc3RfYWRkKCZkZC0+bGlzdCwgJmhmaTFfZGV2X2xpc3QpOwogCX0K LQlkZC0+bm9kZSA9IC0xOworCWRkLT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmaGZpMV9kZXZzX2xvY2ssIGZsYWdzKTsKIAlpZHJfcHJlbG9hZF9lbmQo KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZG1hci5jIGIvZHJpdmVycy9pb21tdS9kbWFy LmMKaW5kZXggZDljNzQ4Yi4uODZhOWMxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9kbWFy LmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWFyLmMKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBzdGF0aWMg aW50IGRtYXJfcGFyc2Vfb25lX3Joc2Eoc3RydWN0IGFjcGlfZG1hcl9oZWFkZXIgKmhlYWRlciwg dm9pZCAqYXJnKQogCQkJaW50IG5vZGUgPSBhY3BpX21hcF9weG1fdG9fbm9kZShyaHNhLT5wcm94 aW1pdHlfZG9tYWluKTsKIAogCQkJaWYgKCFub2RlX29ubGluZShub2RlKSkKLQkJCQlub2RlID0g LTE7CisJCQkJbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAkJCWRyaGQtPmlvbW11LT5ub2RlID0gbm9k ZTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC0xMDYyLDcgKzEwNjIsNyBAQCBzdGF0aWMgaW50IGFs bG9jX2lvbW11KHN0cnVjdCBkbWFyX2RyaGRfdW5pdCAqZHJoZCkKIAlpb21tdS0+bXNhZ2F3ID0g bXNhZ2F3OwogCWlvbW11LT5zZWdtZW50ID0gZHJoZC0+c2VnbWVudDsKIAotCWlvbW11LT5ub2Rl ID0gLTE7CisJaW9tbXUtPm5vZGUgPSBOVU1BX05PX05PREU7CiAKIAl2ZXIgPSByZWFkbChpb21t dS0+cmVnICsgRE1BUl9WRVJfUkVHKTsKIAlwcl9pbmZvKCIlczogcmVnX2Jhc2VfYWRkciAlbGx4 IHZlciAlZDolZCBjYXAgJWxseCBlY2FwICVsbHhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lv bW11L2ludGVsLWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMKaW5kZXggZjNj Y2YwMi4uOWY2ZmIxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCisr KyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYwpAQCAtMTc3Miw3ICsxNzcyLDcgQEAgc3Rh dGljIHN0cnVjdCBkbWFyX2RvbWFpbiAqYWxsb2NfZG9tYWluKGludCBmbGFncykKIAkJcmV0dXJu IE5VTEw7CiAKIAltZW1zZXQoZG9tYWluLCAwLCBzaXplb2YoKmRvbWFpbikpOwotCWRvbWFpbi0+ bmlkID0gLTE7CisJZG9tYWluLT5uaWQgPSBOVU1BX05PX05PREU7CiAJZG9tYWluLT5mbGFncyA9 IGZsYWdzOwogCWRvbWFpbi0+aGFzX2lvdGxiX2RldmljZSA9IGZhbHNlOwogCUlOSVRfTElTVF9I RUFEKCZkb21haW4tPmRldmljZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0 di9pdnR2ZmIuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0dmZiLmMKaW5kZXggM2UwMmRl MC4uODFiZDQxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2ZmIuYwor KysgYi9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2dHZmYi5jCkBAIC0xMDU0LDcgKzEwNTQsNyBA QCBzdGF0aWMgaW50IGl2dHZmYl9pbml0X3ZpZG1vZGUoc3RydWN0IGl2dHYgKml0dikKIAogCS8q IEdlbmVyYXRlIHZhbGlkIGZiX2luZm8gKi8KIAotCW9pLT5pdnR2ZmJfaW5mby5ub2RlID0gLTE7 CisJb2ktPml2dHZmYl9pbmZvLm5vZGUgPSBOVU1BX05PX05PREU7CiAJb2ktPml2dHZmYl9pbmZv LmZsYWdzID0gRkJJTkZPX0ZMQUdfREVGQVVMVDsKIAlvaS0+aXZ0dmZiX2luZm8uZmJvcHMgPSAm aXZ0dmZiX29wczsKIAlvaS0+aXZ0dmZiX2luZm8ucGFyID0gaXR2OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZpZC1vc2QuYyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vdml2aWQvdml2aWQtb3NkLmMKaW5kZXggMWE4OTU5My4uNTZhMmQ0MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZpZC1vc2QuYworKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLW9zZC5jCkBAIC0zMDksNyArMzA5LDcgQEAgc3Rh dGljIGludCB2aXZpZF9mYl9pbml0X3ZpZG1vZGUoc3RydWN0IHZpdmlkX2RldiAqZGV2KQogCiAJ LyogR2VuZXJhdGUgdmFsaWQgZmJfaW5mbyAqLwogCi0JZGV2LT5mYl9pbmZvLm5vZGUgPSAtMTsK KwlkZXYtPmZiX2luZm8ubm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlkZXYtPmZiX2luZm8uZmxhZ3Mg PSBGQklORk9fRkxBR19ERUZBVUxUOwogCWRldi0+ZmJfaW5mby5mYm9wcyA9ICZ2aXZpZF9mYl9v cHM7CiAJZGV2LT5mYl9pbmZvLnBhciA9IGRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9z Z2kteHAveHBjX3V2LmMgYi9kcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jCmluZGV4IDA0NDFh YmUuLmVlZjM2ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2kteHAveHBjX3V2LmMKKysr IGIvZHJpdmVycy9taXNjL3NnaS14cC94cGNfdXYuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMg c3RydWN0IHhwY19oZWFydGJlYXRfdXYgKnhwY19oZWFydGJlYXRfdXY7CiAJCQkJCSBYUENfTk9U SUZZX01TR19TSVpFX1VWKQogI2RlZmluZSBYUENfTk9USUZZX0lSUV9OQU1FCQkieHBjX25vdGlm eSIKIAotc3RhdGljIGludCB4cGNfbXFfbm9kZSA9IC0xOworc3RhdGljIGludCB4cGNfbXFfbm9k ZSA9IE5VTUFfTk9fTk9ERTsKIAogc3RhdGljIHN0cnVjdCB4cGNfZ3J1X21xX3V2ICp4cGNfYWN0 aXZhdGVfbXFfdXY7CiBzdGF0aWMgc3RydWN0IHhwY19ncnVfbXFfdXYgKnhwY19ub3RpZnlfbXFf dXY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKaW5k ZXggMTEzYjM4ZS4uNGZhZTg1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaXhnYmUvaXhnYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4 Z2JlL2l4Z2JlX21haW4uYwpAQCAtNjQxNCw3ICs2NDE0LDcgQEAgaW50IGl4Z2JlX3NldHVwX3R4 X3Jlc291cmNlcyhzdHJ1Y3QgaXhnYmVfcmluZyAqdHhfcmluZykKIHsKIAlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSB0eF9yaW5nLT5kZXY7CiAJaW50IG9yaWdfbm9kZSA9IGRldl90b19ub2RlKGRldik7 Ci0JaW50IHJpbmdfbm9kZSA9IC0xOworCWludCByaW5nX25vZGUgPSBOVU1BX05PX05PREU7CiAJ aW50IHNpemU7CiAKIAlzaXplID0gc2l6ZW9mKHN0cnVjdCBpeGdiZV90eF9idWZmZXIpICogdHhf cmluZy0+Y291bnQ7CkBAIC02NTA4LDcgKzY1MDgsNyBAQCBpbnQgaXhnYmVfc2V0dXBfcnhfcmVz b3VyY2VzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLAogewogCXN0cnVjdCBkZXZpY2Ug KmRldiA9IHJ4X3JpbmctPmRldjsKIAlpbnQgb3JpZ19ub2RlID0gZGV2X3RvX25vZGUoZGV2KTsK LQlpbnQgcmluZ19ub2RlID0gLTE7CisJaW50IHJpbmdfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlp bnQgc2l6ZTsKIAogCXNpemUgPSBzaXplb2Yoc3RydWN0IGl4Z2JlX3J4X2J1ZmZlcikgKiByeF9y aW5nLT5jb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2ZiL21tcGZi LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jCmluZGV4IGVlMjEyYmUuLjI5 OGJlOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2ZiL21tcGZiLmMKKysr IGIvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYwpAQCAtNTE5LDcgKzUxOSw3IEBA IHN0YXRpYyBpbnQgZmJfaW5mb19zZXR1cChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAkvKiBJbml0 aWFsaXNlIHN0YXRpYyBmYiBwYXJhbWV0ZXJzLiovCiAJaW5mby0+ZmxhZ3MgPSBGQklORk9fREVG QVVMVCB8IEZCSU5GT19QQVJUSUFMX1BBTl9PSyB8CiAJCUZCSU5GT19IV0FDQ0VMX1hQQU4gfCBG QklORk9fSFdBQ0NFTF9ZUEFOOwotCWluZm8tPm5vZGUgPSAtMTsKKwlpbmZvLT5ub2RlID0gTlVN QV9OT19OT0RFOwogCXN0cmNweShpbmZvLT5maXguaWQsIGZiaS0+bmFtZSk7CiAJaW5mby0+Zml4 LnR5cGUgPSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFM7CiAJaW5mby0+Zml4LnR5cGVfYXV4ID0gMDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvcHhhMTY4ZmIuYwppbmRleCBlMzEzNDBmLi43ZDc3NWRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9w eGExNjhmYi5jCkBAIC02NDksNyArNjQ5LDcgQEAgc3RhdGljIGludCBweGExNjhmYl9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCSAqLwogCWluZm8tPmZsYWdzID0gRkJJTkZP X0RFRkFVTFQgfCBGQklORk9fUEFSVElBTF9QQU5fT0sgfAogCQkgICAgICBGQklORk9fSFdBQ0NF TF9YUEFOIHwgRkJJTkZPX0hXQUNDRUxfWVBBTjsKLQlpbmZvLT5ub2RlID0gLTE7CisJaW5mby0+ bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlzdHJsY3B5KGluZm8tPmZpeC5pZCwgbWktPmlkLCAxNik7 CiAJaW5mby0+Zml4LnR5cGUgPSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFM7CiAJaW5mby0+Zml4LnR5 cGVfYXV4ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdzEwMGZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jCmluZGV4IDY5NjEwNmUuLjhiMGYyMGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdzEwMGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi93MTAwZmIuYwpAQCAtNzAzLDcgKzcwMyw3IEBAIGludCB3MTAwZmJfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbmZvLT5mYm9wcyA9ICZ3MTAwZmJfb3BzOwogCWlu Zm8tPmZsYWdzID0gRkJJTkZPX0RFRkFVTFQgfCBGQklORk9fSFdBQ0NFTF9DT1BZQVJFQSB8CiAJ CUZCSU5GT19IV0FDQ0VMX0ZJTExSRUNUOwotCWluZm8tPm5vZGUgPSAtMTsKKwlpbmZvLT5ub2Rl ID0gTlVNQV9OT19OT0RFOwogCWluZm8tPnNjcmVlbl9iYXNlID0gcmVtYXBwZWRfZmJ1ZiArIChX MTAwX0ZCX0JBU0UtTUVNX1dJTkRPV19CQVNFKTsKIAlpbmZvLT5zY3JlZW5fc2l6ZSA9IFJFTUFQ UEVEX0ZCX0xFTjsKIApkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWNvbW1vbi5oIGIvZnMv b2NmczIvZGxtL2RsbWNvbW1vbi5oCmluZGV4IGQwNmUyN2UuLjExMTExZjYgMTAwNjQ0Ci0tLSBh L2ZzL29jZnMyL2RsbS9kbG1jb21tb24uaAorKysgYi9mcy9vY2ZzMi9kbG0vZGxtY29tbW9uLmgK QEAgLTExMjEsNyArMTEyMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkbG1fbm9kZV9pdGVyX2lu aXQodW5zaWduZWQgbG9uZyAqbWFwLAogCQkJCSAgICAgIHN0cnVjdCBkbG1fbm9kZV9pdGVyICpp dGVyKQogewogCW1lbWNweShpdGVyLT5ub2RlX21hcCwgbWFwLCBzaXplb2YoaXRlci0+bm9kZV9t YXApKTsKLQlpdGVyLT5jdXJub2RlID0gLTE7CisJaXRlci0+Y3Vybm9kZSA9IE5VTUFfTk9fTk9E RTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgZGxtX25vZGVfaXRlcl9uZXh0KHN0cnVjdCBkbG1f bm9kZV9pdGVyICppdGVyKQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jIGIv ZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jCmluZGV4IDJhY2Q1OGIuLjM4MWEzMjMgMTAwNjQ0Ci0t LSBhL2ZzL29jZnMyL2RsbS9kbG1kb21haW4uYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtZG9tYWlu LmMKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgdm9pZCBkbG1fbWFya19kb21haW5fbGVhdmlu ZyhzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAogc3RhdGljIHZvaWQgX19kbG1fcHJpbnRfbm9kZXMo c3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0JaW50IG5vZGUgPSAtMSwgbnVtID0gMDsKKwlpbnQg bm9kZSA9IE5VTUFfTk9fTk9ERSwgbnVtID0gMDsKIAogCWFzc2VydF9zcGluX2xvY2tlZCgmZGxt LT5zcGlubG9jayk7CiAKQEAgLTYxMyw3ICs2MTMsNyBAQCBzdGF0aWMgaW50IGRsbV9zZW5kX29u ZV9kb21haW5fZXhpdChzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwgdTMyIG1zZ190eXBlLAogCiBzdGF0 aWMgdm9pZCBkbG1fYmVnaW5fZXhpdF9kb21haW4oc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0J aW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCS8qIFN1cHBvcnQg Zm9yIGJlZ2luIGV4aXQgZG9tYWluIHdhcyBhZGRlZCBpbiAxLjIgKi8KIAlpZiAoZGxtLT5kbG1f bG9ja2luZ19wcm90by5wdl9tYWpvciA9PSAxICYmCkBAIC0xNDA3LDcgKzE0MDcsNyBAQCBzdGF0 aWMgaW50IGRsbV9zZW5kX2pvaW5fY2FuY2VscyhzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwKIAl9CiAK IAlzdGF0dXMgPSAwOwotCW5vZGUgPSAtMTsKKwlub2RlID0gTlVNQV9OT19OT0RFOwogCXdoaWxl ICgobm9kZSA9IGZpbmRfbmV4dF9iaXQobm9kZV9tYXAsIE8yTk1fTUFYX05PREVTLAogCQkJCSAg ICAgbm9kZSArIDEpKSA8IE8yTk1fTUFYX05PREVTKSB7CiAJCWlmIChub2RlID09IGRsbS0+bm9k ZV9udW0pCkBAIC0xNTQ3LDcgKzE1NDcsNyBAQCBzdGF0aWMgdm9pZCBkbG1fc2VuZF9qb2luX2Fz c2VydHMoc3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJaW50IHN0YXR1cywgbm9kZSwgbGl2ZTsKIAog CXN0YXR1cyA9IDA7Ci0Jbm9kZSA9IC0xOworCW5vZGUgPSBOVU1BX05PX05PREU7CiAJd2hpbGUg KChub2RlID0gZmluZF9uZXh0X2JpdChub2RlX21hcCwgTzJOTV9NQVhfTk9ERVMsCiAJCQkJICAg ICBub2RlICsgMSkpIDwgTzJOTV9NQVhfTk9ERVMpIHsKIAkJaWYgKG5vZGUgPT0gZGxtLT5ub2Rl X251bSkKQEAgLTE2MzEsNyArMTYzMSw3IEBAIHN0YXRpYyBpbnQgZGxtX3RyeV90b19qb2luX2Rv bWFpbihzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAogCXNwaW5fdW5sb2NrKCZkbG0tPnNwaW5sb2Nr KTsKIAotCW5vZGUgPSAtMTsKKwlub2RlID0gTlVNQV9OT19OT0RFOwogCXdoaWxlICgobm9kZSA9 IGZpbmRfbmV4dF9iaXQoY3R4dC0+bGl2ZV9tYXAsIE8yTk1fTUFYX05PREVTLAogCQkJCSAgICAg bm9kZSArIDEpKSA8IE8yTk1fTUFYX05PREVTKSB7CiAJCWlmIChub2RlID09IGRsbS0+bm9kZV9u dW0pCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMgYi9mcy9vY2ZzMi9kbG0v ZGxtbWFzdGVyLmMKaW5kZXggODI2ZjA1Ni4uZTU0YmJiYyAxMDA2NDQKLS0tIGEvZnMvb2NmczIv ZGxtL2RsbW1hc3Rlci5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYwpAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgZGxtX2JpdG1hcF9kaWZmX2l0ZXJfaW5pdChzdHJ1Y3Qg ZGxtX2JpdG1hcF9kaWZmX2l0ZXIgKml0ZXIsCiAJdW5zaWduZWQgbG9uZyBwMSwgcDI7CiAJaW50 IGk7CiAKLQlpdGVyLT5jdXJub2RlID0gLTE7CisJaXRlci0+Y3Vybm9kZSA9IE5VTUFfTk9fTk9E RTsKIAlpdGVyLT5vcmlnX2JtID0gb3JpZ19ibTsKIAlpdGVyLT5jdXJfYm0gPSBjdXJfYm07CiAK ZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jIGIvZnMvb2NmczIvZGxtL2Rs bXJlY292ZXJ5LmMKaW5kZXggODAyNjM2ZDUuLjcwNGZhOGIgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMy L2RsbS9kbG1yZWNvdmVyeS5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jCkBAIC0y OTAzLDcgKzI5MDMsNyBAQCBzdGF0aWMgaW50IGRsbV9zZW5kX2ZpbmFsaXplX3JlY29fbWVzc2Fn ZShzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAl9CiAJaWYgKHN0YWdlID09IDEpIHsKIAkJLyogcmVz ZXQgdGhlIG5vZGVfaXRlciBiYWNrIHRvIHRoZSB0b3AgYW5kIHNlbmQgZmluYWxpemUyICovCi0J CWl0ZXIuY3Vybm9kZSA9IC0xOworCQlpdGVyLmN1cm5vZGUgPSBOVU1BX05PX05PREU7CiAJCXN0 YWdlID0gMjsKIAkJZ290byBzdGFnZTI7CiAJfQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3RhY2tf dXNlci5jIGIvZnMvb2NmczIvc3RhY2tfdXNlci5jCmluZGV4IGQyZmI5N2IuLmE2NzNlZmEgMTAw NjQ0Ci0tLSBhL2ZzL29jZnMyL3N0YWNrX3VzZXIuYworKysgYi9mcy9vY2ZzMi9zdGFja191c2Vy LmMKQEAgLTE3MSw3ICsxNzEsNyBAQCB1bmlvbiBvY2ZzMl9jb250cm9sX21lc3NhZ2Ugewogc3Rh dGljIHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gb2NmczJfdXNlcl9wbHVnaW47CiAKIHN0YXRp YyBhdG9taWNfdCBvY2ZzMl9jb250cm9sX29wZW5lZDsKLXN0YXRpYyBpbnQgb2NmczJfY29udHJv bF90aGlzX25vZGUgPSAtMTsKK3N0YXRpYyBpbnQgb2NmczJfY29udHJvbF90aGlzX25vZGUgPSBO VU1BX05PX05PREU7CiBzdGF0aWMgc3RydWN0IG9jZnMyX3Byb3RvY29sX3ZlcnNpb24gcnVubmlu Z19wcm90bzsKIAogc3RhdGljIExJU1RfSEVBRChvY2ZzMl9saXZlX2Nvbm5lY3Rpb25fbGlzdCk7 CkBAIC01ODksNyArNTg5LDcgQEAgc3RhdGljIGludCBvY2ZzMl9jb250cm9sX3JlbGVhc2Uoc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiAJCSAqIExhc3QgdmFsaWQgY2xv c2UgY2xlYXJzIHRoZSBub2RlIG51bWJlciBhbmQgcmVzZXRzCiAJCSAqIHRoZSBsb2NraW5nIHBy b3RvY29sIHZlcnNpb24KIAkJICovCi0JCW9jZnMyX2NvbnRyb2xfdGhpc19ub2RlID0gLTE7CisJ CW9jZnMyX2NvbnRyb2xfdGhpc19ub2RlID0gTlVNQV9OT19OT0RFOwogCQlydW5uaW5nX3Byb3Rv LnB2X21ham9yID0gMDsKIAkJcnVubmluZ19wcm90by5wdl9taW5vciA9IDA7CiAJfQpAQCAtNjEy LDcgKzYxMiw3IEBAIHN0YXRpYyBpbnQgb2NmczJfY29udHJvbF9vcGVuKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgb2Nm czJfY29udHJvbF9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwKQogCQlyZXR1cm4gLUVO T01FTTsKLQlwLT5vcF90aGlzX25vZGUgPSAtMTsKKwlwLT5vcF90aGlzX25vZGUgPSBOVU1BX05P X05PREU7CiAKIAltdXRleF9sb2NrKCZvY2ZzMl9jb250cm9sX2xvY2spOwogCWZpbGUtPnByaXZh dGVfZGF0YSA9IHA7CmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIvaW5pdC9pbml0X3Rh c2suYwppbmRleCA1YWViZTNiLi42NjQxODM2IDEwMDY0NAotLS0gYS9pbml0L2luaXRfdGFzay5j CisrKyBiL2luaXQvaW5pdF90YXNrLmMKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdHJ1Y3QgdGFza19z dHJ1Y3QgaW5pdF90YXNrCiAJLnZ0aW1lLnN0YXRlCT0gVlRJTUVfU1lTLAogI2VuZGlmCiAjaWZk ZWYgQ09ORklHX05VTUFfQkFMQU5DSU5HCi0JLm51bWFfcHJlZmVycmVkX25pZCA9IC0xLAorCS5u dW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREUsCiAJLm51bWFfZ3JvdXAJPSBOVUxMLAog CS5udW1hX2ZhdWx0cwk9IE5VTEwsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2tlcm5lbC9rdGhyZWFk LmMgYi9rZXJuZWwva3RocmVhZC5jCmluZGV4IDA4N2QxOGQuLjc3ZjNkOTQgMTAwNjQ0Ci0tLSBh L2tlcm5lbC9rdGhyZWFkLmMKKysrIGIva2VybmVsL2t0aHJlYWQuYwpAQCAtNjc1LDcgKzY3NSw3 IEBAIF9fa3RocmVhZF9jcmVhdGVfd29ya2VyKGludCBjcHUsIHVuc2lnbmVkIGludCBmbGFncywK IHsKIAlzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKndvcmtlcjsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRhc2s7Ci0JaW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXdv cmtlciA9IGt6YWxsb2Moc2l6ZW9mKCp3b3JrZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXdvcmtl cikKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9mYWlyLmMgYi9rZXJuZWwvc2NoZWQvZmFpci5j CmluZGV4IGVlMjcxYmIuLmQ4MzBmYTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC9mYWlyLmMK KysrIGIva2VybmVsL3NjaGVkL2ZhaXIuYwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBpbml0 X251bWFfYmFsYW5jaW5nKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCkKIAogCS8qIE5ldyBhZGRyZXNzIHNwYWNlLCByZXNldCB0aGUgcHJlZmVycmVkIG5p ZCAqLwogCWlmICghKGNsb25lX2ZsYWdzICYgQ0xPTkVfVk0pKSB7Ci0JCXAtPm51bWFfcHJlZmVy cmVkX25pZCA9IC0xOworCQlwLT5udW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREU7CiAJ CXJldHVybjsKIAl9CiAKQEAgLTExODEsMTMgKzExODEsMTMgQEAgdm9pZCBpbml0X251bWFfYmFs YW5jaW5nKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkK IAogc3RhdGljIHZvaWQgYWNjb3VudF9udW1hX2VucXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0 IHRhc2tfc3RydWN0ICpwKQogewotCXJxLT5ucl9udW1hX3J1bm5pbmcgKz0gKHAtPm51bWFfcHJl ZmVycmVkX25pZCAhPSAtMSk7CisJcnEtPm5yX251bWFfcnVubmluZyArPSAocC0+bnVtYV9wcmVm ZXJyZWRfbmlkICE9IE5VTUFfTk9fTk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nICs9 IChwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gdGFza19ub2RlKHApKTsKIH0KIAogc3RhdGljIHZv aWQgYWNjb3VudF9udW1hX2RlcXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0 ICpwKQogewotCXJxLT5ucl9udW1hX3J1bm5pbmcgLT0gKHAtPm51bWFfcHJlZmVycmVkX25pZCAh PSAtMSk7CisJcnEtPm5yX251bWFfcnVubmluZyAtPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlkICE9 IE5VTUFfTk9fTk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nIC09IChwLT5udW1hX3By ZWZlcnJlZF9uaWQgPT0gdGFza19ub2RlKHApKTsKIH0KIApAQCAtMTQwMSw3ICsxNDAxLDcgQEAg Ym9vbCBzaG91bGRfbnVtYV9taWdyYXRlX21lbW9yeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0 cnVjdCBwYWdlICogcGFnZSwKIAkgKiB0d28gZnVsbCBwYXNzZXMgb2YgdGhlICJtdWx0aS1zdGFn ZSBub2RlIHNlbGVjdGlvbiIgdGVzdCB0aGF0IGlzCiAJICogZXhlY3V0ZWQgYmVsb3cuCiAJICov Ci0JaWYgKChwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gLTEgfHwgcC0+bnVtYV9zY2FuX3NlcSA8 PSA0KSAmJgorCWlmICgocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IE5VTUFfTk9fTk9ERSB8fCBw LT5udW1hX3NjYW5fc2VxIDw9IDQpICYmCiAJICAgIChjcHVwaWRfcGlkX3Vuc2V0KGxhc3RfY3B1 cGlkKSB8fCBjcHVwaWRfbWF0Y2hfcGlkKHAsIGxhc3RfY3B1cGlkKSkpCiAJCXJldHVybiB0cnVl OwogCkBAIC0xODQ5LDcgKzE4NDksNyBAQCBzdGF0aWMgdm9pZCBudW1hX21pZ3JhdGVfcHJlZmVy cmVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIAl1bnNpZ25lZCBsb25nIGludGVydmFsID0gSFo7 CiAKIAkvKiBUaGlzIHRhc2sgaGFzIG5vIE5VTUEgZmF1bHQgc3RhdGlzdGljcyB5ZXQgKi8KLQlp ZiAodW5saWtlbHkocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IC0xIHx8ICFwLT5udW1hX2ZhdWx0 cykpCisJaWYgKHVubGlrZWx5KHAtPm51bWFfcHJlZmVycmVkX25pZCA9PSBOVU1BX05PX05PREUg fHwgIXAtPm51bWFfZmF1bHRzKSkKIAkJcmV0dXJuOwogCiAJLyogUGVyaW9kaWNhbGx5IHJldHJ5 IG1pZ3JhdGluZyB0aGUgdGFzayB0byB0aGUgcHJlZmVycmVkIG5vZGUgKi8KQEAgLTIwOTYsNyAr MjA5Niw3IEBAIHN0YXRpYyBpbnQgcHJlZmVycmVkX2dyb3VwX25pZChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnAsIGludCBuaWQpCiAKIHN0YXRpYyB2b2lkIHRhc2tfbnVtYV9wbGFjZW1lbnQoc3RydWN0 IHRhc2tfc3RydWN0ICpwKQogewotCWludCBzZXEsIG5pZCwgbWF4X25pZCA9IC0xOworCWludCBz ZXEsIG5pZCwgbWF4X25pZCA9IE5VTUFfTk9fTk9ERTsKIAl1bnNpZ25lZCBsb25nIG1heF9mYXVs dHMgPSAwOwogCXVuc2lnbmVkIGxvbmcgZmF1bHRfdHlwZXNbMl0gPSB7IDAsIDAgfTsKIAl1bnNp Z25lZCBsb25nIHRvdGFsX2ZhdWx0czsKQEAgLTI2MzksNyArMjYzOSw4IEBAIHN0YXRpYyB2b2lk IHVwZGF0ZV9zY2FuX3BlcmlvZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBuZXdfY3B1KQog CQkgKiB0aGUgcHJlZmVycmVkIG5vZGUuCiAJCSAqLwogCQlpZiAoZHN0X25pZCA9PSBwLT5udW1h X3ByZWZlcnJlZF9uaWQgfHwKLQkJICAgIChwLT5udW1hX3ByZWZlcnJlZF9uaWQgIT0gLTEgJiYg c3JjX25pZCAhPSBwLT5udW1hX3ByZWZlcnJlZF9uaWQpKQorCQkgICAgKHAtPm51bWFfcHJlZmVy cmVkX25pZCAhPSBOVU1BX05PX05PREUgJiYKKwkJCXNyY19uaWQgIT0gcC0+bnVtYV9wcmVmZXJy ZWRfbmlkKSkKIAkJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9jcHVtYXNrLmMgYi9s aWIvY3B1bWFzay5jCmluZGV4IDhkNjY2YWIuLmEwODljM2YgMTAwNjQ0Ci0tLSBhL2xpYi9jcHVt YXNrLmMKKysrIGIvbGliL2NwdW1hc2suYwpAQCAtMjA2LDcgKzIwNiw3IEBAIHVuc2lnbmVkIGlu dCBjcHVtYXNrX2xvY2FsX3NwcmVhZCh1bnNpZ25lZCBpbnQgaSwgaW50IG5vZGUpCiAJLyogV3Jh cDogd2UgYWx3YXlzIHdhbnQgYSBjcHUuICovCiAJaSAlPSBudW1fb25saW5lX2NwdXMoKTsKIAot CWlmIChub2RlID09IC0xKSB7CisJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCWZvcl9l YWNoX2NwdShjcHUsIGNwdV9vbmxpbmVfbWFzaykKIAkJCWlmIChpLS0gPT0gMCkKIAkJCQlyZXR1 cm4gY3B1OwpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVtb3J5LmMK aW5kZXggNTU0NzhhYi4uNWNjZjg5ZSAxMDA2NDQKLS0tIGEvbW0vaHVnZV9tZW1vcnkuYworKysg Yi9tbS9odWdlX21lbW9yeS5jCkBAIC0xNDgwLDcgKzE0ODAsNyBAQCB2bV9mYXVsdF90IGRvX2h1 Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCXN0cnVj dCBhbm9uX3ZtYSAqYW5vbl92bWEgPSBOVUxMOwogCXN0cnVjdCBwYWdlICpwYWdlOwogCXVuc2ln bmVkIGxvbmcgaGFkZHIgPSB2bWYtPmFkZHJlc3MgJiBIUEFHRV9QTURfTUFTSzsKLQlpbnQgcGFn ZV9uaWQgPSAtMSwgdGhpc19uaWQgPSBudW1hX25vZGVfaWQoKTsKKwlpbnQgcGFnZV9uaWQgPSBO VU1BX05PX05PREUsIHRoaXNfbmlkID0gbnVtYV9ub2RlX2lkKCk7CiAJaW50IHRhcmdldF9uaWQs IGxhc3RfY3B1cGlkID0gLTE7CiAJYm9vbCBwYWdlX2xvY2tlZDsKIAlib29sIG1pZ3JhdGVkID0g ZmFsc2U7CkBAIC0xNTI2LDcgKzE1MjYsNyBAQCB2bV9mYXVsdF90IGRvX2h1Z2VfcG1kX251bWFf cGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCSAqLwogCXBhZ2VfbG9ja2Vk ID0gdHJ5bG9ja19wYWdlKHBhZ2UpOwogCXRhcmdldF9uaWQgPSBtcG9sX21pc3BsYWNlZChwYWdl LCB2bWEsIGhhZGRyKTsKLQlpZiAodGFyZ2V0X25pZCA9PSAtMSkgeworCWlmICh0YXJnZXRfbmlk ID09IE5VTUFfTk9fTk9ERSkgewogCQkvKiBJZiB0aGUgcGFnZSB3YXMgbG9ja2VkLCB0aGVyZSBh cmUgbm8gcGFyYWxsZWwgbWlncmF0aW9ucyAqLwogCQlpZiAocGFnZV9sb2NrZWQpCiAJCQlnb3Rv IGNsZWFyX3BtZG51bWE7CkBAIC0xNTM0LDcgKzE1MzQsNyBAQCB2bV9mYXVsdF90IGRvX2h1Z2Vf cG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCiAJLyogTWln cmF0aW9uIGNvdWxkIGhhdmUgc3RhcnRlZCBzaW5jZSB0aGUgcG1kX3RyYW5zX21pZ3JhdGluZyBj aGVjayAqLwogCWlmICghcGFnZV9sb2NrZWQpIHsKLQkJcGFnZV9uaWQgPSAtMTsKKwkJcGFnZV9u aWQgPSBOVU1BX05PX05PREU7CiAJCWlmICghZ2V0X3BhZ2VfdW5sZXNzX3plcm8ocGFnZSkpCiAJ CQlnb3RvIG91dF91bmxvY2s7CiAJCXNwaW5fdW5sb2NrKHZtZi0+cHRsKTsKQEAgLTE1NTYsMTQg KzE1NTYsMTQgQEAgdm1fZmF1bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0IHZtX2Zh dWx0ICp2bWYsIHBtZF90IHBtZCkKIAlpZiAodW5saWtlbHkoIXBtZF9zYW1lKHBtZCwgKnZtZi0+ cG1kKSkpIHsKIAkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCXB1dF9wYWdlKHBhZ2UpOwotCQlwYWdl X25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsKIAkJZ290byBvdXRfdW5sb2Nr OwogCX0KIAogCS8qIEJhaWwgaWYgd2UgZmFpbCB0byBwcm90ZWN0IGFnYWluc3QgVEhQIHNwbGl0 cyBmb3IgYW55IHJlYXNvbiAqLwogCWlmICh1bmxpa2VseSghYW5vbl92bWEpKSB7CiAJCXB1dF9w YWdlKHBhZ2UpOwotCQlwYWdlX25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsK IAkJZ290byBjbGVhcl9wbWRudW1hOwogCX0KIApAQCAtMTYyNSw3ICsxNjI1LDcgQEAgdm1fZmF1 bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHBtZF90IHBt ZCkKIAlpZiAoYW5vbl92bWEpCiAJCXBhZ2VfdW5sb2NrX2Fub25fdm1hX3JlYWQoYW5vbl92bWEp OwogCi0JaWYgKHBhZ2VfbmlkICE9IC0xKQorCWlmIChwYWdlX25pZCAhPSBOVU1BX05PX05PREUp CiAJCXRhc2tfbnVtYV9mYXVsdChsYXN0X2NwdXBpZCwgcGFnZV9uaWQsIEhQQUdFX1BNRF9OUiwK IAkJCQlmbGFncyk7CiAKZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwpp bmRleCBjMDA3ZmI1Li5iNzY5ZGI3IDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysrIGIvbW0v aHVnZXRsYi5jCkBAIC04ODcsNyArODg3LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpkZXF1ZXVl X2h1Z2VfcGFnZV9ub2RlbWFzayhzdHJ1Y3QgaHN0YXRlICpoLCBnZnBfdCBnZnBfbWFzaywKIAlz dHJ1Y3Qgem9uZWxpc3QgKnpvbmVsaXN0OwogCXN0cnVjdCB6b25lICp6b25lOwogCXN0cnVjdCB6 b25lcmVmICp6OwotCWludCBub2RlID0gLTE7CisJaW50IG5vZGUgPSBOVU1BX05PX05PREU7CiAK IAl6b25lbGlzdCA9IG5vZGVfem9uZWxpc3QobmlkLCBnZnBfbWFzayk7CiAKZGlmZiAtLWdpdCBh L21tL2tzbS5jIGIvbW0va3NtLmMKaW5kZXggNWIwODk0Yi4uZDVmODgzNCAxMDA2NDQKLS0tIGEv bW0va3NtLmMKKysrIGIvbW0va3NtLmMKQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgc3RydWN0 IHN0YWJsZV9ub2RlICphbGxvY19zdGFibGVfbm9kZV9jaGFpbihzdHJ1Y3Qgc3RhYmxlX25vZGUg KmR1cCwKIAkJY2hhaW4tPmNoYWluX3BydW5lX3RpbWUgPSBqaWZmaWVzOwogCQljaGFpbi0+cm1h cF9obGlzdF9sZW4gPSBTVEFCTEVfTk9ERV9DSEFJTjsKICNpZiBkZWZpbmVkIChDT05GSUdfREVC VUdfVk0pICYmIGRlZmluZWQoQ09ORklHX05VTUEpCi0JCWNoYWluLT5uaWQgPSAtMTsgLyogZGVi dWcgKi8KKwkJY2hhaW4tPm5pZCA9IE5VTUFfTk9fTk9ERTsgLyogZGVidWcgKi8KICNlbmRpZgog CQlrc21fc3RhYmxlX25vZGVfY2hhaW5zKys7CiAKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIv bW0vbWVtb3J5LmMKaW5kZXggNGFkMmQyOS4uYzBlMDM0OCAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5 LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTM1NjQsNyArMzU2NCw3IEBAIHN0YXRpYyB2bV9mYXVs dF90IGRvX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHsKIAlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOwogCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKLQlp bnQgcGFnZV9uaWQgPSAtMTsKKwlpbnQgcGFnZV9uaWQgPSBOVU1BX05PX05PREU7CiAJaW50IGxh c3RfY3B1cGlkOwogCWludCB0YXJnZXRfbmlkOwogCWJvb2wgbWlncmF0ZWQgPSBmYWxzZTsKQEAg LTM2MzEsNyArMzYzMSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGRvX251bWFfcGFnZShzdHJ1Y3Qg dm1fZmF1bHQgKnZtZikKIAl0YXJnZXRfbmlkID0gbnVtYV9taWdyYXRlX3ByZXAocGFnZSwgdm1h LCB2bWYtPmFkZHJlc3MsIHBhZ2VfbmlkLAogCQkJJmZsYWdzKTsKIAlwdGVfdW5tYXBfdW5sb2Nr KHZtZi0+cHRlLCB2bWYtPnB0bCk7Ci0JaWYgKHRhcmdldF9uaWQgPT0gLTEpIHsKKwlpZiAodGFy Z2V0X25pZCA9PSBOVU1BX05PX05PREUpIHsKIAkJcHV0X3BhZ2UocGFnZSk7CiAJCWdvdG8gb3V0 OwogCX0KQEAgLTM2NDUsNyArMzY0NSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGRvX251bWFfcGFn ZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJZmxhZ3MgfD0gVE5GX01JR1JBVEVfRkFJTDsKIAog b3V0OgotCWlmIChwYWdlX25pZCAhPSAtMSkKKwlpZiAocGFnZV9uaWQgIT0gTlVNQV9OT19OT0RF KQogCQl0YXNrX251bWFfZmF1bHQobGFzdF9jcHVwaWQsIHBhZ2VfbmlkLCAxLCBmbGFncyk7CiAJ cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1Zy5jIGIvbW0vbWVtb3J5 X2hvdHBsdWcuYwppbmRleCAyYjJiM2NjLi43MGUwMmY4IDEwMDY0NAotLS0gYS9tbS9tZW1vcnlf aG90cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTY4OCw5ICs2ODgsOSBAQCBz dGF0aWMgdm9pZCBub2RlX3N0YXRlc19jaGVja19jaGFuZ2VzX29ubGluZSh1bnNpZ25lZCBsb25n IG5yX3BhZ2VzLAogewogCWludCBuaWQgPSB6b25lX3RvX25pZCh6b25lKTsKIAotCWFyZy0+c3Rh dHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9IC0x OwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOworCWFyZy0+c3RhdHVzX2NoYW5n ZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9ub3JtYWwgPSBO VU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gTlVNQV9OT19OT0RF OwogCiAJaWYgKCFub2RlX3N0YXRlKG5pZCwgTl9NRU1PUlkpKQogCQlhcmctPnN0YXR1c19jaGFu Z2VfbmlkID0gbmlkOwpAQCAtMTQ4NCw5ICsxNDg0LDkgQEAgc3RhdGljIHZvaWQgbm9kZV9zdGF0 ZXNfY2hlY2tfY2hhbmdlc19vZmZsaW5lKHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAJdW5zaWdu ZWQgbG9uZyBwcmVzZW50X3BhZ2VzID0gMDsKIAllbnVtIHpvbmVfdHlwZSB6dDsKIAotCWFyZy0+ c3RhdHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9 IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOworCWFyZy0+c3RhdHVzX2No YW5nZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9ub3JtYWwg PSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gTlVNQV9OT19O T0RFOwogCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyIG5vZGVfc3RhdGVzW05fTk9STUFMX01FTU9S WV0gd2lsbCBiZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9tZW1w b2xpY3kuYwppbmRleCA1ODM3YTA2Li5lNGY4MjQ4IDEwMDY0NAotLS0gYS9tbS9tZW1wb2xpY3ku YworKysgYi9tbS9tZW1wb2xpY3kuYwpAQCAtMjI3OCw3ICsyMjc4LDcgQEAgaW50IG1wb2xfbWlz cGxhY2VkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5z aWduZWQgbG9uZwogCXVuc2lnbmVkIGxvbmcgcGdvZmY7CiAJaW50IHRoaXNjcHUgPSByYXdfc21w X3Byb2Nlc3Nvcl9pZCgpOwogCWludCB0aGlzbmlkID0gY3B1X3RvX25vZGUodGhpc2NwdSk7Ci0J aW50IHBvbG5pZCA9IC0xOworCWludCBwb2xuaWQgPSBOVU1BX05PX05PREU7CiAJaW50IHJldCA9 IC0xOwogCiAJcG9sID0gZ2V0X3ZtYV9wb2xpY3kodm1hLCBhZGRyKTsKZGlmZiAtLWdpdCBhL21t L3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYwppbmRleCBhOTE5YmE1Li45ZDM4ZDljIDEw MDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5jCkBAIC01ODQ2 LDcgKzU4NDYsNyBAQCBpbnQgX19tZW1pbml0IF9fZWFybHlfcGZuX3RvX25pZCh1bnNpZ25lZCBs b25nIHBmbiwKIAkJcmV0dXJuIHN0YXRlLT5sYXN0X25pZDsKIAogCW5pZCA9IG1lbWJsb2NrX3Nl YXJjaF9wZm5fbmlkKHBmbiwgJnN0YXJ0X3BmbiwgJmVuZF9wZm4pOwotCWlmIChuaWQgIT0gLTEp IHsKKwlpZiAobmlkICE9IE5VTUFfTk9fTk9ERSkgewogCQlzdGF0ZS0+bGFzdF9zdGFydCA9IHN0 YXJ0X3BmbjsKIAkJc3RhdGUtPmxhc3RfZW5kID0gZW5kX3BmbjsKIAkJc3RhdGUtPmxhc3Rfbmlk ID0gbmlkOwpAQCAtNjYwNyw3ICs2NjA3LDcgQEAgdW5zaWduZWQgbG9uZyBfX2luaXQgbm9kZV9t YXBfcGZuX2FsaWdubWVudCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgYWNjbF9tYXNrID0gMCwg bGFzdF9lbmQgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZCwgbWFzazsKLQlpbnQgbGFz dF9uaWQgPSAtMTsKKwlpbnQgbGFzdF9uaWQgPSBOVU1BX05PX05PREU7CiAJaW50IGksIG5pZDsK IAogCWZvcl9lYWNoX21lbV9wZm5fcmFuZ2UoaSwgTUFYX05VTU5PREVTLCAmc3RhcnQsICZlbmQs ICZuaWQpIHsKZGlmZiAtLWdpdCBhL21tL3BhZ2VfZXh0LmMgYi9tbS9wYWdlX2V4dC5jCmluZGV4 IGFlNDRmN2EuLmRmYjAyMDYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfZXh0LmMKKysrIGIvbW0vcGFn ZV9leHQuYwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQgX19tZW1pbml0IG9ubGluZV9w YWdlX2V4dCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAlzdGFydCA9IFNFQ1RJT05fQUxJR05f RE9XTihzdGFydF9wZm4pOwogCWVuZCA9IFNFQ1RJT05fQUxJR05fVVAoc3RhcnRfcGZuICsgbnJf cGFnZXMpOwogCi0JaWYgKG5pZCA9PSAtMSkgeworCWlmIChuaWQgPT0gTlVNQV9OT19OT0RFKSB7 CiAJCS8qCiAJCSAqIEluIHRoaXMgY2FzZSwgIm5pZCIgYWxyZWFkeSBleGlzdHMgYW5kIGNvbnRh aW5zIHZhbGlkIG1lbW9yeS4KIAkJICogInN0YXJ0X3BmbiIgcGFzc2VkIHRvIHVzIGlzIGEgcGZu IHdoaWNoIGlzIGFuIGFyZyBmb3IKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0 L2NvcmUvcGt0Z2VuLmMKaW5kZXggNmFjOTE5OC4uYWYzYTc0NiAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvcGt0Z2VuLmMKKysrIGIvbmV0L2NvcmUvcGt0Z2VuLmMKQEAgLTM2MjUsNyArMzYyNSw3IEBA IHN0YXRpYyBpbnQgcGt0Z2VuX2FkZF9kZXZpY2Uoc3RydWN0IHBrdGdlbl90aHJlYWQgKnQsIGNv bnN0IGNoYXIgKmlmbmFtZSkKIAlwa3RfZGV2LT5zdmxhbl9jZmkgPSAwOwogCXBrdF9kZXYtPnN2 bGFuX2lkID0gMHhmZmZmOwogCXBrdF9kZXYtPmJ1cnN0ID0gMTsKLQlwa3RfZGV2LT5ub2RlID0g LTE7CisJcGt0X2Rldi0+bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCWVyciA9IHBrdGdlbl9zZXR1 cF9kZXYodC0+bmV0LCBwa3RfZGV2LCBpZm5hbWUpOwogCWlmIChlcnIpCmRpZmYgLS1naXQgYS9u ZXQvcXJ0ci9xcnRyLmMgYi9uZXQvcXJ0ci9xcnRyLmMKaW5kZXggODZlMWUzNy4uMGM1NmFlMiAx MDA2NDQKLS0tIGEvbmV0L3FydHIvcXJ0ci5jCisrKyBiL25ldC9xcnRyL3FydHIuYwpAQCAtMTAx LDcgKzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHFydHJfc29jayAqcXJ0cl9zayhzdHJ1 Y3Qgc29jayAqc2spCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihzaywgc3RydWN0IHFydHJfc29jaywg c2spOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IHFydHJfbG9jYWxfbmlkID0gLTE7CitzdGF0 aWMgdW5zaWduZWQgaW50IHFydHJfbG9jYWxfbmlkID0gTlVNQV9OT19OT0RFOwogCiAvKiBmb3Ig bm9kZSBpZHMgKi8KIHN0YXRpYyBSQURJWF9UUkVFKHFydHJfbm9kZXMsIEdGUF9LRVJORUwpOwpk aWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9udW1hLmMgYi90b29scy9wZXJmL2JlbmNoL251 bWEuYwppbmRleCA0NDE5NTUxLi5lMGFkNWYxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2JlbmNo L251bWEuYworKysgYi90b29scy9wZXJmL2JlbmNoL251bWEuYwpAQCAtMjk4LDcgKzI5OCw3IEBA IHN0YXRpYyBjcHVfc2V0X3QgYmluZF90b19ub2RlKGludCB0YXJnZXRfbm9kZSkKIAogCUNQVV9a RVJPKCZtYXNrKTsKIAotCWlmICh0YXJnZXRfbm9kZSA9PSAtMSkgeworCWlmICh0YXJnZXRfbm9k ZSA9PSBOVU1BX05PX05PREUpIHsKIAkJZm9yIChjcHUgPSAwOyBjcHUgPCBnLT5wLm5yX2NwdXM7 IGNwdSsrKQogCQkJQ1BVX1NFVChjcHUsICZtYXNrKTsKIAl9IGVsc2UgewpAQCAtMzM5LDcgKzMz OSw3IEBAIHN0YXRpYyB2b2lkIGJpbmRfdG9fbWVtbm9kZShpbnQgbm9kZSkKIAl1bnNpZ25lZCBs b25nIG5vZGVtYXNrOwogCWludCByZXQ7CiAKLQlpZiAobm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9 PSBOVU1BX05PX05PREUpCiAJCXJldHVybjsKIAogCUJVR19PTihnLT5wLm5yX25vZGVzID4gKGlu dClzaXplb2Yobm9kZW1hc2spKjgpOwpAQCAtMTM2Myw3ICsxMzYzLDcgQEAgc3RhdGljIHZvaWQg aW5pdF90aHJlYWRfZGF0YSh2b2lkKQogCQlpbnQgY3B1OwogCiAJCS8qIEFsbG93IGFsbCBub2Rl cyBieSBkZWZhdWx0OiAqLwotCQl0ZC0+YmluZF9ub2RlID0gLTE7CisJCXRkLT5iaW5kX25vZGUg PSBOVU1BX05PX05PREU7CiAKIAkJLyogQWxsb3cgYWxsIENQVXMgYnkgZGVmYXVsdDogKi8KIAkJ Q1BVX1pFUk8oJnRkLT5iaW5kX2NwdW1hc2spOwo=