Re: [PATCH v2 7/8] Use posix_spawn to run external scripts
Ladislav Michl <[email protected]> Thu, 23 Jan 2020 02:01:57 +0100
| Newsgroups | gmane.linux.drivers.gnokii |
|---|---|
| Message-ID | <20200123010157.GA88568@lenoch> |
T24gTW9uLCBKYW4gMjAsIDIwMjAgYXQgMDE6MDc6MzVQTSArMDEwMCwgUGF3ZWwgS290IHdyb3Rl Ogo+IE9uIE1vbiwgSmFuIDIwLCAyMDIwIGF0IDk6NDAgQU0gTGFkaXNsYXYgTWljaGwgPGxhZGlz QGxpbnV4LW1pcHMub3JnPiB3cm90ZToKPiA+IC4uLiBBbHRlcm5hdGl2ZWx5IEkgY2FuIHR1cm4g aXQgaW50byBwcm9wZXIgZGV2aWNlIHBsdWdpbiBhcmNoaXRlY3R1cmUuCj4gPiBJcyB0aGF0IHlv dXIgcHJlZmVycmVkIHdheSB0byBnbz8gKHdoaWxlIGRvaW5nIHRoYXQgSSB3b3VsZCBhbHNvIGFk ZAo+ID4gc3VwcG9ydCBmb3IgZXh0ZXJuYWwgZXZlbiBsb29wcykKPiAKPiBZZXMsIGlmIHdlJ3Jl IGdvaW5nIHRvIGNoYW5nZSB0aGF0IGxldCdzIGRvIGl0IGluIGEgcHJvcGVyIHdheS4gSGFwcHkg dG8KPiBkaXNjdXNzIG9uIElSQyBzb21ldGltZS4KCllvdXIgSVJDIGNvbm5lY3Rpb24gaXMgdW5z dGFibGUgYmV5b25kIGJlaW5nIHVzZWZ1bGwgZm9yIGFueSBkaXNjdXNzaW9uIDstKQpTbyBoZXJl IGlzIGEgcXVpY2sgZHJhZnQsIHBhdGNoIGlzIGJhc2VkIG9uIGFub3RoZXIgdW5yZWxlYXNlZCBv bmUgbW92aW5nCmRldmljZV9zY3JpcHQgaW50byBzZXBhcmF0ZSBmaWxlLiBQbGVhc2Ugbm90ZSBp dCBpcyBvbmx5IGEgZHJhZnQsIGNvbXBpbGUKdGVzdGVkIG9ubHkgKGFzc3VtZXMgQzk5IGNvbXBp bGVyKS4gSSB0cmllZCB0byBhdm9pZCBkZXZpY2UgZHJpdmVyIGNoYW5nZXMsCmJ1dCBwYXRjaCBp cyBzdGlsbCBhIGJpdCBoYXJkIHRvIHJlYWQuIEFwb2xvZ2llcyBmb3IgdGhhdC4gSG93ZXZlciwg aXQKc2hvdWxkIHN1ZmZpY2UgYXMgYSBiZWdpbm5pbmcgb2YgYSBkaXNjdXNzaW9uLiBJJ2xsIHBv bGlzaCBpdCBhIGJpdCBtb3JlCmJhc2VkIG9uIGZlZWRiYWNrIHJlY2VpdmVkIGFuZCBzZW5kIGFz IHNlcGFyYXRlIHBhdGNoIHNlcmllLgoKLS0tID44IC0tLQoKRnJvbTogTGFkaXNsYXYgTWljaGwg PGxhZGlzQGxpbnV4LW1pcHMub3JnPgpTdWJqZWN0OiBbRFJBRlRdIFJlZmFjdG9yIGRldmljZXMg YnVpbGQKClJlbW92ZSAjaWZkZWZzIGZyb20gZGV2aWNlIGRyaXZlcnMgYW5kIGNvbXBpbGUgdGhl bSBvbmx5IHdoZW4Kc2VsZWN0ZWQuIEludHJvZHVjZSBiYXNpYyBkZXZpY2UgcGx1Z2luIGFyY2hp dGVjdHVyZS4KT25jZSB0aGVyZSwgbW92ZSBkZXZpY2UgZGV0ZWN0aW9uIGNvZGUgaW4gY29uZmln dXJlLmFjIHRvIGxpdmUKaW4gb25lIHBsYWNlLgotLS0KIGNvbW1vbi9kZXZpY2UuYyAgICAgICAg ICAgICAgICAgfCAzNTAgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGNvbW1vbi9k ZXZpY2VzL01ha2VmaWxlLmFtICAgICAgfCAgNTcgKysrLS0tCiBjb21tb24vZGV2aWNlcy9ibHVl dG9vdGguYyAgICAgIHwgIDMxIC0tLQogY29tbW9uL2RldmljZXMvZGt1MmxpYnVzYi5jICAgICB8 IDEwOSArKysrKysrLS0tCiBjb21tb24vZGV2aWNlcy9pcmRhLmMgICAgICAgICAgIHwgIDI3IC0t LQogY29tbW9uL2RldmljZXMvb3N4Ymx1ZXRvb3RoLm0gICB8ICAgOCArLQogY29tbW9uL2Rldmlj ZXMvc29ja2V0cGhvbmV0LmMgICB8ICAzOCArLS0tCiBjb21tb24vZGV2aWNlcy90Y3AuYyAgICAg ICAgICAgIHwgIDQyIC0tLS0KIGNvbW1vbi9kZXZpY2VzL3VuaXhibHVldG9vdGguYyAgfCAgMTMg Ky0KIGNvbW1vbi9kZXZpY2VzL3VuaXhpcmRhLmMgICAgICAgfCAgIDQgKy0KIGNvbW1vbi9kZXZp Y2VzL3dpbmJsdWV0b290aC5jICAgfCAgMTAgKy0KIGNvbW1vbi9kZXZpY2VzL3dpbmlyZGEuYyAg ICAgICAgfCAgIDcgKy0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgfCAgOTQgKysr KystLS0tCiBpbmNsdWRlL2RldmljZS5oICAgICAgICAgICAgICAgIHwgICAxIC0KIGluY2x1ZGUv ZGV2aWNlcy9ka3UybGlidXNiLmggICAgfCAgODYgLS0tLS0tLS0KIGluY2x1ZGUvZGV2aWNlcy9z ZXJpYWwuaCAgICAgICAgfCAgIDIgLQogaW5jbHVkZS9kZXZpY2VzL3RjcC5oICAgICAgICAgICB8 ICAgMiAtCiBpbmNsdWRlL2RldmljZXMvdW5peGJsdWV0b290aC5oIHwgIDI3IC0tLQogaW5jbHVk ZS9kZXZpY2VzL3VuaXhpcmRhLmggICAgICB8ICAxNSAtLQogaW5jbHVkZS9nbm9raWkvZGF0YS5o ICAgICAgICAgICB8ICAxNSArLQogMjAgZmlsZXMgY2hhbmdlZCwgMzc5IGluc2VydGlvbnMoKyks IDU1OSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBjb21tb24vZGV2aWNlcy9ibHVl dG9vdGguYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9kZXZpY2VzL2lyZGEuYwogZGVsZXRl IG1vZGUgMTAwNjQ0IGluY2x1ZGUvZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmgKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2RldmljZXMvdW5peGlyZGEuaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9k ZXZpY2UuYyBiL2NvbW1vbi9kZXZpY2UuYwppbmRleCA5Yjg5NTcwOC4uNDk5MzJjYTUgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9kZXZpY2UuYworKysgYi9jb21tb24vZGV2aWNlLmMKQEAgLTE5LDEzICsx OSwxNzIgQEAKICNpbmNsdWRlICJnbm9raWkuaCIKICNpbmNsdWRlICJnbm9raWktaW50ZXJuYWwu aCIKICNpbmNsdWRlICJkZXZpY2UuaCIKKworI2lmZGVmIEhBVkVfQkxVRVRPT1RICisjaW5jbHVk ZSAiZGV2aWNlcy9ibHVldG9vdGguaCIKK3N0YXRpYyBpbnQKK19ibHVldG9vdGhfb3Blbihjb25z dCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQgd2l0aF9hc3luYywKKwkJaW50 IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKK3sKKwly ZXR1cm4gYmx1ZXRvb3RoX29wZW4oc3RhdGUtPmNvbmZpZy5wb3J0X2RldmljZSwgc3RhdGUtPmNv bmZpZy5yZmNvbW1fY24sIHN0YXRlKTsKK30KKworY29uc3Qgc3RhdGljIGduX2RldmljZV9vcHMg X2JsdWV0b290aF9vcHMgPSB7CisJLm9wZW4JPSBfYmx1ZXRvb3RoX29wZW4sCisJLmNsb3NlCT0g Ymx1ZXRvb3RoX2Nsb3NlLAorCS5zZWxlY3QJPSBibHVldG9vdGhfc2VsZWN0LAorCS5yZWFkCT0g Ymx1ZXRvb3RoX3JlYWQsCisJLndyaXRlCT0gYmx1ZXRvb3RoX3dyaXRlLAorfTsKKyMgIGRlZmlu ZSBibHVldG9vdGhfb3BzICZfYmx1ZXRvb3RoX29wcworI2Vsc2UKKyMgIGRlZmluZSBibHVldG9v dGhfb3BzCU5VTEwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSUJVU0IKKyNpbmNsdWRlICJkZXZp Y2VzL2RrdTJsaWJ1c2IuaCIKK3N0YXRpYyBpbnQKK19ka3UybGlidXNiX29wZW4oY29uc3QgY2hh ciAqZmlsZSwgaW50IHdpdGhfb2RkX3Bhcml0eSwgaW50IHdpdGhfYXN5bmMsCisJCSBpbnQgd2l0 aF9od19oYW5kc2hha2UsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQoreworCXJldHVy biBmYnVzZGt1MnVzYl9vcGVuKHN0YXRlKTsKK30KKworc3RhdGljIGludAorX2RrdTJsaWJ1c2Jf Y2xvc2UoaW50IGZkLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKK3sKKwlyZXR1cm4g ZmJ1c2RrdTJ1c2JfY2xvc2Uoc3RhdGUpOworfQorCitzdGF0aWMgaW50CitfZGt1MnVzYl9zZWxl Y3Qoc3RydWN0IHRpbWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRl KTsKK3sKKwlyZXR1cm4gZmJ1c2RrdTJ1c2Jfc2VsZWN0KHRpbWVvdXQsIHN0YXRlKTsKK30KKwor c3RhdGljIGludAorX2RrdTJ1c2JfcmVhZChfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0 IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCit7CisJcmV0dXJuIGZidXNka3UydXNiX3JlYWQoYnl0 ZXMsIHNpemUsIHN0YXRlKTsKK30KKworc3RhdGljIGludAorX2RrdTJ1c2Jfd3JpdGUoaW50IGZk LCBjb25zdCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAq c3RhdGUpCit7CisJcmV0dXJuIGZidXNka3UydXNiX3dyaXRlKGJ5dGVzLCBzaXplLCBzdGF0ZSk7 Cit9CisKK2NvbnN0IHN0YXRpYyBnbl9kZXZpY2Vfb3BzIF9ka3UybGlidXNiX29wcyA9IHsKKwku b3Blbgk9IF9ka3UybGlidXNiX29wZW4sCisJLmNsb3NlCT0gX2RrdTJ1c2JfY2xvc2UsCisJLnNl bGVjdAk9IF9ka3UydXNiX3NlbGVjdCwKKwkucmVhZAk9IF9ka3UydXNiX3JlYWQsCisJLndyaXRl CT0gX2RrdTJ1c2Jfd3JpdGUsCit9OworIyAgZGVmaW5lIGRrdTJsaWJ1c2Jfb3BzCSZfZGt1Mmxp YnVzYl9vcHMKKyNlbHNlCisjICBkZWZpbmUgZGt1MmxpYnVzYl9vcHMJTlVMTAorI2VuZGlmCisK KyNpZmRlZiBIQVZFX0lSREEKICNpbmNsdWRlICJkZXZpY2VzL2lyZGEuaCIKLSNpbmNsdWRlICJk ZXZpY2VzL3VuaXhibHVldG9vdGguaCIKLSNpbmNsdWRlICJkZXZpY2VzL3RjcC5oIgorc3RhdGlj IGludAorX2lyZGFfb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBp bnQgd2l0aF9hc3luYywKKwkgICBpbnQgd2l0aF9od19oYW5kc2hha2UsIHN0cnVjdCBnbl9zdGF0 ZW1hY2hpbmUgKnN0YXRlKQoreworCXJldHVybiBpcmRhX29wZW4oc3RhdGUpOworfQorCitjb25z dCBzdGF0aWMgZ25fZGV2aWNlX29wcyBfaXJkYV9vcHMgPSB7CisJLm9wZW4JPSBfaXJkYV9vcGVu LAorCS5jbG9zZQk9IGlyZGFfY2xvc2UsCisJLnNlbGVjdAk9IGlyZGFfc2VsZWN0LAorCS5yZWFk CT0gaXJkYV9yZWFkLAorCS53cml0ZQk9IGlyZGFfd3JpdGUsCit9OworIyAgZGVmaW5lIGlyZGFf b3BzCSZfaXJkYV9vcHMKKyNlbHNlCisjICBkZWZpbmUgaXJkYV9vcHMJTlVMTAorI2VuZGlmCisK ICNpbmNsdWRlICJkZXZpY2VzL3NlcmlhbC5oIgotI2luY2x1ZGUgImRldmljZXMvdGVrcmFtLmgi Ci0jaW5jbHVkZSAiZGV2aWNlcy9ka3UybGlidXNiLmgiCitjb25zdCBzdGF0aWMgZ25fZGV2aWNl X29wcyBfc2VyaWFsX29wcyA9IHsKKwkub3Blbgk9IHNlcmlhbF9vcGVuZGV2aWNlLAorCS5jbG9z ZQk9IHNlcmlhbF9jbG9zZSwKKwkuc2VsZWN0CT0gc2VyaWFsX3NlbGVjdCwKKwkucmVhZAk9IHNl cmlhbF9yZWFkLAorCS53cml0ZQk9IHNlcmlhbF93cml0ZSwKKwkubnJjdmQJPSBzZXJpYWxfbnJl Y2VpdmVkLAorCS5mbHVzaAk9IHNlcmlhbF9mbHVzaCwKKwkuc3BlZWQJPSBzZXJpYWxfY2hhbmdl c3BlZWQsCisJLmR0cnJ0cwk9IHNlcmlhbF9zZXRkdHJydHMsCit9OworI2RlZmluZSBzZXJpYWxf b3BzCSZfc2VyaWFsX29wcworCisjaWZkZWYgSEFWRV9TT0NLRVRQSE9ORVQKICNpbmNsdWRlICJk ZXZpY2VzL3NvY2tldHBob25ldC5oIgorc3RhdGljIGludAorX3NvY2tldHBob25ldF9vcGVuKGNv bnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3aXRoX2FzeW5jLAorCQkg ICBpbnQgd2l0aF9od19oYW5kc2hha2UsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQor eworCXJldHVybiBzb2NrZXRwaG9uZXRfb3BlbihmaWxlLCB3aXRoX2FzeW5jLCBzdGF0ZSk7Cit9 CisKK3N0YXRpYyBpbnQKK2ludCBfc29ja2V0cGhvbmV0X2Nsb3NlKGludCBmZCwgc3RydWN0IGdu X3N0YXRlbWFjaGluZSAqc3RhdGUpCit7CisJcmV0dXJuIHNvY2tldHBob25ldF9jbG9zZShzdGF0 ZSk7Cit9CisKK2NvbnN0IHN0YXRpYyBnbl9kZXZpY2Vfb3BzIF9waG9uZXRfb3BzID0geworCS5v cGVuCT0gX3NvY2tldHBob25ldF9vcGVuLAorCS5jbG9zZQk9IF9zb2NrZXRwaG9uZXRfY2xvc2Us CisJLnNlbGVjdAk9IHNvY2tldHBob25ldF9zZWxlY3QsCisJLnJlYWQJPSBzb2NrZXRwaG9uZXRf cmVhZCwKKwkud3JpdGUJPSBzb2NrZXRwaG9uZXRfd3JpdGUsCit9OworIyAgZGVmaW5lIHBob25l dF9vcHMJJl9waG9uZXRfb3BzCisjZWxzZQorIyAgZGVmaW5lIHBob25ldF9vcHMJTlVMTAorI2Vu ZGlmCisKKyNpZm5kZWYgV0lOMzIKKyNpbmNsdWRlICJkZXZpY2VzL3RjcC5oIgorc3RhdGljIGlu dAorX3RjcF9vcGVuKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3 aXRoX2FzeW5jLAorCSAgaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNo aW5lICpzdGF0ZSkKK3sKKwlyZXR1cm4gdGNwX29wZW5kZXZpY2UoZmlsZSwgd2l0aF9hc3luYywg c3RhdGUpOworfQorCitjb25zdCBzdGF0aWMgZ25fZGV2aWNlX29wcyBfdGNwX29wcyA9IHsKKwku b3Blbgk9IF90Y3Bfb3BlbiwKKwkuY2xvc2UJPSB0Y3BfY2xvc2UsCisJLnNlbGVjdAk9IHRjcF9z ZWxlY3QsCisJLnJlYWQJPSB0Y3BfcmVhZCwKKwkud3JpdGUJPSB0Y3Bfd3JpdGUsCit9OworIyAg ZGVmaW5lIHRjcF9vcHMJJl90Y3Bfb3BzCisjZWxzZQorIyAgZGVmaW5lIHRjcF9vcHMJTlVMTAor I2VuZGlmCisKKyNpbmNsdWRlICJkZXZpY2VzL3Rla3JhbS5oIgorc3RhdGljIGludAorX3Rla3Jh bV9vcGVuKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3aXRoX2Fz eW5jLAorCSAgICAgaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5l ICpzdGF0ZSkKK3sKKwlyZXR1cm4gdGVrcmFtX29wZW4oZmlsZSwgc3RhdGUpOworfQorCitjb25z dCBzdGF0aWMgZ25fZGV2aWNlX29wcyBfdGVrcmFtX29wcyA9IHsKKwkub3Blbgk9IF90ZWtyYW1f b3BlbiwKKwkuY2xvc2UJPSB0ZWtyYW1fY2xvc2UsCisJLnNlbGVjdAk9IHRla3JhbV9zZWxlY3Qs CisJLnJlYWQJPSB0ZWtyYW1fcmVhZCwKKwkud3JpdGUJPSB0ZWtyYW1fd3JpdGUsCit9OworI2Rl ZmluZSB0ZWtyYW1fb3BzCSZfdGVrcmFtX29wcwogCiBHTk9LSUlfQVBJIGludCBkZXZpY2VfZ2V0 ZmQoc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7CkBAIC0zNiw0MCArMTk1LDQ2IEBA IGludCBkZXZpY2Vfb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBp bnQgd2l0aF9hc3luYywKIAkJaW50IHdpdGhfaHdfaGFuZHNoYWtlLCBnbl9jb25uZWN0aW9uX3R5 cGUgZGV2aWNlX3R5cGUsCiAJCXN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewotCXN0 YXRlLT5kZXZpY2UudHlwZSA9IGRldmljZV90eXBlOworCXN0YXRlLT5kZXZpY2Uub3BzID0gTlVM TDsKIAlzdGF0ZS0+ZGV2aWNlLmRldmljZV9pbnN0YW5jZSA9IE5VTEw7CiAKIAlkcHJpbnRmKCJk ZXZpY2U6IG9wZW5pbmcgZGV2aWNlICVzXG4iLCAoZGV2aWNlX3R5cGUgPT0gR05fQ1RfREtVMkxJ QlVTQikgPyAiVVNCIiA6IGZpbGUpOwogCi0Jc3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsK LQljYXNlIEdOX0NUX0RLVTI6CisJc3dpdGNoIChkZXZpY2VfdHlwZSkgewogCWNhc2UgR05fQ1Rf U2VyaWFsOgorCWNhc2UgR05fQ1RfREFVOVA6CisJY2FzZSBHTl9DVF9ETFIzUDoKIAljYXNlIEdO X0NUX0luZnJhcmVkOgotCQlzdGF0ZS0+ZGV2aWNlLmZkID0gc2VyaWFsX29wZW5kZXZpY2UoZmls ZSwgd2l0aF9vZGRfcGFyaXR5LCB3aXRoX2FzeW5jLCB3aXRoX2h3X2hhbmRzaGFrZSwgc3RhdGUp OworCWNhc2UgR05fQ1RfTTJCVVM6CisJY2FzZSBHTl9DVF9ES1UyOgorCQlzdGF0ZS0+ZGV2aWNl Lm9wcyA9IHNlcmlhbF9vcHM7CiAJCWJyZWFrOwogCWNhc2UgR05fQ1RfSXJkYToKLQkJc3RhdGUt PmRldmljZS5mZCA9IGlyZGFfb3BlbihzdGF0ZSk7CisJCXN0YXRlLT5kZXZpY2Uub3BzID0gaXJk YV9vcHM7CiAJCWJyZWFrOwogCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlzdGF0ZS0+ZGV2aWNl LmZkID0gYmx1ZXRvb3RoX29wZW4oc3RhdGUtPmNvbmZpZy5wb3J0X2RldmljZSwgc3RhdGUtPmNv bmZpZy5yZmNvbW1fY24sIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMgPSBibHVldG9vdGhf b3BzOwogCQlicmVhazsKIAljYXNlIEdOX0NUX1Rla3JhbToKLQkJc3RhdGUtPmRldmljZS5mZCA9 IHRla3JhbV9vcGVuKGZpbGUsIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5vcHMgPSB0ZWtyYW1f b3BzOwogCQlicmVhazsKIAljYXNlIEdOX0NUX1RDUDoKLQkJc3RhdGUtPmRldmljZS5mZCA9IHRj cF9vcGVuZGV2aWNlKGZpbGUsIHdpdGhfYXN5bmMsIHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5v cHMgPSB0Y3Bfb3BzOwogCQlicmVhazsKIAljYXNlIEdOX0NUX0RLVTJMSUJVU0I6Ci0JCXN0YXRl LT5kZXZpY2UuZmQgPSBmYnVzZGt1MnVzYl9vcGVuKHN0YXRlKTsKKwkJc3RhdGUtPmRldmljZS5v cHMgPSBka3UybGlidXNiX29wczsKIAkJYnJlYWs7CiAJY2FzZSBHTl9DVF9TT0NLRVRQSE9ORVQ6 Ci0JCXN0YXRlLT5kZXZpY2UuZmQgPSBzb2NrZXRwaG9uZXRfb3BlbihmaWxlLCB3aXRoX2FzeW5j LCBzdGF0ZSk7CisJCXN0YXRlLT5kZXZpY2Uub3BzID0gcGhvbmV0X29wczsKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKLQkJc3RhdGUtPmRldmljZS5mZCA9IC0xOwogCQlicmVhazsKIAl9CiAKKwlpZiAo IXN0YXRlLT5kZXZpY2Uub3BzKQorCQlyZXR1cm4gMDsKKworCXN0YXRlLT5kZXZpY2UuZmQgPSBz dGF0ZS0+ZGV2aWNlLm9wcy0+b3BlbihmaWxlLCB3aXRoX29kZF9wYXJpdHksIHdpdGhfYXN5bmMs IHdpdGhfaHdfaGFuZHNoYWtlLCBzdGF0ZSk7CiAJaWYgKHN0YXRlLT5kZXZpY2UuZmQgPCAwKQog CQlyZXR1cm4gMDsKIApAQCAtOTUsMTgzICsyNjAsNTYgQEAgdm9pZCBkZXZpY2VfY2xvc2Uoc3Ry dWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiAJaWYgKGRldmljZV9zY3JpcHQoc3RhdGUtPmRl dmljZS5mZCwgMCwgc3RhdGUpID09IC0xKQogCQlkcHJpbnRmKCJnbm9raWkgZGV2aWNlIGNsb3Nl OiBkaXNjb25uZWN0X3NjcmlwdCBmYWlsdXJlXG4iKTsKIAotCXN3aXRjaCAoc3RhdGUtPmRldmlj ZS50eXBlKSB7Ci0JY2FzZSBHTl9DVF9ES1UyOgotCWNhc2UgR05fQ1RfU2VyaWFsOgotCWNhc2Ug R05fQ1RfSW5mcmFyZWQ6Ci0JCXNlcmlhbF9jbG9zZShzdGF0ZS0+ZGV2aWNlLmZkLCBzdGF0ZSk7 Ci0JCWJyZWFrOwotCWNhc2UgR05fQ1RfSXJkYToKLQkJaXJkYV9jbG9zZShzdGF0ZS0+ZGV2aWNl LmZkLCBzdGF0ZSk7Ci0JCWJyZWFrOwotCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlibHVldG9v dGhfY2xvc2Uoc3RhdGUtPmRldmljZS5mZCwgc3RhdGUpOwotCQlicmVhazsKLQljYXNlIEdOX0NU X1Rla3JhbToKLQkJdGVrcmFtX2Nsb3NlKHN0YXRlLT5kZXZpY2UuZmQsIHN0YXRlKTsKLQkJYnJl YWs7Ci0JY2FzZSBHTl9DVF9UQ1A6Ci0JCXRjcF9jbG9zZShzdGF0ZS0+ZGV2aWNlLmZkLCBzdGF0 ZSk7Ci0JCWJyZWFrOwotCWNhc2UgR05fQ1RfREtVMkxJQlVTQjoKLQkJZmJ1c2RrdTJ1c2JfY2xv c2Uoc3RhdGUpOwotCQlicmVhazsKLQljYXNlIEdOX0NUX1NPQ0tFVFBIT05FVDoKLQkJc29ja2V0 cGhvbmV0X2Nsb3NlKHN0YXRlKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQor CXN0YXRlLT5kZXZpY2Uub3BzLT5jbG9zZShzdGF0ZS0+ZGV2aWNlLmZkLCBzdGF0ZSk7CiAKIAlm cmVlKHN0YXRlLT5kZXZpY2UuZGV2aWNlX2luc3RhbmNlKTsKIAlzdGF0ZS0+ZGV2aWNlLmRldmlj ZV9pbnN0YW5jZSA9IE5VTEw7CiB9CiAKLXZvaWQgZGV2aWNlX3Jlc2V0KHN0cnVjdCBnbl9zdGF0 ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybjsKLX0KLQogdm9pZCBkZXZpY2Vfc2V0ZHRycnRz KGludCBkdHIsIGludCBydHMsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewotCXN3 aXRjaCAoc3RhdGUtPmRldmljZS50eXBlKSB7Ci0JY2FzZSBHTl9DVF9ES1UyOgotCWNhc2UgR05f Q1RfU2VyaWFsOgotCWNhc2UgR05fQ1RfSW5mcmFyZWQ6CisJaWYgKHN0YXRlLT5kZXZpY2Uub3Bz LT5kdHJydHMpIHsKIAkJZHByaW50ZigiZGV2aWNlOiBzZXR0aW5nIFJUUyB0byAlcyBhbmQgRFRS IHRvICVzXG4iLCBydHMgPyAiaGlnaCIgOiAibG93IiwgZHRyID8gImhpZ2giIDogImxvdyIpOwot CQlzZXJpYWxfc2V0ZHRycnRzKHN0YXRlLT5kZXZpY2UuZmQsIGR0ciwgcnRzLCBzdGF0ZSk7Ci0J CWJyZWFrOwotCWNhc2UgR05fQ1RfSXJkYToKLQljYXNlIEdOX0NUX0JsdWV0b290aDoKLQljYXNl IEdOX0NUX1Rla3JhbToKLQljYXNlIEdOX0NUX1RDUDoKLQljYXNlIEdOX0NUX0RLVTJMSUJVU0I6 Ci0JY2FzZSBHTl9DVF9TT0NLRVRQSE9ORVQ6Ci0JZGVmYXVsdDoKLQkJYnJlYWs7CisJCXN0YXRl LT5kZXZpY2Uub3BzLT5kdHJydHMoc3RhdGUtPmRldmljZS5mZCwgZHRyLCBydHMsIHN0YXRlKTsK IAl9CiB9CiAKIHZvaWQgZGV2aWNlX2NoYW5nZXNwZWVkKGludCBzcGVlZCwgc3RydWN0IGduX3N0 YXRlbWFjaGluZSAqc3RhdGUpCiB7Ci0Jc3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQlj YXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBHTl9DVF9TZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJl ZDoKKwlpZiAoc3RhdGUtPmRldmljZS5vcHMtPnNwZWVkKSB7CiAJCWRwcmludGYoImRldmljZTog c2V0dGluZyBzcGVlZCB0byAlZFxuIiwgc3BlZWQpOwotCQlzZXJpYWxfY2hhbmdlc3BlZWQoc3Rh dGUtPmRldmljZS5mZCwgc3BlZWQsIHN0YXRlKTsKLQkJYnJlYWs7Ci0JY2FzZSBHTl9DVF9UZWty YW06Ci0JCWRwcmludGYoImRldmljZTogc2V0dGluZyBzcGVlZCB0byAlZFxuIiwgc3BlZWQpOwot CQl0ZWtyYW1fY2hhbmdlc3BlZWQoc3RhdGUtPmRldmljZS5mZCwgc3BlZWQsIHN0YXRlKTsKLQkJ YnJlYWs7Ci0JY2FzZSBHTl9DVF9JcmRhOgotCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCWNhc2Ug R05fQ1RfVENQOgotCWNhc2UgR05fQ1RfREtVMkxJQlVTQjoKLQljYXNlIEdOX0NUX1NPQ0tFVFBI T05FVDoKLQlkZWZhdWx0OgotCQlicmVhazsKKwkJc3RhdGUtPmRldmljZS5vcHMtPnNwZWVkKHN0 YXRlLT5kZXZpY2UuZmQsIHNwZWVkLCBzdGF0ZSk7CiAJfQogfQogCiBzaXplX3QgZGV2aWNlX3Jl YWQoX19wdHJfdCBidWYsIHNpemVfdCBuYnl0ZXMsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0 YXRlKQogewotCXN3aXRjaCAoc3RhdGUtPmRldmljZS50eXBlKSB7Ci0JY2FzZSBHTl9DVF9ES1Uy OgotCWNhc2UgR05fQ1RfU2VyaWFsOgotCWNhc2UgR05fQ1RfSW5mcmFyZWQ6Ci0JCXJldHVybiBz ZXJpYWxfcmVhZChzdGF0ZS0+ZGV2aWNlLmZkLCBidWYsIG5ieXRlcywgc3RhdGUpOwotCWNhc2Ug R05fQ1RfSXJkYToKLQkJcmV0dXJuIGlyZGFfcmVhZChzdGF0ZS0+ZGV2aWNlLmZkLCBidWYsIG5i eXRlcywgc3RhdGUpOwotCWNhc2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlyZXR1cm4gYmx1ZXRvb3Ro X3JlYWQoc3RhdGUtPmRldmljZS5mZCwgYnVmLCBuYnl0ZXMsIHN0YXRlKTsKLQljYXNlIEdOX0NU X1Rla3JhbToKLQkJcmV0dXJuIHRla3JhbV9yZWFkKHN0YXRlLT5kZXZpY2UuZmQsIGJ1ZiwgbmJ5 dGVzLCBzdGF0ZSk7Ci0JY2FzZSBHTl9DVF9UQ1A6Ci0JCXJldHVybiB0Y3BfcmVhZChzdGF0ZS0+ ZGV2aWNlLmZkLCBidWYsIG5ieXRlcywgc3RhdGUpOwotCWNhc2UgR05fQ1RfREtVMkxJQlVTQjoK LQkJcmV0dXJuIGZidXNka3UydXNiX3JlYWQoYnVmLCBuYnl0ZXMsIHN0YXRlKTsKLQljYXNlIEdO X0NUX1NPQ0tFVFBIT05FVDoKLQkJcmV0dXJuIHNvY2tldHBob25ldF9yZWFkKHN0YXRlLT5kZXZp Y2UuZmQsIGJ1ZiwgbmJ5dGVzLCBzdGF0ZSk7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCXJl dHVybiAwOworCXJldHVybiBzdGF0ZS0+ZGV2aWNlLm9wcy0+cmVhZChzdGF0ZS0+ZGV2aWNlLmZk LCBidWYsIG5ieXRlcywgc3RhdGUpOwogfQogCiBzaXplX3QgZGV2aWNlX3dyaXRlKGNvbnN0IF9f cHRyX3QgYnVmLCBzaXplX3Qgbiwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7Ci0J c3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQljYXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBH Tl9DVF9TZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJlZDoKLQkJcmV0dXJuIHNlcmlhbF93cml0 ZShzdGF0ZS0+ZGV2aWNlLmZkLCBidWYsIG4sIHN0YXRlKTsKLQljYXNlIEdOX0NUX0lyZGE6Ci0J CXJldHVybiBpcmRhX3dyaXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwotCWNh c2UgR05fQ1RfQmx1ZXRvb3RoOgotCQlyZXR1cm4gYmx1ZXRvb3RoX3dyaXRlKHN0YXRlLT5kZXZp Y2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwotCWNhc2UgR05fQ1RfVGVrcmFtOgotCQlyZXR1cm4gdGVr cmFtX3dyaXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwotCWNhc2UgR05fQ1Rf VENQOgotCQlyZXR1cm4gdGNwX3dyaXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUp OwotCWNhc2UgR05fQ1RfREtVMkxJQlVTQjoKLQkJcmV0dXJuIGZidXNka3UydXNiX3dyaXRlKGJ1 Ziwgbiwgc3RhdGUpOwotCWNhc2UgR05fQ1RfU09DS0VUUEhPTkVUOgotCQlyZXR1cm4gc29ja2V0 cGhvbmV0X3dyaXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwotCWRlZmF1bHQ6 Ci0JCWJyZWFrOwotCX0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gc3RhdGUtPmRldmljZS5vcHMtPndy aXRlKHN0YXRlLT5kZXZpY2UuZmQsIGJ1Ziwgbiwgc3RhdGUpOwogfQogCiBpbnQgZGV2aWNlX3Nl bGVjdChzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3Rh dGUpCiB7Ci0Jc3dpdGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQljYXNlIEdOX0NUX0RLVTI6 Ci0JY2FzZSBHTl9DVF9TZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJlZDoKLQkJcmV0dXJuIHNl cmlhbF9zZWxlY3Qoc3RhdGUtPmRldmljZS5mZCwgdGltZW91dCwgc3RhdGUpOwotCWNhc2UgR05f Q1RfSXJkYToKLQkJcmV0dXJuIGlyZGFfc2VsZWN0KHN0YXRlLT5kZXZpY2UuZmQsIHRpbWVvdXQs IHN0YXRlKTsKLQljYXNlIEdOX0NUX0JsdWV0b290aDoKLQkJcmV0dXJuIGJsdWV0b290aF9zZWxl Y3Qoc3RhdGUtPmRldmljZS5mZCwgdGltZW91dCwgc3RhdGUpOwotCWNhc2UgR05fQ1RfVGVrcmFt OgotCQlyZXR1cm4gdGVrcmFtX3NlbGVjdChzdGF0ZS0+ZGV2aWNlLmZkLCB0aW1lb3V0LCBzdGF0 ZSk7Ci0JY2FzZSBHTl9DVF9UQ1A6Ci0JCXJldHVybiB0Y3Bfc2VsZWN0KHN0YXRlLT5kZXZpY2Uu ZmQsIHRpbWVvdXQsIHN0YXRlKTsKLQljYXNlIEdOX0NUX0RLVTJMSUJVU0I6Ci0JCXJldHVybiBm YnVzZGt1MnVzYl9zZWxlY3QodGltZW91dCwgc3RhdGUpOwotCWNhc2UgR05fQ1RfU09DS0VUUEhP TkVUOgotCQlyZXR1cm4gc29ja2V0cGhvbmV0X3NlbGVjdChzdGF0ZS0+ZGV2aWNlLmZkLCB0aW1l b3V0LCBzdGF0ZSk7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCXJldHVybiAtMTsKKwlyZXR1 cm4gc3RhdGUtPmRldmljZS5vcHMtPnNlbGVjdChzdGF0ZS0+ZGV2aWNlLmZkLCB0aW1lb3V0LCBz dGF0ZSk7CiB9CiAKIGduX2Vycm9yIGRldmljZV9ucmVjZWl2ZWQoaW50ICpuLCBzdHJ1Y3QgZ25f c3RhdGVtYWNoaW5lICpzdGF0ZSkKIHsKIAkqbiA9IC0xOwotCi0Jc3dpdGNoIChzdGF0ZS0+ZGV2 aWNlLnR5cGUpIHsKLQljYXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBHTl9DVF9TZXJpYWw6Ci0JY2Fz ZSBHTl9DVF9JbmZyYXJlZDoKLQkJcmV0dXJuIHNlcmlhbF9ucmVjZWl2ZWQoc3RhdGUtPmRldmlj ZS5mZCwgbiwgc3RhdGUpOwotCWRlZmF1bHQ6CisJaWYgKCFzdGF0ZS0+ZGV2aWNlLm9wcy0+bnJj dmQpCiAJCXJldHVybiBHTl9FUlJfTk9UU1VQUE9SVEVEOwotCX0KKworCXJldHVybiBzdGF0ZS0+ ZGV2aWNlLm9wcy0+bnJjdmQoc3RhdGUtPmRldmljZS5mZCwgbiwgc3RhdGUpOwogfQogCiBnbl9l cnJvciBkZXZpY2VfZmx1c2goc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiB7Ci0Jc3dp dGNoIChzdGF0ZS0+ZGV2aWNlLnR5cGUpIHsKLQljYXNlIEdOX0NUX0RLVTI6Ci0JY2FzZSBHTl9D VF9TZXJpYWw6Ci0JY2FzZSBHTl9DVF9JbmZyYXJlZDoKLQkJcmV0dXJuIHNlcmlhbF9mbHVzaChz dGF0ZS0+ZGV2aWNlLmZkLCBzdGF0ZSk7Ci0JZGVmYXVsdDoKKwlpZiAoIXN0YXRlLT5kZXZpY2Uu b3BzLT5mbHVzaCkKIAkJcmV0dXJuIEdOX0VSUl9OT1RTVVBQT1JURUQ7Ci0JfQorCisJcmV0dXJu IHN0YXRlLT5kZXZpY2Uub3BzLT5mbHVzaChzdGF0ZS0+ZGV2aWNlLmZkLCBzdGF0ZSk7CiB9CmRp ZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy9NYWtlZmlsZS5hbSBiL2NvbW1vbi9kZXZpY2VzL01h a2VmaWxlLmFtCmluZGV4IDg2MDc2MmU0Li41OTJjMmI5ZCAxMDA2NDQKLS0tIGEvY29tbW9uL2Rl dmljZXMvTWFrZWZpbGUuYW0KKysrIGIvY29tbW9uL2RldmljZXMvTWFrZWZpbGUuYW0KQEAgLTEs MzQgKzEsMzggQEAKIG5vaW5zdF9MVExJQlJBUklFUyA9IGxpYkRFVklDRVMubGEKIAotV0lOMzJf RklMRVMgPSBcCi0Jd2luc2VyaWFsLmMgXAotCXdpbmlyZGEuYyBcCi0Jd2luYmx1ZXRvb3RoLmMK LQotVU5JWF9GSUxFUyA9IFwKLQl1bml4c2VyaWFsLmMgXAotCXVuaXhpcmRhLmMgXAotCXRjcC5j IFwKLQlzb2NrZXRwaG9uZXQuYwotCi1pZiBGT1JfTUFDCi1VTklYX1NQRUNJRklDX0ZJTEVTID0g b3N4Ymx1ZXRvb3RoLm0KLWVsc2UKLVVOSVhfU1BFQ0lGSUNfRklMRVMgPSB1bml4Ymx1ZXRvb3Ro LmMKK2dub2tpaV9kZXZpY2VzCT0gdGVrcmFtLmMKK2lmIExJQlVTQgorZ25va2lpX2RldmljZXMJ Kz0gZGt1MmxpYnVzYi5jCitlbmRpZgoraWYgIVdJTjMyCitnbm9raWlfZGV2aWNlcwkrPSB0Y3Au YworZW5kaWYKK2lmIFNPQ0tFVFBIT05FVAorZ25va2lpX2RldmljZXMJKz0gc29ja2V0cGhvbmV0 LmMKK2VuZGlmCitpZiBPU1hCTFVFVE9PVEgKK2dub2tpaV9kZXZpY2VzCSs9IG9zeGJsdWV0b290 aC5tCitlbmRpZgoraWYgVU5JWEJMVUVUT09USAorZ25va2lpX2RldmljZXMJKz0gdW5peGJsdWV0 b290aC5jCitlbmRpZgoraWYgVU5JWElSREEKK2dub2tpaV9kZXZpY2VzCSs9IHVuaXhpcmRhLmMK K2VuZGlmCitpZiAhV0lOMzIKK2dub2tpaV9kZXZpY2VzCSs9IHVuaXhzZXJpYWwuYworZW5kaWYK K2lmIFdJTkJMVUVUT09USAorZ25va2lpX2RldmljZXMJKz0gd2luYmx1ZXRvb3RoLmMKK2VuZGlm CitpZiBXSU5JUkRBCitnbm9raWlfZGV2aWNlcwkrPSB3aW5pcmRhLmMKIGVuZGlmCi0KIGlmIFdJ TjMyCi1QTEFURk9STV9GSUxFUyA9ICQoV0lOMzJfRklMRVMpCi1lbHNlCi1QTEFURk9STV9GSUxF UyA9ICQoVU5JWF9GSUxFUykgJChVTklYX1NQRUNJRklDX0ZJTEVTKQorZ25va2lpX2RldmljZXMJ Kz0gd2luc2VyaWFsLmMKIGVuZGlmCiAKLWxpYkRFVklDRVNfbGFfU09VUkNFUyA9IFwKLQkkKFBM QVRGT1JNX0ZJTEVTKSBcCi0JdGVrcmFtLmMgXAotCWlyZGEuYyBcCi0JZGt1MmxpYnVzYi5jIFwK LQlibHVldG9vdGguYworbGliREVWSUNFU19sYV9TT1VSQ0VTID0gJChnbm9raWlfZGV2aWNlcykK IAogbGliREVWSUNFU19sYV9DRkxBR1MgPQkJXAogCS1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlCkBA IC0zNyw2ICs0MSwzIEBAIGxpYkRFVklDRVNfbGFfTElCQUREID0JCVwKIAkkKFVTQl9MSUJTKQkJ XAogCSQoQkxVRVRPT1RIX0xJQlMpCVwKIAkkKFRDUF9MSUJTKQotCi1FWFRSQV9ESVNUID0gJChX SU4zMl9GSUxFUykgJChVTklYX0ZJTEVTKSAkKFVOSVhfU1BFQ0lGSUNfRklMRVMpCi0KZGlmZiAt LWdpdCBhL2NvbW1vbi9kZXZpY2VzL2JsdWV0b290aC5jIGIvY29tbW9uL2RldmljZXMvYmx1ZXRv b3RoLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjY2Y0NDhiLi4wMDAwMDAwMAot LS0gYS9jb21tb24vZGV2aWNlcy9ibHVldG9vdGguYworKysgL2Rldi9udWxsCkBAIC0xLDMxICsw LDAgQEAKLS8qCi0KLSAgRyBOIE8gSyBJIEkKLQotICBBIExpbnV4L1VuaXggdG9vbHNldCBhbmQg ZHJpdmVyIGZvciB0aGUgbW9iaWxlIHBob25lcy4KLQotICBUaGlzIGZpbGUgaXMgcGFydCBvZiBn bm9raWkuCi0KLSAgQ29weXJpZ2h0IChDKSAyMDAyICAgICAgIE1hcmNlbCBIb2x0bWFubiA8bWFy Y2VsQGhvbHRtYW5uLm9yZz4KLSAgQ29weXJpZ2h0IChDKSAyMDAzICAgICAgIEJPUkJFTFkgWm9s dGFuCi0gIENvcHlyaWdodCAoQykgMjAwNCAgICAgICBQYXdlbCBLb3QsIFBoaWwgQXNoYnkKLQot ICBGYWtlIGRlZmluaXRpb25zIGZvciB0aGUgYmx1ZXRvb3RoIGhhbmRsaW5nIGZ1bmN0aW9ucy4K LQotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgImNvbXBhdC5oIgotI2luY2x1 ZGUgIm1pc2MuaCIKLSNpbmNsdWRlICJnbm9raWkuaCIKLSNpbmNsdWRlICJkZXZpY2VzL3VuaXhi bHVldG9vdGguaCIKLQotI2lmbmRlZiBIQVZFX0JMVUVUT09USAotCi1pbnQgYmx1ZXRvb3RoX29w ZW4oY29uc3QgY2hhciAqYWRkciwgdWludDhfdCBjaGFubmVsLCBzdHJ1Y3QgZ25fc3RhdGVtYWNo aW5lICpzdGF0ZSkgeyByZXR1cm4gLTE7IH0KLWludCBibHVldG9vdGhfY2xvc2UoaW50IGZkLCBz dHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkgeyByZXR1cm4gLTE7IH0KLWludCBibHVldG9v dGhfd3JpdGUoaW50IGZkLCBjb25zdCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGdu X3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgYmx1ZXRvb3RoX3JlYWQo aW50IGZkLCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAq c3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgYmx1ZXRvb3RoX3NlbGVjdChpbnQgZmQsIHN0cnVj dCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkgeyByZXR1 cm4gLTE7IH0KLQotI2VuZGlmIC8qIEhBVkVfQkxVRVRPT1RIICovCmRpZmYgLS1naXQgYS9jb21t b24vZGV2aWNlcy9ka3UybGlidXNiLmMgYi9jb21tb24vZGV2aWNlcy9ka3UybGlidXNiLmMKaW5k ZXggNzlkZDlhZDkuLmMyNDJiNTEwIDEwMDY0NAotLS0gYS9jb21tb24vZGV2aWNlcy9ka3UybGli dXNiLmMKKysrIGIvY29tbW9uL2RldmljZXMvZGt1MmxpYnVzYi5jCkBAIC0yOSwzMyArMjksODQg QEAKICMgIGRlZmluZSBFTk9EQVRBCTYxCiAjZW5kaWYKIAotI2lmbmRlZiBIQVZFX0xJQlVTQgot aW50IGZidXNka3UydXNiX29wZW4oc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0J cmV0dXJuIC0xOwotfQotCi1pbnQgZmJ1c2RrdTJ1c2JfY2xvc2Uoc3RydWN0IGduX3N0YXRlbWFj aGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1pbnQgZmJ1c2RrdTJ1c2Jfd3JpdGUo Y29uc3QgX19wdHJfdCBieXRlcywgaW50IHNpemUsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0 YXRlKQotewotCXJldHVybiAtMTsKLX0KKyNpbmNsdWRlIDx1c2IuaD4KKworLyogSW5mb3JtYXRp b24gYWJvdXQgYSBVU0IgREtVMiBGQlVTIGludGVyZmFjZSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0g Ki8KK3N0cnVjdCBmYnVzX3VzYl9pbnRlcmZhY2VfdHJhbnNwb3J0IHsKKwlzdHJ1Y3QgZmJ1c191 c2JfaW50ZXJmYWNlX3RyYW5zcG9ydCAqcHJldiwgKm5leHQ7CS8qIE5leHQgYW5kIHByZXZpb3Vz IGludGVyZmFjZXMgaW4gdGhlIGxpc3QgKi8KKwlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2aWNlOwkJ LyogVVNCIGRldmljZSB0aGF0IGhhcyB0aGUgaW50ZXJmYWNlICovCisJaW50IGNvbmZpZ3VyYXRp b247CQkJLyogRGV2aWNlIGNvbmZpZ3VyYXRpb24gKi8KKwlpbnQgY29uZmlndXJhdGlvbl9kZXNj cmlwdGlvbjsJCS8qIENvbmZpZ3VyYXRpb24gc3RyaW5nIGRlc2NyaXB0b3IgbnVtYmVyICovCisJ aW50IGNvbnRyb2xfaW50ZXJmYWNlOwkJCS8qIERLVTIgRkJVUyBtYXN0ZXIgaW50ZXJmYWNlICov CisJaW50IGNvbnRyb2xfc2V0dGluZzsJCQkvKiBES1UyIEZCVVMgbWFzdGVyIGludGVyZmFjZSBz ZXR0aW5nICovCisJaW50IGNvbnRyb2xfaW50ZXJmYWNlX2Rlc2NyaXB0aW9uOwkvKiBES1UyIEZC VVMgbWFzdGVyIGludGVyZmFjZSBzdHJpbmcgZGVzY3JpcHRvciBudW1iZXIKKwkJCQkJCSAqIElm IG5vbi16ZXJvLCB1c2UgdXNiX2dldF9zdHJpbmdfc2ltcGxlKCkgZnJvbQorCQkJCQkJICogbGli dXNiIHRvIHJldHJpZXZlIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uCisJCQkJCQkgKi8KKwlp bnQgZGF0YV9pbnRlcmZhY2U7CQkJLyogREtVMiBGQlVTIGRhdGEvc2xhdmUgaW50ZXJmYWNlICov CisJaW50IGRhdGFfaWRsZV9zZXR0aW5nOwkJCS8qIERLVTIgRkJVUyBkYXRhL3NsYXZlIGlkbGUg c2V0dGluZyAqLworCWludCBkYXRhX2ludGVyZmFjZV9pZGxlX2Rlc2NyaXB0aW9uOwkvKiBES1Uy IEZCVVMgZGF0YS9zbGF2ZSBpbnRlcmZhY2Ugc3RyaW5nIGRlc2NyaXB0b3IgbnVtYmVyCisJCQkJ CQkgKiBpbiBpZGxlIHNldHRpbmcgKi8KKwlpbnQgZGF0YV9hY3RpdmVfc2V0dGluZzsJCS8qIERL VTIgRkJVUyBkYXRhL3NsYXZlIGFjdGl2ZSBzZXR0aW5nICovCisJaW50IGRhdGFfaW50ZXJmYWNl X2FjdGl2ZV9kZXNjcmlwdGlvbjsJLyogREtVMiBGQlVTIGRhdGEvc2xhdmUgaW50ZXJmYWNlIHN0 cmluZyBkZXNjcmlwdG9yIG51bWJlcgorCQkJCQkJICogaW4gYWN0aXZlIHNldHRpbmcgKi8KKwlp bnQgZGF0YV9lbmRwb2ludF9yZWFkOwkJCS8qIERLVTIgRkJVUyBkYXRhL3NsYXZlIGludGVyZmFj ZSByZWFkIGVuZHBvaW50ICovCisJaW50IGRhdGFfZW5kcG9pbnRfd3JpdGU7CQkvKiBES1UyIEZC VVMgZGF0YS9zbGF2ZSBpbnRlcmZhY2Ugd3JpdGUgZW5kcG9pbnQgKi8KKwl1c2JfZGV2X2hhbmRs ZSAqZGV2X2NvbnRyb2w7CQkvKiBsaWJ1c2IgaGFuZGxlciBmb3IgY29udHJvbCBpbnRlcmFjZSAq LworCXVzYl9kZXZfaGFuZGxlICpkZXZfZGF0YTsJCS8qIGxpYnVzYiBoYW5kbGVyIGZvciBkYXRh IGludGVyZmFjZSAqLworfTsKKworLyogVVNCLXNwZWNpZmljIEZCVVMgaW50ZXJmYWNlIGluZm9y bWF0aW9uICovCit0eXBlZGVmIHN0cnVjdCB7CisJLyogTWFudWZhY3R1cmVyLCBlLmcuIE5va2lh ICovCisJY2hhciAqbWFudWZhY3R1cmVyOworCS8qIFByb2R1Y3QsIGUuZy4gTm9raWEgNjY4MCAq LworCWNoYXIgKnByb2R1Y3Q7CisJLyogUHJvZHVjdCBzZXJpYWwgbnVtYmVyICovCisJY2hhciAq c2VyaWFsOworCS8qIFVTQiBkZXZpY2UgY29uZmlndXJhdGlvbiBkZXNjcmlwdGlvbiAqLworCWNo YXIgKmNvbmZpZ3VyYXRpb247CisJLyogQ29udHJvbCBpbnRlcmZhY2UgZGVzY3JpcHRpb24gKi8K KwljaGFyICpjb250cm9sX2ludGVyZmFjZTsKKwkvKiBJZGxlIGRhdGEgaW50ZXJmYWNlIGRlc2Ny aXB0aW9uLCB0eXBpY2FsbHkgZW1wdHkgKi8KKwljaGFyICpkYXRhX2ludGVyZmFjZV9pZGxlOwor CS8qIEFjdGl2ZSBkYXRhIGludGVyZmFjZSBkZXNjcmlwdGlvbiwgdHlwaWNhbGx5IGVtcHR5ICov CisJY2hhciAqZGF0YV9pbnRlcmZhY2VfYWN0aXZlOworCS8qIEludGVybmFsIGluZm9ybWF0aW9u IGZvciB0aGUgdHJhbnNwb3J0IGxheWVyIGluIHRoZSBsaWJyYXJ5ICovCisJc3RydWN0IGZidXNf dXNiX2ludGVyZmFjZV90cmFuc3BvcnQgKmludGVyZmFjZTsKK30gZmJ1c191c2JfaW50ZXJmYWNl OworCisvKiAiVW5pb24gRnVuY3Rpb25hbCBEZXNjcmlwdG9yIiBmcm9tIENEQyBzcGVjIDUuMi4z LlgKKyAqIHVzZWQgdG8gZmluZCBkYXRhL3NsYXZlIERLVTIgRkJVUyBpbnRlcmZhY2UgKi8KKyNw cmFnbWEgcGFjaygxKQorc3RydWN0IGNkY191bmlvbl9kZXNjIHsKKwl1X2ludDhfdCAgICAgIGJM ZW5ndGg7CisJdV9pbnQ4X3QgICAgICBiRGVzY3JpcHRvclR5cGU7CisJdV9pbnQ4X3QgICAgICBi RGVzY3JpcHRvclN1YlR5cGU7CisKKwl1X2ludDhfdCAgICAgIGJNYXN0ZXJJbnRlcmZhY2UwOwor CXVfaW50OF90ICAgICAgYlNsYXZlSW50ZXJmYWNlMDsKK307CisjcHJhZ21hIHBhY2soKQorCisv KiBOb2tpYSBpcyB0aGUgdmVuZG9yIHdlIGFyZSBpbnRlcmVzdGVkIGluICovCisjZGVmaW5lIE5P S0lBX1ZFTkRPUl9JRAkweDA0MjEKKworLyogQ0RDIGNsYXNzIGFuZCBzdWJjbGFzcyB0eXBlcyAq LworI2RlZmluZSBVU0JfQ0RDX0NMQVNTCQkJMHgwMgorI2RlZmluZSBVU0JfQ0RDX0ZCVVNfU1VC Q0xBU1MJCTB4ZmUKKworLyogY2xhc3MgYW5kIHN1YmNsYXNzIHNwZWNpZmljIGRlc2NyaXB0b3Ig dHlwZXMgKi8KKyNkZWZpbmUgQ0RDX0hFQURFUl9UWVBFCQkJMHgwMAorI2RlZmluZSBDRENfVU5J T05fVFlQRQkJCTB4MDYKKyNkZWZpbmUgQ0RDX0ZCVVNfVFlQRQkJCTB4MTUKKworLyogSW50ZXJm YWNlIGRlc2NyaXB0b3IgKi8KKyNkZWZpbmUgVVNCX0RUX0NTX0lOVEVSRkFDRQkJMHgyNAorCisj ZGVmaW5lIFVTQl9NQVhfU1RSSU5HX1NJWkUJCTI1NgorI2RlZmluZSBVU0JfRkJVU19USU1FT1VU CQkxMDAwMCAvKiAxMCBzZWNvbmRzICovCiAKLWludCBmYnVzZGt1MnVzYl9yZWFkKF9fcHRyX3Qg Ynl0ZXMsIGludCBzaXplLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1 cm4gLTE7Ci19Ci0KLWludCBmYnVzZGt1MnVzYl9zZWxlY3Qoc3RydWN0IHRpbWV2YWwgKnRpbWVv dXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsKLX0KLQot I2Vsc2UKIAogI2RlZmluZQlERVZJTlNUQU5DRShzKSAoKigoZmJ1c191c2JfaW50ZXJmYWNlICoq KSgmKHMpLT5kZXZpY2UuZGV2aWNlX2luc3RhbmNlKSkpCiAKQEAgLTM5MSw3ICs0NDIsNyBAQCBz dGF0aWMgaW50IHVzYmZidXNfY29ubmVjdF9yZXF1ZXN0KHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUg KnN0YXRlKQogCXJldHVybiAxOwogCiBlcnIzOgotCXVzYl9yZWxlYXNlX2ludGVyZmFjZShERVZJ TlNUQU5DRShzdGF0ZSktPmludGVyZmFjZS0+ZGV2X2RhdGEsIERFVklOU1RBTkNFKHN0YXRlKS0+ aW50ZXJmYWNlLT5kYXRhX2ludGVyZmFjZSk7CQorCXVzYl9yZWxlYXNlX2ludGVyZmFjZShERVZJ TlNUQU5DRShzdGF0ZSktPmludGVyZmFjZS0+ZGV2X2RhdGEsIERFVklOU1RBTkNFKHN0YXRlKS0+ aW50ZXJmYWNlLT5kYXRhX2ludGVyZmFjZSk7CiBlcnIyOgogCXVzYl9yZWxlYXNlX2ludGVyZmFj ZShERVZJTlNUQU5DRShzdGF0ZSktPmludGVyZmFjZS0+ZGV2X2RhdGEsIERFVklOU1RBTkNFKHN0 YXRlKS0+aW50ZXJmYWNlLT5jb250cm9sX2ludGVyZmFjZSk7CiBlcnIxOgpAQCAtNDIzLDcgKzQ3 NCw3IEBAIHN0YXRpYyBpbnQgdXNiZmJ1c19kaXNjb25uZWN0X3JlcXVlc3Qoc3RydWN0IGduX3N0 YXRlbWFjaGluZSAqc3RhdGUpCiAJcmV0ID0gdXNiX2Nsb3NlKERFVklOU1RBTkNFKHN0YXRlKS0+ aW50ZXJmYWNlLT5kZXZfZGF0YSk7CiAJaWYgKHJldCA8IDApCiAJCWRwcmludGYoIkNhbid0IGNs b3NlIGRhdGEgaW50ZXJmYWNlICVkXG4iLCByZXQpOwotCXJldHVybiByZXQ7CQorCXJldHVybiBy ZXQ7CiB9CiAKIGludCBmYnVzZGt1MnVzYl9vcGVuKHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0 YXRlKQpAQCAtNDYyLDUgKzUxMywzIEBAIGludCBmYnVzZGt1MnVzYl9zZWxlY3Qoc3RydWN0IHRp bWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewogCXJldHVy biAxOwogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2VzL2lyZGEuYyBiL2Nv bW1vbi9kZXZpY2VzL2lyZGEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY3NGMy ZGIuLjAwMDAwMDAwCi0tLSBhL2NvbW1vbi9kZXZpY2VzL2lyZGEuYworKysgL2Rldi9udWxsCkBA IC0xLDI3ICswLDAgQEAKLS8qCi0gKgotICogRyBOIE8gSyBJIEkKLSAqCi0gKiBBIExpbnV4L1Vu aXggdG9vbHNldCBhbmQgZHJpdmVyIGZvciB0aGUgbW9iaWxlIHBob25lcy4KLSAqCi0gKiBDb3B5 cmlnaHQgKEMpIDE5OTktMjAwMCAgSHVnaCBCbGVtaW5ncyAmIFBhdmVsIEphbsOtayBtbC4KLSAq IENvcHlyaWdodCAoQykgMjAwMC0yMDAxICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFu bi5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgICAgICAgUGhpbCBBc2hieQotICoKLSAqIEZh a2UgZGVmaW5pdGlvbnMgZm9yIGlyZGEgaGFuZGxpbmcgZnVuY3Rpb25zLgotICovCi0KLSNpbmNs dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJjb21wYXQuaCIKLSNpbmNsdWRlICJtaXNjLmgiCi0j aW5jbHVkZSAiZ25va2lpLmgiCi0KLSNpZm5kZWYgSEFWRV9JUkRBCi0KLWludCBpcmRhX29wZW4o c3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgaXJkYV9j bG9zZShpbnQgZmQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKSB7IHJldHVybiAtMTsg fQotaW50IGlyZGFfd3JpdGUoaW50IGZkLCBjb25zdCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwg c3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpIHsgcmV0dXJuIC0xOyB9Ci1pbnQgaXJkYV9y ZWFkKGludCBmZCwgX19wdHJfdCBieXRlcywgaW50IHNpemUsIHN0cnVjdCBnbl9zdGF0ZW1hY2hp bmUgKnN0YXRlKSB7IHJldHVybiAtMTsgfQotaW50IGlyZGFfc2VsZWN0KGludCBmZCwgc3RydWN0 IHRpbWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKSB7IHJldHVy biAtMTsgfQotCi0jZW5kaWYgLyogSEFWRV9JUkRBICovCmRpZmYgLS1naXQgYS9jb21tb24vZGV2 aWNlcy9vc3hibHVldG9vdGgubSBiL2NvbW1vbi9kZXZpY2VzL29zeGJsdWV0b290aC5tCmluZGV4 IDYyMTZjYzVjLi4xZmMxMTI5NSAxMDA2NDQKLS0tIGEvY29tbW9uL2RldmljZXMvb3N4Ymx1ZXRv b3RoLm0KKysrIGIvY29tbW9uL2RldmljZXMvb3N4Ymx1ZXRvb3RoLm0KQEAgLTEwLDE0ICsxMCwx MCBAQAogCiAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZmRlZiBIQVZFX0JMVUVUT09U SF9NQUNPU1gKLQogI2luY2x1ZGUgPElPQmx1ZXRvb3RoL29iamMvSU9CbHVldG9vdGhSRkNPTU1D aGFubmVsLmg+CiAjaW5jbHVkZSA8SU9CbHVldG9vdGgvb2JqYy9JT0JsdWV0b290aERldmljZS5o PgogCi0jaW5jbHVkZSAiZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmgiCisjaW5jbHVkZSAiZGV2aWNl cy9ibHVldG9vdGguaCIKIAogc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKnF1ZXVlczsKIHN0 YXRpYyBpbnQgbmV4dF9mZCA9IDE7CkBAIC0xNzksNSArMTc1LDMgQEAgaW50IGJsdWV0b290aF9j bG9zZShpbnQgZmQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogICAgIFtxdWV1ZXMg cmVtb3ZlT2JqZWN0Rm9yS2V5OkAoZmQpXTsKICAgICByZXR1cm4gMTsKIH0KLQotI2VuZGlmCmRp ZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy9zb2NrZXRwaG9uZXQuYyBiL2NvbW1vbi9kZXZpY2Vz L3NvY2tldHBob25ldC5jCmluZGV4IDEyYmVkOGIyLi4xZTExOTkzOSAxMDA2NDQKLS0tIGEvY29t bW9uL2RldmljZXMvc29ja2V0cGhvbmV0LmMKKysrIGIvY29tbW9uL2RldmljZXMvc29ja2V0cGhv bmV0LmMKQEAgLTE1LDQ5ICsxNSwxNyBAQAogCiAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j aW5jbHVkZSAiY29tcGF0LmgiIC8qIGZvciBfX3B0cl90IGRlZmluaXRpb24gKi8KLSNpbmNsdWRl ICJnbm9raWkuaCIKLQotI2lmbmRlZiBIQVZFX1NPQ0tFVFBIT05FVAotCi1pbnQgc29ja2V0cGhv bmV0X2Nsb3NlKHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsK LX0KLQotaW50IHNvY2tldHBob25ldF9vcGVuKGNvbnN0IGNoYXIgKmlmYWNlLCBpbnQgd2l0aF9h c3luYywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQot Ci1zaXplX3Qgc29ja2V0cGhvbmV0X3JlYWQoaW50IGZkLCBfX3B0cl90IGJ1Ziwgc2l6ZV90IG5i eXRlcywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQot Ci1zaXplX3Qgc29ja2V0cGhvbmV0X3dyaXRlKGludCBmZCwgY29uc3QgX19wdHJfdCBidWYsIHNp emVfdCBuLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1cm4gLTE7Ci19 Ci0KLWludCBzb2NrZXRwaG9uZXRfc2VsZWN0KGludCBmZCwgc3RydWN0IHRpbWV2YWwgKnRpbWVv dXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVybiAtMTsKLX0KLQot I2Vsc2UKLQogLyogU3lzdGVtIGhlYWRlciBmaWxlcyAqLwogI2luY2x1ZGUgPHN5cy9zb2NrZXQu aD4KICNpbmNsdWRlIDxsaW51eC9waG9uZXQuaD4KIAogLyogVmFyaW91cyBoZWFkZXIgZmlsZXMg Ki8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjb21wYXQuaCIKICNpbmNsdWRlICJs aW5rcy9mYnVzLWNvbW1vbi5oIgogI2luY2x1ZGUgImxpbmtzL2ZidXMtcGhvbmV0LmgiCi0jaW5j bHVkZSAiZGV2aWNlLmgiCiAjaW5jbHVkZSAiZGV2aWNlcy9zZXJpYWwuaCIKKyNpbmNsdWRlICJk ZXZpY2VzL3NvY2tldHBob25ldC5oIgogI2luY2x1ZGUgImdub2tpaS1pbnRlcm5hbC5oIgogCiBz dGF0aWMgc3RydWN0IHNvY2thZGRyX3BuIGFkZHIgPSB7IC5zcG5fZmFtaWx5ID0gQUZfUEhPTkVU LCAuc3BuX2RldiA9IEZCVVNfREVWSUNFX1BIT05FIH07CkBAIC0xNTksNSArMTI3LDMgQEAgaW50 IHNvY2tldHBob25ldF9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3Ry dWN0IGduX3N0YXRlbWFjaGluZQogewogCXJldHVybiBzZXJpYWxfc2VsZWN0KGZkLCB0aW1lb3V0 LCBzdGF0ZSk7CiB9Ci0KLSNlbmRpZiAvKiBIQVZFX1NPQ0tFVFBIT05FVCAqLwpkaWZmIC0tZ2l0 IGEvY29tbW9uL2RldmljZXMvdGNwLmMgYi9jb21tb24vZGV2aWNlcy90Y3AuYwppbmRleCBhZjll ZDdlZS4uM2FmYjQ1NzUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9kZXZpY2VzL3RjcC5jCisrKyBiL2Nv bW1vbi9kZXZpY2VzL3RjcC5jCkBAIC0xOCw4ICsxOCw2IEBACiAjaW5jbHVkZSAiZGV2aWNlcy90 Y3AuaCIKICNpbmNsdWRlICJkZXZpY2VzL3NlcmlhbC5oIgogCi0jaWZuZGVmIFdJTjMyCi0KICNp ZmRlZiBIQVZFX1NZU19JT0NUTF9ICiAjICBpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNlbmRpZgpA QCAtNDAsOCArMzgsNiBAQAogIyAgZGVmaW5lIE9fTk9OQkxPQ0sgIDAKICNlbmRpZgogCi0vKiBP cGVuIHRoZSBzZXJpYWwgcG9ydCBhbmQgc3RvcmUgdGhlIHNldHRpbmdzLiAqLwotCiBzdGF0aWMg aW50IHRjcF9vcGVuKGNvbnN0IGNoYXIgKmZpbGUpCiB7CiAJaW50IGZkOwpAQCAtMTM4LDE2ICsx MzQsMTIgQEAgaW50IHRjcF9jbG9zZShpbnQgZmQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0 YXRlKQogCXJldHVybiBjbG9zZShmZCk7CiB9CiAKLS8qIE9wZW4gYSBkZXZpY2Ugd2l0aCBzdGFu ZGFyZCBvcHRpb25zLgotICogVXNlIHZhbHVlICgtMSkgZm9yICJ3aXRoX2h3X2hhbmRzaGFrZSIg aWYgaXRzIHNwZWNpZmljYXRpb24gaXMgcmVxdWlyZWQgZnJvbSB0aGUgdXNlcgotICovCiBpbnQg dGNwX29wZW5kZXZpY2UoY29uc3QgY2hhciAqZmlsZSwgaW50IHdpdGhfYXN5bmMsIHN0cnVjdCBn bl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogewogCWludCBmZDsKIAlpbnQgcmV0Y29kZTsKIAogCS8q IE9wZW4gZGV2aWNlICovCi0KIAlmZCA9IHRjcF9vcGVuKGZpbGUpOwogCiAJaWYgKGZkIDwgMCkK QEAgLTE5Myw0NiArMTg1LDEyIEBAIGludCB0Y3Bfc2VsZWN0KGludCBmZCwgc3RydWN0IHRpbWV2 YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQogCXJldHVybiBzZXJp YWxfc2VsZWN0KGZkLCB0aW1lb3V0LCBzdGF0ZSk7CiB9CiAKLQotLyogUmVhZCBmcm9tIHNlcmlh bCBkZXZpY2UuICovCi0KIHNpemVfdCB0Y3BfcmVhZChpbnQgZmQsIF9fcHRyX3QgYnVmLCBzaXpl X3QgbmJ5dGVzLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKIHsKIAlyZXR1cm4gcmVh ZChmZCwgYnVmLCBuYnl0ZXMpOwogfQogCi0vKiBXcml0ZSB0byBzZXJpYWwgZGV2aWNlLiAqLwot CiBzaXplX3QgdGNwX3dyaXRlKGludCBmZCwgY29uc3QgX19wdHJfdCBidWYsIHNpemVfdCBuLCBz dHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKIHsKIAlyZXR1cm4gd3JpdGUoZmQsIGJ1Ziwg bik7CiB9Ci0KLSNlbHNlIC8qIFdJTjMyICovCi0KLWludCB0Y3BfY2xvc2UoaW50IGZkLCBzdHJ1 Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSkKLXsKLQlyZXR1cm4gLTE7Ci19Ci0KLWludCB0Y3Bf b3BlbmRldmljZShjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9hc3luYywgc3RydWN0IGduX3N0 YXRlbWFjaGluZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1zaXplX3QgdGNwX3JlYWQo aW50IGZkLCBfX3B0cl90IGJ1Ziwgc2l6ZV90IG5ieXRlcywgc3RydWN0IGduX3N0YXRlbWFjaGlu ZSAqc3RhdGUpCi17Ci0JcmV0dXJuIC0xOwotfQotCi1zaXplX3QgdGNwX3dyaXRlKGludCBmZCwg Y29uc3QgX19wdHJfdCBidWYsIHNpemVfdCBuLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0 ZSkKLXsKLQlyZXR1cm4gLTE7Ci19Ci0KLWludCB0Y3Bfc2VsZWN0KGludCBmZCwgc3RydWN0IHRp bWV2YWwgKnRpbWVvdXQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQotewotCXJldHVy biAtMTsKLX0KLQotI2VuZGlmIC8qIFdJTjMyICovCmRpZmYgLS1naXQgYS9jb21tb24vZGV2aWNl cy91bml4Ymx1ZXRvb3RoLmMgYi9jb21tb24vZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmMKaW5kZXgg MWNlYjEyMjguLmUxM2MyZTBiIDEwMDY0NAotLS0gYS9jb21tb24vZGV2aWNlcy91bml4Ymx1ZXRv b3RoLmMKKysrIGIvY29tbW9uL2RldmljZXMvdW5peGJsdWV0b290aC5jCkBAIC0xNiwxMyArMTYs MTAgQEAKIAogKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNvbXBhdC5oIgog I2luY2x1ZGUgIm1pc2MuaCIKICNpbmNsdWRlICJnbm9raWkuaCIKLSNpbmNsdWRlICJkZXZpY2Vz L3VuaXhibHVldG9vdGguaCIKLQotI2lmIGRlZmluZWQoSEFWRV9CTFVFVE9PVEhfQkxVRVopIHx8 IGRlZmluZWQoSEFWRV9CTFVFVE9PVEhfTkVUR1JBUEgpIHx8IGRlZmluZWQoSEFWRV9CTFVFVE9P VEhfTkVUQlQpCisjaW5jbHVkZSAiZGV2aWNlcy9ibHVldG9vdGguaCIKIAogI2lmZGVmIEhBVkVf QkxVRVRPT1RIX05FVEdSQVBICS8qIEZyZWVCU0QgLyBuZXRncmFwaCAqLwogCkBAIC0yNTcsNyAr MjU0LDcgQEAgc3RhdGljIGludCBmaW5kX3NlcnZpY2VfY2hhbm5lbChiZGFkZHJfdCAqYWRhcHRl ciwgYmRhZGRyX3QgKmRldmljZSwgaW50IG9ubHlfZ24KIAkJY2FzZSBTRFBfQVRUUl9QUklNQVJZ X0xBTkdVQUdFX0JBU0VfSUQgKyBTRFBfQVRUUl9TRVJWSUNFX05BTUVfT0ZGU0VUOgogCQkJaWYg KGNoYW5uZWwgPT0gLTEpCiAJCQkJYnJlYWs7Ci0JCQkKKwogCQkJU0RQX0dFVDgodHlwZSwgc3Rh cnQpOwogCQkJc3dpdGNoICh0eXBlKSB7CiAJCQkJY2FzZSBTRFBfREFUQV9TVFI4OgpAQCAtMjk1 LDcgKzI5Miw3IEBAIHN0YXRpYyBpbnQgZmluZF9zZXJ2aWNlX2NoYW5uZWwoYmRhZGRyX3QgKmFk YXB0ZXIsIGJkYWRkcl90ICpkZXZpY2UsIGludCBvbmx5X2duCiAJCQkJCWJyZWFrOwogCQkJCX0K IAkJCX0KLQkJCQorCiAJCQlpZiAoc3Ryc3RyKG5hbWUsICJOb2tpYSBQQyBTdWl0ZSIpICE9IE5V TEwpIHsKIAkJCQljaGFubmVsID0gLTE7CiAJCQkJYnJlYWs7CkBAIC01MDEsNyArNDk4LDcgQEAg aW50IGJsdWV0b290aF9vcGVuKGNvbnN0IGNoYXIgKmFkZHIsIHVpbnQ4X3QgY2hhbm5lbCwgc3Ry dWN0IGduX3N0YXRlbWFjaGluZSAqc3QKIAogCWRwcmludGYoIlVzaW5nIGNoYW5uZWw6ICVkXG4i LCBjaGFubmVsKTsKIAlyYWRkci5yY19jaGFubmVsID0gY2hhbm5lbDsKLQkKKwogCWlmIChjb25u ZWN0KGZkLCAoc3RydWN0IHNvY2thZGRyICopJnJhZGRyLCBzaXplb2YocmFkZHIpKSA8IDApIHsK IAkJcGVycm9yKF8oIkNhbid0IGNvbm5lY3QiKSk7CiAJCWNsb3NlKGZkKTsKQEAgLTU0MSw1ICs1 MzgsMyBAQCBpbnQgYmx1ZXRvb3RoX3NlbGVjdChpbnQgZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1l b3V0LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdAogCiAJcmV0dXJuIHNlbGVjdChmZCArIDEs ICZyZWFkZmRzLCBOVUxMLCBOVUxMLCB0aW1lb3V0KTsKIH0KLQotI2VuZGlmCS8qIEhBVkVfQkxV RVRPT1RIX0JMVUVaIHx8IEhBVkVfQkxVRVRPT1RIX05FVEdSQVBIIHx8IEhBVkVfQkxVRVRPT1RI X05FVEJUICovCmRpZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy91bml4aXJkYS5jIGIvY29tbW9u L2RldmljZXMvdW5peGlyZGEuYwppbmRleCAxMjcxMDQxYS4uOThmZmFlMjUgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9kZXZpY2VzL3VuaXhpcmRhLmMKKysrIGIvY29tbW9uL2RldmljZXMvdW5peGlyZGEu YwpAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8 bGludXgvaXJkYS5oPgogCisjaW5jbHVkZSAiY29tcGF0LmgiCisjaW5jbHVkZSAibWlzYy5oIgog I2luY2x1ZGUgImRldmljZXMvaXJkYS5oIgogCiAjaWZuZGVmIEFGX0lSREEKQEAgLTE3MSw1ICsx NzMsMyBAQCBpbnQgaXJkYV9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwg c3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiAKIAlyZXR1cm4gc2VsZWN0KGZkICsgMSwg JnJlYWRmZHMsIE5VTEwsIE5VTEwsIHRpbWVvdXQpOwogfQotCi0jZW5kaWYgLyogSEFWRV9JUkRB ICovCmRpZmYgLS1naXQgYS9jb21tb24vZGV2aWNlcy93aW5ibHVldG9vdGguYyBiL2NvbW1vbi9k ZXZpY2VzL3dpbmJsdWV0b290aC5jCmluZGV4IGE4OThlMmU2Li43YmU0MDEyNyAxMDA2NDQKLS0t IGEvY29tbW9uL2RldmljZXMvd2luYmx1ZXRvb3RoLmMKKysrIGIvY29tbW9uL2RldmljZXMvd2lu Ymx1ZXRvb3RoLmMKQEAgLTgsMTggKzgsMTQgQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgImNvbmZp Zy5oIgotCi0jaWZkZWYgSEFWRV9CTFVFVE9PVEgKLQogI2luY2x1ZGUgPHdpbnNvY2syLmg+CiAj aW5jbHVkZSA8bW1zeXN0ZW0uaD4KICNpbmNsdWRlIDx3czJidGguaD4KICNpbmNsdWRlIDxibHVl dG9vdGhhcGlzLmg+CiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjb21wYXQuaCIK LSNpbmNsdWRlICJnbm9raWkuaCIKLSNpbmNsdWRlICJtaXNjLmgiCisjaW5jbHVkZSAiZGV2aWNl cy9ibHVldG9vdGguaCIKIAogLyogUVRUWSBieSBEYXZpZGUgTGliZW56aSAoIFRlcm1pbmFsIGlu dGVyZmFjZSB0byBTeW1iaWFuIFFDb25zb2xlICkKICAqIENvcHlyaWdodCAoQykgMjAwNCAgRGF2 aWRlIExpYmVuemkKQEAgLTEwOSw1ICsxMDUsMyBAQCBpbnQgYmx1ZXRvb3RoX3NlbGVjdChpbnQg ZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdAog CiAJcmV0dXJuIHNlbGVjdCgwIC8qIGlnbm9yZWQgb24gV2luMzIgKi8sICZyZWFkZmRzLCBOVUxM LCBOVUxMLCB0aW1lb3V0KTsKIH0KLQotI2VuZGlmIC8qIEhBVkVfQkxVRVRPT1RIICovCmRpZmYg LS1naXQgYS9jb21tb24vZGV2aWNlcy93aW5pcmRhLmMgYi9jb21tb24vZGV2aWNlcy93aW5pcmRh LmMKaW5kZXggNGJmZWQ3NDIuLjcxMDE4ODQyIDEwMDY0NAotLS0gYS9jb21tb24vZGV2aWNlcy93 aW5pcmRhLmMKKysrIGIvY29tbW9uL2RldmljZXMvd2luaXJkYS5jCkBAIC04LDE0ICs4LDExIEBA CiAgKgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmZGVmIEhBVkVfSVJEQQotCiAj ZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KICNpbmNsdWRlIDx3aW5zb2NrLmg+CiAjaW5jbHVk ZSA8bW1zeXN0ZW0uaD4KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNvbXBhdC5o IgogI2luY2x1ZGUgIm1pc2MuaCIKICNpbmNsdWRlICJkZXZpY2VzL2lyZGEuaCIKQEAgLTE2MCw1 ICsxNTcsMyBAQCBpbnQgaXJkYV9zZWxlY3QoaW50IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91 dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpCiAKIAlyZXR1cm4gc2VsZWN0KDAgLyog aWdub3JlZCBvbiBXaW4zMiAqLywgJnJlYWRmZHMsIE5VTEwsIE5VTEwsIHRpbWVvdXQpOwogfQot Ci0jZW5kaWYgLyogSEFWRV9JUkRBICovCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25m aWd1cmUuYWMKaW5kZXggYzRjYTE1YWYuLjk5NmNkMmVlIDEwMDY0NAotLS0gYS9jb25maWd1cmUu YWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0zNTYsNiArMzU2LDE3IEBAIEFDX0FSR19XSVRIKHJl YWRsaW5lLAogQUNfU1VCU1QoVEVSTUxJQlMpCiBBQ19TVUJTVChURVJNTERGTEFHUykKIAorZG5s ID09PT09PT09PT09PT09PT09PT09PT09PSBEZWZpbmVzIGxvY2F0aW9uIGZvciBnZXR0ZXh0CitB Q19BUkdfV0lUSChnZXR0ZXh0LAorCVsgIC0td2l0aC1nZXR0ZXh0PURJUiAgICAgIHNwZWNpZmll cyB0aGUgYmFzZSBnZXR0ZXh0XSwKKwlbIGlmIHRlc3QgeCR3aXRodmFsID0geHllczsgdGhlbgor CQlBQ19NU0dfV0FSTihVc2FnZSBpczogLS13aXRoLWdldHRleHQ9RElSKQorCSAgZWxzZQorCQlD RkxBR1M9IiRDRkxBR1MgLUkkd2l0aHZhbCIKKwkgIGZpCisJXQorKQorCiBkbmwgPT09PT09PT09 PT09PT09PT09PT09PT09IENoZWNrIGZvciBsaWJpY2FsCiBBQ19BUkdfV0lUSChsaWJpY2FsLAog ICAgWyAgLS13aXRoLWxpYmljYWw9RElSICAgICAgc3BlY2lmaWVzIHRoZSBiYXNlIGxpYmljYWxd LApAQCAtNDE1LDYgKzQyNiwxNSBAQCBpZiB0ZXN0ICIkZW5hYmxlX2xpYmljYWwiID0gInllcyI7 IHRoZW4KIAlDRkxBR1M9IiRPTERfQ0ZMQUdTIgogZmkKIAorZG5sID09PT09PT09PT09PT09PT09 PT09PT09PSBDaGVja3MgZm9yIGdldGhvc3RieW5hbWUgc3VwcG9ydAorQUNfQ0hFQ0tfRlVOQyhn ZXRob3N0YnluYW1lLCAsCisJQUNfQ0hFQ0tfTElCKG5zbCwgZ2V0aG9zdGJ5bmFtZSwgVENQX0xJ QlM9Ii1sbnNsIgorCQkgICAgIEFDX1NVQlNUKFRDUF9MSUJTKSkpCitkbmwgSGFpa3UgcmVxdWly ZXMgLWxuZXR3b3JrIGZvciBzb2NrZXQgZnVuY3Rpb25zCitBQ19DSEVDS19GVU5DKGdldGhvc3Ri eW5hbWUsICwKKwlBQ19DSEVDS19MSUIobmV0d29yaywgZ2V0aG9zdGJ5bmFtZSwgVENQX0xJQlM9 Ii1sbmV0d29yayIKKwkJICAgICBBQ19TVUJTVChUQ1BfTElCUykpKQorCiBkbmwgPT09PT09PT09 PT09PT09PT09PT09PT09IENoZWNrIGZvciBsaWJ1c2IKIFVTRV9MSUJVU0I9Im5vIgogQUNfQVJH X0VOQUJMRShsaWJ1c2IsCkBAIC00MzgsNTkgKzQ1OCwyNSBAQCBpZiB0ZXN0ICIkZW5hYmxlX2xp YnVzYiIgPSAieWVzIjsgdGhlbgogCQldCiAJKQogZmkKK0FNX0NPTkRJVElPTkFMKFtMSUJVU0Jd LCBbdGVzdCAkVVNFX0xJQlVTQiA9IHllc10pCiAKLWRubCA9PT09PT09PT09PT09PT09PT09PT09 PT0gQ2hlY2tzIGZvciBMaW51eCBQaG9uZXQgc3VwcG9ydAorZG5sID09PT09PT09PT09PT09PT09 PT09PT09PSBQaG9uZXQgc3dpdGNoCiBVU0VfU09DS0VUUEhPTkVUPSJubyIKIEFDX0FSR19FTkFC TEUocGhvbmV0LAogICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXBob25l dF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBob25ldCBzdXBwb3J0 IChkZWZhdWx0IGlzIGF1dG9kZXRlY3RlZCldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KSwsCiAgICAgICAgICAgICAgIFtlbmFibGVfcGhvbmV0PXllc10pCi1pZiB0ZXN0ICIkZW5hYmxl X3Bob25ldCIgPSAieWVzIjsgdGhlbgotCUFDX0NIRUNLX0hFQURFUihsaW51eC9waG9uZXQuaCwK LQkJW0FDX0RFRklORShIQVZFX1NPQ0tFVFBIT05FVCwgMSwgW1doZXRoZXIgUGhvbmV0IGlzIGF2 YWlsYWJsZV0pCi0JCSBVU0VfU09DS0VUUEhPTkVUPSJ5ZXMiXSwsCi0JCVsjaW5jbHVkZSA8c3lz L3NvY2tldC5oPgotCQkgI2luY2x1ZGUgPGxpbnV4L3Bob25ldC5oPl0pCi1maQogCi1kbmwgPT09 PT09PT09PT09PT09PT09PT09PT09IENoZWNrcyBmb3IgZ2V0aG9zdGJ5bmFtZSBzdXBwb3J0Ci1B Q19DSEVDS19GVU5DKGdldGhvc3RieW5hbWUsICwKLQlBQ19DSEVDS19MSUIobnNsLCBnZXRob3N0 YnluYW1lLCBUQ1BfTElCUz0iLWxuc2wiCi0JCSAgICAgQUNfU1VCU1QoVENQX0xJQlMpKSkKLWRu bCBIYWlrdSByZXF1aXJlcyAtbG5ldHdvcmsgZm9yIHNvY2tldCBmdW5jdGlvbnMKLUFDX0NIRUNL X0ZVTkMoZ2V0aG9zdGJ5bmFtZSwgLAotCUFDX0NIRUNLX0xJQihuZXR3b3JrLCBnZXRob3N0Ynlu YW1lLCBUQ1BfTElCUz0iLWxuZXR3b3JrIgotCQkgICAgIEFDX1NVQlNUKFRDUF9MSUJTKSkpCi0K LWRubCA9PT09PT09PT09PT09PT09PT09PT09PT0gQ2hlY2tzIGZvciBMaW51eCBJckRBIHN1cHBv cnQKK2RubCA9PT09PT09PT09PT09PT09PT09PT09PT0gSXJEQSBzd2l0Y2gKIFVTRV9JUkRBPSJu byIKIEFDX0FSR19FTkFCTEUoaXJkYSwKICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0t ZGlzYWJsZS1pcmRhXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGUgaXJk YSBzdXBwb3J0IChkZWZhdWx0IGlzIGF1dG9kZXRlY3RlZCldCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKSwsCiAgICAgICAgICAgICAgIFtlbmFibGVfaXJkYT15ZXNdKQotaWYgdGVzdCAi JGVuYWJsZV9pcmRhIiA9ICJ5ZXMiOyB0aGVuCi0JQUNfQ0hFQ0tfSEVBREVSKGxpbnV4L2lyZGEu aCwKLQkJW0FDX0RFRklORShIQVZFX0lSREEsIDEsIFtXaGV0aGVyIElyREEgaXMgYXZhaWxhYmxl XSkKLQkJIFVTRV9JUkRBPSJ5ZXMiXSwsCi0JCVsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCQkg I2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotCQkgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+XSkKLWZp CiAKLWRubCA9PT09PT09PT09PT09PT09PT09PT09PT0gRGVmaW5lcyBsb2NhdGlvbiBmb3IgZ2V0 dGV4dAotQUNfQVJHX1dJVEgoZ2V0dGV4dCwKLQlbICAtLXdpdGgtZ2V0dGV4dD1ESVIgICAgICBz cGVjaWZpZXMgdGhlIGJhc2UgZ2V0dGV4dF0sCi0JWyBpZiB0ZXN0IHgkd2l0aHZhbCA9IHh5ZXM7 IHRoZW4KLQkJQUNfTVNHX1dBUk4oVXNhZ2UgaXM6IC0td2l0aC1nZXR0ZXh0PURJUikKLQkgIGVs c2UKLQkJQ0ZMQUdTPSIkQ0ZMQUdTIC1JJHdpdGh2YWwiCi0JICBmaQotCV0KLSkKLQotZG5sID09 PT09PT09PT09PT09PT09PT09PT09PSBDaGVja3MgZm9yIEJsdWV0b290aCBzdXBwb3J0Citkbmwg PT09PT09PT09PT09PT09PT09PT09PT09IEJsdWV0b290aCBzd2l0Y2gKIFVTRV9CTFVFVE9PVEg9 Im5vIgogQUNfQVJHX1dJVEgoYmx1ZXRvb3RoLAogCVsgIC0td2l0aC1ibHVldG9vdGg9RElSICAg IHNwZWNpZmllcyB0aGUgYmFzZSBsaWJibHVldG9vdGhdLApAQCAtNTI0LDYgKzUxMCw3IEBAIGxp bnV4KikKIAkJCUFDX0RFRklORShIQVZFX0JMVUVUT09USCwgMSwgW1doZXRoZXIgQmx1ZXRvb3Ro IGlzIGF2YWlsYWJsZV0pCiAJCQlBQ19ERUZJTkUoSEFWRV9CTFVFVE9PVEhfQkxVRVosW10sW0Nv bXBpbGUgb24gTGludXhdKQogCQkJVVNFX0JMVUVUT09USD0ieWVzIgorCQkJVU5JWF9CTFVFVE9P VEg9InRydWUiCiAJCQlCTFVFVE9PVEhfTElCUz0iLWxibHVldG9vdGgiCiAJCQlBQ19TVUJTVChC TFVFVE9PVEhfTElCUykKIAkJZmkKQEAgLTU1MSw2ICs1MzgsNyBAQCBkYXJ3aW4qKQogCQkJQUNf REVGSU5FKEhBVkVfQkxVRVRPT1RILCAxLCBbV2hldGhlciBCbHVldG9vdGggaXMgYXZhaWxhYmxl XSkKIAkJCUFDX0RFRklORShIQVZFX0JMVUVUT09USF9NQUNPU1gsW10sW0NvbXBpbGUgb24gRGFy d2luIC8gTWFjIE9TWF0pCiAJCQlVU0VfQkxVRVRPT1RIPSJ5ZXMiCisJCQlPU1hfQkxVRVRPT1RI PSJ0cnVlIgogCQkJQkxVRVRPT1RIX0xJQlM9IiRQVEhSRUFEX0xJQlMgLVdsLC1mcmFtZXdvcmss Q29yZUZvdW5kYXRpb24gLVdsLC1mcmFtZXdvcmssSU9CbHVldG9vdGggLVdsLC1mcmFtZXdvcmss Rm91bmRhdGlvbiIKIAkJCUFDX1NVQlNUKEJMVUVUT09USF9MSUJTKQogCQlmaQpAQCAtNTcyLDYg KzU2MCw3IEBAIGZyZWVic2QpCiAJCQlBQ19ERUZJTkUoSEFWRV9CTFVFVE9PVEgsIDEsIFtXaGV0 aGVyIEJsdWV0b290aCBpcyBhdmFpbGFibGVdKQogCQkJQUNfREVGSU5FKEhBVkVfQkxVRVRPT1RI X05FVEdSQVBILCBbXSwgW0NvbXBpbGUgb24gRnJlZUJTRF0pCiAJCQlVU0VfQkxVRVRPT1RIPSJ5 ZXMiCisJCQlVTklYX0JMVUVUT09USD0idHJ1ZSIKIAkJCUFDX0NIRUNLX0xJQihibHVldG9vdGgs IGJ0X2F0b24sCiAJCQkJW0JMVUVUT09USF9MSUJTPSItbGJsdWV0b290aCIgYWNfY3ZfaGF2ZV9i dF9saWI9eWVzXSwKIAkJCQlhY19jdl9oYXZlX2J0X2xpYj1ubykKQEAgLTU5OCw2ICs1ODcsNyBA QCBuZXRic2QqKQogCQkJQUNfREVGSU5FKEhBVkVfQkxVRVRPT1RILCAxLCBbV2hldGhlciBCbHVl dG9vdGggaXMgYXZhaWxhYmxlXSkKIAkJCUFDX0RFRklORShIQVZFX0JMVUVUT09USF9ORVRCVCwg W10sIFtDb21waWxlIG9uIE5ldEJTRF0pCiAJCQlVU0VfQkxVRVRPT1RIPSJ5ZXMiCisJCQlVTklY X0JMVUVUT09USD0idHJ1ZSIKIAkJCUNGTEFHUz0iJENGTEFHUyAtRENPTVBBVF9CTFVFWiIKIAkJ CUFDX0NIRUNLX0xJQihibHVldG9vdGgsIGJ0X2F0b24sCiAJCQkJW0JMVUVUT09USF9MSUJTPSIt bGJsdWV0b290aCIgYWNfY3ZfaGF2ZV9idF9saWI9eWVzXSwKQEAgLTYxMSwxOSArNjAxLDM3IEBA IG5ldGJzZCopCiAJZmkKIAk7OwogCitkbmwgPT09PT09PT09PT09PT09PT09PT09PT09IENoZWNr cyBmb3IgV2luZG93cyBkZXZpY2VzCiBjeWd3aW4zMnxjeWd3aW58bWluZ3czMnxtaW5ndzMybXN2 YykKLQlBQ19DSEVDS19IRUFERVIoYWZfaXJkYS5oLCBbQUNfREVGSU5FKEhBVkVfSVJEQSwgMSwg W1doZXRoZXIgSXJEQSBpcyBhdmFpbGFibGVdKSBVU0VfSVJEQT0ieWVzIiBMSUJTPSIkTElCUyAt bHdpbm1tIl0sLCBbI2luY2x1ZGUgPHdpbmRvd3MuaD5dKQotCUFDX0NIRUNLX0hFQURFUih3czJi dGguaCwgW0FDX0RFRklORShIQVZFX0JMVUVUT09USCwgMSwgW1doZXRoZXIgQmx1ZXRvb3RoIGlz IGF2YWlsYWJsZV0pIFVTRV9CTFVFVE9PVEg9InllcyJdLCwgWyNpbmNsdWRlIDx3aW5kb3dzLmg+ XSkKKwlpZiB0ZXN0ICIkZW5hYmxlX2JsdWV0b290aCIgPSAieWVzIjsgdGhlbgorCQlBQ19DSEVD S19IRUFERVIod3MyYnRoLmgsCisJCQkJW0FDX0RFRklORShIQVZFX0JMVUVUT09USCwgMSwgW1do ZXRoZXIgQmx1ZXRvb3RoIGlzIGF2YWlsYWJsZV0pIFVTRV9CTFVFVE9PVEg9InllcyIgV0lOMzJf QkxVRVRPT1RIPSJ0cnVlIl0sLAorCQkJCVsjaW5jbHVkZSA8d2luZG93cy5oPl0pCisJZmkKKwlp ZiB0ZXN0ICIkZW5hYmxlX2lyZGEiID0gInllcyI7IHRoZW4KKwkJQUNfQ0hFQ0tfSEVBREVSKGFm X2lyZGEuaCwKKwkJCQlbQUNfREVGSU5FKEhBVkVfSVJEQSwgMSwgW1doZXRoZXIgSXJEQSBpcyBh dmFpbGFibGVdKSBVU0VfSVJEQT0ieWVzIiBXSU4zMl9JUkRBPSJ0cnVlIl0sLAorCQkJCVsjaW5j bHVkZSA8d2luZG93cy5oPl0pCisJZmkKKwlCTFVFVE9PVEhfTElCUz0iIgogCWlmIHRlc3QgeCIk VVNFX0lSREEiID0gInh5ZXMiIC1vIHgiJFVTRV9CTFVFVE9PVEgiID0gInh5ZXMiOyB0aGVuCi0J CUxJQlM9IiRMSUJTIC1sd3MyXzMyIgorCQlCTFVFVE9PVEhfTElCUz0iLWx3czJfMzIiCiAJZmkK KwlpZiB0ZXN0IHgiJFVTRV9JUkRBIiA9ICJ4eWVzIjsgdGhlbgorCQlCTFVFVE9PVEhfTElCUz0i JEJMVUVUT09USF9MSUJTIC1sd2lubW0iCisJZmkKKwlBQ19TVUJTVChCTFVFVE9PVEhfTElCUykK IAlXSU4zMj0xCiAJOzsKLQogZXNhYwogCiBBTV9DT05ESVRJT05BTChbV0lOMzJdLCBbdGVzdCAi eCRXSU4zMiIgPSAieDEiXSkKLUFNX0NPTkRJVElPTkFMKFtGT1JfTUFDXSwgW3Rlc3QgIngkRk9S X01BQyIgPSAieDEiXSkKK0FNX0NPTkRJVElPTkFMKFtTT0NLRVRQSE9ORVRdLCBbdGVzdCAieCRV U0VfU09DS0VUUEhPTkVUIiA9ICJ4eWVzIl0pCitBTV9DT05ESVRJT05BTChbT1NYQkxVRVRPT1RI XSwgW3Rlc3QgIngkT1NYX0JMVUVUT09USCIgPSAieHRydWUiXSkKK0FNX0NPTkRJVElPTkFMKFtV TklYQkxVRVRPT1RIXSwgW3Rlc3QgIngkVU5JWF9CTFVFVE9PVEgiID0gInh0cnVlIl0pCitBTV9D T05ESVRJT05BTChbVU5JWElSREFdLCBbdGVzdCAieCRVTklYX0lSREEiID0gInh0cnVlIl0pCitB TV9DT05ESVRJT05BTChbV0lOQkxVRVRPT1RIXSwgW3Rlc3QgIngkV0lOMzJfQkxVRVRPT1RIIiA9 ICJ4dHJ1ZSJdKQorQU1fQ09ORElUSU9OQUwoW1dJTklSREFdLCBbdGVzdCAieCRXSU4zMl9JUkRB IiA9ICJ4dHJ1ZSJdKQogCiBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09IENoZWNrcyBmb3Ig WCBiYXNlIHN1cHBvcnQKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kZXZpY2UuaCBiL2luY2x1ZGUv ZGV2aWNlLmgKaW5kZXggZDQ1ZjMyYjcuLjhlODRlMDc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Rl dmljZS5oCisrKyBiL2luY2x1ZGUvZGV2aWNlLmgKQEAgLTI2LDcgKzI2LDYgQEAgaW50IGRldmlj ZV9vcGVuKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX29kZF9wYXJpdHksIGludCB3aXRoX2Fz eW5jLAogCQlpbnQgd2l0aF9od19oYW5kc2hha2UsIGduX2Nvbm5lY3Rpb25fdHlwZSBkZXZpY2Vf dHlwZSwKIAkJc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogdm9pZCBkZXZpY2VfY2xv c2Uoc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwotdm9pZCBkZXZpY2VfcmVzZXQoc3Ry dWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogCiB2b2lkIGRldmljZV9zZXRkdHJydHMoaW50 IGR0ciwgaW50IHJ0cywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogdm9pZCBkZXZp Y2VfY2hhbmdlc3BlZWQoaW50IHNwZWVkLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RldmljZXMvZGt1MmxpYnVzYi5oIGIvaW5jbHVkZS9kZXZp Y2VzL2RrdTJsaWJ1c2IuaAppbmRleCBiZTRkNGJhNC4uZDRiMDk0YzkgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZGV2aWNlcy9ka3UybGlidXNiLmgKKysrIGIvaW5jbHVkZS9kZXZpY2VzL2RrdTJsaWJ1 c2IuaApAQCAtMTYsOTQgKzE2LDggQEAKICNpZm5kZWYgX2dub2tpaV9ka3UybGlidXNiX2gKICNk ZWZpbmUgX2dub2tpaV9ka3UybGlidXNiX2gKIAotI2lmZGVmIEhBVkVfTElCVVNCCi0jICBpbmNs dWRlIDx1c2IuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSAiY29tcGF0LmgiCi0jaW5jbHVkZSAibWlz Yy5oIgogI2luY2x1ZGUgImdub2tpaS5oIgogCi0jaWZkZWYgSEFWRV9MSUJVU0IKLQotLyogSW5m b3JtYXRpb24gYWJvdXQgYSBVU0IgREtVMiBGQlVTIGludGVyZmFjZSBwcmVzZW50IG9uIHRoZSBz eXN0ZW0gKi8KLXN0cnVjdCBmYnVzX3VzYl9pbnRlcmZhY2VfdHJhbnNwb3J0IHsKLQlzdHJ1Y3Qg ZmJ1c191c2JfaW50ZXJmYWNlX3RyYW5zcG9ydCAqcHJldiwgKm5leHQ7CS8qIE5leHQgYW5kIHBy ZXZpb3VzIGludGVyZmFjZXMgaW4gdGhlIGxpc3QgKi8KLQlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2 aWNlOwkJLyogVVNCIGRldmljZSB0aGF0IGhhcyB0aGUgaW50ZXJmYWNlICovCi0JaW50IGNvbmZp Z3VyYXRpb247CQkJLyogRGV2aWNlIGNvbmZpZ3VyYXRpb24gKi8KLQlpbnQgY29uZmlndXJhdGlv bl9kZXNjcmlwdGlvbjsJCS8qIENvbmZpZ3VyYXRpb24gc3RyaW5nIGRlc2NyaXB0b3IgbnVtYmVy ICovCi0JaW50IGNvbnRyb2xfaW50ZXJmYWNlOwkJCS8qIERLVTIgRkJVUyBtYXN0ZXIgaW50ZXJm YWNlICovCi0JaW50IGNvbnRyb2xfc2V0dGluZzsJCQkvKiBES1UyIEZCVVMgbWFzdGVyIGludGVy ZmFjZSBzZXR0aW5nICovCi0JaW50IGNvbnRyb2xfaW50ZXJmYWNlX2Rlc2NyaXB0aW9uOwkvKiBE S1UyIEZCVVMgbWFzdGVyIGludGVyZmFjZSBzdHJpbmcgZGVzY3JpcHRvciBudW1iZXIKLQkJCQkJ CSAqIElmIG5vbi16ZXJvLCB1c2UgdXNiX2dldF9zdHJpbmdfc2ltcGxlKCkgZnJvbQotCQkJCQkJ ICogbGlidXNiIHRvIHJldHJpZXZlIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uCi0JCQkJCQkg Ki8KLQlpbnQgZGF0YV9pbnRlcmZhY2U7CQkJLyogREtVMiBGQlVTIGRhdGEvc2xhdmUgaW50ZXJm YWNlICovCi0JaW50IGRhdGFfaWRsZV9zZXR0aW5nOwkJCS8qIERLVTIgRkJVUyBkYXRhL3NsYXZl IGlkbGUgc2V0dGluZyAqLwotCWludCBkYXRhX2ludGVyZmFjZV9pZGxlX2Rlc2NyaXB0aW9uOwkv KiBES1UyIEZCVVMgZGF0YS9zbGF2ZSBpbnRlcmZhY2Ugc3RyaW5nIGRlc2NyaXB0b3IgbnVtYmVy Ci0JCQkJCQkgKiBpbiBpZGxlIHNldHRpbmcgKi8KLQlpbnQgZGF0YV9hY3RpdmVfc2V0dGluZzsJ CS8qIERLVTIgRkJVUyBkYXRhL3NsYXZlIGFjdGl2ZSBzZXR0aW5nICovCi0JaW50IGRhdGFfaW50 ZXJmYWNlX2FjdGl2ZV9kZXNjcmlwdGlvbjsJLyogREtVMiBGQlVTIGRhdGEvc2xhdmUgaW50ZXJm YWNlIHN0cmluZyBkZXNjcmlwdG9yIG51bWJlcgotCQkJCQkJICogaW4gYWN0aXZlIHNldHRpbmcg Ki8KLQlpbnQgZGF0YV9lbmRwb2ludF9yZWFkOwkJCS8qIERLVTIgRkJVUyBkYXRhL3NsYXZlIGlu dGVyZmFjZSByZWFkIGVuZHBvaW50ICovCi0JaW50IGRhdGFfZW5kcG9pbnRfd3JpdGU7CQkvKiBE S1UyIEZCVVMgZGF0YS9zbGF2ZSBpbnRlcmZhY2Ugd3JpdGUgZW5kcG9pbnQgKi8KLQl1c2JfZGV2 X2hhbmRsZSAqZGV2X2NvbnRyb2w7CQkvKiBsaWJ1c2IgaGFuZGxlciBmb3IgY29udHJvbCBpbnRl cmFjZSAqLwotCXVzYl9kZXZfaGFuZGxlICpkZXZfZGF0YTsJCS8qIGxpYnVzYiBoYW5kbGVyIGZv ciBkYXRhIGludGVyZmFjZSAqLwotfTsKLQotLyogVVNCLXNwZWNpZmljIEZCVVMgaW50ZXJmYWNl IGluZm9ybWF0aW9uICovCi10eXBlZGVmIHN0cnVjdCB7Ci0JLyogTWFudWZhY3R1cmVyLCBlLmcu IE5va2lhICovCi0JY2hhciAqbWFudWZhY3R1cmVyOwotCS8qIFByb2R1Y3QsIGUuZy4gTm9raWEg NjY4MCAqLwotCWNoYXIgKnByb2R1Y3Q7Ci0JLyogUHJvZHVjdCBzZXJpYWwgbnVtYmVyICovCi0J Y2hhciAqc2VyaWFsOwotCS8qIFVTQiBkZXZpY2UgY29uZmlndXJhdGlvbiBkZXNjcmlwdGlvbiAq LwotCWNoYXIgKmNvbmZpZ3VyYXRpb247Ci0JLyogQ29udHJvbCBpbnRlcmZhY2UgZGVzY3JpcHRp b24gKi8KLQljaGFyICpjb250cm9sX2ludGVyZmFjZTsKLQkvKiBJZGxlIGRhdGEgaW50ZXJmYWNl IGRlc2NyaXB0aW9uLCB0eXBpY2FsbHkgZW1wdHkgKi8KLQljaGFyICpkYXRhX2ludGVyZmFjZV9p ZGxlOwotCS8qIEFjdGl2ZSBkYXRhIGludGVyZmFjZSBkZXNjcmlwdGlvbiwgdHlwaWNhbGx5IGVt cHR5ICovCi0JY2hhciAqZGF0YV9pbnRlcmZhY2VfYWN0aXZlOwotCS8qIEludGVybmFsIGluZm9y bWF0aW9uIGZvciB0aGUgdHJhbnNwb3J0IGxheWVyIGluIHRoZSBsaWJyYXJ5ICovCi0Jc3RydWN0 IGZidXNfdXNiX2ludGVyZmFjZV90cmFuc3BvcnQgKmludGVyZmFjZTsKLX0gZmJ1c191c2JfaW50 ZXJmYWNlOwotCi0vKiAiVW5pb24gRnVuY3Rpb25hbCBEZXNjcmlwdG9yIiBmcm9tIENEQyBzcGVj IDUuMi4zLlgKLSAqIHVzZWQgdG8gZmluZCBkYXRhL3NsYXZlIERLVTIgRkJVUyBpbnRlcmZhY2Ug Ki8KLSNwcmFnbWEgcGFjaygxKQotc3RydWN0IGNkY191bmlvbl9kZXNjIHsKLQl1X2ludDhfdCAg ICAgIGJMZW5ndGg7Ci0JdV9pbnQ4X3QgICAgICBiRGVzY3JpcHRvclR5cGU7Ci0JdV9pbnQ4X3Qg ICAgICBiRGVzY3JpcHRvclN1YlR5cGU7Ci0KLQl1X2ludDhfdCAgICAgIGJNYXN0ZXJJbnRlcmZh Y2UwOwotCXVfaW50OF90ICAgICAgYlNsYXZlSW50ZXJmYWNlMDsKLX07Ci0jcHJhZ21hIHBhY2so KQotCi0vKiBOb2tpYSBpcyB0aGUgdmVuZG9yIHdlIGFyZSBpbnRlcmVzdGVkIGluICovCi0jZGVm aW5lIE5PS0lBX1ZFTkRPUl9JRAkweDA0MjEKLQotLyogQ0RDIGNsYXNzIGFuZCBzdWJjbGFzcyB0 eXBlcyAqLwotI2RlZmluZSBVU0JfQ0RDX0NMQVNTCQkJMHgwMgotI2RlZmluZSBVU0JfQ0RDX0ZC VVNfU1VCQ0xBU1MJCTB4ZmUKLQotLyogY2xhc3MgYW5kIHN1YmNsYXNzIHNwZWNpZmljIGRlc2Ny aXB0b3IgdHlwZXMgKi8KLSNkZWZpbmUgQ0RDX0hFQURFUl9UWVBFCQkJMHgwMAotI2RlZmluZSBD RENfVU5JT05fVFlQRQkJCTB4MDYKLSNkZWZpbmUgQ0RDX0ZCVVNfVFlQRQkJCTB4MTUKLQotLyog SW50ZXJmYWNlIGRlc2NyaXB0b3IgKi8KLSNkZWZpbmUgVVNCX0RUX0NTX0lOVEVSRkFDRQkJMHgy NAotCi0jZGVmaW5lIFVTQl9NQVhfU1RSSU5HX1NJWkUJCTI1NgotI2RlZmluZSBVU0JfRkJVU19U SU1FT1VUCQkxMDAwMCAvKiAxMCBzZWNvbmRzICovCi0KLSNlbmRpZgotCiBpbnQgZmJ1c2RrdTJ1 c2Jfb3BlbihzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7CiBpbnQgZmJ1c2RrdTJ1c2Jf Y2xvc2Uoc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwogaW50IGZidXNka3UydXNiX3dy aXRlKGNvbnN0IF9fcHRyX3QgYnl0ZXMsIGludCBzaXplLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5l ICpzdGF0ZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RldmljZXMvc2VyaWFsLmggYi9pbmNsdWRl L2RldmljZXMvc2VyaWFsLmgKaW5kZXggY2I1NmE4MjMuLjMyMGIzN2U3IDEwMDY0NAotLS0gYS9p bmNsdWRlL2RldmljZXMvc2VyaWFsLmgKKysrIGIvaW5jbHVkZS9kZXZpY2VzL3NlcmlhbC5oCkBA IC0xMyw4ICsxMyw2IEBACiAjaWZuZGVmIF9fZGV2aWNlc19zZXJpYWxfaAogI2RlZmluZSBfX2Rl dmljZXNfc2VyaWFsX2gKIAotI2luY2x1ZGUgImNvbXBhdC5oIgotI2luY2x1ZGUgIm1pc2MuaCIK ICNpbmNsdWRlICJnbm9raWkuaCIKIAogaW50IHNlcmlhbF9vcGVuKGNvbnN0IGNoYXIgKmZpbGUs IGludCBvZmxhZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RldmljZXMvdGNwLmggYi9pbmNsdWRl L2RldmljZXMvdGNwLmgKaW5kZXggMGUzNzg2ZTcuLjYyMjZlNzM0IDEwMDY0NAotLS0gYS9pbmNs dWRlL2RldmljZXMvdGNwLmgKKysrIGIvaW5jbHVkZS9kZXZpY2VzL3RjcC5oCkBAIC0xMyw4ICsx Myw2IEBACiAjaWZuZGVmIF9fZGV2aWNlc190Y3BfaAogI2RlZmluZSBfX2RldmljZXNfdGNwX2gK IAotI2luY2x1ZGUgImNvbXBhdC5oIgotI2luY2x1ZGUgIm1pc2MuaCIKICNpbmNsdWRlICJnbm9r aWkuaCIKIAogaW50IHRjcF9vcGVuZGV2aWNlKGNvbnN0IGNoYXIgKmZpbGUsIGludCB3aXRoX2Fz eW5jLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2RldmljZXMvdW5peGJsdWV0b290aC5oIGIvaW5jbHVkZS9kZXZpY2VzL3VuaXhibHVldG9vdGgu aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFjYWQxOWIuLjAwMDAwMDAwCi0tLSBh L2luY2x1ZGUvZGV2aWNlcy91bml4Ymx1ZXRvb3RoLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr MCwwIEBACi0vKgotCi0gIEcgTiBPIEsgSSBJCi0KLSAgQSBMaW51eC9Vbml4IHRvb2xzZXQgYW5k IGRyaXZlciBmb3IgdGhlIG1vYmlsZSBwaG9uZXMuCi0KLSAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg Z25va2lpLgotCi0gIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBIdWdoIEJsZW1pbmdzICYgUGF2 ZWwgSmFuaWsgbWwuCi0gIENvcHlyaWdodCAoQykgMjAwMiAgICAgICBNYXJjZWwgSG9sdG1hbm4g PG1hcmNlbEBob2x0bWFubi5vcmc+Ci0KLSovCi0KLSNpZm5kZWYgX2dub2tpaV91bml4X2JsdWV0 b290aF9oCi0jZGVmaW5lIF9nbm9raWlfdW5peF9ibHVldG9vdGhfaAotCi0jaW5jbHVkZSAiY29t cGF0LmgiCi0jaW5jbHVkZSAibWlzYy5oIgotI2luY2x1ZGUgImdub2tpaS5oIgotCi1pbnQgYmx1 ZXRvb3RoX29wZW4oY29uc3QgY2hhciAqYWRkciwgdWludDhfdCBjaGFubmVsLCBzdHJ1Y3QgZ25f c3RhdGVtYWNoaW5lICpzdGF0ZSk7Ci1pbnQgYmx1ZXRvb3RoX2Nsb3NlKGludCBmZCwgc3RydWN0 IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwotaW50IGJsdWV0b290aF93cml0ZShpbnQgZmQsIGNv bnN0IF9fcHRyX3QgYnl0ZXMsIGludCBzaXplLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0 ZSk7Ci1pbnQgYmx1ZXRvb3RoX3JlYWQoaW50IGZkLCBfX3B0cl90IGJ5dGVzLCBpbnQgc2l6ZSwg c3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwotaW50IGJsdWV0b290aF9zZWxlY3QoaW50 IGZkLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3Rh dGUpOwotCi0jZW5kaWYgLyogX2dub2tpaV91bml4X2JsdWV0b290aF9oICovCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RldmljZXMvdW5peGlyZGEuaCBiL2luY2x1ZGUvZGV2aWNlcy91bml4aXJkYS5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWIwN2VmNC4uMDAwMDAwMDAKLS0tIGEv aW5jbHVkZS9kZXZpY2VzL3VuaXhpcmRhLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBA Ci0vKgotICoKLSAqIEcgTiBPIEsgSSBJCi0gKgotICogQSBMaW51eC9Vbml4IHRvb2xzZXQgYW5k IGRyaXZlciBmb3IgdGhlIG1vYmlsZSBwaG9uZXMuCi0gKgotICogQ29weXJpZ2h0IChDKSAxOTk5 LCAyMDAwIEh1Z2ggQmxlbWluZ3MgJiBQYXZlbCBKYW7DrWsgbWwuCi0gKiBDb3B5cmlnaHQgKEMp IDIwMDAtMjAwMSAgTWFyY2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3JnPgotICoKLSAq LwotCi0jaWZuZGVmIF9fdW5peF9pcmRhX2hfCi0jZGVmaW5lIF9fdW5peF9pcmRhX2hfCi0KLSNl bmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9nbm9raWkvZGF0YS5oIGIvaW5jbHVkZS9nbm9raWkv ZGF0YS5oCmluZGV4IDk4MjJjMGIwLi42YjRkMGJiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9nbm9r aWkvZGF0YS5oCisrKyBiL2luY2x1ZGUvZ25va2lpL2RhdGEuaApAQCAtMTkxLDkgKzE5MSwyMiBA QCB0eXBlZGVmIHN0cnVjdCB7CiAJZ25fYXV0aF9pbnRlcmFjdGl2ZV9mdW5jX3QgYXV0aF9pbnRl cmFjdGl2ZTsKIH0gZ25fY2FsbGJhY2s7CiAKK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQgKCpvcGVu KShjb25zdCBjaGFyICpmaWxlLCBpbnQgd2l0aF9vZGRfcGFyaXR5LCBpbnQgd2l0aF9hc3luYywK KwkJICAgIGludCB3aXRoX2h3X2hhbmRzaGFrZSwgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3Rh dGUpOworCXZvaWQgKCpjbG9zZSkoaW50IGZkLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0 ZSk7CisJaW50ICgqc2VsZWN0KShpbnQgZmQsIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0LCBzdHJ1 Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7CisJc2l6ZV90ICgqcmVhZCkoaW50IGZkLCBfX3B0 cl90IGJ1Ziwgc2l6ZV90IG5ieXRlcywgc3RydWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOwor CXNpemVfdCAoKndyaXRlKShpbnQgZmQsIGNvbnN0IF9fcHRyX3QgYnVmLCBzaXplX3Qgbiwgc3Ry dWN0IGduX3N0YXRlbWFjaGluZSAqc3RhdGUpOworCWduX2Vycm9yICgqbnJjdmQpKGludCBmZCwg aW50ICpuLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7CisJZ25fZXJyb3IgKCpmbHVz aCkoaW50IGZkLCBzdHJ1Y3QgZ25fc3RhdGVtYWNoaW5lICpzdGF0ZSk7CisJZ25fZXJyb3IgKCpz cGVlZCkoaW50IGZkLCBpbnQgc3BlZWQsIHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKTsK Kwl2b2lkICgqZHRycnRzKShpbnQgZmQsIGludCBkdHIsIGludCBydHMsIHN0cnVjdCBnbl9zdGF0 ZW1hY2hpbmUgKnN0YXRlKTsKK30gZ25fZGV2aWNlX29wczsKKwogdHlwZWRlZiBzdHJ1Y3Qgewog CWludCBmZDsKLQlnbl9jb25uZWN0aW9uX3R5cGUgdHlwZTsKKwljb25zdCBnbl9kZXZpY2Vfb3Bz ICpvcHM7CiAJdm9pZCAqZGV2aWNlX2luc3RhbmNlOwogfSBnbl9kZXZpY2U7CiAKLS0gCjIuMjUu MAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmdub2tp aS11c2VycyBtYWlsaW5nIGxpc3QKZ25va2lpLXVzZXJzQG5vbmdudS5vcmcKaHR0cHM6Ly9saXN0 cy5ub25nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ25va2lpLXVzZXJzCg==