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: mm: Replace all open encodings for NUMA_NO_NODE From: Anshuman Khandual Message-Id: <1542966856-12619-1-git-send-email-anshuman.khandual@arm.com> Date: Fri, 23 Nov 2018 15:24:16 +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 List-ID: QXQgcHJlc2VudCB0aGVyZSBhcmUgbXVsdGlwbGUgcGxhY2VzIHdoZXJlIGludmFsaWQgbm9kZSBu dW1iZXIgaXMgZW5jb2RlZAphcyAtMS4gRXZlbiB0aG91Z2ggaW1wbGljaXRseSB1bmRlcnN0b29k IGl0IGlzIGFsd2F5cyBiZXR0ZXIgdG8gaGF2ZSBtYWNyb3MKaW4gdGhlcmUuIFJlcGxhY2UgdGhl c2Ugb3BlbiBlbmNvZGluZ3MgZm9yIGFuIGludmFsaWQgbm9kZSBudW1iZXIgd2l0aCB0aGUKZ2xv YmFsIG1hY3JvIE5VTUFfTk9fTk9ERS4gVGhpcyBoZWxwcyByZW1vdmUgTlVNQSByZWxhdGVkIGFz c3VtcHRpb25zIGxpa2UKJ2ludmFsaWQgbm9kZScgZnJvbSB2YXJpb3VzIHBsYWNlcyByZWRpcmVj dGluZyB0aGVtIHRvIGEgY29tbW9uIGRlZmluaXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbnNodW1h biBLaGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT4KLS0tCgpDaGFuZ2VzIGluIFYx OgoKLSBEcm9wcGVkIE9DRlMyIGNoYW5nZXMgcGVyIEpvc2VwaAotIERyb3BwZWQgbWVkaWEvdmlk ZW8gZHJpdmVycyBjaGFuZ2VzIHBlciBIYW5zCgpSRkMgLSBodHRwczovL3BhdGNod29yay5rZXJu ZWwub3JnL3BhdGNoLzEwNjc4MDM1LwoKQnVpbGQgdGVzdGVkIHRoaXMgd2l0aCBtdWx0aXBsZSBj cm9zcyBjb21waWxlciBvcHRpb25zIGxpa2UgYWxwaGEsIHNwYXJjLAphcm02NCwgeDg2LCBwb3dl cnBjLCBwb3dlcnBjNjRsZSBldGMgd2l0aCB0aGVpciBkZWZhdWx0IGNvbmZpZyB3aGljaCBtaWdo dApub3QgaGF2ZSBjb21waWxlZCB0ZXN0ZWQgYWxsIGRyaXZlciByZWxhdGVkIGNoYW5nZXMuIEkg d2lsbCBhcHByZWNpYXRlCmZvbGtzIGdpdmluZyB0aGlzIGEgdGVzdCBpbiB0aGVpciByZXNwZWN0 aXZlIGJ1aWxkIGVudmlyb25tZW50LgoKQWxsIHRoZXNlIHBsYWNlcyBmb3IgcmVwbGFjZW1lbnQg d2VyZSBmb3VuZCBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgZ3JlcApwYXR0ZXJucyBvbiB0aGUg ZW50aXJlIGtlcm5lbCBjb2RlLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhpcyBtaWdodCBoYXZl Cm1pc3NlZCBzb21lIGluc3RhbmNlcy4gVGhpcyBtaWdodCBhbHNvIGhhdmUgcmVwbGFjZWQgc29t ZSBmYWxzZSBwb3NpdGl2ZXMuCkkgd2lsbCBhcHByZWNpYXRlIHN1Z2dlc3Rpb25zLCBpbnB1dHMg YW5kIHJldmlldy4KCjEuIGdpdCBncmVwICJuaWQgPT0gLTEiCjIuIGdpdCBncmVwICJub2RlID09 IC0xIgozLiBnaXQgZ3JlcCAibmlkID0gLTEiCjQuIGdpdCBncmVwICJub2RlID0gLTEiCgogYXJj aC9hbHBoYS9pbmNsdWRlL2FzbS90b3BvbG9neS5oICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gv aWE2NC9rZXJuZWwvbnVtYS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL2lh NjQvbW0vZGlzY29udGlnLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGFyY2gv aWE2NC9zbi9rZXJuZWwvaW9fY29tbW9uLmMgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Bv d2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oICAgICAgICAgfCAgMiArLQogYXJjaC9wb3dl cnBjL2tlcm5lbC9wYWNhLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcG93ZXJw Yy9rZXJuZWwvcGNpLWNvbW1vbi5jICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Bvd2VycGMv bW0vbnVtYS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L21lbXRyYWNlLmMgICAgIHwgIDQgKystLQogYXJj aC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gv c3BhcmMva2VybmVsL3BjaV9maXJlLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Nw YXJjL2tlcm5lbC9wY2lfc2NoaXpvLmMgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zcGFy Yy9rZXJuZWwvcGNpYy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBhcmNoL3Nw YXJjL2tlcm5lbC9wc3ljaG9fY29tbW9uLmMgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zcGFy Yy9rZXJuZWwvc2J1cy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvc3BhcmMv bW0vaW5pdF82NC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC9zcGFy Yy9wcm9tL2luaXRfMzIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvc3BhcmMv cHJvbS9pbml0XzY0LmMgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIGFyY2gvc3BhcmMv cHJvbS90cmVlXzMyLmMgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogYXJj aC9zcGFyYy9wcm9tL3RyZWVfNjQuYyAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysr LS0tLS0tLS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wY2kuaCAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogYXJjaC94ODYva2VybmVsL2FwaWMveDJhcGljX3V2X3guYyAgICAgICAgICAgIHwg IDYgKysrLS0tCiBhcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogYXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMgICAgICAgICAgICAgIHwg MTYgKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jICAg ICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9kbWEvZG1hZW5naW5lLmMgICAgICAgICAgICAg ICAgICAgICAgIHwgIDMgKystCiBkcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9hZmZpbml0eS5j ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvaW5pdC5jICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW9tbXUvZG1hci5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5j IHwgIDQgKystLQogaW5pdC9pbml0X3Rhc2suYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGtlcm5lbC9rdGhyZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBrZXJuZWwvc2NoZWQvZmFpci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx NSArKysrKysrKy0tLS0tLS0KIGxpYi9jcHVtYXNrLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBtbS9odWdlX21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxMiArKysrKystLS0tLS0KIG1tL2h1Z2V0bGIuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBtbS9rc20uYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogbW0vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDYgKysrLS0tCiBtbS9tZW1vcnlfaG90cGx1Zy5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KIG1tL21lbXBvbGljeS5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBtbS9wYWdlX2FsbG9jLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBtbS9wYWdlX2V4dC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2NvcmUvcGt0Z2VuLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9xcnRyL3FydHIuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9wZXJmL2JlbmNoL251bWEuYyAgICAgICAgICAg ICAgICAgICAgICAgfCAgNiArKystLS0KIDQ3IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25z KCspLCAxMDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9pbmNsdWRlL2Fz bS90b3BvbG9neS5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS90b3BvbG9neS5oCmluZGV4IGU2 ZTEzYTguLmY2ZGM4OWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xv Z3kuaAorKysgYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgKQEAgLTI5LDcgKzI5 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrX29mX25vZGUoaW50IG5v ZGUpCiB7CiAJaW50IGNwdTsKIAotCWlmIChub2RlID09IC0xKQorCWlmIChub2RlID09IE5VTUFf Tk9fTk9ERSkKIAkJcmV0dXJuIGNwdV9hbGxfbWFzazsKIAogCWNwdW1hc2tfY2xlYXIoJm5vZGVf dG9fY3B1bWFza19tYXBbbm9kZV0pOwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9udW1h LmMgYi9hcmNoL2lhNjQva2VybmVsL251bWEuYwppbmRleCA5MmMzNzYyLi4xMzE1ZGE2IDEwMDY0 NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL251bWEuYworKysgYi9hcmNoL2lhNjQva2VybmVsL251 bWEuYwpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIF9faW5pdCBidWlsZF9jcHVfdG9fbm9kZV9tYXAo dm9pZCkKIAkJY3B1bWFza19jbGVhcigmbm9kZV90b19jcHVfbWFza1tub2RlXSk7CiAKIAlmb3Jf ZWFjaF9wb3NzaWJsZV9lYXJseV9jcHUoY3B1KSB7Ci0JCW5vZGUgPSAtMTsKKwkJbm9kZSA9IE5V TUFfTk9fTk9ERTsKIAkJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7ICsraSkKIAkJCWlmIChjcHVf cGh5c2ljYWxfaWQoY3B1KSA9PSBub2RlX2NwdWlkW2ldLnBoeXNfaWQpIHsKIAkJCQlub2RlID0g bm9kZV9jcHVpZFtpXS5uaWQ7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMg Yi9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMKaW5kZXggOGE5NjU3OC4uZjljMzY3NSAxMDA2NDQK LS0tIGEvYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jCisrKyBiL2FyY2gvaWE2NC9tbS9kaXNjb250 aWcuYwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfYXJlYXMo dm9pZCkKIAkgKiBDUFVzIGFyZSBwdXQgaW50byBncm91cHMgYWNjb3JkaW5nIHRvIG5vZGUuICBX YWxrIGNwdV9tYXAKIAkgKiBhbmQgY3JlYXRlIG5ldyBncm91cHMgYXQgbm9kZSBib3VuZGFyaWVz LgogCSAqLwotCXByZXZfbm9kZSA9IC0xOworCXByZXZfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlh aS0+bnJfZ3JvdXBzID0gMDsKIAlmb3IgKHVuaXQgPSAwOyB1bml0IDwgbnJfdW5pdHM7IHVuaXQr KykgewogCQljcHUgPSBjcHVfbWFwW3VuaXRdOwpAQCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCAqbWVtb3J5X2xlc3Nfbm9kZV9hbGxvYyhpbnQgbmlkLCB1bnNpZ25lZCBsb25n IHBlcm5vZGVzaXplKQogewogCXZvaWQgKnB0ciA9IE5VTEw7CiAJdTggYmVzdCA9IDB4ZmY7Ci0J aW50IGJlc3Rub2RlID0gLTEsIG5vZGUsIGFueW5vZGUgPSAwOworCWludCBiZXN0bm9kZSA9IE5V TUFfTk9fTk9ERSwgbm9kZSwgYW55bm9kZSA9IDA7CiAKIAlmb3JfZWFjaF9vbmxpbmVfbm9kZShu b2RlKSB7CiAJCWlmIChub2RlX2lzc2V0KG5vZGUsIG1lbW9yeV9sZXNzX21hc2spKQpAQCAtNDQ3 LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCAqbWVtb3J5X2xlc3Nfbm9kZV9hbGxvYyhp bnQgbmlkLCB1bnNpZ25lZCBsb25nIHBlcm5vZGVzaXplKQogCQlhbnlub2RlID0gbm9kZTsKIAl9 CiAKLQlpZiAoYmVzdG5vZGUgPT0gLTEpCisJaWYgKGJlc3Rub2RlID09IE5VTUFfTk9fTk9ERSkK IAkJYmVzdG5vZGUgPSBhbnlub2RlOwogCiAJcHRyID0gbWVtYmxvY2tfYWxsb2NfdHJ5X25pZChw ZXJub2Rlc2l6ZSwgUEVSQ1BVX1BBR0VfU0laRSwKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9zbi9r ZXJuZWwvaW9fY29tbW9uLmMgYi9hcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jCmluZGV4 IDhkZjEzZDAuLjg2YjNmY2IgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9zbi9rZXJuZWwvaW9fY29t bW9uLmMKKysrIGIvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19jb21tb24uYwpAQCAtMzQ0LDcgKzM0 NCw3IEBAIHNuX2NvbW1vbl9idXNfZml4dXAoc3RydWN0IHBjaV9idXMgKmJ1cywKIAkJcHJpbnRr KEtFUk5fV0FSTklORyAib24gbm9kZSAlZCBidXQgb25seSAlZCBub2RlcyBvbmxpbmUuIgogCQkg ICAgICAgIkFzc29jaWF0aW9uIHNldCB0byB1bmRldGVybWluZWQuXG4iLAogCQkgICAgICAgY29u dHJvbGxlci0+bm9kZSwgbnVtX29ubGluZV9ub2RlcygpKTsKLQkJY29udHJvbGxlci0+bm9kZSA9 IC0xOworCQljb250cm9sbGVyLT5ub2RlID0gTlVNQV9OT19OT0RFOwogCX0KIH0KIApkaWZmIC0t Z2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaCBiL2FyY2gvcG93ZXJw Yy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKaW5kZXggOTRkNDQ5MC4uMjVhOWUzMyAxMDA2NDQK LS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAorKysgYi9hcmNoL3Bv d2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oCkBAIC0yNjQsNyArMjY0LDcgQEAgZXh0ZXJu IGludCBwY2liaW9zX21hcF9pb19zcGFjZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKTsKICNpZmRlZiBD T05GSUdfTlVNQQogI2RlZmluZSBQSEJfU0VUX05PREUoUEhCLCBOT0RFKQkJKChQSEIpLT5ub2Rl ID0gKE5PREUpKQogI2Vsc2UKLSNkZWZpbmUgUEhCX1NFVF9OT0RFKFBIQiwgTk9ERSkJCSgoUEhC KS0+bm9kZSA9IC0xKQorI2RlZmluZSBQSEJfU0VUX05PREUoUEhCLCBOT0RFKQkJKChQSEIpLT5u b2RlID0gTlVNQV9OT19OT0RFKQogI2VuZGlmCiAKICNlbmRpZgkvKiBDT05GSUdfUFBDNjQgKi8K ZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGFjYS5jIGIvYXJjaC9wb3dlcnBjL2tl cm5lbC9wYWNhLmMKaW5kZXggOTEzYmZjYS4uNmEwYmQ1MSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dl cnBjL2tlcm5lbC9wYWNhLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMKQEAgLTM2 LDcgKzM2LDcgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBhbGxvY19wYWNhX2RhdGEodW5zaWduZWQg bG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduLAogCSAqIHdoaWNoIHdpbGwgcHV0IGl0cyBw YWNhIGluIHRoZSByaWdodCBwbGFjZS4KIAkgKi8KIAlpZiAoY3B1ID09IGJvb3RfY3B1aWQpIHsK LQkJbmlkID0gLTE7CisJCW5pZCA9IE5VTUFfTk9fTk9ERTsKIAkJbWVtYmxvY2tfc2V0X2JvdHRv bV91cCh0cnVlKTsKIAl9IGVsc2UgewogCQluaWQgPSBlYXJseV9jcHVfdG9fbm9kZShjcHUpOwpk aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMgYi9hcmNoL3Bvd2Vy cGMva2VybmVsL3BjaS1jb21tb24uYwppbmRleCA4OGU0ZjY5Li4xNGMzM2E5IDEwMDY0NAotLS0g YS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYworKysgYi9hcmNoL3Bvd2VycGMva2Vy bmVsL3BjaS1jb21tb24uYwpAQCAtMTMyLDcgKzEzMiw3IEBAIHN0cnVjdCBwY2lfY29udHJvbGxl ciAqcGNpYmlvc19hbGxvY19jb250cm9sbGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2KQogCQlp bnQgbmlkID0gb2Zfbm9kZV90b19uaWQoZGV2KTsKIAogCQlpZiAobmlkIDwgMCB8fCAhbm9kZV9v bmxpbmUobmlkKSkKLQkJCW5pZCA9IC0xOworCQkJbmlkID0gTlVNQV9OT19OT0RFOwogCiAJCVBI Ql9TRVRfTk9ERShwaGIsIG5pZCk7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL251 bWEuYyBiL2FyY2gvcG93ZXJwYy9tbS9udW1hLmMKaW5kZXggM2EwNDhlOS4uNzc4MDhhMiAxMDA2 NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL251bWEuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vbnVt YS5jCkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV9kaXN0YW5jZV9s b29rdXBfdGFibGUoaW50IG5pZCwKICAqLwogc3RhdGljIGludCBhc3NvY2lhdGl2aXR5X3RvX25p ZChjb25zdCBfX2JlMzIgKmFzc29jaWF0aXZpdHkpCiB7Ci0JaW50IG5pZCA9IC0xOworCWludCBu aWQgPSBOVU1BX05PX05PREU7CiAKIAlpZiAobWluX2NvbW1vbl9kZXB0aCA9PSAtMSkKIAkJZ290 byBvdXQ7CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIGludCBhc3NvY2lhdGl2aXR5X3RvX25p ZChjb25zdCBfX2JlMzIgKmFzc29jaWF0aXZpdHkpCiAKIAkvKiBQT1dFUjQgTFBBUiB1c2VzIDB4 ZmZmZiBhcyBpbnZhbGlkIG5vZGUgKi8KIAlpZiAobmlkID09IDB4ZmZmZiB8fCBuaWQgPj0gTUFY X05VTU5PREVTKQotCQluaWQgPSAtMTsKKwkJbmlkID0gTlVNQV9OT19OT0RFOwogCiAJaWYgKG5p ZCA+IDAgJiYKIAkJb2ZfcmVhZF9udW1iZXIoYXNzb2NpYXRpdml0eSwgMSkgPj0gZGlzdGFuY2Vf cmVmX3BvaW50c19kZXB0aCkgewpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbnQgYXNzb2Np YXRpdml0eV90b19uaWQoY29uc3QgX19iZTMyICphc3NvY2lhdGl2aXR5KQogICovCiBzdGF0aWMg aW50IG9mX25vZGVfdG9fbmlkX3NpbmdsZShzdHJ1Y3QgZGV2aWNlX25vZGUgKmRldmljZSkKIHsK LQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAljb25zdCBfX2JlMzIg KnRtcDsKIAogCXRtcCA9IG9mX2dldF9hc3NvY2lhdGl2aXR5KGRldmljZSk7CkBAIC0yNTYsNyAr MjU2LDcgQEAgc3RhdGljIGludCBvZl9ub2RlX3RvX25pZF9zaW5nbGUoc3RydWN0IGRldmljZV9u b2RlICpkZXZpY2UpCiAvKiBXYWxrIHRoZSBkZXZpY2UgdHJlZSB1cHdhcmRzLCBsb29raW5nIGZv ciBhbiBhc3NvY2lhdGl2aXR5IGlkICovCiBpbnQgb2Zfbm9kZV90b19uaWQoc3RydWN0IGRldmlj ZV9ub2RlICpkZXZpY2UpCiB7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05P REU7CiAKIAlvZl9ub2RlX2dldChkZXZpY2UpOwogCXdoaWxlIChkZXZpY2UpIHsKQEAgLTQ1NCw3 ICs0NTQsNyBAQCBzdGF0aWMgaW50IG9mX2RyY29uZl90b19uaWRfc2luZ2xlKHN0cnVjdCBkcm1l bV9sbWIgKmxtYikKICAqLwogc3RhdGljIGludCBudW1hX3NldHVwX2NwdSh1bnNpZ25lZCBsb25n IGxjcHUpCiB7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAJc3Ry dWN0IGRldmljZV9ub2RlICpjcHU7CiAKIAkvKgpAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBp bnQgaG90X2FkZF9kcmNvbmZfc2NuX3RvX25pZCh1bnNpZ25lZCBsb25nIHNjbl9hZGRyKQogewog CXN0cnVjdCBkcm1lbV9sbWIgKmxtYjsKIAl1bnNpZ25lZCBsb25nIGxtYl9zaXplOwotCWludCBu aWQgPSAtMTsKKwlpbnQgbmlkID0gTlVNQV9OT19OT0RFOwogCiAJbG1iX3NpemUgPSBkcm1lbV9s bWJfc2l6ZSgpOwogCkBAIC05NjAsNyArOTYwLDcgQEAgc3RhdGljIGludCBob3RfYWRkX2RyY29u Zl9zY25fdG9fbmlkKHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiBzdGF0aWMgaW50IGhvdF9hZGRf bm9kZV9zY25fdG9fbmlkKHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiB7CiAJc3RydWN0IGRldmlj ZV9ub2RlICptZW1vcnk7Ci0JaW50IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7 CiAKIAlmb3JfZWFjaF9ub2RlX2J5X3R5cGUobWVtb3J5LCAibWVtb3J5IikgewogCQl1bnNpZ25l ZCBsb25nIHN0YXJ0LCBzaXplOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w b3dlcm52L21lbXRyYWNlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvbWVtdHJh Y2UuYwppbmRleCA4NGQwMzhlLi4xY2UzYmZjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxh dGZvcm1zL3Bvd2VybnYvbWVtdHJhY2UuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bv d2VybnYvbWVtdHJhY2UuYwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBpbnQgbWVtdHJhY2Vf b25saW5lKHZvaWQpCiAJCWVudCA9ICZtZW10cmFjZV9hcnJheVtpXTsKIAogCQkvKiBXZSBoYXZl IG9ubGluZWQgdGhpcyBjaHVuayBwcmV2aW91c2x5ICovCi0JCWlmIChlbnQtPm5pZCA9PSAtMSkK KwkJaWYgKGVudC0+bmlkID09IE5VTUFfTk9fTk9ERSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIFJl bW92ZSBmcm9tIGlvIG1hcHBpbmdzICovCkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGludCBt ZW10cmFjZV9vbmxpbmUodm9pZCkKIAkJICovCiAJCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShl bnQtPmRpcik7CiAJCXByX2luZm8oIkFkZGVkIHRyYWNlIG1lbW9yeSBiYWNrIHRvIG5vZGUgJWRc biIsIGVudC0+bmlkKTsKLQkJZW50LT5zaXplID0gZW50LT5zdGFydCA9IGVudC0+bmlkID0gLTE7 CisJCWVudC0+c2l6ZSA9IGVudC0+c3RhcnQgPSBlbnQtPm5pZCA9IE5VTUFfTk9fTk9ERTsKIAl9 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVs L2F1eGlvXzMyLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9hdXhpb18zMi5jCmluZGV4IGEzMmQ1ODgu LjM5ZjZjNTkgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMKKysrIGIv YXJjaC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYwpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgX19p bml0IGF1eGlvX3Bvd2VyX3Byb2JlKHZvaWQpCiAJbm9kZSA9IHByb21fc2VhcmNoc2libGluZ3Mo bm9kZSwgIm9iaW8iKTsKIAlub2RlID0gcHJvbV9nZXRjaGlsZChub2RlKTsKIAlub2RlID0gcHJv bV9zZWFyY2hzaWJsaW5ncyhub2RlLCAicG93ZXIiKTsKLQlpZiAobm9kZSA9PSAwIHx8IChzMzIp bm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9PSAwIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybjsKIAogCS8qIE1hcCB0aGUgcG93ZXIgY29udHJvbCByZWdpc3Rlci4gKi8KZGlm ZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3BjaV9maXJlLmMgYi9hcmNoL3NwYXJjL2tlcm5l bC9wY2lfZmlyZS5jCmluZGV4IGJlNzFhZTAuLjQ3NGQzYmUgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMva2VybmVsL3BjaV9maXJlLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX2ZpcmUuYwpA QCAtNDE2LDcgKzQxNiw3IEBAIHN0YXRpYyBpbnQgcGNpX2ZpcmVfcGJtX2luaXQoc3RydWN0IHBj aV9wYm1faW5mbyAqcGJtLAogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZHAgPSBvcC0+ZGV2Lm9mX25v ZGU7CiAJaW50IGVycjsKIAotCXBibS0+bnVtYV9ub2RlID0gLTE7CisJcGJtLT5udW1hX25vZGUg PSBOVU1BX05PX05PREU7CiAKIAlwYm0tPnBjaV9vcHMgPSAmc3VuNHVfcGNpX29wczsKIAlwYm0t PmNvbmZpZ19zcGFjZV9yZWdfYml0cyA9IDEyOwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJu ZWwvcGNpX3NjaGl6by5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6by5jCmluZGV4IDkz NGI5N2MuLjg3YmIyMzEgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3BjaV9zY2hpem8u YworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfc2NoaXpvLmMKQEAgLTEzNDcsNyArMTM0Nyw3 IEBAIHN0YXRpYyBpbnQgc2NoaXpvX3BibV9pbml0KHN0cnVjdCBwY2lfcGJtX2luZm8gKnBibSwK IAlwYm0tPm5leHQgPSBwY2lfcGJtX3Jvb3Q7CiAJcGNpX3BibV9yb290ID0gcGJtOwogCi0JcGJt LT5udW1hX25vZGUgPSAtMTsKKwlwYm0tPm51bWFfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXBi bS0+cGNpX29wcyA9ICZzdW40dV9wY2lfb3BzOwogCXBibS0+Y29uZmlnX3NwYWNlX3JlZ19iaXRz ID0gODsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3BjaWMuYyBiL2FyY2gvc3BhcmMv a2VybmVsL3BjaWMuYwppbmRleCBlZTRjOWE5Li5kNWZlODk4IDEwMDY0NAotLS0gYS9hcmNoL3Nw YXJjL2tlcm5lbC9wY2ljLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jCkBAIC00NzYs NyArNDc2LDcgQEAgc3RhdGljIHZvaWQgcGNpY19tYXBfcGNpX2RldmljZShzdHJ1Y3QgbGludXhf cGNpYyAqcGNpYywKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBqOwogCi0JaWYgKG5vZGUg PT0gMCB8fCBub2RlID09IC0xKSB7CisJaWYgKG5vZGUgPT0gMCB8fCBub2RlID09IE5VTUFfTk9f Tk9ERSkgewogCQlzdHJjcHkobmFtZWJ1ZiwgIj8/PyIpOwogCX0gZWxzZSB7CiAJCXByb21fZ2V0 c3RyaW5nKG5vZGUsICJuYW1lIiwgbmFtZWJ1ZiwgNjMpOyBuYW1lYnVmWzYzXSA9IDA7CkBAIC01 MzUsNyArNTM1LDcgQEAgcGNpY19maWxsX2lycShzdHJ1Y3QgbGludXhfcGNpYyAqcGNpYywgc3Ry dWN0IHBjaV9kZXYgKmRldiwgaW50IG5vZGUpCiAJaW50IGksIGl2ZWM7CiAJY2hhciBuYW1lYnVm WzY0XTsKIAotCWlmIChub2RlID09IDAgfHwgbm9kZSA9PSAtMSkgeworCWlmIChub2RlID09IDAg fHwgbm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJc3RyY3B5KG5hbWVidWYsICI/Pz8iKTsKIAl9 IGVsc2UgewogCQlwcm9tX2dldHN0cmluZyhub2RlLCAibmFtZSIsIG5hbWVidWYsIHNpemVvZihu YW1lYnVmKSk7CkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBwY2liaW9zX2ZpeHVwX2J1cyhzdHJ1 Y3QgcGNpX2J1cyAqYnVzKQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmYnVzLT5kZXZpY2Vz LCBidXNfbGlzdCkgewogCQlub2RlID0gcGRldl90b19wbm9kZSgmcGNpYy0+cGJtLCBkZXYpOwog CQlpZihub2RlID09IDApCi0JCQlub2RlID0gLTE7CisJCQlub2RlID0gTlVNQV9OT19OT0RFOwog CiAJCS8qIGNvb2tpZXMgKi8KIAkJcGNwID0gcGNpX2RldmNvb2tpZV9hbGxvYygpOwpkaWZmIC0t Z2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jIGIvYXJjaC9zcGFyYy9rZXJu ZWwvcHN5Y2hvX2NvbW1vbi5jCmluZGV4IDgxYWE5MWUuLmRjYmY0OTIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvc3BhcmMva2VybmVsL3BzeWNob19jb21tb24uYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9w c3ljaG9fY29tbW9uLmMKQEAgLTQ1NCw3ICs0NTQsNyBAQCB2b2lkIHBzeWNob19wYm1faW5pdF9j b21tb24oc3RydWN0IHBjaV9wYm1faW5mbyAqcGJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpv cAogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZHAgPSBvcC0+ZGV2Lm9mX25vZGU7CiAKIAlwYm0tPm5h bWUgPSBkcC0+ZnVsbF9uYW1lOwotCXBibS0+bnVtYV9ub2RlID0gLTE7CisJcGJtLT5udW1hX25v ZGUgPSBOVU1BX05PX05PREU7CiAJcGJtLT5jaGlwX3R5cGUgPSBjaGlwX3R5cGU7CiAJcGJtLT5j aGlwX3ZlcnNpb24gPSBvZl9nZXRpbnRwcm9wX2RlZmF1bHQoZHAsICJ2ZXJzaW9uIyIsIDApOwog CXBibS0+Y2hpcF9yZXZpc2lvbiA9IG9mX2dldGludHByb3BfZGVmYXVsdChkcCwgIm1vZHVsZS1y ZXZpc2lvbiMiLCAwKTsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3NidXMuYyBiL2Fy Y2gvc3BhcmMva2VybmVsL3NidXMuYwppbmRleCBjMTMzZGZjLi4yOGE0YWE5IDEwMDY0NAotLS0g YS9hcmNoL3NwYXJjL2tlcm5lbC9zYnVzLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvc2J1cy5j CkBAIC01NjEsNyArNTYxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHNidXNfaW9tbXVfaW5pdChz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvcCkKIAogCW9wLT5kZXYuYXJjaGRhdGEuaW9tbXUgPSBp b21tdTsKIAlvcC0+ZGV2LmFyY2hkYXRhLnN0YyA9IHN0cmJ1ZjsKLQlvcC0+ZGV2LmFyY2hkYXRh Lm51bWFfbm9kZSA9IC0xOworCW9wLT5kZXYuYXJjaGRhdGEubnVtYV9ub2RlID0gTlVNQV9OT19O T0RFOwogCiAJcmVnX2Jhc2UgPSByZWdzICsgU1lTSU9fSU9NTVVSRUdfQkFTRTsKIAlpb21tdS0+ aW9tbXVfY29udHJvbCA9IHJlZ19iYXNlICsgSU9NTVVfQ09OVFJPTDsKZGlmZiAtLWdpdCBhL2Fy Y2gvc3BhcmMvbW0vaW5pdF82NC5jIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKaW5kZXggM2M4 YWFjMi4uY2IxYmVkMSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKKysrIGIv YXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKQEAgLTk3NiwxMyArOTc2LDEzIEBAIHN0YXRpYyB1NjQg X19pbml0IG1lbWJsb2NrX25pZF9yYW5nZV9zdW40dSh1NjQgc3RhcnQsIHU2NCBlbmQsIGludCAq bmlkKQogewogCWludCBwcmV2X25pZCwgbmV3X25pZDsKIAotCXByZXZfbmlkID0gLTE7CisJcHJl dl9uaWQgPSBOVU1BX05PX05PREU7CiAJZm9yICggOyBzdGFydCA8IGVuZDsgc3RhcnQgKz0gUEFH RV9TSVpFKSB7CiAJCWZvciAobmV3X25pZCA9IDA7IG5ld19uaWQgPCBudW1fbm9kZV9tYXNrczsg bmV3X25pZCsrKSB7CiAJCQlzdHJ1Y3Qgbm9kZV9tZW1fbWFzayAqcCA9ICZub2RlX21hc2tzW25l d19uaWRdOwogCiAJCQlpZiAoKHN0YXJ0ICYgcC0+bWFzaykgPT0gcC0+bWF0Y2gpIHsKLQkJCQlp ZiAocHJldl9uaWQgPT0gLTEpCisJCQkJaWYgKHByZXZfbmlkID09IE5VTUFfTk9fTk9ERSkKIAkJ CQkJcHJldl9uaWQgPSBuZXdfbmlkOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTIwOCw3ICsxMjA4 LDcgQEAgaW50IG9mX25vZGVfdG9fbmlkKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZHApCiAJbWQgPSBt ZGVzY19ncmFiKCk7CiAKIAljb3VudCA9IDA7Ci0JbmlkID0gLTE7CisJbmlkID0gTlVNQV9OT19O T0RFOwogCW1kZXNjX2Zvcl9lYWNoX25vZGVfYnlfbmFtZShtZCwgZ3JwLCAiZ3JvdXAiKSB7CiAJ CWlmICghc2Nhbl9hcmNzX2Zvcl9jZmdfaGFuZGxlKG1kLCBncnAsIGNmZ19oYW5kbGUpKSB7CiAJ CQluaWQgPSBjb3VudDsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMgYi9h cmNoL3NwYXJjL3Byb20vaW5pdF8zMi5jCmluZGV4IGQyMDQ3MDEuLjRjNmU1NDAgMTAwNjQ0Ci0t LSBhL2FyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMKKysrIGIvYXJjaC9zcGFyYy9wcm9tL2luaXRf MzIuYwpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIF9faW5pdCBwcm9tX2luaXQoc3RydWN0IGxpbnV4 X3JvbXZlYyAqcnApCiAJcHJvbV9ub2Rlb3BzID0gcm9tdmVjLT5wdl9ub2Rlb3BzOwogCiAJcHJv bV9yb290X25vZGUgPSBwcm9tX2dldHNpYmxpbmcoMCk7Ci0JaWYgKChwcm9tX3Jvb3Rfbm9kZSA9 PSAwKSB8fCAoKHMzMilwcm9tX3Jvb3Rfbm9kZSA9PSAtMSkpCisJaWYgKChwcm9tX3Jvb3Rfbm9k ZSA9PSAwKSB8fCAoKHMzMilwcm9tX3Jvb3Rfbm9kZSA9PSBOVU1BX05PX05PREUpKQogCQlwcm9t X2hhbHQoKTsKIAogCWlmKCgoKHVuc2lnbmVkIGxvbmcpIHByb21fbm9kZW9wcykgPT0gMCkgfHwg CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL3Byb20vaW5pdF82NC5jIGIvYXJjaC9zcGFyYy9wcm9t L2luaXRfNjQuYwppbmRleCAxMDNhYTkxLi44NTY2OWMwIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJj L3Byb20vaW5pdF82NC5jCisrKyBiL2FyY2gvc3BhcmMvcHJvbS9pbml0XzY0LmMKQEAgLTM2LDEz ICszNiwxMyBAQCB2b2lkIF9faW5pdCBwcm9tX2luaXQodm9pZCAqY2lmX2hhbmRsZXIpCiAJcHJv bV9jaWZfaW5pdChjaWZfaGFuZGxlcik7CiAKIAlwcm9tX2Nob3Nlbl9ub2RlID0gcHJvbV9maW5k ZGV2aWNlKHByb21fY2hvc2VuX3BhdGgpOwotCWlmICghcHJvbV9jaG9zZW5fbm9kZSB8fCAoczMy KXByb21fY2hvc2VuX25vZGUgPT0gLTEpCisJaWYgKCFwcm9tX2Nob3Nlbl9ub2RlIHx8IChzMzIp cHJvbV9jaG9zZW5fbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXByb21faGFsdCgpOwogCiAJcHJv bV9zdGRvdXQgPSBwcm9tX2dldGludChwcm9tX2Nob3Nlbl9ub2RlLCAic3Rkb3V0Iik7CiAKIAlu b2RlID0gcHJvbV9maW5kZGV2aWNlKCIvb3BlbnByb20iKTsKLQlpZiAoIW5vZGUgfHwgKHMzMilu b2RlID09IC0xKQorCWlmICghbm9kZSB8fCAoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlw cm9tX2hhbHQoKTsKIAogCXByb21fZ2V0c3RyaW5nKG5vZGUsICJ2ZXJzaW9uIiwgcHJvbV92ZXJz aW9uLCBzaXplb2YocHJvbV92ZXJzaW9uKSk7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL3Byb20v dHJlZV8zMi5jIGIvYXJjaC9zcGFyYy9wcm9tL3RyZWVfMzIuYwppbmRleCAwZmVkODkzLi4yZDBh MjA0IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jCisrKyBiL2FyY2gvc3Bh cmMvcHJvbS90cmVlXzMyLmMKQEAgLTQxLDExICs0MSwxMSBAQCBwaGFuZGxlIHByb21fZ2V0Y2hp bGQocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgY25vZGU7CiAKLQlpZiAoKHMzMilub2RlID09 IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCWNu b2RlID0gX19wcm9tX2dldGNoaWxkKG5vZGUpOwotCWlmIChjbm9kZSA9PSAwIHx8IChzMzIpY25v ZGUgPT0gLTEpCisJaWYgKGNub2RlID09IDAgfHwgKHMzMiljbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybiAwOwogCiAJcmV0dXJuIGNub2RlOwpAQCAtNzMsMTEgKzczLDExIEBAIHBoYW5k bGUgcHJvbV9nZXRzaWJsaW5nKHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIHNpYm5vZGU7CiAK LQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQog CQlyZXR1cm4gMDsKIAogCXNpYm5vZGUgPSBfX3Byb21fZ2V0c2libGluZyhub2RlKTsKLQlpZiAo c2libm9kZSA9PSAwIHx8IChzMzIpc2libm9kZSA9PSAtMSkKKwlpZiAoc2libm9kZSA9PSAwIHx8 IChzMzIpc2libm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIHNp Ym5vZGU7CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGNoYXIgKl9fcHJvbV9uZXh0cHJvcChw aGFuZGxlIG5vZGUsIGNoYXIgKiBvcHJvcCkKICAqLwogY2hhciAqcHJvbV9uZXh0cHJvcChwaGFu ZGxlIG5vZGUsIGNoYXIgKm9wcm9wLCBjaGFyICpidWZmZXIpCiB7Ci0JaWYgKG5vZGUgPT0gMCB8 fCAoczMyKW5vZGUgPT0gLTEpCisJaWYgKG5vZGUgPT0gMCB8fCAoczMyKW5vZGUgPT0gTlVNQV9O T19OT0RFKQogCQlyZXR1cm4gIiI7CiAKIAlyZXR1cm4gX19wcm9tX25leHRwcm9wKG5vZGUsIG9w cm9wKTsKQEAgLTMwNCw3ICszMDQsNyBAQCBwaGFuZGxlIHByb21faW5zdDJwa2coaW50IGluc3Qp CiAJbm9kZSA9ICgqcm9tdmVjLT5wdl92MmRldm9wcy52Ml9pbnN0MnBrZykoaW5zdCk7CiAJcmVz dG9yZV9jdXJyZW50KCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJvbV9sb2NrLCBmbGFn cyk7Ci0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9E RSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJj L3Byb20vdHJlZV82NC5jIGIvYXJjaC9zcGFyYy9wcm9tL3RyZWVfNjQuYwppbmRleCA5ODllNzk5 Li4yYjRjNTE1IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL3Byb20vdHJlZV82NC5jCisrKyBiL2Fy Y2gvc3BhcmMvcHJvbS90cmVlXzY0LmMKQEAgLTQ0LDEwICs0NCwxMCBAQCBwaGFuZGxlIHByb21f Z2V0Y2hpbGQocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgY25vZGU7CiAKLQlpZiAoKHMzMilu b2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsK IAljbm9kZSA9IF9fcHJvbV9nZXRjaGlsZChub2RlKTsKLQlpZiAoKHMzMiljbm9kZSA9PSAtMSkK KwlpZiAoKHMzMiljbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCXJldHVybiBj bm9kZTsKIH0KQEAgLTU3LDEwICs1NywxMCBAQCBpbmxpbmUgcGhhbmRsZSBwcm9tX2dldHBhcmVu dChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMyKW5vZGUgPT0g LTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCWNub2Rl ID0gcHJvbV9ub2RlX3RvX25vZGUoInBhcmVudCIsIG5vZGUpOwotCWlmICgoczMyKWNub2RlID09 IC0xKQorCWlmICgoczMyKWNub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJcmV0 dXJuIGNub2RlOwogfQpAQCAtNzcsMTAgKzc3LDEwIEBAIHBoYW5kbGUgcHJvbV9nZXRzaWJsaW5n KHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIHNpYm5vZGU7CiAKLQlpZiAoKHMzMilub2RlID09 IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAlzaWJu b2RlID0gX19wcm9tX2dldHNpYmxpbmcobm9kZSk7Ci0JaWYgKChzMzIpc2libm9kZSA9PSAtMSkK KwlpZiAoKHMzMilzaWJub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1 cm4gc2libm9kZTsKQEAgLTI0MSw3ICsyNDEsNyBAQCBjaGFyICpwcm9tX2ZpcnN0cHJvcChwaGFu ZGxlIG5vZGUsIGNoYXIgKmJ1ZmZlcikKIAl1bnNpZ25lZCBsb25nIGFyZ3NbN107CiAKIAkqYnVm ZmVyID0gMDsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9O T19OT0RFKQogCQlyZXR1cm4gYnVmZmVyOwogCiAJYXJnc1swXSA9ICh1bnNpZ25lZCBsb25nKSBw cm9tX25leHRwcm9wX25hbWU7CkBAIC0yNjcsNyArMjY3LDcgQEAgY2hhciAqcHJvbV9uZXh0cHJv cChwaGFuZGxlIG5vZGUsIGNvbnN0IGNoYXIgKm9wcm9wLCBjaGFyICpidWZmZXIpCiAJdW5zaWdu ZWQgbG9uZyBhcmdzWzddOwogCWNoYXIgYnVmWzMyXTsKIAotCWlmICgoczMyKW5vZGUgPT0gLTEp IHsKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQkqYnVmZmVyID0gMDsKIAkJ cmV0dXJuIGJ1ZmZlcjsKIAl9CkBAIC0zNzAsNyArMzcwLDcgQEAgaW5saW5lIHBoYW5kbGUgcHJv bV9pbnN0MnBrZyhpbnQgaW5zdCkKIAlwMTI3NV9jbWRfZGlyZWN0KGFyZ3MpOwogCiAJbm9kZSA9 IChpbnQpIGFyZ3NbNF07Ci0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09 IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wY2kuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaS5o CmluZGV4IDY2Mjk2MzYuLmRlZTJhMzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNt L3BjaS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaS5oCkBAIC0xNDEsNyArMTQxLDcg QEAgY3B1bWFza19vZl9wY2lidXMoY29uc3Qgc3RydWN0IHBjaV9idXMgKmJ1cykKIAlpbnQgbm9k ZTsKIAogCW5vZGUgPSBfX3BjaWJ1c190b19ub2RlKGJ1cyk7Ci0JcmV0dXJuIChub2RlID09IC0x KSA/IGNwdV9vbmxpbmVfbWFzayA6CisJcmV0dXJuIChub2RlID09IE5VTUFfTk9fTk9ERSkgPyBj cHVfb25saW5lX21hc2sgOgogCQkJICAgICAgY3B1bWFza19vZl9ub2RlKG5vZGUpOwogfQogI2Vu ZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBpYy94MmFwaWNfdXZfeC5jIGIvYXJj aC94ODYva2VybmVsL2FwaWMveDJhcGljX3V2X3guYwppbmRleCAzOTFmMzU4Li4zYzMzNzhhIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpYy94MmFwaWNfdXZfeC5jCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMKQEAgLTEzOTAsNyArMTM5MCw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBidWlsZF9zb2NrZXRfdGFibGVzKHZvaWQpCiAJfQogCiAJLyogU2V0IHNv Y2tldCAtPiBub2RlIHZhbHVlczogKi8KLQlsbmlkID0gLTE7CisJbG5pZCA9IE5VTUFfTk9fTk9E RTsKIAlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKIAkJaW50IG5pZCA9IGNwdV90b19ub2Rl KGNwdSk7CiAJCWludCBhcGljaWQsIHNvY2tpZDsKQEAgLTE1MjEsNyArMTUyMSw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCB1dl9zeXN0ZW1faW5pdF9odWIodm9pZCkKIAkJCW5ld19odWItPnBub2Rl ID0gMHhmZmZmOwogCiAJCW5ld19odWItPm51bWFfYmxhZGVfaWQgPSB1dl9ub2RlX3RvX2JsYWRl X2lkKG5vZGVpZCk7Ci0JCW5ld19odWItPm1lbW9yeV9uaWQgPSAtMTsKKwkJbmV3X2h1Yi0+bWVt b3J5X25pZCA9IE5VTUFfTk9fTk9ERTsKIAkJbmV3X2h1Yi0+bnJfcG9zc2libGVfY3B1cyA9IDA7 CiAJCW5ld19odWItPm5yX29ubGluZV9jcHVzID0gMDsKIAl9CkBAIC0xNTM4LDcgKzE1MzgsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgdXZfc3lzdGVtX2luaXRfaHViKHZvaWQpCiAKIAkJdXZfY3B1 X2luZm9fcGVyKGNwdSktPnBfdXZfaHViX2luZm8gPSB1dl9odWJfaW5mb19saXN0KG5vZGVpZCk7 CiAJCXV2X2NwdV9pbmZvX3BlcihjcHUpLT5ibGFkZV9jcHVfaWQgPSB1dl9jcHVfaHViX2luZm8o Y3B1KS0+bnJfcG9zc2libGVfY3B1cysrOwotCQlpZiAodXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1l bW9yeV9uaWQgPT0gLTEpCisJCWlmICh1dl9jcHVfaHViX2luZm8oY3B1KS0+bWVtb3J5X25pZCA9 PSBOVU1BX05PX05PREUpCiAJCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bWVtb3J5X25pZCA9IGNw dV90b19ub2RlKGNwdSk7CiAKIAkJLyogSW5pdCBtZW1vcnlsZXNzIG5vZGU6ICovCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3Qu YwppbmRleCBhOTEzNGQxLi5jMWQ0NWRjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc21w Ym9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKQEAgLTg0MSw3ICs4NDEsNyBA QCB3YWtldXBfc2Vjb25kYXJ5X2NwdV92aWFfaW5pdChpbnQgcGh5c19hcGljaWQsIHVuc2lnbmVk IGxvbmcgc3RhcnRfZWlwKQogLyogcmVkdWNlIHRoZSBudW1iZXIgb2YgbGluZXMgcHJpbnRlZCB3 aGVuIGJvb3RpbmcgYSBsYXJnZSBjcHUgY291bnQgc3lzdGVtICovCiBzdGF0aWMgdm9pZCBhbm5v dW5jZV9jcHUoaW50IGNwdSwgaW50IGFwaWNpZCkKIHsKLQlzdGF0aWMgaW50IGN1cnJlbnRfbm9k ZSA9IC0xOworCXN0YXRpYyBpbnQgY3VycmVudF9ub2RlID0gTlVNQV9OT19OT0RFOwogCWludCBu b2RlID0gZWFybHlfY3B1X3RvX25vZGUoY3B1KTsKIAlzdGF0aWMgaW50IHdpZHRoLCBub2RlX3dp ZHRoOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9vbHBjL29scGNfZHQuYyBiL2Fy Y2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jCmluZGV4IDI0ZDIxNzUuLjcwOTgxMjcgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jCisrKyBiL2FyY2gveDg2 L3BsYXRmb3JtL29scGMvb2xwY19kdC5jCkBAIC0yOSwxMCArMjksMTAgQEAgc3RhdGljIHBoYW5k bGUgX19pbml0IG9scGNfZHRfZ2V0c2libGluZyhwaGFuZGxlIG5vZGUpCiAJY29uc3Qgdm9pZCAq YXJnc1tdID0geyAodm9pZCAqKW5vZGUgfTsKIAl2b2lkICpyZXNbXSA9IHsgJm5vZGUgfTsKIAot CWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJ CXJldHVybiAwOwogCi0JaWYgKG9scGNfb2Z3KCJwZWVyIiwgYXJncywgcmVzKSB8fCAoczMyKW5v ZGUgPT0gLTEpCisJaWYgKG9scGNfb2Z3KCJwZWVyIiwgYXJncywgcmVzKSB8fCAoczMyKW5vZGUg PT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBub2RlOwpAQCAtNDMsMTAg KzQzLDEwIEBAIHN0YXRpYyBwaGFuZGxlIF9faW5pdCBvbHBjX2R0X2dldGNoaWxkKHBoYW5kbGUg bm9kZSkKIAljb25zdCB2b2lkICphcmdzW10gPSB7ICh2b2lkICopbm9kZSB9OwogCXZvaWQgKnJl c1tdID0geyAmbm9kZSB9OwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAob2xwY19vZncoImNoaWxkIiwg YXJncywgcmVzKSB8fCAoczMyKW5vZGUgPT0gLTEpIHsKKwlpZiAob2xwY19vZncoImNoaWxkIiwg YXJncywgcmVzKSB8fCAoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCXByX2VycigiUFJP TTogJXM6IGZldGNoaW5nIGNoaWxkIGZhaWxlZCFcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIDA7 CiAJfQpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBvbHBjX2R0X2dldHByb3Bs ZW4ocGhhbmRsZSBub2RlLCBjb25zdCBjaGFyICpwcm9wKQogCWludCBsZW47CiAJdm9pZCAqcmVz W10gPSB7ICZsZW4gfTsKIAotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9 PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAtMTsKIAogCWlmIChvbHBjX29mdygiZ2V0cHJvcGxl biIsIGFyZ3MsIHJlcykpIHsKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBv bHBjX2R0X25leHRwcm9wKHBoYW5kbGUgbm9kZSwgY2hhciAqcHJldiwgY2hhciAqYnVmKQogCiAJ YnVmWzBdID0gJ1wwJzsKIAotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9 PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAtMTsKIAogCWlmIChvbHBjX29mdygibmV4dHByb3Ai LCBhcmdzLCByZXMpIHx8IHN1Y2Nlc3MgIT0gMSkKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMg aW50IF9faW5pdCBvbHBjX2R0X3BrZzJwYXRoKHBoYW5kbGUgbm9kZSwgY2hhciAqYnVmLAogCWNv bnN0IHZvaWQgKmFyZ3NbXSA9IHsgKHZvaWQgKilub2RlLCBidWYsICh2b2lkICopYnVmbGVuIH07 CiAJdm9pZCAqcmVzW10gPSB7IGxlbiB9OwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAo KHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3 KCJwYWNrYWdlLXRvLXBhdGgiLCBhcmdzLCByZXMpIHx8ICpsZW4gPCAxKQpAQCAtMTc2LDcgKzE3 Niw3IEBAIHN0YXRpYyBwaGFuZGxlIF9faW5pdCBvbHBjX2R0X2ZpbmRkZXZpY2UoY29uc3QgY2hh ciAqcGF0aCkKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKChzMzIpIG5vZGUgPT0gLTEpCisJaWYg KChzMzIpIG5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBub2Rl OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jIGIvZHJpdmVy cy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jCmluZGV4IGE3ZGFhOGEuLmI4ODk0NTIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRpcDMyeHguYworKysgYi9kcml2ZXJzL2Js b2NrL210aXAzMnh4L210aXAzMnh4LmMKQEAgLTQwODQsOSArNDA4NCw5IEBAIHN0YXRpYyBpbnQg Z2V0X2xlYXN0X3VzZWRfY3B1X29uX25vZGUoaW50IG5vZGUpCiAvKiBIZWxwZXIgZm9yIHNlbGVj dGluZyBhIG5vZGUgaW4gcm91bmQgcm9iaW4gbW9kZSAqLwogc3RhdGljIGlubGluZSBpbnQgbXRp cF9nZXRfbmV4dF9ycl9ub2RlKHZvaWQpCiB7Ci0Jc3RhdGljIGludCBuZXh0X25vZGUgPSAtMTsK KwlzdGF0aWMgaW50IG5leHRfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAotCWlmIChuZXh0X25vZGUg PT0gLTEpIHsKKwlpZiAobmV4dF9ub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQluZXh0X25vZGUg PSBmaXJzdF9vbmxpbmVfbm9kZTsKIAkJcmV0dXJuIG5leHRfbm9kZTsKIAl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYyBiL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jCmluZGV4 IGYxYTQ0MWFiLi4xYWVlZmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYwor KysgYi9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYwpAQCAtMzg2LDcgKzM4Niw4IEBAIEVYUE9SVF9T WU1CT0woZG1hX2lzc3VlX3BlbmRpbmdfYWxsKTsKIHN0YXRpYyBib29sIGRtYV9jaGFuX2lzX2xv Y2FsKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwgaW50IGNwdSkKIHsKIAlpbnQgbm9kZSA9IGRldl90 b19ub2RlKGNoYW4tPmRldmljZS0+ZGV2KTsKLQlyZXR1cm4gbm9kZSA9PSAtMSB8fCBjcHVtYXNr X3Rlc3RfY3B1KGNwdSwgY3B1bWFza19vZl9ub2RlKG5vZGUpKTsKKwlyZXR1cm4gbm9kZSA9PSBO VU1BX05PX05PREUgfHwKKwkJY3B1bWFza190ZXN0X2NwdShjcHUsIGNwdW1hc2tfb2Zfbm9kZShu b2RlKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEv YWZmaW5pdHkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2FmZmluaXR5LmMKaW5kZXgg MmJhZjM4Yy4uM2U4YWNiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEv YWZmaW5pdHkuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9hZmZpbml0eS5jCkBA IC03NzcsNyArNzc3LDcgQEAgdm9pZCBoZmkxX2Rldl9hZmZpbml0eV9jbGVhbl91cChzdHJ1Y3Qg aGZpMV9kZXZkYXRhICpkZCkKIAlfZGV2X2NvbXBfdmVjdF9jcHVfbWFza19jbGVhbl91cChkZCwg ZW50cnkpOwogdW5sb2NrOgogCW11dGV4X3VubG9jaygmbm9kZV9hZmZpbml0eS5sb2NrKTsKLQlk ZC0+bm9kZSA9IC0xOworCWRkLT5ub2RlID0gTlVNQV9OT19OT0RFOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvaW5pdC5jIGIvZHJpdmVycy9pbmZpbmli YW5kL2h3L2hmaTEvaW5pdC5jCmluZGV4IDA5MDQ0OTAuLjBiZjQ1NzcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2luaXQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvaGZpMS9pbml0LmMKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaGZpMV9k ZXZkYXRhICpoZmkxX2FsbG9jX2RldmRhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCWRkLT51 bml0ID0gcmV0OwogCQlsaXN0X2FkZCgmZGQtPmxpc3QsICZoZmkxX2Rldl9saXN0KTsKIAl9Ci0J ZGQtPm5vZGUgPSAtMTsKKwlkZC0+bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmhmaTFfZGV2c19sb2NrLCBmbGFncyk7CiAJaWRyX3ByZWxvYWRfZW5kKCk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2RtYXIuYyBiL2RyaXZlcnMvaW9tbXUvZG1hci5j CmluZGV4IGQ5Yzc0OGIuLjg2YTljMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvZG1hci5j CisrKyBiL2RyaXZlcnMvaW9tbXUvZG1hci5jCkBAIC00NzcsNyArNDc3LDcgQEAgc3RhdGljIGlu dCBkbWFyX3BhcnNlX29uZV9yaHNhKHN0cnVjdCBhY3BpX2RtYXJfaGVhZGVyICpoZWFkZXIsIHZv aWQgKmFyZykKIAkJCWludCBub2RlID0gYWNwaV9tYXBfcHhtX3RvX25vZGUocmhzYS0+cHJveGlt aXR5X2RvbWFpbik7CiAKIAkJCWlmICghbm9kZV9vbmxpbmUobm9kZSkpCi0JCQkJbm9kZSA9IC0x OworCQkJCW5vZGUgPSBOVU1BX05PX05PREU7CiAJCQlkcmhkLT5pb21tdS0+bm9kZSA9IG5vZGU7 CiAJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMTA2Miw3ICsxMDYyLDcgQEAgc3RhdGljIGludCBhbGxv Y19pb21tdShzdHJ1Y3QgZG1hcl9kcmhkX3VuaXQgKmRyaGQpCiAJaW9tbXUtPm1zYWdhdyA9IG1z YWdhdzsKIAlpb21tdS0+c2VnbWVudCA9IGRyaGQtPnNlZ21lbnQ7CiAKLQlpb21tdS0+bm9kZSA9 IC0xOworCWlvbW11LT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJdmVyID0gcmVhZGwoaW9tbXUt PnJlZyArIERNQVJfVkVSX1JFRyk7CiAJcHJfaW5mbygiJXM6IHJlZ19iYXNlX2FkZHIgJWxseCB2 ZXIgJWQ6JWQgY2FwICVsbHggZWNhcCAlbGx4XG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21t dS9pbnRlbC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCmluZGV4IGYzY2Nm MDIuLjlmNmZiMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYworKysg Yi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMKQEAgLTE3NzIsNyArMTc3Miw3IEBAIHN0YXRp YyBzdHJ1Y3QgZG1hcl9kb21haW4gKmFsbG9jX2RvbWFpbihpbnQgZmxhZ3MpCiAJCXJldHVybiBO VUxMOwogCiAJbWVtc2V0KGRvbWFpbiwgMCwgc2l6ZW9mKCpkb21haW4pKTsKLQlkb21haW4tPm5p ZCA9IC0xOworCWRvbWFpbi0+bmlkID0gTlVNQV9OT19OT0RFOwogCWRvbWFpbi0+ZmxhZ3MgPSBm bGFnczsKIAlkb21haW4tPmhhc19pb3RsYl9kZXZpY2UgPSBmYWxzZTsKIAlJTklUX0xJU1RfSEVB RCgmZG9tYWluLT5kZXZpY2VzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9zZ2kteHAveHBj X3V2LmMgYi9kcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jCmluZGV4IDA0NDFhYmUuLmVlZjM2 ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2kteHAveHBjX3V2LmMKKysrIGIvZHJpdmVy cy9taXNjL3NnaS14cC94cGNfdXYuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgc3RydWN0IHhw Y19oZWFydGJlYXRfdXYgKnhwY19oZWFydGJlYXRfdXY7CiAJCQkJCSBYUENfTk9USUZZX01TR19T SVpFX1VWKQogI2RlZmluZSBYUENfTk9USUZZX0lSUV9OQU1FCQkieHBjX25vdGlmeSIKIAotc3Rh dGljIGludCB4cGNfbXFfbm9kZSA9IC0xOworc3RhdGljIGludCB4cGNfbXFfbm9kZSA9IE5VTUFf Tk9fTk9ERTsKIAogc3RhdGljIHN0cnVjdCB4cGNfZ3J1X21xX3V2ICp4cGNfYWN0aXZhdGVfbXFf dXY7CiBzdGF0aWMgc3RydWN0IHhwY19ncnVfbXFfdXYgKnhwY19ub3RpZnlfbXFfdXY7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKaW5kZXggMTEzYjM4 ZS4uNGZhZTg1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUv aXhnYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2Jl X21haW4uYwpAQCAtNjQxNCw3ICs2NDE0LDcgQEAgaW50IGl4Z2JlX3NldHVwX3R4X3Jlc291cmNl cyhzdHJ1Y3QgaXhnYmVfcmluZyAqdHhfcmluZykKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSB0 eF9yaW5nLT5kZXY7CiAJaW50IG9yaWdfbm9kZSA9IGRldl90b19ub2RlKGRldik7Ci0JaW50IHJp bmdfbm9kZSA9IC0xOworCWludCByaW5nX25vZGUgPSBOVU1BX05PX05PREU7CiAJaW50IHNpemU7 CiAKIAlzaXplID0gc2l6ZW9mKHN0cnVjdCBpeGdiZV90eF9idWZmZXIpICogdHhfcmluZy0+Y291 bnQ7CkBAIC02NTA4LDcgKzY1MDgsNyBAQCBpbnQgaXhnYmVfc2V0dXBfcnhfcmVzb3VyY2VzKHN0 cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLAogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IHJ4 X3JpbmctPmRldjsKIAlpbnQgb3JpZ19ub2RlID0gZGV2X3RvX25vZGUoZGV2KTsKLQlpbnQgcmlu Z19ub2RlID0gLTE7CisJaW50IHJpbmdfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlpbnQgc2l6ZTsK IAogCXNpemUgPSBzaXplb2Yoc3RydWN0IGl4Z2JlX3J4X2J1ZmZlcikgKiByeF9yaW5nLT5jb3Vu dDsKZGlmZiAtLWdpdCBhL2luaXQvaW5pdF90YXNrLmMgYi9pbml0L2luaXRfdGFzay5jCmluZGV4 IDVhZWJlM2IuLjY2NDE4MzYgMTAwNjQ0Ci0tLSBhL2luaXQvaW5pdF90YXNrLmMKKysrIGIvaW5p dC9pbml0X3Rhc2suYwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCB0YXNrX3N0cnVjdCBpbml0 X3Rhc2sKIAkudnRpbWUuc3RhdGUJPSBWVElNRV9TWVMsCiAjZW5kaWYKICNpZmRlZiBDT05GSUdf TlVNQV9CQUxBTkNJTkcKLQkubnVtYV9wcmVmZXJyZWRfbmlkID0gLTEsCisJLm51bWFfcHJlZmVy cmVkX25pZCA9IE5VTUFfTk9fTk9ERSwKIAkubnVtYV9ncm91cAk9IE5VTEwsCiAJLm51bWFfZmF1 bHRzCT0gTlVMTCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEva2VybmVsL2t0aHJlYWQuYyBiL2tlcm5l bC9rdGhyZWFkLmMKaW5kZXggMDg3ZDE4ZC4uNzdmM2Q5NCAxMDA2NDQKLS0tIGEva2VybmVsL2t0 aHJlYWQuYworKysgYi9rZXJuZWwva3RocmVhZC5jCkBAIC02NzUsNyArNjc1LDcgQEAgX19rdGhy ZWFkX2NyZWF0ZV93b3JrZXIoaW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdzLAogewogCXN0cnVj dCBrdGhyZWFkX3dvcmtlciAqd29ya2VyOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKLQlp bnQgbm9kZSA9IC0xOworCWludCBub2RlID0gTlVNQV9OT19OT0RFOwogCiAJd29ya2VyID0ga3ph bGxvYyhzaXplb2YoKndvcmtlciksIEdGUF9LRVJORUwpOwogCWlmICghd29ya2VyKQpkaWZmIC0t Z2l0IGEva2VybmVsL3NjaGVkL2ZhaXIuYyBiL2tlcm5lbC9zY2hlZC9mYWlyLmMKaW5kZXggZWUy NzFiYi4uZDgzMGZhNyAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2ZhaXIuYworKysgYi9rZXJu ZWwvc2NoZWQvZmFpci5jCkBAIC0xMTYxLDcgKzExNjEsNyBAQCB2b2lkIGluaXRfbnVtYV9iYWxh bmNpbmcodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncywgc3RydWN0IHRhc2tfc3RydWN0ICpwKQog CiAJLyogTmV3IGFkZHJlc3Mgc3BhY2UsIHJlc2V0IHRoZSBwcmVmZXJyZWQgbmlkICovCiAJaWYg KCEoY2xvbmVfZmxhZ3MgJiBDTE9ORV9WTSkpIHsKLQkJcC0+bnVtYV9wcmVmZXJyZWRfbmlkID0g LTE7CisJCXAtPm51bWFfcHJlZmVycmVkX25pZCA9IE5VTUFfTk9fTk9ERTsKIAkJcmV0dXJuOwog CX0KIApAQCAtMTE4MSwxMyArMTE4MSwxMyBAQCB2b2lkIGluaXRfbnVtYV9iYWxhbmNpbmcodW5z aWduZWQgbG9uZyBjbG9uZV9mbGFncywgc3RydWN0IHRhc2tfc3RydWN0ICpwKQogCiBzdGF0aWMg dm9pZCBhY2NvdW50X251bWFfZW5xdWV1ZShzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApCiB7Ci0JcnEtPm5yX251bWFfcnVubmluZyArPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlk ICE9IC0xKTsKKwlycS0+bnJfbnVtYV9ydW5uaW5nICs9IChwLT5udW1hX3ByZWZlcnJlZF9uaWQg IT0gTlVNQV9OT19OT0RFKTsKIAlycS0+bnJfcHJlZmVycmVkX3J1bm5pbmcgKz0gKHAtPm51bWFf cHJlZmVycmVkX25pZCA9PSB0YXNrX25vZGUocCkpOwogfQogCiBzdGF0aWMgdm9pZCBhY2NvdW50 X251bWFfZGVxdWV1ZShzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiB7Ci0J cnEtPm5yX251bWFfcnVubmluZyAtPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlkICE9IC0xKTsKKwly cS0+bnJfbnVtYV9ydW5uaW5nIC09IChwLT5udW1hX3ByZWZlcnJlZF9uaWQgIT0gTlVNQV9OT19O T0RFKTsKIAlycS0+bnJfcHJlZmVycmVkX3J1bm5pbmcgLT0gKHAtPm51bWFfcHJlZmVycmVkX25p ZCA9PSB0YXNrX25vZGUocCkpOwogfQogCkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBib29sIHNob3Vs ZF9udW1hX21pZ3JhdGVfbWVtb3J5KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHBhZ2Ug KiBwYWdlLAogCSAqIHR3byBmdWxsIHBhc3NlcyBvZiB0aGUgIm11bHRpLXN0YWdlIG5vZGUgc2Vs ZWN0aW9uIiB0ZXN0IHRoYXQgaXMKIAkgKiBleGVjdXRlZCBiZWxvdy4KIAkgKi8KLQlpZiAoKHAt Pm51bWFfcHJlZmVycmVkX25pZCA9PSAtMSB8fCBwLT5udW1hX3NjYW5fc2VxIDw9IDQpICYmCisJ aWYgKChwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gTlVNQV9OT19OT0RFIHx8IHAtPm51bWFfc2Nh bl9zZXEgPD0gNCkgJiYKIAkgICAgKGNwdXBpZF9waWRfdW5zZXQobGFzdF9jcHVwaWQpIHx8IGNw dXBpZF9tYXRjaF9waWQocCwgbGFzdF9jcHVwaWQpKSkKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTE4 NDksNyArMTg0OSw3IEBAIHN0YXRpYyB2b2lkIG51bWFfbWlncmF0ZV9wcmVmZXJyZWQoc3RydWN0 IHRhc2tfc3RydWN0ICpwKQogCXVuc2lnbmVkIGxvbmcgaW50ZXJ2YWwgPSBIWjsKIAogCS8qIFRo aXMgdGFzayBoYXMgbm8gTlVNQSBmYXVsdCBzdGF0aXN0aWNzIHlldCAqLwotCWlmICh1bmxpa2Vs eShwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gLTEgfHwgIXAtPm51bWFfZmF1bHRzKSkKKwlpZiAo dW5saWtlbHkocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IE5VTUFfTk9fTk9ERSB8fCAhcC0+bnVt YV9mYXVsdHMpKQogCQlyZXR1cm47CiAKIAkvKiBQZXJpb2RpY2FsbHkgcmV0cnkgbWlncmF0aW5n IHRoZSB0YXNrIHRvIHRoZSBwcmVmZXJyZWQgbm9kZSAqLwpAQCAtMjA5Niw3ICsyMDk2LDcgQEAg c3RhdGljIGludCBwcmVmZXJyZWRfZ3JvdXBfbmlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50 IG5pZCkKIAogc3RhdGljIHZvaWQgdGFza19udW1hX3BsYWNlbWVudChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApCiB7Ci0JaW50IHNlcSwgbmlkLCBtYXhfbmlkID0gLTE7CisJaW50IHNlcSwgbmlkLCBt YXhfbmlkID0gTlVNQV9OT19OT0RFOwogCXVuc2lnbmVkIGxvbmcgbWF4X2ZhdWx0cyA9IDA7CiAJ dW5zaWduZWQgbG9uZyBmYXVsdF90eXBlc1syXSA9IHsgMCwgMCB9OwogCXVuc2lnbmVkIGxvbmcg dG90YWxfZmF1bHRzOwpAQCAtMjYzOSw3ICsyNjM5LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlX3Nj YW5fcGVyaW9kKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IG5ld19jcHUpCiAJCSAqIHRoZSBw cmVmZXJyZWQgbm9kZS4KIAkJICovCiAJCWlmIChkc3RfbmlkID09IHAtPm51bWFfcHJlZmVycmVk X25pZCB8fAotCQkgICAgKHAtPm51bWFfcHJlZmVycmVkX25pZCAhPSAtMSAmJiBzcmNfbmlkICE9 IHAtPm51bWFfcHJlZmVycmVkX25pZCkpCisJCSAgICAocC0+bnVtYV9wcmVmZXJyZWRfbmlkICE9 IE5VTUFfTk9fTk9ERSAmJgorCQkJc3JjX25pZCAhPSBwLT5udW1hX3ByZWZlcnJlZF9uaWQpKQog CQkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvbGliL2NwdW1hc2suYyBiL2xpYi9jcHVtYXNr LmMKaW5kZXggOGQ2NjZhYi4uYTA4OWMzZiAxMDA2NDQKLS0tIGEvbGliL2NwdW1hc2suYworKysg Yi9saWIvY3B1bWFzay5jCkBAIC0yMDYsNyArMjA2LDcgQEAgdW5zaWduZWQgaW50IGNwdW1hc2tf bG9jYWxfc3ByZWFkKHVuc2lnbmVkIGludCBpLCBpbnQgbm9kZSkKIAkvKiBXcmFwOiB3ZSBhbHdh eXMgd2FudCBhIGNwdS4gKi8KIAlpICU9IG51bV9vbmxpbmVfY3B1cygpOwogCi0JaWYgKG5vZGUg PT0gLTEpIHsKKwlpZiAobm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJZm9yX2VhY2hfY3B1KGNw dSwgY3B1X29ubGluZV9tYXNrKQogCQkJaWYgKGktLSA9PSAwKQogCQkJCXJldHVybiBjcHU7CmRp ZmYgLS1naXQgYS9tbS9odWdlX21lbW9yeS5jIGIvbW0vaHVnZV9tZW1vcnkuYwppbmRleCA1NTQ3 OGFiLi41Y2NmODllIDEwMDY0NAotLS0gYS9tbS9odWdlX21lbW9yeS5jCisrKyBiL21tL2h1Z2Vf bWVtb3J5LmMKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIHZtX2ZhdWx0X3QgZG9faHVnZV9wbWRfbnVt YV9wYWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBwbWRfdCBwbWQpCiAJc3RydWN0IGFub25fdm1h ICphbm9uX3ZtYSA9IE5VTEw7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdW5zaWduZWQgbG9uZyBo YWRkciA9IHZtZi0+YWRkcmVzcyAmIEhQQUdFX1BNRF9NQVNLOwotCWludCBwYWdlX25pZCA9IC0x LCB0aGlzX25pZCA9IG51bWFfbm9kZV9pZCgpOworCWludCBwYWdlX25pZCA9IE5VTUFfTk9fTk9E RSwgdGhpc19uaWQgPSBudW1hX25vZGVfaWQoKTsKIAlpbnQgdGFyZ2V0X25pZCwgbGFzdF9jcHVw aWQgPSAtMTsKIAlib29sIHBhZ2VfbG9ja2VkOwogCWJvb2wgbWlncmF0ZWQgPSBmYWxzZTsKQEAg LTE1MjYsNyArMTUyNiw3IEBAIHZtX2ZhdWx0X3QgZG9faHVnZV9wbWRfbnVtYV9wYWdlKHN0cnVj dCB2bV9mYXVsdCAqdm1mLCBwbWRfdCBwbWQpCiAJICovCiAJcGFnZV9sb2NrZWQgPSB0cnlsb2Nr X3BhZ2UocGFnZSk7CiAJdGFyZ2V0X25pZCA9IG1wb2xfbWlzcGxhY2VkKHBhZ2UsIHZtYSwgaGFk ZHIpOwotCWlmICh0YXJnZXRfbmlkID09IC0xKSB7CisJaWYgKHRhcmdldF9uaWQgPT0gTlVNQV9O T19OT0RFKSB7CiAJCS8qIElmIHRoZSBwYWdlIHdhcyBsb2NrZWQsIHRoZXJlIGFyZSBubyBwYXJh bGxlbCBtaWdyYXRpb25zICovCiAJCWlmIChwYWdlX2xvY2tlZCkKIAkJCWdvdG8gY2xlYXJfcG1k bnVtYTsKQEAgLTE1MzQsNyArMTUzNCw3IEBAIHZtX2ZhdWx0X3QgZG9faHVnZV9wbWRfbnVtYV9w YWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBwbWRfdCBwbWQpCiAKIAkvKiBNaWdyYXRpb24gY291 bGQgaGF2ZSBzdGFydGVkIHNpbmNlIHRoZSBwbWRfdHJhbnNfbWlncmF0aW5nIGNoZWNrICovCiAJ aWYgKCFwYWdlX2xvY2tlZCkgewotCQlwYWdlX25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFf Tk9fTk9ERTsKIAkJaWYgKCFnZXRfcGFnZV91bmxlc3NfemVybyhwYWdlKSkKIAkJCWdvdG8gb3V0 X3VubG9jazsKIAkJc3Bpbl91bmxvY2sodm1mLT5wdGwpOwpAQCAtMTU1NiwxNCArMTU1NiwxNCBA QCB2bV9mYXVsdF90IGRvX2h1Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwg cG1kX3QgcG1kKQogCWlmICh1bmxpa2VseSghcG1kX3NhbWUocG1kLCAqdm1mLT5wbWQpKSkgewog CQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJcHV0X3BhZ2UocGFnZSk7Ci0JCXBhZ2VfbmlkID0gLTE7 CisJCXBhZ2VfbmlkID0gTlVNQV9OT19OT0RFOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCiAJ LyogQmFpbCBpZiB3ZSBmYWlsIHRvIHByb3RlY3QgYWdhaW5zdCBUSFAgc3BsaXRzIGZvciBhbnkg cmVhc29uICovCiAJaWYgKHVubGlrZWx5KCFhbm9uX3ZtYSkpIHsKIAkJcHV0X3BhZ2UocGFnZSk7 Ci0JCXBhZ2VfbmlkID0gLTE7CisJCXBhZ2VfbmlkID0gTlVNQV9OT19OT0RFOwogCQlnb3RvIGNs ZWFyX3BtZG51bWE7CiAJfQogCkBAIC0xNjI1LDcgKzE2MjUsNyBAQCB2bV9mYXVsdF90IGRvX2h1 Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCWlmIChh bm9uX3ZtYSkKIAkJcGFnZV91bmxvY2tfYW5vbl92bWFfcmVhZChhbm9uX3ZtYSk7CiAKLQlpZiAo cGFnZV9uaWQgIT0gLTEpCisJaWYgKHBhZ2VfbmlkICE9IE5VTUFfTk9fTk9ERSkKIAkJdGFza19u dW1hX2ZhdWx0KGxhc3RfY3B1cGlkLCBwYWdlX25pZCwgSFBBR0VfUE1EX05SLAogCQkJCWZsYWdz KTsKIApkaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCmluZGV4IGMwMDdm YjUuLmI3NjlkYjcgMTAwNjQ0Ci0tLSBhL21tL2h1Z2V0bGIuYworKysgYi9tbS9odWdldGxiLmMK QEAgLTg4Nyw3ICs4ODcsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmRlcXVldWVfaHVnZV9wYWdl X25vZGVtYXNrKHN0cnVjdCBoc3RhdGUgKmgsIGdmcF90IGdmcF9tYXNrLAogCXN0cnVjdCB6b25l bGlzdCAqem9uZWxpc3Q7CiAJc3RydWN0IHpvbmUgKnpvbmU7CiAJc3RydWN0IHpvbmVyZWYgKno7 Ci0JaW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXpvbmVsaXN0 ID0gbm9kZV96b25lbGlzdChuaWQsIGdmcF9tYXNrKTsKIApkaWZmIC0tZ2l0IGEvbW0va3NtLmMg Yi9tbS9rc20uYwppbmRleCA1YjA4OTRiLi5kNWY4ODM0IDEwMDY0NAotLS0gYS9tbS9rc20uYwor KysgYi9tbS9rc20uYwpAQCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3RhYmxlX25v ZGUgKmFsbG9jX3N0YWJsZV9ub2RlX2NoYWluKHN0cnVjdCBzdGFibGVfbm9kZSAqZHVwLAogCQlj aGFpbi0+Y2hhaW5fcHJ1bmVfdGltZSA9IGppZmZpZXM7CiAJCWNoYWluLT5ybWFwX2hsaXN0X2xl biA9IFNUQUJMRV9OT0RFX0NIQUlOOwogI2lmIGRlZmluZWQgKENPTkZJR19ERUJVR19WTSkgJiYg ZGVmaW5lZChDT05GSUdfTlVNQSkKLQkJY2hhaW4tPm5pZCA9IC0xOyAvKiBkZWJ1ZyAqLworCQlj aGFpbi0+bmlkID0gTlVNQV9OT19OT0RFOyAvKiBkZWJ1ZyAqLwogI2VuZGlmCiAJCWtzbV9zdGFi bGVfbm9kZV9jaGFpbnMrKzsKIApkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9tZW1vcnku YwppbmRleCA0YWQyZDI5Li5jMGUwMzQ4IDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9t bS9tZW1vcnkuYwpAQCAtMzU2NCw3ICszNTY0LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgZG9fbnVt YV9wYWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogewogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hID0gdm1mLT52bWE7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOwotCWludCBwYWdlX25p ZCA9IC0xOworCWludCBwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsKIAlpbnQgbGFzdF9jcHVwaWQ7 CiAJaW50IHRhcmdldF9uaWQ7CiAJYm9vbCBtaWdyYXRlZCA9IGZhbHNlOwpAQCAtMzYzMSw3ICsz NjMxLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgZG9fbnVtYV9wYWdlKHN0cnVjdCB2bV9mYXVsdCAq dm1mKQogCXRhcmdldF9uaWQgPSBudW1hX21pZ3JhdGVfcHJlcChwYWdlLCB2bWEsIHZtZi0+YWRk cmVzcywgcGFnZV9uaWQsCiAJCQkmZmxhZ3MpOwogCXB0ZV91bm1hcF91bmxvY2sodm1mLT5wdGUs IHZtZi0+cHRsKTsKLQlpZiAodGFyZ2V0X25pZCA9PSAtMSkgeworCWlmICh0YXJnZXRfbmlkID09 IE5VTUFfTk9fTk9ERSkgewogCQlwdXRfcGFnZShwYWdlKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAt MzY0NSw3ICszNjQ1LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgZG9fbnVtYV9wYWdlKHN0cnVjdCB2 bV9mYXVsdCAqdm1mKQogCQlmbGFncyB8PSBUTkZfTUlHUkFURV9GQUlMOwogCiBvdXQ6Ci0JaWYg KHBhZ2VfbmlkICE9IC0xKQorCWlmIChwYWdlX25pZCAhPSBOVU1BX05PX05PREUpCiAJCXRhc2tf bnVtYV9mYXVsdChsYXN0X2NwdXBpZCwgcGFnZV9uaWQsIDEsIGZsYWdzKTsKIAlyZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL21tL21lbW9yeV9ob3RwbHVnLmMgYi9tbS9tZW1vcnlfaG90cGx1Zy5j CmluZGV4IDJiMmIzY2MuLjcwZTAyZjggMTAwNjQ0Ci0tLSBhL21tL21lbW9yeV9ob3RwbHVnLmMK KysrIGIvbW0vbWVtb3J5X2hvdHBsdWcuYwpAQCAtNjg4LDkgKzY4OCw5IEBAIHN0YXRpYyB2b2lk IG5vZGVfc3RhdGVzX2NoZWNrX2NoYW5nZXNfb25saW5lKHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMs CiB7CiAJaW50IG5pZCA9IHpvbmVfdG9fbmlkKHpvbmUpOwogCi0JYXJnLT5zdGF0dXNfY2hhbmdl X25pZCA9IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsID0gLTE7Ci0JYXJnLT5z dGF0dXNfY2hhbmdlX25pZF9oaWdoID0gLTE7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZCA9IE5V TUFfTk9fTk9ERTsKKwlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9IE5VTUFfTk9fTk9E RTsKKwlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX2hpZ2ggPSBOVU1BX05PX05PREU7CiAKIAlpZiAo IW5vZGVfc3RhdGUobmlkLCBOX01FTU9SWSkpCiAJCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWQgPSBu aWQ7CkBAIC0xNDg0LDkgKzE0ODQsOSBAQCBzdGF0aWMgdm9pZCBub2RlX3N0YXRlc19jaGVja19j aGFuZ2VzX29mZmxpbmUodW5zaWduZWQgbG9uZyBucl9wYWdlcywKIAl1bnNpZ25lZCBsb25nIHBy ZXNlbnRfcGFnZXMgPSAwOwogCWVudW0gem9uZV90eXBlIHp0OwogCi0JYXJnLT5zdGF0dXNfY2hh bmdlX25pZCA9IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfbm9ybWFsID0gLTE7Ci0JYXJn LT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gLTE7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZCA9 IE5VTUFfTk9fTk9ERTsKKwlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9IE5VTUFfTk9f Tk9ERTsKKwlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX2hpZ2ggPSBOVU1BX05PX05PREU7CiAKIAkv KgogCSAqIENoZWNrIHdoZXRoZXIgbm9kZV9zdGF0ZXNbTl9OT1JNQUxfTUVNT1JZXSB3aWxsIGJl IGNoYW5nZWQuCmRpZmYgLS1naXQgYS9tbS9tZW1wb2xpY3kuYyBiL21tL21lbXBvbGljeS5jCmlu ZGV4IDU4MzdhMDYuLmU0ZjgyNDggMTAwNjQ0Ci0tLSBhL21tL21lbXBvbGljeS5jCisrKyBiL21t L21lbXBvbGljeS5jCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCBpbnQgbXBvbF9taXNwbGFjZWQoc3Ry dWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25n CiAJdW5zaWduZWQgbG9uZyBwZ29mZjsKIAlpbnQgdGhpc2NwdSA9IHJhd19zbXBfcHJvY2Vzc29y X2lkKCk7CiAJaW50IHRoaXNuaWQgPSBjcHVfdG9fbm9kZSh0aGlzY3B1KTsKLQlpbnQgcG9sbmlk ID0gLTE7CisJaW50IHBvbG5pZCA9IE5VTUFfTk9fTk9ERTsKIAlpbnQgcmV0ID0gLTE7CiAKIAlw b2wgPSBnZXRfdm1hX3BvbGljeSh2bWEsIGFkZHIpOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxv Yy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IGE5MTliYTUuLjlkMzhkOWMgMTAwNjQ0Ci0tLSBh L21tL3BhZ2VfYWxsb2MuYworKysgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTU4NDYsNyArNTg0Niw3 IEBAIGludCBfX21lbWluaXQgX19lYXJseV9wZm5fdG9fbmlkKHVuc2lnbmVkIGxvbmcgcGZuLAog CQlyZXR1cm4gc3RhdGUtPmxhc3RfbmlkOwogCiAJbmlkID0gbWVtYmxvY2tfc2VhcmNoX3Bmbl9u aWQocGZuLCAmc3RhcnRfcGZuLCAmZW5kX3Bmbik7Ci0JaWYgKG5pZCAhPSAtMSkgeworCWlmIChu aWQgIT0gTlVNQV9OT19OT0RFKSB7CiAJCXN0YXRlLT5sYXN0X3N0YXJ0ID0gc3RhcnRfcGZuOwog CQlzdGF0ZS0+bGFzdF9lbmQgPSBlbmRfcGZuOwogCQlzdGF0ZS0+bGFzdF9uaWQgPSBuaWQ7CkBA IC02NjA3LDcgKzY2MDcsNyBAQCB1bnNpZ25lZCBsb25nIF9faW5pdCBub2RlX21hcF9wZm5fYWxp Z25tZW50KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBhY2NsX21hc2sgPSAwLCBsYXN0X2VuZCA9 IDA7CiAJdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kLCBtYXNrOwotCWludCBsYXN0X25pZCA9IC0x OworCWludCBsYXN0X25pZCA9IE5VTUFfTk9fTk9ERTsKIAlpbnQgaSwgbmlkOwogCiAJZm9yX2Vh Y2hfbWVtX3Bmbl9yYW5nZShpLCBNQVhfTlVNTk9ERVMsICZzdGFydCwgJmVuZCwgJm5pZCkgewpk aWZmIC0tZ2l0IGEvbW0vcGFnZV9leHQuYyBiL21tL3BhZ2VfZXh0LmMKaW5kZXggYWU0NGY3YS4u ZGZiMDIwNiAxMDA2NDQKLS0tIGEvbW0vcGFnZV9leHQuYworKysgYi9tbS9wYWdlX2V4dC5jCkBA IC0zMDAsNyArMzAwLDcgQEAgc3RhdGljIGludCBfX21lbWluaXQgb25saW5lX3BhZ2VfZXh0KHVu c2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCXN0YXJ0ID0gU0VDVElPTl9BTElHTl9ET1dOKHN0YXJ0 X3Bmbik7CiAJZW5kID0gU0VDVElPTl9BTElHTl9VUChzdGFydF9wZm4gKyBucl9wYWdlcyk7CiAK LQlpZiAobmlkID09IC0xKSB7CisJaWYgKG5pZCA9PSBOVU1BX05PX05PREUpIHsKIAkJLyoKIAkJ ICogSW4gdGhpcyBjYXNlLCAibmlkIiBhbHJlYWR5IGV4aXN0cyBhbmQgY29udGFpbnMgdmFsaWQg bWVtb3J5LgogCQkgKiAic3RhcnRfcGZuIiBwYXNzZWQgdG8gdXMgaXMgYSBwZm4gd2hpY2ggaXMg YW4gYXJnIGZvcgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcGt0Z2VuLmMgYi9uZXQvY29yZS9wa3Rn ZW4uYwppbmRleCA2YWM5MTk4Li5hZjNhNzQ2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4u YworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAtMzYyNSw3ICszNjI1LDcgQEAgc3RhdGljIGlu dCBwa3RnZW5fYWRkX2RldmljZShzdHJ1Y3QgcGt0Z2VuX3RocmVhZCAqdCwgY29uc3QgY2hhciAq aWZuYW1lKQogCXBrdF9kZXYtPnN2bGFuX2NmaSA9IDA7CiAJcGt0X2Rldi0+c3ZsYW5faWQgPSAw eGZmZmY7CiAJcGt0X2Rldi0+YnVyc3QgPSAxOwotCXBrdF9kZXYtPm5vZGUgPSAtMTsKKwlwa3Rf ZGV2LT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJZXJyID0gcGt0Z2VuX3NldHVwX2Rldih0LT5u ZXQsIHBrdF9kZXYsIGlmbmFtZSk7CiAJaWYgKGVycikKZGlmZiAtLWdpdCBhL25ldC9xcnRyL3Fy dHIuYyBiL25ldC9xcnRyL3FydHIuYwppbmRleCA4NmUxZTM3Li4wYzU2YWUyIDEwMDY0NAotLS0g YS9uZXQvcXJ0ci9xcnRyLmMKKysrIGIvbmV0L3FydHIvcXJ0ci5jCkBAIC0xMDEsNyArMTAxLDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcXJ0cl9zb2NrICpxcnRyX3NrKHN0cnVjdCBzb2NrICpz aykKIAlyZXR1cm4gY29udGFpbmVyX29mKHNrLCBzdHJ1Y3QgcXJ0cl9zb2NrLCBzayk7CiB9CiAK LXN0YXRpYyB1bnNpZ25lZCBpbnQgcXJ0cl9sb2NhbF9uaWQgPSAtMTsKK3N0YXRpYyB1bnNpZ25l ZCBpbnQgcXJ0cl9sb2NhbF9uaWQgPSBOVU1BX05PX05PREU7CiAKIC8qIGZvciBub2RlIGlkcyAq Lwogc3RhdGljIFJBRElYX1RSRUUocXJ0cl9ub2RlcywgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQg YS90b29scy9wZXJmL2JlbmNoL251bWEuYyBiL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCmluZGV4 IDQ0MTk1NTEuLmUwYWQ1ZjEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCisr KyBiL3Rvb2xzL3BlcmYvYmVuY2gvbnVtYS5jCkBAIC0yOTgsNyArMjk4LDcgQEAgc3RhdGljIGNw dV9zZXRfdCBiaW5kX3RvX25vZGUoaW50IHRhcmdldF9ub2RlKQogCiAJQ1BVX1pFUk8oJm1hc2sp OwogCi0JaWYgKHRhcmdldF9ub2RlID09IC0xKSB7CisJaWYgKHRhcmdldF9ub2RlID09IE5VTUFf Tk9fTk9ERSkgewogCQlmb3IgKGNwdSA9IDA7IGNwdSA8IGctPnAubnJfY3B1czsgY3B1KyspCiAJ CQlDUFVfU0VUKGNwdSwgJm1hc2spOwogCX0gZWxzZSB7CkBAIC0zMzksNyArMzM5LDcgQEAgc3Rh dGljIHZvaWQgYmluZF90b19tZW1ub2RlKGludCBub2RlKQogCXVuc2lnbmVkIGxvbmcgbm9kZW1h c2s7CiAJaW50IHJldDsKIAotCWlmIChub2RlID09IC0xKQorCWlmIChub2RlID09IE5VTUFfTk9f Tk9ERSkKIAkJcmV0dXJuOwogCiAJQlVHX09OKGctPnAubnJfbm9kZXMgPiAoaW50KXNpemVvZihu b2RlbWFzaykqOCk7CkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBzdGF0aWMgdm9pZCBpbml0X3RocmVh ZF9kYXRhKHZvaWQpCiAJCWludCBjcHU7CiAKIAkJLyogQWxsb3cgYWxsIG5vZGVzIGJ5IGRlZmF1 bHQ6ICovCi0JCXRkLT5iaW5kX25vZGUgPSAtMTsKKwkJdGQtPmJpbmRfbm9kZSA9IE5VTUFfTk9f Tk9ERTsKIAogCQkvKiBBbGxvdyBhbGwgQ1BVcyBieSBkZWZhdWx0OiAqLwogCQlDUFVfWkVSTygm dGQtPmJpbmRfY3B1bWFzayk7Cg==