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: [V2] mm: Replace all open encodings for NUMA_NO_NODE From: Anshuman Khandual Message-Id: <1543235202-9075-1-git-send-email-anshuman.khandual@arm.com> Date: Mon, 26 Nov 2018 17:56:42 +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, akpm@linux-foundation.org, jiangqi903@gmail.com, hverkuil@xs4all.nl, vkoul@kernel.org List-ID: QXQgcHJlc2VudCB0aGVyZSBhcmUgbXVsdGlwbGUgcGxhY2VzIHdoZXJlIGludmFsaWQgbm9kZSBu dW1iZXIgaXMgZW5jb2RlZAphcyAtMS4gRXZlbiB0aG91Z2ggaW1wbGljaXRseSB1bmRlcnN0b29k IGl0IGlzIGFsd2F5cyBiZXR0ZXIgdG8gaGF2ZSBtYWNyb3MKaW4gdGhlcmUuIFJlcGxhY2UgdGhl c2Ugb3BlbiBlbmNvZGluZ3MgZm9yIGFuIGludmFsaWQgbm9kZSBudW1iZXIgd2l0aCB0aGUKZ2xv YmFsIG1hY3JvIE5VTUFfTk9fTk9ERS4gVGhpcyBoZWxwcyByZW1vdmUgTlVNQSByZWxhdGVkIGFz c3VtcHRpb25zIGxpa2UKJ2ludmFsaWQgbm9kZScgZnJvbSB2YXJpb3VzIHBsYWNlcyByZWRpcmVj dGluZyB0aGVtIHRvIGEgY29tbW9uIGRlZmluaXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbnNodW1h biBLaGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT4KLS0tCkNoYW5nZXMgaW4gVjI6 CgotIEFkZGVkIGluY2x1c2lvbiBvZiAnbnVtYS5oJyBoZWFkZXIgYXQgdmFyaW91cyBwbGFjZXMg cGVyIEFuZHJldwotIFVwZGF0ZWQgJ2Rldl90b19ub2RlJyB0byB1c2UgTlVNQV9OT19OT0RFIGlu c3RlYWQgcGVyIFZpbm9kCgpDaGFuZ2VzIGluIFYxOiAoaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIw MTgvMTEvMjMvNDg1KQoKLSBEcm9wcGVkIE9DRlMyIGNoYW5nZXMgcGVyIEpvc2VwaAotIERyb3Bw ZWQgbWVkaWEvdmlkZW8gZHJpdmVycyBjaGFuZ2VzIHBlciBIYW5zCgpSRkMgLSBodHRwczovL3Bh dGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwNjc4MDM1LwoKQnVpbGQgdGVzdGVkIHRoaXMgd2l0 aCBtdWx0aXBsZSBjcm9zcyBjb21waWxlciBvcHRpb25zIGxpa2UgYWxwaGEsIHNwYXJjLAphcm02 NCwgeDg2LCBwb3dlcnBjLCBwb3dlcnBjNjRsZSBldGMgd2l0aCB0aGVpciBkZWZhdWx0IGNvbmZp ZyB3aGljaCBtaWdodApub3QgaGF2ZSBjb21waWxlZCB0ZXN0ZWQgYWxsIGRyaXZlciByZWxhdGVk IGNoYW5nZXMuIEkgd2lsbCBhcHByZWNpYXRlCmZvbGtzIGdpdmluZyB0aGlzIGEgdGVzdCBpbiB0 aGVpciByZXNwZWN0aXZlIGJ1aWxkIGVudmlyb25tZW50LgoKQWxsIHRoZXNlIHBsYWNlcyBmb3Ig cmVwbGFjZW1lbnQgd2VyZSBmb3VuZCBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgZ3JlcApwYXR0 ZXJucyBvbiB0aGUgZW50aXJlIGtlcm5lbCBjb2RlLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhp cyBtaWdodCBoYXZlCm1pc3NlZCBzb21lIGluc3RhbmNlcy4gVGhpcyBtaWdodCBhbHNvIGhhdmUg cmVwbGFjZWQgc29tZSBmYWxzZSBwb3NpdGl2ZXMuCkkgd2lsbCBhcHByZWNpYXRlIHN1Z2dlc3Rp b25zLCBpbnB1dHMgYW5kIHJldmlldy4KCjEuIGdpdCBncmVwICJuaWQgPT0gLTEiCjIuIGdpdCBn cmVwICJub2RlID09IC0xIgozLiBnaXQgZ3JlcCAibmlkID0gLTEiCjQuIGdpdCBncmVwICJub2Rl ID0gLTEiCgogYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS90b3BvbG9neS5oICAgICAgICAgICAgIHwg IDMgKystCiBhcmNoL2lhNjQva2VybmVsL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrLS0tCiBhcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jICAgICAgICAgICAgICAgfCAg MyArKy0KIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmggICAgICAgICB8ICAz ICsrLQogYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMgICAgICAgICAgICAgICAgICAgIHwgIDMg KystCiBhcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyAgICAgICAgICAgICAgfCAgMyAr Ky0KIGFyY2gvcG93ZXJwYy9tbS9udW1hLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsr KysrKystLS0tLS0tCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbWVtdHJhY2UuYyAg ICAgfCAgNSArKystLQogYXJjaC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYyAgICAgICAgICAgICAg ICAgIHwgIDMgKystCiBhcmNoL3NwYXJjL2tlcm5lbC9wY2lfZmlyZS5jICAgICAgICAgICAgICAg ICAgfCAgMyArKy0KIGFyY2gvc3BhcmMva2VybmVsL3BjaV9zY2hpem8uYyAgICAgICAgICAgICAg ICB8ICAzICsrLQogYXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jICAgICAgICAgICAgICAgICAgICAg IHwgIDcgKysrKy0tLQogYXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jICAgICAgICAg ICAgIHwgIDMgKystCiBhcmNoL3NwYXJjL2tlcm5lbC9zYnVzLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgMyArKy0KIGFyY2gvc3BhcmMvbW0vaW5pdF82NC5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2ICsrKy0tLQogYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDMgKystCiBhcmNoL3NwYXJjL3Byb20vaW5pdF82NC5jICAgICAgICAgICAgICAgICAg ICAgfCAgNSArKystLQogYXJjaC9zcGFyYy9wcm9tL3RyZWVfMzIuYyAgICAgICAgICAgICAgICAg ICAgIHwgMTMgKysrKysrKy0tLS0tLQogYXJjaC9zcGFyYy9wcm9tL3RyZWVfNjQuYyAgICAgICAg ICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9h c20vcGNpLmggICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3g4Ni9rZXJuZWwvYXBp Yy94MmFwaWNfdXZfeC5jICAgICAgICAgICAgfCAgNyArKysrLS0tCiBhcmNoL3g4Ni9rZXJuZWwv c21wYm9vdC5jICAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIGFyY2gveDg2L3BsYXRmb3Jt L29scGMvb2xwY19kdC5jICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKy0tLS0tLS0tCiBkcml2 ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMgICAgICAgICAgICAgfCAgNSArKystLQogZHJp dmVycy9kbWEvZG1hZW5naW5lLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysrLQogZHJp dmVycy9pbmZpbmliYW5kL2h3L2hmaTEvYWZmaW5pdHkuYyAgICAgICAgIHwgIDMgKystCiBkcml2 ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9pbml0LmMgICAgICAgICAgICAgfCAgMyArKy0KIGRyaXZl cnMvaW9tbXUvZG1hci5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKy0tCiBkcml2 ZXJzL2lvbW11L2ludGVsLWlvbW11LmMgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIGRyaXZl cnMvbWlzYy9zZ2kteHAveHBjX3V2LmMgICAgICAgICAgICAgICAgICB8ICAzICsrLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIHwgIDUgKysrLS0KIGluY2x1 ZGUvbGludXgvZGV2aWNlLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBpbml0L2lu aXRfdGFzay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIGtlcm5lbC9r dGhyZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQoga2VybmVsL3Nj aGVkL2ZhaXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKystLS0tLS0t CiBsaWIvY3B1bWFzay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0K IG1tL2h1Z2VfbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzICsrKysr KystLS0tLS0KIG1tL2h1Z2V0bGIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzICsrLQogbW0va3NtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIG1tL21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3 ICsrKystLS0KIG1tL21lbW9yeV9ob3RwbHVnLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEyICsrKysrKy0tLS0tLQogbW0vbWVtcG9saWN5LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICsrLS0KIG1tL3BhZ2VfZXh0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvY29yZS9wa3RnZW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMyArKy0KIG5ldC9xcnRyL3FydHIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzICsrLQogdG9vbHMvcGVyZi9iZW5jaC9udW1hLmMgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrLS0tCiA0OCBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgMTA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3ku aCBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaAppbmRleCBlNmUxM2E4Li41YTc3 YTQwIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgKKysrIGIv YXJjaC9hbHBoYS9pbmNsdWRlL2FzbS90b3BvbG9neS5oCkBAIC00LDYgKzQsNyBAQAogCiAjaW5j bHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgorI2luY2x1ZGUg PGxpbnV4L251bWEuaD4KICNpbmNsdWRlIDxhc20vbWFjaHZlYy5oPgogCiAjaWZkZWYgQ09ORklH X05VTUEKQEAgLTI5LDcgKzMwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVt YXNrX29mX25vZGUoaW50IG5vZGUpCiB7CiAJaW50IGNwdTsKIAotCWlmIChub2RlID09IC0xKQor CWlmIChub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIGNwdV9hbGxfbWFzazsKIAogCWNw dW1hc2tfY2xlYXIoJm5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV0pOwpkaWZmIC0tZ2l0IGEvYXJj aC9pYTY0L2tlcm5lbC9udW1hLmMgYi9hcmNoL2lhNjQva2VybmVsL251bWEuYwppbmRleCA5MmMz NzYyLi4xMzE1ZGE2IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL251bWEuYworKysgYi9h cmNoL2lhNjQva2VybmVsL251bWEuYwpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIF9faW5pdCBidWls ZF9jcHVfdG9fbm9kZV9tYXAodm9pZCkKIAkJY3B1bWFza19jbGVhcigmbm9kZV90b19jcHVfbWFz a1tub2RlXSk7CiAKIAlmb3JfZWFjaF9wb3NzaWJsZV9lYXJseV9jcHUoY3B1KSB7Ci0JCW5vZGUg PSAtMTsKKwkJbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAkJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7 ICsraSkKIAkJCWlmIChjcHVfcGh5c2ljYWxfaWQoY3B1KSA9PSBub2RlX2NwdWlkW2ldLnBoeXNf aWQpIHsKIAkJCQlub2RlID0gbm9kZV9jcHVpZFtpXS5uaWQ7CmRpZmYgLS1naXQgYS9hcmNoL2lh NjQvbW0vZGlzY29udGlnLmMgYi9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMKaW5kZXggOGE5NjU3 OC4uZjljMzY3NSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jCisrKyBiL2Fy Y2gvaWE2NC9tbS9kaXNjb250aWcuYwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgX19pbml0IHNl dHVwX3Blcl9jcHVfYXJlYXModm9pZCkKIAkgKiBDUFVzIGFyZSBwdXQgaW50byBncm91cHMgYWNj b3JkaW5nIHRvIG5vZGUuICBXYWxrIGNwdV9tYXAKIAkgKiBhbmQgY3JlYXRlIG5ldyBncm91cHMg YXQgbm9kZSBib3VuZGFyaWVzLgogCSAqLwotCXByZXZfbm9kZSA9IC0xOworCXByZXZfbm9kZSA9 IE5VTUFfTk9fTk9ERTsKIAlhaS0+bnJfZ3JvdXBzID0gMDsKIAlmb3IgKHVuaXQgPSAwOyB1bml0 IDwgbnJfdW5pdHM7IHVuaXQrKykgewogCQljcHUgPSBjcHVfbWFwW3VuaXRdOwpAQCAtNDM1LDcg KzQzNSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCAqbWVtb3J5X2xlc3Nfbm9kZV9hbGxvYyhpbnQg bmlkLCB1bnNpZ25lZCBsb25nIHBlcm5vZGVzaXplKQogewogCXZvaWQgKnB0ciA9IE5VTEw7CiAJ dTggYmVzdCA9IDB4ZmY7Ci0JaW50IGJlc3Rub2RlID0gLTEsIG5vZGUsIGFueW5vZGUgPSAwOwor CWludCBiZXN0bm9kZSA9IE5VTUFfTk9fTk9ERSwgbm9kZSwgYW55bm9kZSA9IDA7CiAKIAlmb3Jf ZWFjaF9vbmxpbmVfbm9kZShub2RlKSB7CiAJCWlmIChub2RlX2lzc2V0KG5vZGUsIG1lbW9yeV9s ZXNzX21hc2spKQpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCAqbWVtb3J5 X2xlc3Nfbm9kZV9hbGxvYyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHBlcm5vZGVzaXplKQogCQlh bnlub2RlID0gbm9kZTsKIAl9CiAKLQlpZiAoYmVzdG5vZGUgPT0gLTEpCisJaWYgKGJlc3Rub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJYmVzdG5vZGUgPSBhbnlub2RlOwogCiAJcHRyID0gbWVtYmxv Y2tfYWxsb2NfdHJ5X25pZChwZXJub2Rlc2l6ZSwgUEVSQ1BVX1BBR0VfU0laRSwKZGlmZiAtLWdp dCBhL2FyY2gvaWE2NC9zbi9rZXJuZWwvaW9fY29tbW9uLmMgYi9hcmNoL2lhNjQvc24va2VybmVs L2lvX2NvbW1vbi5jCmluZGV4IDhkZjEzZDAuLjIyMWVkZTMgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2 NC9zbi9rZXJuZWwvaW9fY29tbW9uLmMKKysrIGIvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19jb21t b24uYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgogI2luY2x1 ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxs aW51eC9udW1hLmg+CiAjaW5jbHVkZSA8YXNtL3NuL3R5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL3Nu L2FkZHJzLmg+CiAjaW5jbHVkZSA8YXNtL3NuL3NuX2ZlYXR1cmVfc2V0cy5oPgpAQCAtMzQ0LDcg KzM0NSw3IEBAIHNuX2NvbW1vbl9idXNfZml4dXAoc3RydWN0IHBjaV9idXMgKmJ1cywKIAkJcHJp bnRrKEtFUk5fV0FSTklORyAib24gbm9kZSAlZCBidXQgb25seSAlZCBub2RlcyBvbmxpbmUuIgog CQkgICAgICAgIkFzc29jaWF0aW9uIHNldCB0byB1bmRldGVybWluZWQuXG4iLAogCQkgICAgICAg Y29udHJvbGxlci0+bm9kZSwgbnVtX29ubGluZV9ub2RlcygpKTsKLQkJY29udHJvbGxlci0+bm9k ZSA9IC0xOworCQljb250cm9sbGVyLT5ub2RlID0gTlVNQV9OT19OT0RFOwogCX0KIH0KIApkaWZm IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaCBiL2FyY2gvcG93 ZXJwYy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKaW5kZXggOTRkNDQ5MC4uOTdiZjRiMSAxMDA2 NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAorKysgYi9hcmNo L3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5j bHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxp bnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KIAogc3RydWN0IGRldmljZV9u b2RlOwogCkBAIC0yNjQsNyArMjY1LDcgQEAgZXh0ZXJuIGludCBwY2liaW9zX21hcF9pb19zcGFj ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKICNpZmRlZiBDT05GSUdfTlVNQQogI2RlZmluZSBQSEJf U0VUX05PREUoUEhCLCBOT0RFKQkJKChQSEIpLT5ub2RlID0gKE5PREUpKQogI2Vsc2UKLSNkZWZp bmUgUEhCX1NFVF9OT0RFKFBIQiwgTk9ERSkJCSgoUEhCKS0+bm9kZSA9IC0xKQorI2RlZmluZSBQ SEJfU0VUX05PREUoUEhCLCBOT0RFKQkJKChQSEIpLT5ub2RlID0gTlVNQV9OT19OT0RFKQogI2Vu ZGlmCiAKICNlbmRpZgkvKiBDT05GSUdfUFBDNjQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9rZXJuZWwvcGFjYS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKaW5kZXggOTEzYmZj YS4uYjg0ODAxMiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKKysrIGIv YXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxs aW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgogI2luY2x1ZGUgPGxp bnV4L3NjaGVkL3Rhc2suaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRlIDxh c20vbHBwYWNhLmg+CiAjaW5jbHVkZSA8YXNtL3BhY2EuaD4KQEAgLTM2LDcgKzM3LDcgQEAgc3Rh dGljIHZvaWQgKl9faW5pdCBhbGxvY19wYWNhX2RhdGEodW5zaWduZWQgbG9uZyBzaXplLCB1bnNp Z25lZCBsb25nIGFsaWduLAogCSAqIHdoaWNoIHdpbGwgcHV0IGl0cyBwYWNhIGluIHRoZSByaWdo dCBwbGFjZS4KIAkgKi8KIAlpZiAoY3B1ID09IGJvb3RfY3B1aWQpIHsKLQkJbmlkID0gLTE7CisJ CW5pZCA9IE5VTUFfTk9fTk9ERTsKIAkJbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKIAl9 IGVsc2UgewogCQluaWQgPSBlYXJseV9jcHVfdG9fbm9kZShjcHUpOwpkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1j b21tb24uYwppbmRleCA4OGU0ZjY5Li40NTM4ZThkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMv a2VybmVsL3BjaS1jb21tb24uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24u YwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdmdhYXJiLmg+CisjaW5jbHVkZSA8bGlu dXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9p by5oPgpAQCAtMTMyLDcgKzEzMyw3IEBAIHN0cnVjdCBwY2lfY29udHJvbGxlciAqcGNpYmlvc19h bGxvY19jb250cm9sbGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2KQogCQlpbnQgbmlkID0gb2Zf bm9kZV90b19uaWQoZGV2KTsKIAogCQlpZiAobmlkIDwgMCB8fCAhbm9kZV9vbmxpbmUobmlkKSkK LQkJCW5pZCA9IC0xOworCQkJbmlkID0gTlVNQV9OT19OT0RFOwogCiAJCVBIQl9TRVRfTk9ERShw aGIsIG5pZCk7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL251bWEuYyBiL2FyY2gv cG93ZXJwYy9tbS9udW1hLmMKaW5kZXggY2UyOGFlNS4uODRhZDhjOSAxMDA2NDQKLS0tIGEvYXJj aC9wb3dlcnBjL21tL251bWEuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vbnVtYS5jCkBAIC0yMTUs NyArMjE1LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV9kaXN0YW5jZV9sb29rdXBfdGFibGUo aW50IG5pZCwKICAqLwogc3RhdGljIGludCBhc3NvY2lhdGl2aXR5X3RvX25pZChjb25zdCBfX2Jl MzIgKmFzc29jaWF0aXZpdHkpCiB7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05P X05PREU7CiAKIAlpZiAobWluX2NvbW1vbl9kZXB0aCA9PSAtMSkKIAkJZ290byBvdXQ7CkBAIC0y MjUsNyArMjI1LDcgQEAgc3RhdGljIGludCBhc3NvY2lhdGl2aXR5X3RvX25pZChjb25zdCBfX2Jl MzIgKmFzc29jaWF0aXZpdHkpCiAKIAkvKiBQT1dFUjQgTFBBUiB1c2VzIDB4ZmZmZiBhcyBpbnZh bGlkIG5vZGUgKi8KIAlpZiAobmlkID09IDB4ZmZmZiB8fCBuaWQgPj0gTUFYX05VTU5PREVTKQot CQluaWQgPSAtMTsKKwkJbmlkID0gTlVNQV9OT19OT0RFOwogCiAJaWYgKG5pZCA+IDAgJiYKIAkJ b2ZfcmVhZF9udW1iZXIoYXNzb2NpYXRpdml0eSwgMSkgPj0gZGlzdGFuY2VfcmVmX3BvaW50c19k ZXB0aCkgewpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbnQgYXNzb2NpYXRpdml0eV90b19u aWQoY29uc3QgX19iZTMyICphc3NvY2lhdGl2aXR5KQogICovCiBzdGF0aWMgaW50IG9mX25vZGVf dG9fbmlkX3NpbmdsZShzdHJ1Y3QgZGV2aWNlX25vZGUgKmRldmljZSkKIHsKLQlpbnQgbmlkID0g LTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAljb25zdCBfX2JlMzIgKnRtcDsKIAogCXRt cCA9IG9mX2dldF9hc3NvY2lhdGl2aXR5KGRldmljZSk7CkBAIC0yNTYsNyArMjU2LDcgQEAgc3Rh dGljIGludCBvZl9ub2RlX3RvX25pZF9zaW5nbGUoc3RydWN0IGRldmljZV9ub2RlICpkZXZpY2Up CiAvKiBXYWxrIHRoZSBkZXZpY2UgdHJlZSB1cHdhcmRzLCBsb29raW5nIGZvciBhbiBhc3NvY2lh dGl2aXR5IGlkICovCiBpbnQgb2Zfbm9kZV90b19uaWQoc3RydWN0IGRldmljZV9ub2RlICpkZXZp Y2UpCiB7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAKIAlvZl9u b2RlX2dldChkZXZpY2UpOwogCXdoaWxlIChkZXZpY2UpIHsKQEAgLTQ1NCw3ICs0NTQsNyBAQCBz dGF0aWMgaW50IG9mX2RyY29uZl90b19uaWRfc2luZ2xlKHN0cnVjdCBkcm1lbV9sbWIgKmxtYikK ICAqLwogc3RhdGljIGludCBudW1hX3NldHVwX2NwdSh1bnNpZ25lZCBsb25nIGxjcHUpCiB7Ci0J aW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAJc3RydWN0IGRldmljZV9u b2RlICpjcHU7CiAKIAkvKgpAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBpbnQgaG90X2FkZF9k cmNvbmZfc2NuX3RvX25pZCh1bnNpZ25lZCBsb25nIHNjbl9hZGRyKQogewogCXN0cnVjdCBkcm1l bV9sbWIgKmxtYjsKIAl1bnNpZ25lZCBsb25nIGxtYl9zaXplOwotCWludCBuaWQgPSAtMTsKKwlp bnQgbmlkID0gTlVNQV9OT19OT0RFOwogCiAJbG1iX3NpemUgPSBkcm1lbV9sbWJfc2l6ZSgpOwog CkBAIC05NjAsNyArOTYwLDcgQEAgc3RhdGljIGludCBob3RfYWRkX2RyY29uZl9zY25fdG9fbmlk KHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiBzdGF0aWMgaW50IGhvdF9hZGRfbm9kZV9zY25fdG9f bmlkKHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICptZW1v cnk7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAKIAlmb3JfZWFj aF9ub2RlX2J5X3R5cGUobWVtb3J5LCAibWVtb3J5IikgewogCQl1bnNpZ25lZCBsb25nIHN0YXJ0 LCBzaXplOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L21lbXRy YWNlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbWVtdHJhY2UuYwppbmRleCA4 NGQwMzhlLi4yNDhhMzhhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2Vy bnYvbWVtdHJhY2UuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbWVtdHJh Y2UuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRl IDxsaW51eC9tZW1vcnkuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1vcnlfaG90cGx1Zy5oPgorI2lu Y2x1ZGUgPGxpbnV4L251bWEuaD4KICNpbmNsdWRlIDxhc20vbWFjaGRlcC5oPgogI2luY2x1ZGUg PGFzbS9kZWJ1Z2ZzLmg+CiAKQEAgLTIyMyw3ICsyMjQsNyBAQCBzdGF0aWMgaW50IG1lbXRyYWNl X29ubGluZSh2b2lkKQogCQllbnQgPSAmbWVtdHJhY2VfYXJyYXlbaV07CiAKIAkJLyogV2UgaGF2 ZSBvbmxpbmVkIHRoaXMgY2h1bmsgcHJldmlvdXNseSAqLwotCQlpZiAoZW50LT5uaWQgPT0gLTEp CisJCWlmIChlbnQtPm5pZCA9PSBOVU1BX05PX05PREUpCiAJCQljb250aW51ZTsKIAogCQkvKiBS ZW1vdmUgZnJvbSBpbyBtYXBwaW5ncyAqLwpAQCAtMjU3LDcgKzI1OCw3IEBAIHN0YXRpYyBpbnQg bWVtdHJhY2Vfb25saW5lKHZvaWQpCiAJCSAqLwogCQlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUo ZW50LT5kaXIpOwogCQlwcl9pbmZvKCJBZGRlZCB0cmFjZSBtZW1vcnkgYmFjayB0byBub2RlICVk XG4iLCBlbnQtPm5pZCk7Ci0JCWVudC0+c2l6ZSA9IGVudC0+c3RhcnQgPSBlbnQtPm5pZCA9IC0x OworCQllbnQtPnNpemUgPSBlbnQtPnN0YXJ0ID0gZW50LT5uaWQgPSBOVU1BX05PX05PREU7CiAJ fQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5l bC9hdXhpb18zMi5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYwppbmRleCBhMzJkNTg4 Li4yNzZiNGVjIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9hdXhpb18zMi5jCisrKyBi L2FyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRl IDxsaW51eC9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KIAogI2luY2x1ZGUgPGFzbS9v cGxpYi5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtMTIwLDcgKzEyMSw3IEBAIHZvaWQgX19p bml0IGF1eGlvX3Bvd2VyX3Byb2JlKHZvaWQpCiAJbm9kZSA9IHByb21fc2VhcmNoc2libGluZ3Mo bm9kZSwgIm9iaW8iKTsKIAlub2RlID0gcHJvbV9nZXRjaGlsZChub2RlKTsKIAlub2RlID0gcHJv bV9zZWFyY2hzaWJsaW5ncyhub2RlLCAicG93ZXIiKTsKLQlpZiAobm9kZSA9PSAwIHx8IChzMzIp bm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9PSAwIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybjsKIAogCS8qIE1hcCB0aGUgcG93ZXIgY29udHJvbCByZWdpc3Rlci4gKi8KZGlm ZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3BjaV9maXJlLmMgYi9hcmNoL3NwYXJjL2tlcm5l bC9wY2lfZmlyZS5jCmluZGV4IGJlNzFhZTAuLjBjYTA4ZDQgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMva2VybmVsL3BjaV9maXJlLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX2ZpcmUuYwpA QCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxp bnV4L2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4 L251bWEuaD4KIAogI2luY2x1ZGUgPGFzbS9wcm9tLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgpA QCAtNDE2LDcgKzQxNyw3IEBAIHN0YXRpYyBpbnQgcGNpX2ZpcmVfcGJtX2luaXQoc3RydWN0IHBj aV9wYm1faW5mbyAqcGJtLAogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZHAgPSBvcC0+ZGV2Lm9mX25v ZGU7CiAJaW50IGVycjsKIAotCXBibS0+bnVtYV9ub2RlID0gLTE7CisJcGJtLT5udW1hX25vZGUg PSBOVU1BX05PX05PREU7CiAKIAlwYm0tPnBjaV9vcHMgPSAmc3VuNHVfcGNpX29wczsKIAlwYm0t PmNvbmZpZ19zcGFjZV9yZWdfYml0cyA9IDEyOwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJu ZWwvcGNpX3NjaGl6by5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6by5jCmluZGV4IDkz NGI5N2MuLjQyMWFiYTAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3BjaV9zY2hpem8u YworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfc2NoaXpvLmMKQEAgLTEyLDYgKzEyLDcgQEAK ICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4K ICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAK ICNpbmNsdWRlIDxhc20vaW9tbXUuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CkBAIC0xMzQ3LDcg KzEzNDgsNyBAQCBzdGF0aWMgaW50IHNjaGl6b19wYm1faW5pdChzdHJ1Y3QgcGNpX3BibV9pbmZv ICpwYm0sCiAJcGJtLT5uZXh0ID0gcGNpX3BibV9yb290OwogCXBjaV9wYm1fcm9vdCA9IHBibTsK IAotCXBibS0+bnVtYV9ub2RlID0gLTE7CisJcGJtLT5udW1hX25vZGUgPSBOVU1BX05PX05PREU7 CiAKIAlwYm0tPnBjaV9vcHMgPSAmc3VuNHVfcGNpX29wczsKIAlwYm0tPmNvbmZpZ19zcGFjZV9y ZWdfYml0cyA9IDg7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMgYi9hcmNo L3NwYXJjL2tlcm5lbC9wY2ljLmMKaW5kZXggZWU0YzlhOS4uMTkwZjkzNCAxMDA2NDQKLS0tIGEv YXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaWMuYwpA QCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1h Lmg+CiAKICNpbmNsdWRlIDxhc20vc3dpZnQuaD4gLyogZm9yIGNhY2hlIGZsdXNoaW5nLiAqLwog I2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtNDc2LDcgKzQ3Nyw3IEBAIHN0YXRpYyB2b2lkIHBjaWNf bWFwX3BjaV9kZXZpY2Uoc3RydWN0IGxpbnV4X3BjaWMgKnBjaWMsCiAJdW5zaWduZWQgbG9uZyBm bGFnczsKIAlpbnQgajsKIAotCWlmIChub2RlID09IDAgfHwgbm9kZSA9PSAtMSkgeworCWlmIChu b2RlID09IDAgfHwgbm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJc3RyY3B5KG5hbWVidWYsICI/ Pz8iKTsKIAl9IGVsc2UgewogCQlwcm9tX2dldHN0cmluZyhub2RlLCAibmFtZSIsIG5hbWVidWYs IDYzKTsgbmFtZWJ1Zls2M10gPSAwOwpAQCAtNTM1LDcgKzUzNiw3IEBAIHBjaWNfZmlsbF9pcnEo c3RydWN0IGxpbnV4X3BjaWMgKnBjaWMsIHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBub2RlKQog CWludCBpLCBpdmVjOwogCWNoYXIgbmFtZWJ1Zls2NF07CiAKLQlpZiAobm9kZSA9PSAwIHx8IG5v ZGUgPT0gLTEpIHsKKwlpZiAobm9kZSA9PSAwIHx8IG5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJ CXN0cmNweShuYW1lYnVmLCAiPz8/Iik7CiAJfSBlbHNlIHsKIAkJcHJvbV9nZXRzdHJpbmcobm9k ZSwgIm5hbWUiLCBuYW1lYnVmLCBzaXplb2YobmFtZWJ1ZikpOwpAQCAtNjI1LDcgKzYyNiw3IEBA IHZvaWQgcGNpYmlvc19maXh1cF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cykKIAlsaXN0X2Zvcl9l YWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xpc3QpIHsKIAkJbm9kZSA9IHBkZXZf dG9fcG5vZGUoJnBjaWMtPnBibSwgZGV2KTsKIAkJaWYobm9kZSA9PSAwKQotCQkJbm9kZSA9IC0x OworCQkJbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCQkvKiBjb29raWVzICovCiAJCXBjcCA9IHBj aV9kZXZjb29raWVfYWxsb2MoKTsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3BzeWNo b19jb21tb24uYyBiL2FyY2gvc3BhcmMva2VybmVsL3BzeWNob19jb21tb24uYwppbmRleCA4MWFh OTFlLi5lOTBiY2I2IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9wc3ljaG9fY29tbW9u LmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jCkBAIC01LDYgKzUsNyBA QAogICovCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJy dXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNtL3VwYS5oPgog CkBAIC00NTQsNyArNDU1LDcgQEAgdm9pZCBwc3ljaG9fcGJtX2luaXRfY29tbW9uKHN0cnVjdCBw Y2lfcGJtX2luZm8gKnBibSwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb3AKIAlzdHJ1Y3QgZGV2 aWNlX25vZGUgKmRwID0gb3AtPmRldi5vZl9ub2RlOwogCiAJcGJtLT5uYW1lID0gZHAtPmZ1bGxf bmFtZTsKLQlwYm0tPm51bWFfbm9kZSA9IC0xOworCXBibS0+bnVtYV9ub2RlID0gTlVNQV9OT19O T0RFOwogCXBibS0+Y2hpcF90eXBlID0gY2hpcF90eXBlOwogCXBibS0+Y2hpcF92ZXJzaW9uID0g b2ZfZ2V0aW50cHJvcF9kZWZhdWx0KGRwLCAidmVyc2lvbiMiLCAwKTsKIAlwYm0tPmNoaXBfcmV2 aXNpb24gPSBvZl9nZXRpbnRwcm9wX2RlZmF1bHQoZHAsICJtb2R1bGUtcmV2aXNpb24jIiwgMCk7 CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9zYnVzLmMgYi9hcmNoL3NwYXJjL2tlcm5l bC9zYnVzLmMKaW5kZXggYzEzM2RmYy4uZTZmZDkyNCAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9r ZXJuZWwvc2J1cy5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3NidXMuYwpAQCAtMTUsNiArMTUs NyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+ CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgog CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTU2MSw3ICs1 NjIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc2J1c19pb21tdV9pbml0KHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKm9wKQogCiAJb3AtPmRldi5hcmNoZGF0YS5pb21tdSA9IGlvbW11OwogCW9wLT5k ZXYuYXJjaGRhdGEuc3RjID0gc3RyYnVmOwotCW9wLT5kZXYuYXJjaGRhdGEubnVtYV9ub2RlID0g LTE7CisJb3AtPmRldi5hcmNoZGF0YS5udW1hX25vZGUgPSBOVU1BX05PX05PREU7CiAKIAlyZWdf YmFzZSA9IHJlZ3MgKyBTWVNJT19JT01NVVJFR19CQVNFOwogCWlvbW11LT5pb21tdV9jb250cm9s ID0gcmVnX2Jhc2UgKyBJT01NVV9DT05UUk9MOwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9tbS9p bml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwppbmRleCAzYzhhYWMyLi5jYjFiZWQx IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL2luaXRfNjQuYworKysgYi9hcmNoL3NwYXJjL21t L2luaXRfNjQuYwpAQCAtOTc2LDEzICs5NzYsMTMgQEAgc3RhdGljIHU2NCBfX2luaXQgbWVtYmxv Y2tfbmlkX3JhbmdlX3N1bjR1KHU2NCBzdGFydCwgdTY0IGVuZCwgaW50ICpuaWQpCiB7CiAJaW50 IHByZXZfbmlkLCBuZXdfbmlkOwogCi0JcHJldl9uaWQgPSAtMTsKKwlwcmV2X25pZCA9IE5VTUFf Tk9fTk9ERTsKIAlmb3IgKCA7IHN0YXJ0IDwgZW5kOyBzdGFydCArPSBQQUdFX1NJWkUpIHsKIAkJ Zm9yIChuZXdfbmlkID0gMDsgbmV3X25pZCA8IG51bV9ub2RlX21hc2tzOyBuZXdfbmlkKyspIHsK IAkJCXN0cnVjdCBub2RlX21lbV9tYXNrICpwID0gJm5vZGVfbWFza3NbbmV3X25pZF07CiAKIAkJ CWlmICgoc3RhcnQgJiBwLT5tYXNrKSA9PSBwLT5tYXRjaCkgewotCQkJCWlmIChwcmV2X25pZCA9 PSAtMSkKKwkJCQlpZiAocHJldl9uaWQgPT0gTlVNQV9OT19OT0RFKQogCQkJCQlwcmV2X25pZCA9 IG5ld19uaWQ7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0xMjA4LDcgKzEyMDgsNyBAQCBpbnQgb2Zf bm9kZV90b19uaWQoc3RydWN0IGRldmljZV9ub2RlICpkcCkKIAltZCA9IG1kZXNjX2dyYWIoKTsK IAogCWNvdW50ID0gMDsKLQluaWQgPSAtMTsKKwluaWQgPSBOVU1BX05PX05PREU7CiAJbWRlc2Nf Zm9yX2VhY2hfbm9kZV9ieV9uYW1lKG1kLCBncnAsICJncm91cCIpIHsKIAkJaWYgKCFzY2FuX2Fy Y3NfZm9yX2NmZ19oYW5kbGUobWQsIGdycCwgY2ZnX2hhbmRsZSkpIHsKIAkJCW5pZCA9IGNvdW50 OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYyBiL2FyY2gvc3BhcmMvcHJv bS9pbml0XzMyLmMKaW5kZXggZDIwNDcwMS4uN2MwNzUwYSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFy Yy9wcm9tL2luaXRfMzIuYworKysgYi9hcmNoL3NwYXJjL3Byb20vaW5pdF8zMi5jCkBAIC0xMCw2 ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5p dC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4K IAogI2luY2x1ZGUgPGFzbS9vcGVucHJvbS5oPgogI2luY2x1ZGUgPGFzbS9vcGxpYi5oPgpAQCAt NTgsNyArNTksNyBAQCB2b2lkIF9faW5pdCBwcm9tX2luaXQoc3RydWN0IGxpbnV4X3JvbXZlYyAq cnApCiAJcHJvbV9ub2Rlb3BzID0gcm9tdmVjLT5wdl9ub2Rlb3BzOwogCiAJcHJvbV9yb290X25v ZGUgPSBwcm9tX2dldHNpYmxpbmcoMCk7Ci0JaWYgKChwcm9tX3Jvb3Rfbm9kZSA9PSAwKSB8fCAo KHMzMilwcm9tX3Jvb3Rfbm9kZSA9PSAtMSkpCisJaWYgKChwcm9tX3Jvb3Rfbm9kZSA9PSAwKSB8 fCAoKHMzMilwcm9tX3Jvb3Rfbm9kZSA9PSBOVU1BX05PX05PREUpKQogCQlwcm9tX2hhbHQoKTsK IAogCWlmKCgoKHVuc2lnbmVkIGxvbmcpIHByb21fbm9kZW9wcykgPT0gMCkgfHwgCmRpZmYgLS1n aXQgYS9hcmNoL3NwYXJjL3Byb20vaW5pdF82NC5jIGIvYXJjaC9zcGFyYy9wcm9tL2luaXRfNjQu YwppbmRleCAxMDNhYTkxLi4xOTYxMzNkIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL3Byb20vaW5p dF82NC5jCisrKyBiL2FyY2gvc3BhcmMvcHJvbS9pbml0XzY0LmMKQEAgLTExLDYgKzExLDcgQEAK ICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5j bHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRl IDxhc20vb3BlbnByb20uaD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KQEAgLTM2LDEzICszNywx MyBAQCB2b2lkIF9faW5pdCBwcm9tX2luaXQodm9pZCAqY2lmX2hhbmRsZXIpCiAJcHJvbV9jaWZf aW5pdChjaWZfaGFuZGxlcik7CiAKIAlwcm9tX2Nob3Nlbl9ub2RlID0gcHJvbV9maW5kZGV2aWNl KHByb21fY2hvc2VuX3BhdGgpOwotCWlmICghcHJvbV9jaG9zZW5fbm9kZSB8fCAoczMyKXByb21f Y2hvc2VuX25vZGUgPT0gLTEpCisJaWYgKCFwcm9tX2Nob3Nlbl9ub2RlIHx8IChzMzIpcHJvbV9j aG9zZW5fbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXByb21faGFsdCgpOwogCiAJcHJvbV9zdGRv dXQgPSBwcm9tX2dldGludChwcm9tX2Nob3Nlbl9ub2RlLCAic3Rkb3V0Iik7CiAKIAlub2RlID0g cHJvbV9maW5kZGV2aWNlKCIvb3BlbnByb20iKTsKLQlpZiAoIW5vZGUgfHwgKHMzMilub2RlID09 IC0xKQorCWlmICghbm9kZSB8fCAoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlwcm9tX2hh bHQoKTsKIAogCXByb21fZ2V0c3RyaW5nKG5vZGUsICJ2ZXJzaW9uIiwgcHJvbV92ZXJzaW9uLCBz aXplb2YocHJvbV92ZXJzaW9uKSk7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL3Byb20vdHJlZV8z Mi5jIGIvYXJjaC9zcGFyYy9wcm9tL3RyZWVfMzIuYwppbmRleCAwZmVkODkzLi4zNmI5YmU1IDEw MDY0NAotLS0gYS9hcmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jCisrKyBiL2FyY2gvc3BhcmMvcHJv bS90cmVlXzMyLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgog I2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5j bHVkZSA8bGludXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNtL29wZW5wcm9tLmg+CiAjaW5jbHVk ZSA8YXNtL29wbGliLmg+CkBAIC00MSwxMSArNDIsMTEgQEAgcGhhbmRsZSBwcm9tX2dldGNoaWxk KHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIGNub2RlOwogCi0JaWYgKChzMzIpbm9kZSA9PSAt MSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKIAljbm9k ZSA9IF9fcHJvbV9nZXRjaGlsZChub2RlKTsKLQlpZiAoY25vZGUgPT0gMCB8fCAoczMyKWNub2Rl ID09IC0xKQorCWlmIChjbm9kZSA9PSAwIHx8IChzMzIpY25vZGUgPT0gTlVNQV9OT19OT0RFKQog CQlyZXR1cm4gMDsKIAogCXJldHVybiBjbm9kZTsKQEAgLTczLDExICs3NCwxMSBAQCBwaGFuZGxl IHByb21fZ2V0c2libGluZyhwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBzaWJub2RlOwogCi0J aWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJ cmV0dXJuIDA7CiAKIAlzaWJub2RlID0gX19wcm9tX2dldHNpYmxpbmcobm9kZSk7Ci0JaWYgKHNp Ym5vZGUgPT0gMCB8fCAoczMyKXNpYm5vZGUgPT0gLTEpCisJaWYgKHNpYm5vZGUgPT0gMCB8fCAo czMyKXNpYm5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBzaWJu b2RlOwpAQCAtMjIwLDcgKzIyMSw3IEBAIHN0YXRpYyBjaGFyICpfX3Byb21fbmV4dHByb3AocGhh bmRsZSBub2RlLCBjaGFyICogb3Byb3ApCiAgKi8KIGNoYXIgKnByb21fbmV4dHByb3AocGhhbmRs ZSBub2RlLCBjaGFyICpvcHJvcCwgY2hhciAqYnVmZmVyKQogewotCWlmIChub2RlID09IDAgfHwg KHMzMilub2RlID09IC0xKQorCWlmIChub2RlID09IDAgfHwgKHMzMilub2RlID09IE5VTUFfTk9f Tk9ERSkKIAkJcmV0dXJuICIiOwogCiAJcmV0dXJuIF9fcHJvbV9uZXh0cHJvcChub2RlLCBvcHJv cCk7CkBAIC0zMDQsNyArMzA1LDcgQEAgcGhhbmRsZSBwcm9tX2luc3QycGtnKGludCBpbnN0KQog CW5vZGUgPSAoKnJvbXZlYy0+cHZfdjJkZXZvcHMudjJfaW5zdDJwa2cpKGluc3QpOwogCXJlc3Rv cmVfY3VycmVudCgpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByb21fbG9jaywgZmxhZ3Mp OwotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybiAwOwogCXJldHVybiBub2RlOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9w cm9tL3RyZWVfNjQuYyBiL2FyY2gvc3BhcmMvcHJvbS90cmVlXzY0LmMKaW5kZXggOTg5ZTc5OS4u NDYzNDYyMCAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9wcm9tL3RyZWVfNjQuYworKysgYi9hcmNo L3NwYXJjL3Byb20vdHJlZV82NC5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRlIDxhc20vb3BlbnByb20u aD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KQEAgLTQ0LDEwICs0NSwxMCBAQCBwaGFuZGxlIHBy b21fZ2V0Y2hpbGQocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgY25vZGU7CiAKLQlpZiAoKHMz Milub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4g MDsKIAljbm9kZSA9IF9fcHJvbV9nZXRjaGlsZChub2RlKTsKLQlpZiAoKHMzMiljbm9kZSA9PSAt MSkKKwlpZiAoKHMzMiljbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCXJldHVy biBjbm9kZTsKIH0KQEAgLTU3LDEwICs1OCwxMCBAQCBpbmxpbmUgcGhhbmRsZSBwcm9tX2dldHBh cmVudChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMyKW5vZGUg PT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCWNu b2RlID0gcHJvbV9ub2RlX3RvX25vZGUoInBhcmVudCIsIG5vZGUpOwotCWlmICgoczMyKWNub2Rl ID09IC0xKQorCWlmICgoczMyKWNub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJ cmV0dXJuIGNub2RlOwogfQpAQCAtNzcsMTAgKzc4LDEwIEBAIHBoYW5kbGUgcHJvbV9nZXRzaWJs aW5nKHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIHNpYm5vZGU7CiAKLQlpZiAoKHMzMilub2Rl ID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAlz aWJub2RlID0gX19wcm9tX2dldHNpYmxpbmcobm9kZSk7Ci0JaWYgKChzMzIpc2libm9kZSA9PSAt MSkKKwlpZiAoKHMzMilzaWJub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKIAly ZXR1cm4gc2libm9kZTsKQEAgLTI0MSw3ICsyNDIsNyBAQCBjaGFyICpwcm9tX2ZpcnN0cHJvcChw aGFuZGxlIG5vZGUsIGNoYXIgKmJ1ZmZlcikKIAl1bnNpZ25lZCBsb25nIGFyZ3NbN107CiAKIAkq YnVmZmVyID0gMDsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVN QV9OT19OT0RFKQogCQlyZXR1cm4gYnVmZmVyOwogCiAJYXJnc1swXSA9ICh1bnNpZ25lZCBsb25n KSBwcm9tX25leHRwcm9wX25hbWU7CkBAIC0yNjcsNyArMjY4LDcgQEAgY2hhciAqcHJvbV9uZXh0 cHJvcChwaGFuZGxlIG5vZGUsIGNvbnN0IGNoYXIgKm9wcm9wLCBjaGFyICpidWZmZXIpCiAJdW5z aWduZWQgbG9uZyBhcmdzWzddOwogCWNoYXIgYnVmWzMyXTsKIAotCWlmICgoczMyKW5vZGUgPT0g LTEpIHsKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQkqYnVmZmVyID0gMDsK IAkJcmV0dXJuIGJ1ZmZlcjsKIAl9CkBAIC0zNzAsNyArMzcxLDcgQEAgaW5saW5lIHBoYW5kbGUg cHJvbV9pbnN0MnBrZyhpbnQgaW5zdCkKIAlwMTI3NV9jbWRfZGlyZWN0KGFyZ3MpOwogCiAJbm9k ZSA9IChpbnQpIGFyZ3NbNF07Ci0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wY2kuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bj aS5oCmluZGV4IDY2Mjk2MzYuLmU2NjJmOTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3BjaS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaS5oCkBAIC03LDYgKzcsNyBA QAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNp bmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KICNp bmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcGF0Lmg+CiAjaW5jbHVkZSA8YXNtL3g4 Nl9pbml0Lmg+CkBAIC0xNDEsNyArMTQyLDcgQEAgY3B1bWFza19vZl9wY2lidXMoY29uc3Qgc3Ry dWN0IHBjaV9idXMgKmJ1cykKIAlpbnQgbm9kZTsKIAogCW5vZGUgPSBfX3BjaWJ1c190b19ub2Rl KGJ1cyk7Ci0JcmV0dXJuIChub2RlID09IC0xKSA/IGNwdV9vbmxpbmVfbWFzayA6CisJcmV0dXJu IChub2RlID09IE5VTUFfTk9fTk9ERSkgPyBjcHVfb25saW5lX21hc2sgOgogCQkJICAgICAgY3B1 bWFza19vZl9ub2RlKG5vZGUpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJu ZWwvYXBpYy94MmFwaWNfdXZfeC5jIGIvYXJjaC94ODYva2VybmVsL2FwaWMveDJhcGljX3V2X3gu YwppbmRleCAzOTFmMzU4Li4xZmY2NThmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBp Yy94MmFwaWNfdXZfeC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMK QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CiAjaW5jbHVk ZSA8bGludXgvcmVib290Lmg+CiAjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CisjaW5jbHVkZSA8 bGludXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNtL3V2L3V2X21tcnMuaD4KICNpbmNsdWRlIDxh c20vdXYvdXZfaHViLmg+CkBAIC0xMzkwLDcgKzEzOTEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg YnVpbGRfc29ja2V0X3RhYmxlcyh2b2lkKQogCX0KIAogCS8qIFNldCBzb2NrZXQgLT4gbm9kZSB2 YWx1ZXM6ICovCi0JbG5pZCA9IC0xOworCWxuaWQgPSBOVU1BX05PX05PREU7CiAJZm9yX2VhY2hf cHJlc2VudF9jcHUoY3B1KSB7CiAJCWludCBuaWQgPSBjcHVfdG9fbm9kZShjcHUpOwogCQlpbnQg YXBpY2lkLCBzb2NraWQ7CkBAIC0xNTIxLDcgKzE1MjIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg dXZfc3lzdGVtX2luaXRfaHViKHZvaWQpCiAJCQluZXdfaHViLT5wbm9kZSA9IDB4ZmZmZjsKIAog CQluZXdfaHViLT5udW1hX2JsYWRlX2lkID0gdXZfbm9kZV90b19ibGFkZV9pZChub2RlaWQpOwot CQluZXdfaHViLT5tZW1vcnlfbmlkID0gLTE7CisJCW5ld19odWItPm1lbW9yeV9uaWQgPSBOVU1B X05PX05PREU7CiAJCW5ld19odWItPm5yX3Bvc3NpYmxlX2NwdXMgPSAwOwogCQluZXdfaHViLT5u cl9vbmxpbmVfY3B1cyA9IDA7CiAJfQpAQCAtMTUzOCw3ICsxNTM5LDcgQEAgc3RhdGljIHZvaWQg X19pbml0IHV2X3N5c3RlbV9pbml0X2h1Yih2b2lkKQogCiAJCXV2X2NwdV9pbmZvX3BlcihjcHUp LT5wX3V2X2h1Yl9pbmZvID0gdXZfaHViX2luZm9fbGlzdChub2RlaWQpOwogCQl1dl9jcHVfaW5m b19wZXIoY3B1KS0+YmxhZGVfY3B1X2lkID0gdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm5yX3Bvc3Np YmxlX2NwdXMrKzsKLQkJaWYgKHV2X2NwdV9odWJfaW5mbyhjcHUpLT5tZW1vcnlfbmlkID09IC0x KQorCQlpZiAodXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1lbW9yeV9uaWQgPT0gTlVNQV9OT19OT0RF KQogCQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1lbW9yeV9uaWQgPSBjcHVfdG9fbm9kZShjcHUp OwogCiAJCS8qIEluaXQgbWVtb3J5bGVzcyBub2RlOiAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL3NtcGJvb3QuYyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKaW5kZXggYTkxMzRk MS4uMGUxZmY4ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYworKysgYi9h cmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8bGlu dXgvc3RhY2twcm90ZWN0b3IuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KICNpbmNsdWRlIDxs aW51eC9jcHVpZGxlLmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNt L2FjcGkuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgpAQCAtODQxLDcgKzg0Miw3IEBAIHdha2V1 cF9zZWNvbmRhcnlfY3B1X3ZpYV9pbml0KGludCBwaHlzX2FwaWNpZCwgdW5zaWduZWQgbG9uZyBz dGFydF9laXApCiAvKiByZWR1Y2UgdGhlIG51bWJlciBvZiBsaW5lcyBwcmludGVkIHdoZW4gYm9v dGluZyBhIGxhcmdlIGNwdSBjb3VudCBzeXN0ZW0gKi8KIHN0YXRpYyB2b2lkIGFubm91bmNlX2Nw dShpbnQgY3B1LCBpbnQgYXBpY2lkKQogewotCXN0YXRpYyBpbnQgY3VycmVudF9ub2RlID0gLTE7 CisJc3RhdGljIGludCBjdXJyZW50X25vZGUgPSBOVU1BX05PX05PREU7CiAJaW50IG5vZGUgPSBl YXJseV9jcHVfdG9fbm9kZShjcHUpOwogCXN0YXRpYyBpbnQgd2lkdGgsIG5vZGVfd2lkdGg7CiAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jIGIvYXJjaC94ODYv cGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKaW5kZXggMjRkMjE3NS4uNzk3NmVjMiAxMDA2NDQKLS0t IGEvYXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKKysrIGIvYXJjaC94ODYvcGxhdGZv cm0vb2xwYy9vbHBjX2R0LmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9vZi5o PgogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfcGR0 Lmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9vbHBjLmg+CiAjaW5j bHVkZSA8YXNtL29scGNfb2Z3Lmg+CiAKQEAgLTI5LDEwICszMCwxMCBAQCBzdGF0aWMgcGhhbmRs ZSBfX2luaXQgb2xwY19kdF9nZXRzaWJsaW5nKHBoYW5kbGUgbm9kZSkKIAljb25zdCB2b2lkICph cmdzW10gPSB7ICh2b2lkICopbm9kZSB9OwogCXZvaWQgKnJlc1tdID0geyAmbm9kZSB9OwogCi0J aWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJ cmV0dXJuIDA7CiAKLQlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIpbm9k ZSA9PSAtMSkKKwlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIpbm9kZSA9 PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5vZGU7CkBAIC00MywxMCAr NDQsMTAgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZ2V0Y2hpbGQocGhhbmRsZSBu b2RlKQogCWNvbnN0IHZvaWQgKmFyZ3NbXSA9IHsgKHZvaWQgKilub2RlIH07CiAJdm9pZCAqcmVz W10gPSB7ICZub2RlIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUg PT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAotCWlmIChvbHBjX29mdygiY2hpbGQiLCBh cmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSAtMSkgeworCWlmIChvbHBjX29mdygiY2hpbGQiLCBh cmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJcHJfZXJyKCJQUk9N OiAlczogZmV0Y2hpbmcgY2hpbGQgZmFpbGVkIVxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gMDsK IAl9CkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG9scGNfZHRfZ2V0cHJvcGxl bihwaGFuZGxlIG5vZGUsIGNvbnN0IGNoYXIgKnByb3ApCiAJaW50IGxlbjsKIAl2b2lkICpyZXNb XSA9IHsgJmxlbiB9OwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09 IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJnZXRwcm9wbGVu IiwgYXJncywgcmVzKSkgewpAQCAtMTAwLDcgKzEwMSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG9s cGNfZHRfbmV4dHByb3AocGhhbmRsZSBub2RlLCBjaGFyICpwcmV2LCBjaGFyICpidWYpCiAKIAli dWZbMF0gPSAnXDAnOwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09 IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJuZXh0cHJvcCIs IGFyZ3MsIHJlcykgfHwgc3VjY2VzcyAhPSAxKQpAQCAtMTE1LDcgKzExNiw3IEBAIHN0YXRpYyBp bnQgX19pbml0IG9scGNfZHRfcGtnMnBhdGgocGhhbmRsZSBub2RlLCBjaGFyICpidWYsCiAJY29u c3Qgdm9pZCAqYXJnc1tdID0geyAodm9pZCAqKW5vZGUsIGJ1ZiwgKHZvaWQgKilidWZsZW4gfTsK IAl2b2lkICpyZXNbXSA9IHsgbGVuIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgo czMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gLTE7CiAKIAlpZiAob2xwY19vZnco InBhY2thZ2UtdG8tcGF0aCIsIGFyZ3MsIHJlcykgfHwgKmxlbiA8IDEpCkBAIC0xNzYsNyArMTc3 LDcgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZmluZGRldmljZShjb25zdCBjaGFy ICpwYXRoKQogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoKHMzMikgbm9kZSA9PSAtMSkKKwlpZiAo KHMzMikgbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5vZGU7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMgYi9kcml2ZXJz L2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMKaW5kZXggYTdkYWE4YS4uYmJlMzg3MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jCisrKyBiL2RyaXZlcnMvYmxv Y2svbXRpcDMyeHgvbXRpcDMyeHguYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9w cmVmZXRjaC5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KICNpbmNsdWRlICJtdGlwMzJ4eC5o IgogCiAjZGVmaW5lIEhXX0NNRF9TTE9UX1NaCQkoTVRJUF9NQVhfQ09NTUFORF9TTE9UUyAqIDMy KQpAQCAtNDA4NCw5ICs0MDg1LDkgQEAgc3RhdGljIGludCBnZXRfbGVhc3RfdXNlZF9jcHVfb25f bm9kZShpbnQgbm9kZSkKIC8qIEhlbHBlciBmb3Igc2VsZWN0aW5nIGEgbm9kZSBpbiByb3VuZCBy b2JpbiBtb2RlICovCiBzdGF0aWMgaW5saW5lIGludCBtdGlwX2dldF9uZXh0X3JyX25vZGUodm9p ZCkKIHsKLQlzdGF0aWMgaW50IG5leHRfbm9kZSA9IC0xOworCXN0YXRpYyBpbnQgbmV4dF9ub2Rl ID0gTlVNQV9OT19OT0RFOwogCi0JaWYgKG5leHRfbm9kZSA9PSAtMSkgeworCWlmIChuZXh0X25v ZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCW5leHRfbm9kZSA9IGZpcnN0X29ubGluZV9ub2RlOwog CQlyZXR1cm4gbmV4dF9ub2RlOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2RtYWVuZ2lu ZS5jIGIvZHJpdmVycy9kbWEvZG1hZW5naW5lLmMKaW5kZXggZjFhNDQxYWIuLjNhMTFiMTAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jCisrKyBiL2RyaXZlcnMvZG1hL2RtYWVu Z2luZS5jCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSA8bGludXgvYWNwaV9kbWEuaD4KICNp bmNsdWRlIDxsaW51eC9vZl9kbWEuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1wb29sLmg+CisjaW5j bHVkZSA8bGludXgvbnVtYS5oPgogCiBzdGF0aWMgREVGSU5FX01VVEVYKGRtYV9saXN0X211dGV4 KTsKIHN0YXRpYyBERUZJTkVfSURBKGRtYV9pZGEpOwpAQCAtMzg2LDcgKzM4Nyw4IEBAIEVYUE9S VF9TWU1CT0woZG1hX2lzc3VlX3BlbmRpbmdfYWxsKTsKIHN0YXRpYyBib29sIGRtYV9jaGFuX2lz X2xvY2FsKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwgaW50IGNwdSkKIHsKIAlpbnQgbm9kZSA9IGRl dl90b19ub2RlKGNoYW4tPmRldmljZS0+ZGV2KTsKLQlyZXR1cm4gbm9kZSA9PSAtMSB8fCBjcHVt YXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19vZl9ub2RlKG5vZGUpKTsKKwlyZXR1cm4gbm9kZSA9 PSBOVU1BX05PX05PREUgfHwKKwkJY3B1bWFza190ZXN0X2NwdShjcHUsIGNwdW1hc2tfb2Zfbm9k ZShub2RlKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hm aTEvYWZmaW5pdHkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2FmZmluaXR5LmMKaW5k ZXggMmJhZjM4Yy4uNGZlNjYyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hm aTEvYWZmaW5pdHkuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9hZmZpbml0eS5j CkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUg PGxpbnV4L251bWEuaD4KIAogI2luY2x1ZGUgImhmaS5oIgogI2luY2x1ZGUgImFmZmluaXR5Lmgi CkBAIC03NzcsNyArNzc4LDcgQEAgdm9pZCBoZmkxX2Rldl9hZmZpbml0eV9jbGVhbl91cChzdHJ1 Y3QgaGZpMV9kZXZkYXRhICpkZCkKIAlfZGV2X2NvbXBfdmVjdF9jcHVfbWFza19jbGVhbl91cChk ZCwgZW50cnkpOwogdW5sb2NrOgogCW11dGV4X3VubG9jaygmbm9kZV9hZmZpbml0eS5sb2NrKTsK LQlkZC0+bm9kZSA9IC0xOworCWRkLT5ub2RlID0gTlVNQV9OT19OT0RFOwogfQogCiAvKgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvaW5pdC5jIGIvZHJpdmVycy9pbmZp bmliYW5kL2h3L2hmaTEvaW5pdC5jCmluZGV4IDA5MDQ0OTAuLmMyNWM0MDIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2luaXQuYworKysgYi9kcml2ZXJzL2luZmluaWJh bmQvaHcvaGZpMS9pbml0LmMKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wcmlu dGsuaD4KICNpbmNsdWRlIDxsaW51eC9ocnRpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvYml0bWFw Lmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgogI2luY2x1ZGUgPHJkbWEvcmRtYV92dC5oPgog CiAjaW5jbHVkZSAiaGZpLmgiCkBAIC0xMzAzLDcgKzEzMDQsNyBAQCBzdGF0aWMgc3RydWN0IGhm aTFfZGV2ZGF0YSAqaGZpMV9hbGxvY19kZXZkYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCQlk ZC0+dW5pdCA9IHJldDsKIAkJbGlzdF9hZGQoJmRkLT5saXN0LCAmaGZpMV9kZXZfbGlzdCk7CiAJ fQotCWRkLT5ub2RlID0gLTE7CisJZGQtPm5vZGUgPSBOVU1BX05PX05PREU7CiAKIAlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZoZmkxX2RldnNfbG9jaywgZmxhZ3MpOwogCWlkcl9wcmVsb2FkX2Vu ZCgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9kbWFyLmMgYi9kcml2ZXJzL2lvbW11L2Rt YXIuYwppbmRleCBkOWM3NDhiLi4wMWI5NjdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2Rt YXIuYworKysgYi9kcml2ZXJzL2lvbW11L2RtYXIuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1 ZGUgPGxpbnV4L2RtaS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51 eC9pb21tdS5oPgorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KICNpbmNsdWRlIDxhc20vaXJxX3Jl bWFwcGluZy5oPgogI2luY2x1ZGUgPGFzbS9pb21tdV90YWJsZS5oPgogCkBAIC00NzcsNyArNDc4 LDcgQEAgc3RhdGljIGludCBkbWFyX3BhcnNlX29uZV9yaHNhKHN0cnVjdCBhY3BpX2RtYXJfaGVh ZGVyICpoZWFkZXIsIHZvaWQgKmFyZykKIAkJCWludCBub2RlID0gYWNwaV9tYXBfcHhtX3RvX25v ZGUocmhzYS0+cHJveGltaXR5X2RvbWFpbik7CiAKIAkJCWlmICghbm9kZV9vbmxpbmUobm9kZSkp Ci0JCQkJbm9kZSA9IC0xOworCQkJCW5vZGUgPSBOVU1BX05PX05PREU7CiAJCQlkcmhkLT5pb21t dS0+bm9kZSA9IG5vZGU7CiAJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMTA2Miw3ICsxMDYzLDcgQEAg c3RhdGljIGludCBhbGxvY19pb21tdShzdHJ1Y3QgZG1hcl9kcmhkX3VuaXQgKmRyaGQpCiAJaW9t bXUtPm1zYWdhdyA9IG1zYWdhdzsKIAlpb21tdS0+c2VnbWVudCA9IGRyaGQtPnNlZ21lbnQ7CiAK LQlpb21tdS0+bm9kZSA9IC0xOworCWlvbW11LT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJdmVy ID0gcmVhZGwoaW9tbXUtPnJlZyArIERNQVJfVkVSX1JFRyk7CiAJcHJfaW5mbygiJXM6IHJlZ19i YXNlX2FkZHIgJWxseCB2ZXIgJWQ6JWQgY2FwICVsbHggZWNhcCAlbGx4XG4iLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21t dS5jCmluZGV4IDQxYTRiODguLjljYTk3OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW50 ZWwtaW9tbXUuYworKysgYi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMKQEAgLTQ3LDYgKzQ3 LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtY29udGlndW91cy5oPgogI2luY2x1ZGUgPGxpbnV4 L2RtYS1kaXJlY3QuaD4KICNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CisjaW5jbHVkZSA8 bGludXgvbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9pcnFfcmVtYXBwaW5nLmg+CiAjaW5jbHVkZSA8 YXNtL2NhY2hlZmx1c2guaD4KICNpbmNsdWRlIDxhc20vaW9tbXUuaD4KQEAgLTE3NzIsNyArMTc3 Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hcl9kb21haW4gKmFsbG9jX2RvbWFpbihpbnQgZmxhZ3Mp CiAJCXJldHVybiBOVUxMOwogCiAJbWVtc2V0KGRvbWFpbiwgMCwgc2l6ZW9mKCpkb21haW4pKTsK LQlkb21haW4tPm5pZCA9IC0xOworCWRvbWFpbi0+bmlkID0gTlVNQV9OT19OT0RFOwogCWRvbWFp bi0+ZmxhZ3MgPSBmbGFnczsKIAlkb21haW4tPmhhc19pb3RsYl9kZXZpY2UgPSBmYWxzZTsKIAlJ TklUX0xJU1RfSEVBRCgmZG9tYWluLT5kZXZpY2VzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlz Yy9zZ2kteHAveHBjX3V2LmMgYi9kcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jCmluZGV4IDA0 NDFhYmUuLjllNDQzZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2kteHAveHBjX3V2LmMK KysrIGIvZHJpdmVycy9taXNjL3NnaS14cC94cGNfdXYuYwpAQCAtMjIsNiArMjIsNyBAQAogI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAjaW5jbHVkZSA8YXNtL3V2 L3V2X2h1Yi5oPgogI2lmIGRlZmluZWQgQ09ORklHX1g4Nl82NAogI2luY2x1ZGUgPGFzbS91di9i aW9zLmg+CkBAIC02MSw3ICs2Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHBjX2hlYXJ0YmVhdF91diAq eHBjX2hlYXJ0YmVhdF91djsKIAkJCQkJIFhQQ19OT1RJRllfTVNHX1NJWkVfVVYpCiAjZGVmaW5l IFhQQ19OT1RJRllfSVJRX05BTUUJCSJ4cGNfbm90aWZ5IgogCi1zdGF0aWMgaW50IHhwY19tcV9u b2RlID0gLTE7CitzdGF0aWMgaW50IHhwY19tcV9ub2RlID0gTlVNQV9OT19OT0RFOwogCiBzdGF0 aWMgc3RydWN0IHhwY19ncnVfbXFfdXYgKnhwY19hY3RpdmF0ZV9tcV91djsKIHN0YXRpYyBzdHJ1 Y3QgeHBjX2dydV9tcV91diAqeHBjX25vdGlmeV9tcV91djsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYwppbmRleCAxMTNiMzhlLi5lMzM5MjhjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jCkBAIC0yNyw2 ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvYnBmLmg+CiAjaW5jbHVkZSA8bGludXgvYnBmX3Ry YWNlLmg+CiAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5o PgogI2luY2x1ZGUgPHNjc2kvZmMvZmNfZmNvZS5oPgogI2luY2x1ZGUgPG5ldC91ZHBfdHVubmVs Lmg+CiAjaW5jbHVkZSA8bmV0L3BrdF9jbHMuaD4KQEAgLTY0MTQsNyArNjQxNSw3IEBAIGludCBp eGdiZV9zZXR1cF90eF9yZXNvdXJjZXMoc3RydWN0IGl4Z2JlX3JpbmcgKnR4X3JpbmcpCiB7CiAJ c3RydWN0IGRldmljZSAqZGV2ID0gdHhfcmluZy0+ZGV2OwogCWludCBvcmlnX25vZGUgPSBkZXZf dG9fbm9kZShkZXYpOwotCWludCByaW5nX25vZGUgPSAtMTsKKwlpbnQgcmluZ19ub2RlID0gTlVN QV9OT19OT0RFOwogCWludCBzaXplOwogCiAJc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaXhnYmVfdHhf YnVmZmVyKSAqIHR4X3JpbmctPmNvdW50OwpAQCAtNjUwOCw3ICs2NTA5LDcgQEAgaW50IGl4Z2Jl X3NldHVwX3J4X3Jlc291cmNlcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwKIHsKIAlz dHJ1Y3QgZGV2aWNlICpkZXYgPSByeF9yaW5nLT5kZXY7CiAJaW50IG9yaWdfbm9kZSA9IGRldl90 b19ub2RlKGRldik7Ci0JaW50IHJpbmdfbm9kZSA9IC0xOworCWludCByaW5nX25vZGUgPSBOVU1B X05PX05PREU7CiAJaW50IHNpemU7CiAKIAlzaXplID0gc2l6ZW9mKHN0cnVjdCBpeGdiZV9yeF9i dWZmZXIpICogcnhfcmluZy0+Y291bnQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Rldmlj ZS5oIGIvaW5jbHVkZS9saW51eC9kZXZpY2UuaAppbmRleCAxYjI1YzdhLi40OTIxYTYxIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RldmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZGV2aWNl LmgKQEAgLTEwODUsNyArMTA4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZGV2X25vZGUo c3RydWN0IGRldmljZSAqZGV2LCBpbnQgbm9kZSkKICNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBk ZXZfdG9fbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0JcmV0dXJuIC0xOworCXJldHVybiBO VU1BX05PX05PREU7CiB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2Rldl9ub2RlKHN0cnVjdCBk ZXZpY2UgKmRldiwgaW50IG5vZGUpCiB7CmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIv aW5pdC9pbml0X3Rhc2suYwppbmRleCA1YWViZTNiLi4yNjEzMWU3IDEwMDY0NAotLS0gYS9pbml0 L2luaXRfdGFzay5jCisrKyBiL2luaXQvaW5pdF90YXNrLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNp bmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGlu dXgvYXVkaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRlIDxhc20vcGd0 YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCBz dHJ1Y3QgdGFza19zdHJ1Y3QgaW5pdF90YXNrCiAJLnZ0aW1lLnN0YXRlCT0gVlRJTUVfU1lTLAog I2VuZGlmCiAjaWZkZWYgQ09ORklHX05VTUFfQkFMQU5DSU5HCi0JLm51bWFfcHJlZmVycmVkX25p ZCA9IC0xLAorCS5udW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREUsCiAJLm51bWFfZ3Jv dXAJPSBOVUxMLAogCS5udW1hX2ZhdWx0cwk9IE5VTEwsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2tl cm5lbC9rdGhyZWFkLmMgYi9rZXJuZWwva3RocmVhZC5jCmluZGV4IDA4N2QxOGQuLmViZWJiY2Yg MTAwNjQ0Ci0tLSBhL2tlcm5lbC9rdGhyZWFkLmMKKysrIGIva2VybmVsL2t0aHJlYWQuYwpAQCAt MjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KICNpbmNsdWRlIDxsaW51 eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgv bnVtYS5oPgogI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9zY2hlZC5oPgogCiBzdGF0aWMgREVGSU5F X1NQSU5MT0NLKGt0aHJlYWRfY3JlYXRlX2xvY2spOwpAQCAtNjc1LDcgKzY3Niw3IEBAIF9fa3Ro cmVhZF9jcmVhdGVfd29ya2VyKGludCBjcHUsIHVuc2lnbmVkIGludCBmbGFncywKIHsKIAlzdHJ1 Y3Qga3RocmVhZF93b3JrZXIgKndvcmtlcjsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Ci0J aW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXdvcmtlciA9IGt6 YWxsb2Moc2l6ZW9mKCp3b3JrZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXdvcmtlcikKZGlmZiAt LWdpdCBhL2tlcm5lbC9zY2hlZC9mYWlyLmMgYi9rZXJuZWwvc2NoZWQvZmFpci5jCmluZGV4IGFj ODU1YjIuLjJlZjBkYjIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC9mYWlyLmMKKysrIGIva2Vy bmVsL3NjaGVkL2ZhaXIuYwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBpbml0X251bWFfYmFs YW5jaW5nKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkK IAogCS8qIE5ldyBhZGRyZXNzIHNwYWNlLCByZXNldCB0aGUgcHJlZmVycmVkIG5pZCAqLwogCWlm ICghKGNsb25lX2ZsYWdzICYgQ0xPTkVfVk0pKSB7Ci0JCXAtPm51bWFfcHJlZmVycmVkX25pZCA9 IC0xOworCQlwLT5udW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREU7CiAJCXJldHVybjsK IAl9CiAKQEAgLTExODEsMTMgKzExODEsMTMgQEAgdm9pZCBpbml0X251bWFfYmFsYW5jaW5nKHVu c2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIAogc3RhdGlj IHZvaWQgYWNjb3VudF9udW1hX2VucXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3Ry dWN0ICpwKQogewotCXJxLT5ucl9udW1hX3J1bm5pbmcgKz0gKHAtPm51bWFfcHJlZmVycmVkX25p ZCAhPSAtMSk7CisJcnEtPm5yX251bWFfcnVubmluZyArPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlk ICE9IE5VTUFfTk9fTk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nICs9IChwLT5udW1h X3ByZWZlcnJlZF9uaWQgPT0gdGFza19ub2RlKHApKTsKIH0KIAogc3RhdGljIHZvaWQgYWNjb3Vu dF9udW1hX2RlcXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewot CXJxLT5ucl9udW1hX3J1bm5pbmcgLT0gKHAtPm51bWFfcHJlZmVycmVkX25pZCAhPSAtMSk7CisJ cnEtPm5yX251bWFfcnVubmluZyAtPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlkICE9IE5VTUFfTk9f Tk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nIC09IChwLT5udW1hX3ByZWZlcnJlZF9u aWQgPT0gdGFza19ub2RlKHApKTsKIH0KIApAQCAtMTQwMSw3ICsxNDAxLDcgQEAgYm9vbCBzaG91 bGRfbnVtYV9taWdyYXRlX21lbW9yeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBwYWdl ICogcGFnZSwKIAkgKiB0d28gZnVsbCBwYXNzZXMgb2YgdGhlICJtdWx0aS1zdGFnZSBub2RlIHNl bGVjdGlvbiIgdGVzdCB0aGF0IGlzCiAJICogZXhlY3V0ZWQgYmVsb3cuCiAJICovCi0JaWYgKChw LT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gLTEgfHwgcC0+bnVtYV9zY2FuX3NlcSA8PSA0KSAmJgor CWlmICgocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IE5VTUFfTk9fTk9ERSB8fCBwLT5udW1hX3Nj YW5fc2VxIDw9IDQpICYmCiAJICAgIChjcHVwaWRfcGlkX3Vuc2V0KGxhc3RfY3B1cGlkKSB8fCBj cHVwaWRfbWF0Y2hfcGlkKHAsIGxhc3RfY3B1cGlkKSkpCiAJCXJldHVybiB0cnVlOwogCkBAIC0x ODQ5LDcgKzE4NDksNyBAQCBzdGF0aWMgdm9pZCBudW1hX21pZ3JhdGVfcHJlZmVycmVkKHN0cnVj dCB0YXNrX3N0cnVjdCAqcCkKIAl1bnNpZ25lZCBsb25nIGludGVydmFsID0gSFo7CiAKIAkvKiBU aGlzIHRhc2sgaGFzIG5vIE5VTUEgZmF1bHQgc3RhdGlzdGljcyB5ZXQgKi8KLQlpZiAodW5saWtl bHkocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IC0xIHx8ICFwLT5udW1hX2ZhdWx0cykpCisJaWYg KHVubGlrZWx5KHAtPm51bWFfcHJlZmVycmVkX25pZCA9PSBOVU1BX05PX05PREUgfHwgIXAtPm51 bWFfZmF1bHRzKSkKIAkJcmV0dXJuOwogCiAJLyogUGVyaW9kaWNhbGx5IHJldHJ5IG1pZ3JhdGlu ZyB0aGUgdGFzayB0byB0aGUgcHJlZmVycmVkIG5vZGUgKi8KQEAgLTIwOTYsNyArMjA5Niw3IEBA IHN0YXRpYyBpbnQgcHJlZmVycmVkX2dyb3VwX25pZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGlu dCBuaWQpCiAKIHN0YXRpYyB2b2lkIHRhc2tfbnVtYV9wbGFjZW1lbnQoc3RydWN0IHRhc2tfc3Ry dWN0ICpwKQogewotCWludCBzZXEsIG5pZCwgbWF4X25pZCA9IC0xOworCWludCBzZXEsIG5pZCwg bWF4X25pZCA9IE5VTUFfTk9fTk9ERTsKIAl1bnNpZ25lZCBsb25nIG1heF9mYXVsdHMgPSAwOwog CXVuc2lnbmVkIGxvbmcgZmF1bHRfdHlwZXNbMl0gPSB7IDAsIDAgfTsKIAl1bnNpZ25lZCBsb25n IHRvdGFsX2ZhdWx0czsKQEAgLTI2MzksNyArMjYzOSw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9z Y2FuX3BlcmlvZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBuZXdfY3B1KQogCQkgKiB0aGUg cHJlZmVycmVkIG5vZGUuCiAJCSAqLwogCQlpZiAoZHN0X25pZCA9PSBwLT5udW1hX3ByZWZlcnJl ZF9uaWQgfHwKLQkJICAgIChwLT5udW1hX3ByZWZlcnJlZF9uaWQgIT0gLTEgJiYgc3JjX25pZCAh PSBwLT5udW1hX3ByZWZlcnJlZF9uaWQpKQorCQkgICAgKHAtPm51bWFfcHJlZmVycmVkX25pZCAh PSBOVU1BX05PX05PREUgJiYKKwkJCXNyY19uaWQgIT0gcC0+bnVtYV9wcmVmZXJyZWRfbmlkKSkK IAkJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9jcHVtYXNrLmMgYi9saWIvY3B1bWFz ay5jCmluZGV4IDhkNjY2YWIuLjA4N2EzZTkgMTAwNjQ0Ci0tLSBhL2xpYi9jcHVtYXNrLmMKKysr IGIvbGliL2NwdW1hc2suYwpAQCAtNSw2ICs1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jcHVtYXNr Lmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWVtYmxvY2su aD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKIC8qKgogICogY3B1bWFza19uZXh0IC0gZ2V0 IHRoZSBuZXh0IGNwdSBpbiBhIGNwdW1hc2sKQEAgLTIwNiw3ICsyMDcsNyBAQCB1bnNpZ25lZCBp bnQgY3B1bWFza19sb2NhbF9zcHJlYWQodW5zaWduZWQgaW50IGksIGludCBub2RlKQogCS8qIFdy YXA6IHdlIGFsd2F5cyB3YW50IGEgY3B1LiAqLwogCWkgJT0gbnVtX29ubGluZV9jcHVzKCk7CiAK LQlpZiAobm9kZSA9PSAtMSkgeworCWlmIChub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQlmb3Jf ZWFjaF9jcHUoY3B1LCBjcHVfb25saW5lX21hc2spCiAJCQlpZiAoaS0tID09IDApCiAJCQkJcmV0 dXJuIGNwdTsKZGlmZiAtLWdpdCBhL21tL2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21lbW9yeS5j CmluZGV4IDU1NDc4YWIuLjg0YmQ3YmYgMTAwNjQ0Ci0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKKysr IGIvbW0vaHVnZV9tZW1vcnkuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Bh Z2VfaWRsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgv b29tLmg+CisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgogCiAjaW5jbHVkZSA8YXNtL3RsYi5oPgog I2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CkBAIC0xNDgwLDcgKzE0ODEsNyBAQCB2bV9mYXVsdF90 IGRvX2h1Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQog CXN0cnVjdCBhbm9uX3ZtYSAqYW5vbl92bWEgPSBOVUxMOwogCXN0cnVjdCBwYWdlICpwYWdlOwog CXVuc2lnbmVkIGxvbmcgaGFkZHIgPSB2bWYtPmFkZHJlc3MgJiBIUEFHRV9QTURfTUFTSzsKLQlp bnQgcGFnZV9uaWQgPSAtMSwgdGhpc19uaWQgPSBudW1hX25vZGVfaWQoKTsKKwlpbnQgcGFnZV9u aWQgPSBOVU1BX05PX05PREUsIHRoaXNfbmlkID0gbnVtYV9ub2RlX2lkKCk7CiAJaW50IHRhcmdl dF9uaWQsIGxhc3RfY3B1cGlkID0gLTE7CiAJYm9vbCBwYWdlX2xvY2tlZDsKIAlib29sIG1pZ3Jh dGVkID0gZmFsc2U7CkBAIC0xNTI2LDcgKzE1MjcsNyBAQCB2bV9mYXVsdF90IGRvX2h1Z2VfcG1k X251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCSAqLwogCXBhZ2Vf bG9ja2VkID0gdHJ5bG9ja19wYWdlKHBhZ2UpOwogCXRhcmdldF9uaWQgPSBtcG9sX21pc3BsYWNl ZChwYWdlLCB2bWEsIGhhZGRyKTsKLQlpZiAodGFyZ2V0X25pZCA9PSAtMSkgeworCWlmICh0YXJn ZXRfbmlkID09IE5VTUFfTk9fTk9ERSkgewogCQkvKiBJZiB0aGUgcGFnZSB3YXMgbG9ja2VkLCB0 aGVyZSBhcmUgbm8gcGFyYWxsZWwgbWlncmF0aW9ucyAqLwogCQlpZiAocGFnZV9sb2NrZWQpCiAJ CQlnb3RvIGNsZWFyX3BtZG51bWE7CkBAIC0xNTM0LDcgKzE1MzUsNyBAQCB2bV9mYXVsdF90IGRv X2h1Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCiAJ LyogTWlncmF0aW9uIGNvdWxkIGhhdmUgc3RhcnRlZCBzaW5jZSB0aGUgcG1kX3RyYW5zX21pZ3Jh dGluZyBjaGVjayAqLwogCWlmICghcGFnZV9sb2NrZWQpIHsKLQkJcGFnZV9uaWQgPSAtMTsKKwkJ cGFnZV9uaWQgPSBOVU1BX05PX05PREU7CiAJCWlmICghZ2V0X3BhZ2VfdW5sZXNzX3plcm8ocGFn ZSkpCiAJCQlnb3RvIG91dF91bmxvY2s7CiAJCXNwaW5fdW5sb2NrKHZtZi0+cHRsKTsKQEAgLTE1 NTYsMTQgKzE1NTcsMTQgQEAgdm1fZmF1bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0 IHZtX2ZhdWx0ICp2bWYsIHBtZF90IHBtZCkKIAlpZiAodW5saWtlbHkoIXBtZF9zYW1lKHBtZCwg KnZtZi0+cG1kKSkpIHsKIAkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCXB1dF9wYWdlKHBhZ2UpOwot CQlwYWdlX25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsKIAkJZ290byBvdXRf dW5sb2NrOwogCX0KIAogCS8qIEJhaWwgaWYgd2UgZmFpbCB0byBwcm90ZWN0IGFnYWluc3QgVEhQ IHNwbGl0cyBmb3IgYW55IHJlYXNvbiAqLwogCWlmICh1bmxpa2VseSghYW5vbl92bWEpKSB7CiAJ CXB1dF9wYWdlKHBhZ2UpOwotCQlwYWdlX25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9f Tk9ERTsKIAkJZ290byBjbGVhcl9wbWRudW1hOwogCX0KIApAQCAtMTYyNSw3ICsxNjI2LDcgQEAg dm1fZmF1bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHBt ZF90IHBtZCkKIAlpZiAoYW5vbl92bWEpCiAJCXBhZ2VfdW5sb2NrX2Fub25fdm1hX3JlYWQoYW5v bl92bWEpOwogCi0JaWYgKHBhZ2VfbmlkICE9IC0xKQorCWlmIChwYWdlX25pZCAhPSBOVU1BX05P X05PREUpCiAJCXRhc2tfbnVtYV9mYXVsdChsYXN0X2NwdXBpZCwgcGFnZV9uaWQsIEhQQUdFX1BN RF9OUiwKIAkJCQlmbGFncyk7CiAKZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0 bGIuYwppbmRleCA3ZjJhMjhhLi42MjZjNzcxIDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysr IGIvbW0vaHVnZXRsYi5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3dhcC5o PgogI2luY2x1ZGUgPGxpbnV4L3N3YXBvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9qaGFzaC5oPgor I2luY2x1ZGUgPGxpbnV4L251bWEuaD4KIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVk ZSA8YXNtL3BndGFibGUuaD4KQEAgLTg4Nyw3ICs4ODgsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2Ug KmRlcXVldWVfaHVnZV9wYWdlX25vZGVtYXNrKHN0cnVjdCBoc3RhdGUgKmgsIGdmcF90IGdmcF9t YXNrLAogCXN0cnVjdCB6b25lbGlzdCAqem9uZWxpc3Q7CiAJc3RydWN0IHpvbmUgKnpvbmU7CiAJ c3RydWN0IHpvbmVyZWYgKno7Ci0JaW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9f Tk9ERTsKIAogCXpvbmVsaXN0ID0gbm9kZV96b25lbGlzdChuaWQsIGdmcF9tYXNrKTsKIApkaWZm IC0tZ2l0IGEvbW0va3NtLmMgYi9tbS9rc20uYwppbmRleCA1YjA4OTRiLi5kNWY4ODM0IDEwMDY0 NAotLS0gYS9tbS9rc20uYworKysgYi9tbS9rc20uYwpAQCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRp YyBzdHJ1Y3Qgc3RhYmxlX25vZGUgKmFsbG9jX3N0YWJsZV9ub2RlX2NoYWluKHN0cnVjdCBzdGFi bGVfbm9kZSAqZHVwLAogCQljaGFpbi0+Y2hhaW5fcHJ1bmVfdGltZSA9IGppZmZpZXM7CiAJCWNo YWluLT5ybWFwX2hsaXN0X2xlbiA9IFNUQUJMRV9OT0RFX0NIQUlOOwogI2lmIGRlZmluZWQgKENP TkZJR19ERUJVR19WTSkgJiYgZGVmaW5lZChDT05GSUdfTlVNQSkKLQkJY2hhaW4tPm5pZCA9IC0x OyAvKiBkZWJ1ZyAqLworCQljaGFpbi0+bmlkID0gTlVNQV9OT19OT0RFOyAvKiBkZWJ1ZyAqLwog I2VuZGlmCiAJCWtzbV9zdGFibGVfbm9kZV9jaGFpbnMrKzsKIApkaWZmIC0tZ2l0IGEvbW0vbWVt b3J5LmMgYi9tbS9tZW1vcnkuYwppbmRleCA0YWQyZDI5Li5lZDMyNGY4IDEwMDY0NAotLS0gYS9t bS9tZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUg PGxpbnV4L3VzZXJmYXVsdGZkX2suaD4KICNpbmNsdWRlIDxsaW51eC9kYXguaD4KICNpbmNsdWRl IDxsaW51eC9vb20uaD4KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRlIDxhc20v aW8uaD4KICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KQEAgLTM1NjQsNyArMzU2NSw3IEBA IHN0YXRpYyB2bV9mYXVsdF90IGRvX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHsK IAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOwogCXN0cnVjdCBwYWdlICpw YWdlID0gTlVMTDsKLQlpbnQgcGFnZV9uaWQgPSAtMTsKKwlpbnQgcGFnZV9uaWQgPSBOVU1BX05P X05PREU7CiAJaW50IGxhc3RfY3B1cGlkOwogCWludCB0YXJnZXRfbmlkOwogCWJvb2wgbWlncmF0 ZWQgPSBmYWxzZTsKQEAgLTM2MzEsNyArMzYzMiw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGRvX251 bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAl0YXJnZXRfbmlkID0gbnVtYV9taWdyYXRl X3ByZXAocGFnZSwgdm1hLCB2bWYtPmFkZHJlc3MsIHBhZ2VfbmlkLAogCQkJJmZsYWdzKTsKIAlw dGVfdW5tYXBfdW5sb2NrKHZtZi0+cHRlLCB2bWYtPnB0bCk7Ci0JaWYgKHRhcmdldF9uaWQgPT0g LTEpIHsKKwlpZiAodGFyZ2V0X25pZCA9PSBOVU1BX05PX05PREUpIHsKIAkJcHV0X3BhZ2UocGFn ZSk7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTM2NDUsNyArMzY0Niw3IEBAIHN0YXRpYyB2bV9mYXVs dF90IGRvX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJZmxhZ3MgfD0gVE5GX01J R1JBVEVfRkFJTDsKIAogb3V0OgotCWlmIChwYWdlX25pZCAhPSAtMSkKKwlpZiAocGFnZV9uaWQg IT0gTlVNQV9OT19OT0RFKQogCQl0YXNrX251bWFfZmF1bHQobGFzdF9jcHVwaWQsIHBhZ2Vfbmlk LCAxLCBmbGFncyk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1 Zy5jIGIvbW0vbWVtb3J5X2hvdHBsdWcuYwppbmRleCAyYjJiM2NjLi43MGUwMmY4IDEwMDY0NAot LS0gYS9tbS9tZW1vcnlfaG90cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTY4 OCw5ICs2ODgsOSBAQCBzdGF0aWMgdm9pZCBub2RlX3N0YXRlc19jaGVja19jaGFuZ2VzX29ubGlu ZSh1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAogewogCWludCBuaWQgPSB6b25lX3RvX25pZCh6b25l KTsKIAotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFuZ2Vf bmlkX25vcm1hbCA9IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOworCWFy Zy0+c3RhdHVzX2NoYW5nZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdl X25pZF9ub3JtYWwgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdo ID0gTlVNQV9OT19OT0RFOwogCiAJaWYgKCFub2RlX3N0YXRlKG5pZCwgTl9NRU1PUlkpKQogCQlh cmctPnN0YXR1c19jaGFuZ2VfbmlkID0gbmlkOwpAQCAtMTQ4NCw5ICsxNDg0LDkgQEAgc3RhdGlj IHZvaWQgbm9kZV9zdGF0ZXNfY2hlY2tfY2hhbmdlc19vZmZsaW5lKHVuc2lnbmVkIGxvbmcgbnJf cGFnZXMsCiAJdW5zaWduZWQgbG9uZyBwcmVzZW50X3BhZ2VzID0gMDsKIAllbnVtIHpvbmVfdHlw ZSB6dDsKIAotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFu Z2VfbmlkX25vcm1hbCA9IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOwor CWFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hh bmdlX25pZF9ub3JtYWwgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9o aWdoID0gTlVNQV9OT19OT0RFOwogCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyIG5vZGVfc3RhdGVz W05fTk9STUFMX01FTU9SWV0gd2lsbCBiZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9s aWN5LmMgYi9tbS9tZW1wb2xpY3kuYwppbmRleCA1ODM3YTA2Li5lNGY4MjQ4IDEwMDY0NAotLS0g YS9tbS9tZW1wb2xpY3kuYworKysgYi9tbS9tZW1wb2xpY3kuYwpAQCAtMjI3OCw3ICsyMjc4LDcg QEAgaW50IG1wb2xfbWlzcGxhY2VkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZwogCXVuc2lnbmVkIGxvbmcgcGdvZmY7CiAJaW50IHRo aXNjcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOwogCWludCB0aGlzbmlkID0gY3B1X3RvX25v ZGUodGhpc2NwdSk7Ci0JaW50IHBvbG5pZCA9IC0xOworCWludCBwb2xuaWQgPSBOVU1BX05PX05P REU7CiAJaW50IHJldCA9IC0xOwogCiAJcG9sID0gZ2V0X3ZtYV9wb2xpY3kodm1hLCBhZGRyKTsK ZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYwppbmRleCA2ODQ3 MTc3Li43M2NmNTM0IDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9h bGxvYy5jCkBAIC01ODQ0LDcgKzU4NDQsNyBAQCBpbnQgX19tZW1pbml0IF9fZWFybHlfcGZuX3Rv X25pZCh1bnNpZ25lZCBsb25nIHBmbiwKIAkJcmV0dXJuIHN0YXRlLT5sYXN0X25pZDsKIAogCW5p ZCA9IG1lbWJsb2NrX3NlYXJjaF9wZm5fbmlkKHBmbiwgJnN0YXJ0X3BmbiwgJmVuZF9wZm4pOwot CWlmIChuaWQgIT0gLTEpIHsKKwlpZiAobmlkICE9IE5VTUFfTk9fTk9ERSkgewogCQlzdGF0ZS0+ bGFzdF9zdGFydCA9IHN0YXJ0X3BmbjsKIAkJc3RhdGUtPmxhc3RfZW5kID0gZW5kX3BmbjsKIAkJ c3RhdGUtPmxhc3RfbmlkID0gbmlkOwpAQCAtNjYwNSw3ICs2NjA1LDcgQEAgdW5zaWduZWQgbG9u ZyBfX2luaXQgbm9kZV9tYXBfcGZuX2FsaWdubWVudCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcg YWNjbF9tYXNrID0gMCwgbGFzdF9lbmQgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZCwg bWFzazsKLQlpbnQgbGFzdF9uaWQgPSAtMTsKKwlpbnQgbGFzdF9uaWQgPSBOVU1BX05PX05PREU7 CiAJaW50IGksIG5pZDsKIAogCWZvcl9lYWNoX21lbV9wZm5fcmFuZ2UoaSwgTUFYX05VTU5PREVT LCAmc3RhcnQsICZlbmQsICZuaWQpIHsKZGlmZiAtLWdpdCBhL21tL3BhZ2VfZXh0LmMgYi9tbS9w YWdlX2V4dC5jCmluZGV4IGFlNDRmN2EuLmRmYjAyMDYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfZXh0 LmMKKysrIGIvbW0vcGFnZV9leHQuYwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQgX19t ZW1pbml0IG9ubGluZV9wYWdlX2V4dCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAlzdGFydCA9 IFNFQ1RJT05fQUxJR05fRE9XTihzdGFydF9wZm4pOwogCWVuZCA9IFNFQ1RJT05fQUxJR05fVVAo c3RhcnRfcGZuICsgbnJfcGFnZXMpOwogCi0JaWYgKG5pZCA9PSAtMSkgeworCWlmIChuaWQgPT0g TlVNQV9OT19OT0RFKSB7CiAJCS8qCiAJCSAqIEluIHRoaXMgY2FzZSwgIm5pZCIgYWxyZWFkeSBl eGlzdHMgYW5kIGNvbnRhaW5zIHZhbGlkIG1lbW9yeS4KIAkJICogInN0YXJ0X3BmbiIgcGFzc2Vk IHRvIHVzIGlzIGEgcGZuIHdoaWNoIGlzIGFuIGFyZyBmb3IKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L3BrdGdlbi5jIGIvbmV0L2NvcmUvcGt0Z2VuLmMKaW5kZXggNmFjOTE5OC4uZjNmNWE3OCAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvcGt0Z2VuLmMKKysrIGIvbmV0L2NvcmUvcGt0Z2VuLmMKQEAgLTE1 OCw2ICsxNTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+CiAjaW5jbHVkZSA8 bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L3ByZWZldGNoLmg+CisjaW5jbHVkZSA8 bGludXgvbW16b25lLmg+CiAjaW5jbHVkZSA8bmV0L25ldF9uYW1lc3BhY2UuaD4KICNpbmNsdWRl IDxuZXQvY2hlY2tzdW0uaD4KICNpbmNsdWRlIDxuZXQvaXB2Ni5oPgpAQCAtMzYyNSw3ICszNjI2 LDcgQEAgc3RhdGljIGludCBwa3RnZW5fYWRkX2RldmljZShzdHJ1Y3QgcGt0Z2VuX3RocmVhZCAq dCwgY29uc3QgY2hhciAqaWZuYW1lKQogCXBrdF9kZXYtPnN2bGFuX2NmaSA9IDA7CiAJcGt0X2Rl di0+c3ZsYW5faWQgPSAweGZmZmY7CiAJcGt0X2Rldi0+YnVyc3QgPSAxOwotCXBrdF9kZXYtPm5v ZGUgPSAtMTsKKwlwa3RfZGV2LT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJZXJyID0gcGt0Z2Vu X3NldHVwX2Rldih0LT5uZXQsIHBrdF9kZXYsIGlmbmFtZSk7CiAJaWYgKGVycikKZGlmZiAtLWdp dCBhL25ldC9xcnRyL3FydHIuYyBiL25ldC9xcnRyL3FydHIuYwppbmRleCA4NmUxZTM3Li5iMzdl NmUwIDEwMDY0NAotLS0gYS9uZXQvcXJ0ci9xcnRyLmMKKysrIGIvbmV0L3FydHIvcXJ0ci5jCkBA IC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgogI2luY2x1ZGUgPGxp bnV4L3FydHIuaD4KICNpbmNsdWRlIDxsaW51eC90ZXJtaW9zLmg+CS8qIEZvciBUSU9DSU5RL09V VFEgKi8KKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CiAKICNpbmNsdWRlIDxuZXQvc29jay5oPgog CkBAIC0xMDEsNyArMTAyLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcXJ0cl9zb2NrICpxcnRy X3NrKHN0cnVjdCBzb2NrICpzaykKIAlyZXR1cm4gY29udGFpbmVyX29mKHNrLCBzdHJ1Y3QgcXJ0 cl9zb2NrLCBzayk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgcXJ0cl9sb2NhbF9uaWQgPSAt MTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcXJ0cl9sb2NhbF9uaWQgPSBOVU1BX05PX05PREU7CiAK IC8qIGZvciBub2RlIGlkcyAqLwogc3RhdGljIFJBRElYX1RSRUUocXJ0cl9ub2RlcywgR0ZQX0tF Uk5FTCk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL2JlbmNoL251bWEuYyBiL3Rvb2xzL3BlcmYv YmVuY2gvbnVtYS5jCmluZGV4IDQ0MTk1NTEuLmUwYWQ1ZjEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Bl cmYvYmVuY2gvbnVtYS5jCisrKyBiL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCkBAIC0yOTgsNyAr Mjk4LDcgQEAgc3RhdGljIGNwdV9zZXRfdCBiaW5kX3RvX25vZGUoaW50IHRhcmdldF9ub2RlKQog CiAJQ1BVX1pFUk8oJm1hc2spOwogCi0JaWYgKHRhcmdldF9ub2RlID09IC0xKSB7CisJaWYgKHRh cmdldF9ub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQlmb3IgKGNwdSA9IDA7IGNwdSA8IGctPnAu bnJfY3B1czsgY3B1KyspCiAJCQlDUFVfU0VUKGNwdSwgJm1hc2spOwogCX0gZWxzZSB7CkBAIC0z MzksNyArMzM5LDcgQEAgc3RhdGljIHZvaWQgYmluZF90b19tZW1ub2RlKGludCBub2RlKQogCXVu c2lnbmVkIGxvbmcgbm9kZW1hc2s7CiAJaW50IHJldDsKIAotCWlmIChub2RlID09IC0xKQorCWlm IChub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuOwogCiAJQlVHX09OKGctPnAubnJfbm9k ZXMgPiAoaW50KXNpemVvZihub2RlbWFzaykqOCk7CkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBzdGF0 aWMgdm9pZCBpbml0X3RocmVhZF9kYXRhKHZvaWQpCiAJCWludCBjcHU7CiAKIAkJLyogQWxsb3cg YWxsIG5vZGVzIGJ5IGRlZmF1bHQ6ICovCi0JCXRkLT5iaW5kX25vZGUgPSAtMTsKKwkJdGQtPmJp bmRfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCQkvKiBBbGxvdyBhbGwgQ1BVcyBieSBkZWZhdWx0 OiAqLwogCQlDUFVfWkVSTygmdGQtPmJpbmRfY3B1bWFzayk7Cg==