Re: [stable request] ROSE memory-safety fixes for 7.0.y and earlier (merged out-of-tree in linux-netdev/mod-orphan)
Bernard Pidoux <[email protected]> Sat, 20 Jun 2026 12:37:16 +0200
| Newsgroups | org.kernel.vger.linux-hams,org.kernel.vger.stable |
|---|---|
| Message-ID | <CAFAa3YAEDsnqcN6UqUE-4X+y0t7RPmNtwdb0LxExryZmAKU9pw@mail.gmail.com> |
--000000000000ed57320654acfedf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Greg, all, Sorry about that -- my mail client dropped the list and Jakub from the recipients on the previous message; I did not intend to take it off-list. Resending the same note to everyone, with the mbox attached again. I have prepared a first set, attached as an mbox: 15 ROSE fixes for the 7.0.y stable tree (7.0.y is the last stable line that still ships ROSE, since it was removed in 7.1). They are the use-after-free, refcount and teardown-race fixes I developed and merged in the linux-netdev/mod-orphan tree, where ROSE now lives. As Greg asked, every patch carries a (cherry picked from commit <id>) trailer pointing at the exact git id in mod-orphan it was taken from, so they can be tracked across releases. The whole series applies cleanly with "git am" on top of v7.0.13 (no conflicts, no fuzz). The 15 fixes form one coherent set -- the three core UAF fixes build on the earlier refactors in the same series, so they cannot be cherry-picked in isolation; this is why I send the full set as the first batch. Please let me know if you would prefer a different format (individual mails via git send-email, extra trailers, etc.) and I will adjust. I am happy to follow up once this batch has gone through. Thanks again, Bernard, F6BVP Le sam. 20 juin 2026 =C3=A0 12:27, Greg KH <[email protected]> a = =C3=A9crit : > > On Sat, Jun 20, 2026 at 12:24:55PM +0200, Bernard Pidoux wrote: > > Hi Greg, > > <snip> > > For some reason you sent this only to me, which is a bit rude to > everyone else on the mailing list. I'll be glad to respond if you > resend it to everyone. > > thanks, > > greg k-h --000000000000ed57320654acfedf Content-Type: application/mbox; name="rose-7.0.13-backport.mbox" Content-Disposition: attachment; filename="rose-7.0.13-backport.mbox" Content-Transfer-Encoding: base64 Content-ID: <f_mqm8319n0> X-Attachment-Id: f_mqm8319n0 RnJvbSBmZjkxYWRjNTRkYjJiNjJjN2NkZjA2M2ZmNzYxZWNlYjVhZGYyMjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTYgTWF5IDIwMjYgMTI6MDk6MzMgKzAyMDAKU3ViamVjdDogW1BBVENI IDcuMC4xMyAwMS8xNV0gcm9zZTogZml4IGRldl9wdXQoKSBsZWFrIGluCiByb3NlX2xvb3BiYWNr X3RpbWVyKCkKCnJvc2VfcnhfY2FsbF9yZXF1ZXN0KCkgYWx3YXlzIGNvbnN1bWVzIG9yIHJldHVy bnMgdGhlIHNrYiBidXQgbmV2ZXIKcmVsZWFzZXMgdGhlIGRldmljZSByZWZlcmVuY2Ugb2J0YWlu ZWQgZnJvbSByb3NlX2Rldl9nZXQoKS4gIFdoZW4Kcm9zZV9yeF9jYWxsX3JlcXVlc3QoKSBzdWNj ZWVkcyAocmV0dXJucyBub24temVybykgZGV2X3B1dCgpIHdhcyBuZXZlcgpjYWxsZWQsIGxlYWtp bmcgb25lIHJlZmVyZW5jZSBwZXIgbG9vcGJhY2sgQ0FMTF9SRVFVRVNULgoKTW92ZSBkZXZfcHV0 KCkgb3V0c2lkZSB0aGUgY29uZGl0aW9uYWwgc28gaXQgaXMgY2FsbGVkIHVuY29uZGl0aW9uYWxs eQphZnRlciByb3NlX3J4X2NhbGxfcmVxdWVzdCgpIGluIGFsbCBjYXNlcy4KCkFsc28gcmVtb3Zl IHRoZSBkZWFkIGNoZWNrICghcm9zZV9sb29wYmFja19uZWlnaC0+ZGV2ICYmCiFyb3NlX2xvb3Bi YWNrX25laWdoLT5sb29wYmFjaykgdGhhdCBpbW1lZGlhdGVseSBwcmVjZWRlcyBpdDogdGhlCmxv b3BiYWNrIG5laWdoYm91ciBhbHdheXMgaGFzIGxvb3BiYWNrPTEgc28gdGhpcyBjb25kaXRpb24g Y2FuIG5ldmVyCmJlIHRydWUuCgpGaXhlczogMDQ1M2M2ODI0NTk1ICgibmV0L3Jvc2U6IGZpeCB1 bmJvdW5kIGxvb3AgaW4gcm9zZV9sb29wYmFja190aW1lcigpIikKU2lnbmVkLW9mZi1ieTogQmVy bmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgoKKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgZmY5MWFkYzU0ZGIyYjYyYzdjZGYwNjNmZjc2MWVjZWI1YWRmMjIxNSkKCi0tLQog bmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jIHwgMTEgKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Jvc2Uv cm9zZV9sb29wYmFjay5jIGIvbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jCmluZGV4IGI1MzhlMzku LjkxNGM4ZjQgMTAwNjQ0Ci0tLSBhL25ldC9yb3NlL3Jvc2VfbG9vcGJhY2suYworKysgYi9uZXQv cm9zZS9yb3NlX2xvb3BiYWNrLmMKQEAgLTk2LDIyICs5NiwxNSBAQCBzdGF0aWMgdm9pZCByb3Nl X2xvb3BiYWNrX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp1bnVzZWQpCiAJCX0KIAogCQlpZiAo ZnJhbWV0eXBlID09IFJPU0VfQ0FMTF9SRVFVRVNUKSB7Ci0JCQlpZiAoIXJvc2VfbG9vcGJhY2tf bmVpZ2gtPmRldiAmJgotCQkJICAgICFyb3NlX2xvb3BiYWNrX25laWdoLT5sb29wYmFjaykgewot CQkJCWtmcmVlX3NrYihza2IpOwotCQkJCWNvbnRpbnVlOwotCQkJfQotCiAJCQlkZXYgPSByb3Nl X2Rldl9nZXQoZGVzdCk7CiAJCQlpZiAoIWRldikgewogCQkJCWtmcmVlX3NrYihza2IpOwogCQkJ CWNvbnRpbnVlOwogCQkJfQogCi0JCQlpZiAocm9zZV9yeF9jYWxsX3JlcXVlc3Qoc2tiLCBkZXYs IHJvc2VfbG9vcGJhY2tfbmVpZ2gsIGxjaV9vKSA9PSAwKSB7Ci0JCQkJZGV2X3B1dChkZXYpOwor CQkJaWYgKHJvc2VfcnhfY2FsbF9yZXF1ZXN0KHNrYiwgZGV2LCByb3NlX2xvb3BiYWNrX25laWdo LCBsY2lfbykgPT0gMCkKIAkJCQlrZnJlZV9za2Ioc2tiKTsKLQkJCX0KKwkJCWRldl9wdXQoZGV2 KTsKIAkJfSBlbHNlIHsKIAkJCWtmcmVlX3NrYihza2IpOwogCQl9Ci0tIAoyLjUzLjAKCkZyb20g ZDI3MGE3YTU3OTNhZjg0NTU1YzQwZGQxZWI4MGYxZDQ5N2ZkZjUzYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgpE YXRlOiBTYXQsIDE2IE1heSAyMDI2IDEyOjEwOjAzICswMjAwClN1YmplY3Q6IFtQQVRDSCA3LjAu MTMgMDIvMTVdIHJvc2U6IGhvbGQgbG9vcGJhY2sgbmVpZ2hib3VyIHJlZmVyZW5jZSBhY3Jvc3MK IHRpbWVyIGNhbGxiYWNrCgpyb3NlX2xvb3BiYWNrX3RpbWVyKCkgZGVyZWZlcmVuY2VzIHJvc2Vf bG9vcGJhY2tfbmVpZ2ggdGhyb3VnaG91dCBpdHMKYm9keSBidXQgaG9sZHMgbm8gcmVmZXJlbmNl IG9uIGl0LiAgQSBjb25jdXJyZW50IHJvc2VfbG9vcGJhY2tfY2xlYXIoKQpmb2xsb3dlZCBieSBy b3NlX2FkZF9sb29wYmFja19uZWlnaCgpIGNvdWxkIGZyZWUgYW5kIHJlYWxsb2NhdGUgdGhlCm5l aWdoYm91ciB3aGlsZSB0aGUgdGltZXIgYm9keSBpcyBydW5uaW5nLCBjYXVzaW5nIGEgdXNlLWFm dGVyLWZyZWUuCgpUYWtlIGEgcmVmZXJlbmNlIHdpdGggcm9zZV9uZWlnaF9ob2xkKCkgYXQgdGhl IHN0YXJ0IG9mIHRoZSBjYWxsYmFjawooYmFpbGluZyBvdXQgaWYgdGhlIHBvaW50ZXIgaXMgYWxy ZWFkeSBOVUxMKSBhbmQgcmVsZWFzZSBpdCB3aXRoCnJvc2VfbmVpZ2hfcHV0KCkgYXQgdGhlIHNp bmdsZSBleGl0IHBvaW50LiAgVGhlIG5laWdoIGNhbm5vdCBiZSBmcmVlZAp3aGlsZSB0aGUgY2Fs bGJhY2sgaG9sZHMgYSByZWZlcmVuY2UuCgpGaXhlczogZDg2MGQxZmFhNmIyICgibmV0OiByb3Nl OiBjb252ZXJ0ICd1c2UnIGZpZWxkIHRvIHJlZmNvdW50X3QiKQpTaWduZWQtb2ZmLWJ5OiBCZXJu YXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFpbC5jb20+CgooY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCBkMjcwYTdhNTc5M2FmODQ1NTVjNDBkZDFlYjgwZjFkNDk3ZmRmNTNjKQoKLS0tCiBu ZXQvcm9zZS9yb3NlX2xvb3BiYWNrLmMgfCAxMSArKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcm9zZS9y b3NlX2xvb3BiYWNrLmMgYi9uZXQvcm9zZS9yb3NlX2xvb3BiYWNrLmMKaW5kZXggOTE0YzhmNC4u ZDY2OTEzZCAxMDA2NDQKLS0tIGEvbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jCisrKyBiL25ldC9y b3NlL3Jvc2VfbG9vcGJhY2suYwpAQCAtNjYsMTAgKzY2LDE1IEBAIHN0YXRpYyB2b2lkIHJvc2Vf bG9vcGJhY2tfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKIAl1bnNpZ25lZCBpbnQg bGNpX2ksIGxjaV9vOwogCWludCBjb3VudDsKIAorCWlmIChyb3NlX2xvb3BiYWNrX25laWdoKQor CQlyb3NlX25laWdoX2hvbGQocm9zZV9sb29wYmFja19uZWlnaCk7CisJZWxzZQorCQlyZXR1cm47 CisKIAlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBST1NFX0xPT1BCQUNLX0xJTUlUOyBjb3VudCsr KSB7CiAJCXNrYiA9IHNrYl9kZXF1ZXVlKCZsb29wYmFja19xdWV1ZSk7CiAJCWlmICghc2tiKQot CQkJcmV0dXJuOworCQkJZ290byBvdXQ7CiAJCWlmIChza2ItPmxlbiA8IFJPU0VfTUlOX0xFTikg ewogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQljb250aW51ZTsKQEAgLTEwOSw2ICsxMTQsMTAgQEAg c3RhdGljIHZvaWQgcm9zZV9sb29wYmFja190aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdW51c2Vk KQogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCX0KIAl9CisKK291dDoKKwlyb3NlX25laWdoX3B1dChy b3NlX2xvb3BiYWNrX25laWdoKTsKKwogCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZsb29wYmFja19x dWV1ZSkpCiAJCW1vZF90aW1lcigmbG9vcGJhY2tfdGltZXIsIGppZmZpZXMgKyAxKTsKIH0KLS0g CjIuNTMuMAoKRnJvbSA0N2RkNmVjMWE3N2Q3Nzg5NWFmYjAwYWEyZTY4MzczYTQ4Mjg5MTA4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2 cEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgTWF5IDIwMjYgMTI6MTA6MjAgKzAyMDAKU3ViamVj dDogW1BBVENIIDcuMC4xMyAwMy8xNV0gcm9zZTogZml4IHJhY2UgYmV0d2VlbiBsb29wYmFjayB0 aW1lciBhbmQgbW9kdWxlCiByZW1vdmFsCgpyb3NlX2xvb3BiYWNrX2NsZWFyKCkgY2FsbGVkIHRp bWVyX2RlbGV0ZSgpIHdoaWNoIHJldHVybnMgaW1tZWRpYXRlbHkKd2l0aG91dCB3YWl0aW5nIGZv ciBhbnkgcnVubmluZyBjYWxsYmFjayB0byBjb21wbGV0ZS4gIElmIHRoZSB0aW1lcgpmaXJlZCBj b25jdXJyZW50bHkgd2l0aCBtb2R1bGUgcmVtb3ZhbCwgcm9zZV9sb29wYmFja190aW1lcigpIGNv dWxkCnJlLWFybSB0aGUgdGltZXIgYWZ0ZXIgdGltZXJfZGVsZXRlKCkgcmV0dXJuZWQgYW5kIHRo ZW4gYWNjZXNzCnJvc2VfbG9vcGJhY2tfbmVpZ2ggYWZ0ZXIgaXQgd2FzIGZyZWVkLgoKVHdvIGNv bXBsZW1lbnRhcnkgY2hhbmdlcyBjbG9zZSB0aGUgcmFjZToKCjEuIEFkZCBhIGxvb3BiYWNrX3N0 b3BwaW5nIGF0b21pYyBmbGFnLiAgcm9zZV9sb29wYmFja190aW1lcigpIGNoZWNrcwogICBpdCBh dCBlbnRyeSAoYmVmb3JlIGFjcXVpcmluZyBhIHJlZmVyZW5jZSkgYW5kIGFnYWluIGluc2lkZSB0 aGUKICAgbG9vcDsgd2hlbiBzZXQgaXQgZHJhaW5zIHRoZSBxdWV1ZSBhbmQgZXhpdHMgd2l0aG91 dCByZS1hcm1pbmcgdGhlCiAgIHRpbWVyLgoKMi4gU3dpdGNoIHJvc2VfbG9vcGJhY2tfY2xlYXIo KSB0byB0aW1lcl9kZWxldGVfc3luYygpIHNvIGl0IGJsb2NrcwogICB1bnRpbCBhbnkgaW4tZmxp Z2h0IGNhbGxiYWNrIGhhcyByZXR1cm5lZCBiZWZvcmUgZnJlZWluZyByZXNvdXJjZXMuCgpUaGUg c21wX21iKCkgYmV0d2VlbiBzZXR0aW5nIHRoZSBmbGFnIGFuZCBjYWxsaW5nIHRpbWVyX2RlbGV0 ZV9zeW5jKCkKZW5zdXJlcyB0aGUgZmxhZyBpcyB2aXNpYmxlIHRvIGFueSBjYWxsYmFjayB0aGF0 IGlzIGFib3V0IHRvIHJ1bi4KCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMy IikKU2lnbmVkLW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29t PgoKKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNDdkZDZlYzFhNzdkNzc4OTVhZmIwMGFhMmU2 ODM3M2E0ODI4OTEwOCkKCi0tLQogbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jIHwgMzEgKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5j IGIvbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jCmluZGV4IGQ2NjkxM2QuLjgwZDc4NzkgMTAwNjQ0 Ci0tLSBhL25ldC9yb3NlL3Jvc2VfbG9vcGJhY2suYworKysgYi9uZXQvcm9zZS9yb3NlX2xvb3Bi YWNrLmMKQEAgLTEyLDEzICsxMiwxNSBAQAogI2luY2x1ZGUgPG5ldC9yb3NlLmg+CiAjaW5jbHVk ZSA8bGludXgvaW5pdC5oPgogCi1zdGF0aWMgc3RydWN0IHNrX2J1ZmZfaGVhZCBsb29wYmFja19x dWV1ZTsKICNkZWZpbmUgUk9TRV9MT09QQkFDS19MSU1JVCAxMDAwCi1zdGF0aWMgc3RydWN0IHRp bWVyX2xpc3QgbG9vcGJhY2tfdGltZXI7CiAKK3N0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBsb29w YmFja190aW1lcjsKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGxvb3BiYWNrX3F1ZXVlOwog c3RhdGljIHZvaWQgcm9zZV9zZXRfbG9vcGJhY2tfdGltZXIodm9pZCk7CiBzdGF0aWMgdm9pZCBy b3NlX2xvb3BiYWNrX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp1bnVzZWQpOwogCitzdGF0aWMg YXRvbWljX3QgbG9vcGJhY2tfc3RvcHBpbmcgPSBBVE9NSUNfSU5JVCgwKTsKKwogdm9pZCByb3Nl X2xvb3BiYWNrX2luaXQodm9pZCkKIHsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZsb29wYmFja19x dWV1ZSk7CkBAIC02Niw2ICs2OCw5IEBAIHN0YXRpYyB2b2lkIHJvc2VfbG9vcGJhY2tfdGltZXIo c3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKIAl1bnNpZ25lZCBpbnQgbGNpX2ksIGxjaV9vOwog CWludCBjb3VudDsKIAorCWlmIChhdG9taWNfcmVhZCgmbG9vcGJhY2tfc3RvcHBpbmcpKQorCQly ZXR1cm47CisKIAlpZiAocm9zZV9sb29wYmFja19uZWlnaCkKIAkJcm9zZV9uZWlnaF9ob2xkKHJv c2VfbG9vcGJhY2tfbmVpZ2gpOwogCWVsc2UKQEAgLTc1LDYgKzgwLDEzIEBAIHN0YXRpYyB2b2lk IHJvc2VfbG9vcGJhY2tfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKIAkJc2tiID0g c2tiX2RlcXVldWUoJmxvb3BiYWNrX3F1ZXVlKTsKIAkJaWYgKCFza2IpCiAJCQlnb3RvIG91dDsK KworCQlpZiAoYXRvbWljX3JlYWQoJmxvb3BiYWNrX3N0b3BwaW5nKSkgeworCQkJa2ZyZWVfc2ti KHNrYik7CisJCQlza2JfcXVldWVfcHVyZ2UoJmxvb3BiYWNrX3F1ZXVlKTsKKwkJCWdvdG8gb3V0 OworCQl9CisKIAkJaWYgKHNrYi0+bGVuIDwgUk9TRV9NSU5fTEVOKSB7CiAJCQlrZnJlZV9za2Io c2tiKTsKIAkJCWNvbnRpbnVlOwpAQCAtMTE4LDcgKzEzMCw3IEBAIHN0YXRpYyB2b2lkIHJvc2Vf bG9vcGJhY2tfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKIG91dDoKIAlyb3NlX25l aWdoX3B1dChyb3NlX2xvb3BiYWNrX25laWdoKTsKIAotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZs b29wYmFja19xdWV1ZSkpCisJaWYgKCFhdG9taWNfcmVhZCgmbG9vcGJhY2tfc3RvcHBpbmcpICYm ICFza2JfcXVldWVfZW1wdHkoJmxvb3BiYWNrX3F1ZXVlKSkKIAkJbW9kX3RpbWVyKCZsb29wYmFj a190aW1lciwgamlmZmllcyArIDEpOwogfQogCkBAIC0xMjYsMTAgKzEzOCwxNSBAQCB2b2lkIF9f ZXhpdCByb3NlX2xvb3BiYWNrX2NsZWFyKHZvaWQpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsK IAotCXRpbWVyX2RlbGV0ZSgmbG9vcGJhY2tfdGltZXIpOworCWF0b21pY19zZXQoJmxvb3BiYWNr X3N0b3BwaW5nLCAxKTsKKwkvKiBQYWlycyB3aXRoIGF0b21pY19yZWFkKCkgaW4gcm9zZV9sb29w YmFja190aW1lcigpOiBlbnN1cmUgdGhlCisJICogc3RvcHBpbmcgZmxhZyBpcyB2aXNpYmxlIGJl Zm9yZSB3ZSBjYW5jZWwsIHNvIGEgY29uY3VycmVudAorCSAqIGNhbGxiYWNrIGFib3J0cyBpdHMg bG9vcCBlYXJseSByYXRoZXIgdGhhbiByZS1hcm1pbmcgdGhlIHRpbWVyLgorCSAqLworCXNtcF9t YigpOworCisJdGltZXJfZGVsZXRlX3N5bmMoJmxvb3BiYWNrX3RpbWVyKTsKIAotCXdoaWxlICgo c2tiID0gc2tiX2RlcXVldWUoJmxvb3BiYWNrX3F1ZXVlKSkgIT0gTlVMTCkgewotCQlza2ItPnNr ID0gTlVMTDsKKwl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZsb29wYmFja19xdWV1ZSkpICE9 IE5VTEwpCiAJCWtmcmVlX3NrYihza2IpOwotCX0KIH0KLS0gCjIuNTMuMAoKRnJvbSBlOGViMGM2 ZmFhODg0OWJhNzc2OTUxNmMxYThjODRkOWY2MTJhY2Y2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFpbC5jb20+CkRhdGU6IFNh dCwgMTYgTWF5IDIwMjYgMTI6MTA6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDcuMC4xMyAwNC8x NV0gcm9zZTogY2xlYXIgbmVpZ2hib3VyIHBvaW50ZXIgYWZ0ZXIKIHJvc2VfbmVpZ2hfcHV0KCkg aW4gc3RhdGUgbWFjaGluZXMKCkFmdGVyIGNhbGxpbmcgcm9zZV9uZWlnaF9wdXQoKSBpbiByb3Nl X3N0YXRlMV9tYWNoaW5lKCkgdGhyb3VnaApyb3NlX3N0YXRlNV9tYWNoaW5lKCksIHJvc2UtPm5l aWdoYm91ciB3YXMgbGVmdCBwb2ludGluZyBhdCB0aGUKcG90ZW50aWFsbHkgZnJlZWQgbmVpZ2hi b3VyIHN0cnVjdHVyZS4gIEEgc3Vic2VxdWVudCB0aW1lciBleHBpcnkgb3IKY29uY3VycmVudCB0 ZWFyZG93biBwYXRoIGNvdWxkIGRlcmVmZXJlbmNlIHRoZSBzdGFsZSBwb2ludGVyLCBjYXVzaW5n CmEgdXNlLWFmdGVyLWZyZWUuCgpTZXQgcm9zZS0+bmVpZ2hib3VyIHRvIE5VTEwgaW1tZWRpYXRl bHkgYWZ0ZXIgZWFjaCByb3NlX25laWdoX3B1dCgpCmNhbGwgaW4gdGhlIHN0YXRlIG1hY2hpbmUg ZnVuY3Rpb25zLgoKRml4ZXM6IGQ4NjBkMWZhYTZiMiAoIm5ldDogcm9zZTogY29udmVydCAndXNl JyBmaWVsZCB0byByZWZjb3VudF90IikKU2lnbmVkLW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGJl cm5hcmQuZjZidnBAZ21haWwuY29tPgoKKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZThlYjBj NmZhYTg4NDliYTc3Njk1MTZjMWE4Yzg0ZDlmNjEyYWNmNikKCi0tLQogbmV0L3Jvc2Uvcm9zZV9p bi5jIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9uZXQvcm9zZS9yb3NlX2luLmMgYi9uZXQvcm9zZS9yb3NlX2luLmMKaW5kZXggNTc4MTRm YS4uMTJiNDBjOCAxMDA2NDQKLS0tIGEvbmV0L3Jvc2Uvcm9zZV9pbi5jCisrKyBiL25ldC9yb3Nl L3Jvc2VfaW4uYwpAQCAtNTcsNiArNTcsNyBAQCBzdGF0aWMgaW50IHJvc2Vfc3RhdGUxX21hY2hp bmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZnJhbWV0eQogCQly b3NlX3dyaXRlX2ludGVybmFsKHNrLCBST1NFX0NMRUFSX0NPTkZJUk1BVElPTik7CiAJCXJvc2Vf ZGlzY29ubmVjdChzaywgRUNPTk5SRUZVU0VELCBza2ItPmRhdGFbM10sIHNrYi0+ZGF0YVs0XSk7 CiAJCXJvc2VfbmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cik7CisJCXJvc2UtPm5laWdoYm91ciA9 IE5VTEw7CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKQEAgLTgwLDExICs4MSwxMyBAQCBzdGF0aWMg aW50IHJvc2Vfc3RhdGUyX21hY2hpbmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBpbnQgZnJhbWV0eQogCQlyb3NlX3dyaXRlX2ludGVybmFsKHNrLCBST1NFX0NMRUFSX0NP TkZJUk1BVElPTik7CiAJCXJvc2VfZGlzY29ubmVjdChzaywgMCwgc2tiLT5kYXRhWzNdLCBza2It PmRhdGFbNF0pOwogCQlyb3NlX25laWdoX3B1dChyb3NlLT5uZWlnaGJvdXIpOworCQlyb3NlLT5u ZWlnaGJvdXIgPSBOVUxMOwogCQlicmVhazsKIAogCWNhc2UgUk9TRV9DTEVBUl9DT05GSVJNQVRJ T046CiAJCXJvc2VfZGlzY29ubmVjdChzaywgMCwgLTEsIC0xKTsKIAkJcm9zZV9uZWlnaF9wdXQo cm9zZS0+bmVpZ2hib3VyKTsKKwkJcm9zZS0+bmVpZ2hib3VyID0gTlVMTDsKIAkJYnJlYWs7CiAK IAlkZWZhdWx0OgpAQCAtMTIxLDYgKzEyNCw3IEBAIHN0YXRpYyBpbnQgcm9zZV9zdGF0ZTNfbWFj aGluZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBmcmFtZXR5CiAJ CXJvc2Vfd3JpdGVfaW50ZXJuYWwoc2ssIFJPU0VfQ0xFQVJfQ09ORklSTUFUSU9OKTsKIAkJcm9z ZV9kaXNjb25uZWN0KHNrLCAwLCBza2ItPmRhdGFbM10sIHNrYi0+ZGF0YVs0XSk7CiAJCXJvc2Vf bmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cik7CisJCXJvc2UtPm5laWdoYm91ciA9IE5VTEw7CiAJ CWJyZWFrOwogCiAJY2FzZSBST1NFX1JSOgpAQCAtMjM0LDYgKzIzOCw3IEBAIHN0YXRpYyBpbnQg cm9zZV9zdGF0ZTRfbWFjaGluZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Is IGludCBmcmFtZXR5CiAJCXJvc2Vfd3JpdGVfaW50ZXJuYWwoc2ssIFJPU0VfQ0xFQVJfQ09ORklS TUFUSU9OKTsKIAkJcm9zZV9kaXNjb25uZWN0KHNrLCAwLCBza2ItPmRhdGFbM10sIHNrYi0+ZGF0 YVs0XSk7CiAJCXJvc2VfbmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cik7CisJCXJvc2UtPm5laWdo Ym91ciA9IE5VTEw7CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKQEAgLTI1NCw2ICsyNTksNyBAQCBz dGF0aWMgaW50IHJvc2Vfc3RhdGU1X21hY2hpbmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBpbnQgZnJhbWV0eQogCQlyb3NlX3dyaXRlX2ludGVybmFsKHNrLCBST1NFX0NM RUFSX0NPTkZJUk1BVElPTik7CiAJCXJvc2VfZGlzY29ubmVjdChzaywgMCwgc2tiLT5kYXRhWzNd LCBza2ItPmRhdGFbNF0pOwogCQlyb3NlX25laWdoX3B1dChyb3NlX3NrKHNrKS0+bmVpZ2hib3Vy KTsKKwkJcm9zZV9zayhzayktPm5laWdoYm91ciA9IE5VTEw7CiAJfQogCiAJcmV0dXJuIDA7Ci0t IAoyLjUzLjAKCkZyb20gMmI2NzM0MmM2ZmY4OTlhMGI4MzM1OTUxNzE0NmE1YjdiMjQzYWY5NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZi dnBAZ21haWwuY29tPgpEYXRlOiBTYXQsIDE2IE1heSAyMDI2IDEyOjEwOjU1ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA3LjAuMTMgMDUvMTVdIHJvc2U6IGd1YXJkIHJvc2VfbmVpZ2hfcHV0KCkgYWdh aW5zdCBOVUxMIGluCiB0aW1lciBleHBpcnkKCkluIHJvc2VfdGltZXJfZXhwaXJ5KCksIHRoZSBS T1NFX1NUQVRFXzIgYnJhbmNoIGNhbGxzCnJvc2VfbmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cikg d2l0aG91dCBmaXJzdCBjaGVja2luZyB3aGV0aGVyIHRoZQpwb2ludGVyIGlzIE5VTEwuICBBZnRl ciBjb21taXQgNWRlNzY2NWUwYTA3ICgibmV0OiByb3NlOiBmaXggdGltZXIKcmFjZXMgYWdhaW5z dCB1c2VyIHRocmVhZHMiKSB0aGUgdGltZXIgaXMgcmUtYXJtZWQgd2hlbiB0aGUgc29ja2V0IGlz Cm93bmVkIGJ5IGEgdXNlciB0aHJlYWQ7IGJldHdlZW4gdGhlIHJlLWFybSBhbmQgdGhlIG5leHQg ZmlyaW5nLCBhCmRldmljZS1kb3duIGV2ZW50IG9yIGNvbmN1cnJlbnQgdGVhcmRvd24gdmlhIHJv c2Vfa2lsbF9ieV9kZXZpY2UoKSBjYW4Kc2V0IHJvc2UtPm5laWdoYm91ciB0byBOVUxMLCBsZWFk aW5nIHRvIGEgTlVMTC1wb2ludGVyIGRlcmVmZXJlbmNlCmluc2lkZSByb3NlX25laWdoX3B1dCgp LgoKQWRkIGEgTlVMTCBjaGVjayBiZWZvcmUgdGhlIHB1dCBhbmQgY2xlYXIgdGhlIHBvaW50ZXIg YWZ0ZXJ3YXJkcy4KCkZpeGVzOiA1ZGU3NjY1ZTBhMDcgKCJuZXQ6IHJvc2U6IGZpeCB0aW1lciBy YWNlcyBhZ2FpbnN0IHVzZXIgdGhyZWFkcyIpClNpZ25lZC1vZmYtYnk6IEJlcm5hcmQgUGlkb3V4 IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDJi NjczNDJjNmZmODk5YTBiODMzNTk1MTcxNDZhNWI3YjI0M2FmOTcpCgotLS0KIG5ldC9yb3NlL3Jv c2VfdGltZXIuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcm9zZS9yb3NlX3RpbWVyLmMgYi9uZXQvcm9z ZS9yb3NlX3RpbWVyLmMKaW5kZXggYmI2MGExNi4uZDk5N2QyNCAxMDA2NDQKLS0tIGEvbmV0L3Jv c2Uvcm9zZV90aW1lci5jCisrKyBiL25ldC9yb3NlL3Jvc2VfdGltZXIuYwpAQCAtMTgwLDcgKzE4 MCwxMCBAQCBzdGF0aWMgdm9pZCByb3NlX3RpbWVyX2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAq dCkKIAkJYnJlYWs7CiAKIAljYXNlIFJPU0VfU1RBVEVfMjoJLyogVDMgKi8KLQkJcm9zZV9uZWln aF9wdXQocm9zZS0+bmVpZ2hib3VyKTsKKwkJaWYgKHJvc2UtPm5laWdoYm91cikgeworCQkJcm9z ZV9uZWlnaF9wdXQocm9zZS0+bmVpZ2hib3VyKTsKKwkJCXJvc2UtPm5laWdoYm91ciA9IE5VTEw7 CisJCX0KIAkJcm9zZV9kaXNjb25uZWN0KHNrLCBFVElNRURPVVQsIC0xLCAtMSk7CiAJCWJyZWFr OwogCi0tIAoyLjUzLjAKCkZyb20gYzY3NTI3N2MzYmEwZDIzMTBlMDgyNTU3N2Q1ODMwOGMzOTkz MWUxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmVybmFyZCBQaWRvdXggPGJlcm5h cmQuZjZidnBAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI2IE1heSAyMDI2IDE1OjU3OjA0ICswMjAw ClN1YmplY3Q6IFtQQVRDSCA3LjAuMTMgMDYvMTVdIHJvc2U6IGZpeCBuZXRkZXYgZG91YmxlLWhv bGQgaW4KIHJvc2VfcnhfY2FsbF9yZXF1ZXN0KCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKCnJvc2VfcnhfY2FsbF9yZXF1ZXN0KCkgdXNlZCBuZXRkZXZfdHJhY2tlcl9hbGxvYygp IGFmdGVyIGFzc2lnbmluZwptYWtlX3Jvc2UtPmRldmljZSwgaW50ZW5kaW5nIHRvIHRha2Ugb3du ZXJzaGlwIG9mIHRoZSByZWZlcmVuY2UgcGFzc2VkCmJ5IHRoZSBjYWxsZXIuICBCdXQgZXZlcnkg Y2FsbGVyIC0tIHJvc2Vfcm91dGVfZnJhbWUoKSBhbmQKcm9zZV9sb29wYmFja190aW1lcigpIC0t IGFscmVhZHkgY2FsbHMgZGV2X3B1dCgpIGZvciBpdHMgb3duIGhvbGQgYWZ0ZXIKdGhlIGZ1bmN0 aW9uIHJldHVybnMsIHNvIHRoZSBzb2NrZXQgZW5kZWQgdXAgd2l0aCBhIHRyYWNrZXIgZW50cnkK cG9pbnRpbmcgYXQgYSByZWZlcmVuY2UgdGhhdCBoYWQgYWxyZWFkeSBiZWVuIHJlbGVhc2VkLgoK VGhlIHJlc3VsdCB3YXMgc3B1cmlvdXMgcmVmY291bnRfdCB3YXJuaW5ncyAoInNhdHVyYXRlZCIs ICJkZWNyZW1lbnQKaGl0IDAiKSBvbiBldmVyeSBpbmNvbWluZyBDQUxMX1JFUVVFU1QsIGxlYWRp bmcgdG8gcmVmY291bnQgY29ycnVwdGlvbgphbmQgZXZlbnR1YWwgc2lsZW50IGZyZWV6ZS4KClJl cGxhY2UgbmV0ZGV2X3RyYWNrZXJfYWxsb2MoKSB3aXRoIG5ldGRldl9ob2xkKCkgc28gdGhhdApy b3NlX3J4X2NhbGxfcmVxdWVzdCgpIGFjcXVpcmVzIGl0cyBvd24gaW5kZXBlbmRlbnQgcmVmZXJl bmNlLiAgRWFjaApjYWxsZXIgcmV0YWlucyBpdHMgb3duIGhvbGQgZnJvbSByb3NlX2Rldl9nZXQo KSBhbmQgcmVsZWFzZXMgaXQgdmlhCmRldl9wdXQoKSBhcyBiZWZvcmU7IHNvY2tldCBjbGVhbnVw IHJlbGVhc2VzIHRoZSBzb2NrZXQncyBzZXBhcmF0ZSBob2xkCnZpYSBuZXRkZXZfcHV0KCkuCgpT aWduZWQtb2ZmLWJ5OiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFpbC5jb20+Cgoo Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjNjc1Mjc3YzNiYTBkMjMxMGUwODI1NTc3ZDU4MzA4 YzM5OTMxZTE0KQoKLS0tCiBuZXQvcm9zZS9hZl9yb3NlLmMgfCA4ICsrKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9yb3NlL2FmX3Jvc2UuYyBiL25ldC9yb3NlL2FmX3Jvc2UuYwppbmRleCBkNTAzMjg0Li5iNzc1 NzQxIDEwMDY0NAotLS0gYS9uZXQvcm9zZS9hZl9yb3NlLmMKKysrIGIvbmV0L3Jvc2UvYWZfcm9z ZS5jCkBAIC0xMDc5LDkgKzEwNzksMTEgQEAgaW50IHJvc2VfcnhfY2FsbF9yZXF1ZXN0KHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCByb3MKIAkJbWFr ZV9yb3NlLT5zb3VyY2VfZGlnaXNbbl0gPSBmYWNpbGl0aWVzLnNvdXJjZV9kaWdpc1tuXTsKIAlt YWtlX3Jvc2UtPm5laWdoYm91ciAgICAgPSBuZWlnaDsKIAltYWtlX3Jvc2UtPmRldmljZSAgICAg ICAgPSBkZXY7Ci0JLyogQ2FsbGVyIGdvdCBhIHJlZmVyZW5jZSBmb3IgdXMuICovCi0JbmV0ZGV2 X3RyYWNrZXJfYWxsb2MobWFrZV9yb3NlLT5kZXZpY2UsICZtYWtlX3Jvc2UtPmRldl90cmFja2Vy LAotCQkJICAgICBHRlBfQVRPTUlDKTsKKwkvKiBUYWtlIGFuIGluZGVwZW5kZW50IHJlZmVyZW5j ZSBmb3IgdGhpcyBzb2NrZXQ7IGNhbGxlcnMga2VlcCB0aGVpcgorCSAqIG93biByZWZlcmVuY2Ug KGZyb20gcm9zZV9kZXZfZ2V0IC8gZGV2X2hvbGQpIGFuZCB3aWxsIHJlbGVhc2UgaXQKKwkgKiB0 aGVtc2VsdmVzIHZpYSBkZXZfcHV0KCkuCisJICovCisJbmV0ZGV2X2hvbGQobWFrZV9yb3NlLT5k ZXZpY2UsICZtYWtlX3Jvc2UtPmRldl90cmFja2VyLCBHRlBfQVRPTUlDKTsKIAltYWtlX3Jvc2Ut PmZhY2lsaXRpZXMgICAgPSBmYWNpbGl0aWVzOwogCiAJcm9zZV9uZWlnaF9ob2xkKG1ha2Vfcm9z ZS0+bmVpZ2hib3VyKTsKLS0gCjIuNTMuMAoKRnJvbSBmNzFhOGExZWRjMTRkYmE3NDZlZGRlMzhh ZGRkZDY1NGJhMjAyYjRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBp ZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjYgTWF5IDIwMjYgMTU6 NTc6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDcuMC4xMyAwNy8xNV0gcm9zZTogZml4IG5vdGlm aWVyIHVucmVnaXN0ZXJlZCB0b28gZWFybHkgaW4KIHJvc2VfZXhpdCgpCgpyb3NlX2V4aXQoKSBj YWxsZWQgdW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoKSBiZWZvcmUgdGhlIGxvb3AgdGhh dApjYWxscyB1bnJlZ2lzdGVyX25ldGRldigpIG9uIGVhY2ggUk9TRSB2aXJ0dWFsIGRldmljZS4g IEFzIGEgcmVzdWx0LAp0aGUgTkVUREVWX0RPV04gZXZlbnQgZmlyZWQgYnkgdW5yZWdpc3Rlcl9u ZXRkZXYoKSB3YXMgbmV2ZXIgZGVsaXZlcmVkCnRvIHJvc2VfZGV2aWNlX2V2ZW50KCksIHNvIHJv c2Vfa2lsbF9ieV9kZXZpY2UoKSBuZXZlciByYW4uCgpFdmVyeSBzb2NrZXQgd2hvc2Ugcm9zZS0+ ZGV2aWNlIHBvaW50ZWQgYXQgYSBST1NFIGRldmljZSB0aGVyZWZvcmUga2VwdAppdHMgbmV0ZGV2 X3RyYWNrZXIgZW50cnkgbGl2ZSB1bnRpbCBmcmVlX25ldGRldigpIGRlc3Ryb3llZCB0aGUKcmVm X3RyYWNrZXJfZGlyLCBhdCB3aGljaCBwb2ludCB0aGUga2VybmVsIHJlcG9ydGVkIGFsbCBvZiB0 aGVtIGFzCmxlYWtlZCByZWZlcmVuY2VzICgxNjUgZW50cmllcyBpbiBhIHR5cGljYWwgRlBBQyBz ZXR1cCkuICBXb3JzZSwgdGhvc2UKc29ja2V0cyByZXRhaW5lZCBzdGFsZSBkZXZpY2UgcG9pbnRl cnMgYW5kIGxpdmUgdGltZXJzIHRoYXQgY291bGQgZmlyZQppbnRvIGZyZWVkIG1vZHVsZSB0ZXh0 IGFmdGVyIG1vZHVsZSB1bmxvYWQsIGNhdXNpbmcgYSBzaWxlbnQgc3lzdGVtCmZyZWV6ZSB3aXRo IG5vIGtlcm5lbCBwYW5pYyBsb2dnZWQuCgpGaXggYnkgbW92aW5nIHVucmVnaXN0ZXJfbmV0ZGV2 aWNlX25vdGlmaWVyKCkgdG8gYWZ0ZXIgdGhlIGRldmljZS0KdW5yZWdpc3RyYXRpb24gbG9vcC4g IHVucmVnaXN0ZXJfbmV0ZGV2KCkgdGhlbiBkZWxpdmVycyBORVRERVZfRE9XTgp3aGlsZSB0aGUg bm90aWZpZXIgaXMgc3RpbGwgcmVnaXN0ZXJlZCwgcm9zZV9raWxsX2J5X2RldmljZSgpIHJ1bnMg Zm9yCmVhY2ggZGV2aWNlLCByZWxlYXNlcyBhbGwgbmV0ZGV2IHJlZmVyZW5jZXMgaGVsZCBieSBv cGVuIHNvY2tldHMsIGFuZApjYWxscyByb3NlX2Rpc2Nvbm5lY3QoKSB3aGljaCBzdG9wcyB0aGUg cGVyLXNvY2tldCB0aW1lcnMuCgpTaWduZWQtb2ZmLWJ5OiBCZXJuYXJkIFBpZG91eCA8YmVybmFy ZC5mNmJ2cEBnbWFpbC5jb20+CgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmNzFhOGExZWRj MTRkYmE3NDZlZGRlMzhhZGRkZDY1NGJhMjAyYjRkKQoKLS0tCiBuZXQvcm9zZS9hZl9yb3NlLmMg fCAxMyArKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcm9zZS9hZl9yb3NlLmMgYi9uZXQvcm9zZS9h Zl9yb3NlLmMKaW5kZXggYjc3NTc0MS4uNjMyNzY5YSAxMDA2NDQKLS0tIGEvbmV0L3Jvc2UvYWZf cm9zZS5jCisrKyBiL25ldC9yb3NlL2FmX3Jvc2UuYwpAQCAtMTY2OSwxOSArMTY2OSwyOCBAQCBz dGF0aWMgdm9pZCBfX2V4aXQgcm9zZV9leGl0KHZvaWQpCiAjaWZkZWYgQ09ORklHX1NZU0NUTAog CXJvc2VfdW5yZWdpc3Rlcl9zeXNjdGwoKTsKICNlbmRpZgotCXVucmVnaXN0ZXJfbmV0ZGV2aWNl X25vdGlmaWVyKCZyb3NlX2Rldl9ub3RpZmllcik7Ci0KIAlzb2NrX3VucmVnaXN0ZXIoUEZfUk9T RSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcm9zZV9uZGV2czsgaSsrKSB7CiAJCXN0cnVjdCBuZXRf ZGV2aWNlICpkZXYgPSBkZXZfcm9zZVtpXTsKIAogCQlpZiAoZGV2KSB7CisJCQkvKiB1bnJlZ2lz dGVyX25ldGRldigpIGZpcmVzIE5FVERFVl9ET1dOLCB3aGljaCAtLSB3aGlsZSB0aGUKKwkJCSAq IG5vdGlmaWVyIGlzIHN0aWxsIHJlZ2lzdGVyZWQgYmVsb3cgLS0gaW52b2tlcworCQkJICogcm9z ZV9raWxsX2J5X2RldmljZShkZXYpLiAgVGhhdCByZWxlYXNlcyBldmVyeSBzb2NrZXQncworCQkJ ICogbmV0ZGV2IHJlZmVyZW5jZSBhbmQgZGlzY29ubmVjdHMgYWxsIGFjdGl2ZSBjaXJjdWl0cy4K KwkJCSAqIFVucmVnaXN0ZXJpbmcgdGhlIG5vdGlmaWVyIGJlZm9yZSB0aGlzIGxvb3Agd2FzIHRo ZQorCQkJICogb3JpZ2luYWwgYnVnOiBORVRERVZfRE9XTiB3YXMgbmV2ZXIgZGVsaXZlcmVkLCBs ZWF2aW5nCisJCQkgKiAxNjUgbmV0ZGV2X3RyYWNrZXIgZW50cmllcyBsZWFrZWQgYW5kIHN0YWxl IHRpbWVycyBsaXZlLgorCQkJICovCiAJCQl1bnJlZ2lzdGVyX25ldGRldihkZXYpOwogCQkJZnJl ZV9uZXRkZXYoZGV2KTsKIAkJfQogCX0KIAorCS8qIE5vdyBzYWZlIHRvIHJlbW92ZSB0aGUgbm90 aWZpZXIgLS0gYWxsIFJPU0UgZGV2aWNlcyBhcmUgZ29uZS4gKi8KKwl1bnJlZ2lzdGVyX25ldGRl dmljZV9ub3RpZmllcigmcm9zZV9kZXZfbm90aWZpZXIpOworCiAJa2ZyZWUoZGV2X3Jvc2UpOwog CXByb3RvX3VucmVnaXN0ZXIoJnJvc2VfcHJvdG8pOwogfQotLSAKMi41My4wCgpGcm9tIDc0MWE0 ODYzYWQ1NzA4ODljNzVmN2E4ZTQwNDU2N2Q4ZjNlNDYzMzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEJlcm5hcmQgUGlkb3V4IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAyNyBNYXkgMjAyNiAxNDoxMToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy4wLjEzIDA4 LzE1XSByb3NlOiBzZXQgU09DS19ERVNUUk9ZIGluIHJvc2Vfa2lsbF9ieV9kZXZpY2UoKQogZm9y IHByb21wdCBjbGVhbnVwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpXaGVuIHJv c2Vfa2lsbF9ieV9kZXZpY2UoKSBpcyBjYWxsZWQgKHZpYSBORVRERVZfRE9XTiBvbiBtb2R1bGUg ZXhpdApvciBpbnRlcmZhY2UgcmVtb3ZhbCksIGl0IGNhbGxzIHJvc2VfZGlzY29ubmVjdCgpIHdo aWNoIHRyYW5zaXRpb25zCnNvY2tldHMgdG8gUk9TRV9TVEFURV8wIGFuZCBzZXRzIFNPQ0tfREVB RC4gIEhvd2V2ZXIsCnJvc2VfaGVhcnRiZWF0X2V4cGlyeSgpIG9ubHkgY2FsbHMgcm9zZV9kZXN0 cm95X3NvY2tldCgpIGF0ClJPU0VfU1RBVEVfMCBpZiBTT0NLX0RFU1RST1kgaXMgc2V0IC0tIHRo ZSBTT0NLX0RFQUQgcGF0aCBpcyByZXNlcnZlZApmb3IgVENQX0xJU1RFTiBzb2NrZXRzLiAgV2l0 aG91dCBTT0NLX0RFU1RST1ksIG9ycGhhbmVkIHNvY2tldHMgaW4KUk9TRV9TVEFURV8yIChjbGVh cmluZykgbG9vcCBpbmRlZmluaXRlbHkgaW4gdGhlIGhlYXJ0YmVhdCB3aXRob3V0CmV2ZXIgYmVp bmcgZnJlZWQsIGtlZXBpbmcgdGhlIG1vZHVsZSB1c2UtY291bnQgZWxldmF0ZWQgYW5kIGJsb2Nr aW5nCm1vZHByb2JlIC1yIHJvc2UgdW50aWwgdGhlIFQxIHRpbWVyICh1cCB0byAyMDAgcykgZXhw aXJlcy4KClNldCBTT0NLX0RFU1RST1kgaW1tZWRpYXRlbHkgYWZ0ZXIgcm9zZV9kaXNjb25uZWN0 KCkgc28gdGhlIGhlYXJ0YmVhdApkZXN0cm95cyB0aGUgc29ja2V0IGF0IGl0cyBuZXh0IHRpY2sg KHdpdGhpbiA1IHMpLCBhbGxvd2luZyBjbGVhbgptb2R1bGUgdW5sb2FkLgoKU2lnbmVkLW9mZi1i eTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgoKKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgNzQxYTQ4NjNhZDU3MDg4OWM3NWY3YThlNDA0NTY3ZDhmM2U0NjMzNSkK Ci0tLQogbmV0L3Jvc2UvYWZfcm9zZS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9yb3NlL2FmX3Jvc2UuYyBiL25ldC9yb3NlL2Fm X3Jvc2UuYwppbmRleCA2MzI3NjlhLi5hY2EwODY3IDEwMDY0NAotLS0gYS9uZXQvcm9zZS9hZl9y b3NlLmMKKysrIGIvbmV0L3Jvc2UvYWZfcm9zZS5jCkBAIC0yMTEsNiArMjExLDExIEBAIHN0YXJ0 OgogCQlzcGluX2xvY2tfYmgoJnJvc2VfbGlzdF9sb2NrKTsKIAkJaWYgKHJvc2UtPmRldmljZSA9 PSBkZXYpIHsKIAkJCXJvc2VfZGlzY29ubmVjdChzaywgRU5FVFVOUkVBQ0gsIFJPU0VfT1VUX09G X09SREVSLCAwKTsKKwkJCS8qIE1hcmsgZm9yIGRlc3RydWN0aW9uIHNvIHJvc2VfaGVhcnRiZWF0 X2V4cGlyeSgpCisJCQkgKiBjbGVhbnMgdXAgdGhlIHNvY2tldCBhdCBpdHMgbmV4dCB0aWNrIHJh dGhlciB0aGFuCisJCQkgKiBsb29waW5nIGZvcmV2ZXIgaW4gUk9TRV9TVEFURV8wIHdpdGggbm8g b3duZXIuCisJCQkgKi8KKwkJCXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfREVTVFJPWSk7CiAJCQlp ZiAocm9zZS0+bmVpZ2hib3VyKQogCQkJCXJvc2VfbmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cik7 CiAJCQluZXRkZXZfcHV0KHJvc2UtPmRldmljZSwgJnJvc2UtPmRldl90cmFja2VyKTsKLS0gCjIu NTMuMAoKRnJvbSBkNGY0Y2Y5ZjA5YTNmNWZhZmE4ZjA5MTEwYTdjMWI1ZDEwZjJmMjYxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBn bWFpbC5jb20+CkRhdGU6IFRodSwgMjggTWF5IDIwMjYgMTc6Mzg6MTggKzAyMDAKU3ViamVjdDog W1BBVENIIDcuMC4xMyAwOS8xNV0gcm9zZTogZGlzY29ubmVjdCBvcnBoYW5lZCBTVEFURV8yIHNv Y2tldHMgd2hlbgogZGV2aWNlIGlzIGdvbmUKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKCldoZW4gYXgyNXN0b3AgYnJpbmdzIGRvd24gUk9TRSBpbnRlcmZhY2VzLCBzb2NrZXRzIGlu IFJPU0VfU1RBVEVfMgooYXdhaXRpbmcgQ0xFQVIgQ09ORklSTSkgd2hvc2UgZGV2aWNlIHBvaW50 ZXIgaXMgYWxyZWFkeSBOVUxMIGFyZSBub3QKcmVhY2hlZCBieSByb3NlX2tpbGxfYnlfZGV2aWNl KCkgYW5kIHdhaXQgZm9yIFQzICh1cCB0byAxODBzKSBiZWZvcmUKc2VsZi1jbGVhbmluZyB2aWEg cm9zZV90aW1lcl9leHBpcnkoKS4gIFRoaXMga2VlcHMgdGhlIHJvc2UgbW9kdWxlCnVzZWNvdW50 IGF0IDEsIGJsb2NraW5nIHJtbW9kIGZvciB0aGUgZnVsbCBUMyBkdXJhdGlvbi4KCkluIHJvc2Vf aGVhcnRiZWF0X2V4cGlyeSgpLCBkZXRlY3QgUk9TRV9TVEFURV8yIHNvY2tldHMgd2l0aCBubyBk ZXZpY2UsCmNhbmNlbCBUMywgcmVsZWFzZSB0aGUgbmVpZ2hib3VyIHJlZmVyZW5jZSwgYW5kIGNh bGwgcm9zZV9kaXNjb25uZWN0KCkKKyBzb2NrX3NldF9mbGFnKFNPQ0tfREVTVFJPWSkuICBUaGUg bmV4dCBoZWFydGJlYXQgdGljayAoPD01cykgdGhlbgpkZXN0cm95cyB0aGUgc29ja2V0IHZpYSB0 aGUgZXhpc3RpbmcgUk9TRV9TVEFURV8wL1NPQ0tfREVTVFJPWSBwYXRoLAphbGxvd2luZyBjbGVh biBtb2R1bGUgdW5sb2FkIHdpdGhpbiAxMHMgaW5zdGVhZCBvZiB1cCB0byAxODBzLgoKU2lnbmVk LW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgoKKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgZDRmNGNmOWYwOWEzZjVmYWZhOGYwOTExMGE3YzFiNWQxMGYy ZjI2MSkKCi0tLQogbmV0L3Jvc2Uvcm9zZV90aW1lci5jIHwgMTQgKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Jvc2Uvcm9z ZV90aW1lci5jIGIvbmV0L3Jvc2Uvcm9zZV90aW1lci5jCmluZGV4IGQ5OTdkMjQuLmFhM2RkNGEg MTAwNjQ0Ci0tLSBhL25ldC9yb3NlL3Jvc2VfdGltZXIuYworKysgYi9uZXQvcm9zZS9yb3NlX3Rp bWVyLmMKQEAgLTEzOSw2ICsxMzksMjAgQEAgc3RhdGljIHZvaWQgcm9zZV9oZWFydGJlYXRfZXhw aXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCQl9CiAJCWJyZWFrOwogCisJY2FzZSBST1NFX1NU QVRFXzI6CisJCS8qIERldmljZSBnb25lIGJlZm9yZSBDTEVBUiBDT05GSVJNIGFycml2ZWQ6IHN0 b3Agd2FpdGluZyBmb3IgVDMKKwkJICogYW5kIGRpc2Nvbm5lY3Qgbm93IGluc3RlYWQgb2YgYmxv Y2tpbmcgcm1tb2QgZm9yIHVwIHRvIDE4MHMuICovCisJCWlmICghcm9zZS0+ZGV2aWNlKSB7CisJ CQlyb3NlX3N0b3BfdGltZXIoc2spOworCQkJaWYgKHJvc2UtPm5laWdoYm91cikgeworCQkJCXJv c2VfbmVpZ2hfcHV0KHJvc2UtPm5laWdoYm91cik7CisJCQkJcm9zZS0+bmVpZ2hib3VyID0gTlVM TDsKKwkJCX0KKwkJCXJvc2VfZGlzY29ubmVjdChzaywgRU5FVERPV04sIC0xLCAtMSk7CisJCQlz b2NrX3NldF9mbGFnKHNrLCBTT0NLX0RFU1RST1kpOworCQl9CisJCWJyZWFrOworCiAJY2FzZSBS T1NFX1NUQVRFXzM6CiAJCS8qCiAJCSAqIENoZWNrIGZvciB0aGUgc3RhdGUgb2YgdGhlIHJlY2Vp dmUgYnVmZmVyLgotLSAKMi41My4wCgpGcm9tIGI5ZmIyMWNlYjRmMGQwNDM3NjdhMWViYTYwNzg2 ZWM4NDgwOTAzM2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJlcm5hcmQgUGlkb3V4 IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyOCBNYXkgMjAyNiAxOToxMTo1 NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy4wLjEzIDEwLzE1XSByb3NlOiBmaXggbmV0ZGV2IGRv dWJsZS1ob2xkIGluIHJvc2VfbWFrZV9uZXcoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKcm9zZV9tYWtlX25ldygpIGNvcGllcyBvcm9zZS0+ZGV2aWNlIGZyb20gdGhlIGxpc3Rl bmVyIHNvY2tldCBhbmQgY2FsbHMKbmV0ZGV2X2hvbGQoKSwgc3RvcmluZyB0aGUgdHJhY2tlciBp biByb3NlLT5kZXZfdHJhY2tlci4gIFRoZSBvbmx5CmNhbGxlciwgcm9zZV9yeF9jYWxsX3JlcXVl c3QoKSwgdGhlbiBvdmVyd3JpdGVzIGJvdGggbWFrZV9yb3NlLT5kZXZpY2UKYW5kIG1ha2Vfcm9z ZS0+ZGV2X3RyYWNrZXIgd2l0aCBhIGZyZXNoIG5ldGRldl9ob2xkKCkgZm9yIHRoZSBhY3R1YWwK aW5jb21pbmctY2FsbCBkZXZpY2UuCgpUaGlzIG9ycGhhbnMgdGhlIHRyYWNrZXIgYWxsb2NhdGVk IGJ5IHJvc2VfbWFrZV9uZXcoKTogaXQgcmVtYWlucyBpbgp0aGUgZGV2aWNlJ3MgcmVmY291bnRf dHJhY2tlciBsaXN0IGJ1dCBubyBwb2ludGVyIGV4aXN0cyB0byBmcmVlIGl0CnZpYSBuZXRkZXZf cHV0KCkuICBUaGUgcmVzdWx0IGlzIG9uZSBzcHVyaW91cyBvdXRzdGFuZGluZyByZWZlcmVuY2Ug cGVyCmFjY2VwdGVkIENBTExfUkVRVUVTVCwgdmlzaWJsZSBhdCBybW1vZCB0aW1lIGFzOgoKICBy ZWZfdHJhY2tlcjogbmV0ZGV2QFggaGFzIDIvMiB1c2VycyBhdAogICAgICByb3NlX3J4X2NhbGxf cmVxdWVzdCsweGJhMy8weDFkNTAgW3Jvc2VdCiAgICAgIHJvc2VfbG9vcGJhY2tfdGltZXIrMHgz ZWIvMHg2NzAgW3Jvc2VdCgpUaGUgc2Vjb25kIGVudHJ5IGlzIHRoZSBvcnBoYW5lZCB0cmFja2Vy IGZyb20gcm9zZV9tYWtlX25ldygpOyB0aGUKZmlyc3QgaXMgdGhlIGNvcnJlY3RseS1tYW5hZ2Vk IHNvY2tldCByZWZlcmVuY2UgZnJvbSByb3NlX3J4X2NhbGxfcmVxdWVzdCgpLgoKRml4OiBpbml0 aWFsaXNlIHJvc2UtPmRldmljZSB0byBOVUxMIGluIHJvc2VfbWFrZV9uZXcoKSBhbmQgbGV0CnJv c2VfcnhfY2FsbF9yZXF1ZXN0KCkgLS0gdGhlIHNvbGUgY2FsbGVyIC0tIGFzc2lnbiB0aGUgY29y cmVjdCBkZXZpY2UKYW5kIHRha2UgdGhlIHNvbGUgbmV0ZGV2X2hvbGQoKSBhcyBpdCBhbHJlYWR5 IGRvZXMuCgpTaWduZWQtb2ZmLWJ5OiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFp bC5jb20+CgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiOWZiMjFjZWI0ZjBkMDQzNzY3YTFl YmE2MDc4NmVjODQ4MDkwMzNiKQoKLS0tCiBuZXQvcm9zZS9hZl9yb3NlLmMgfCA0ICstLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvcm9zZS9hZl9yb3NlLmMgYi9uZXQvcm9zZS9hZl9yb3NlLmMKaW5kZXggYWNhMDg2Ny4u MWI5MThlMyAxMDA2NDQKLS0tIGEvbmV0L3Jvc2UvYWZfcm9zZS5jCisrKyBiL25ldC9yb3NlL2Fm X3Jvc2UuYwpAQCAtNjMxLDkgKzYzMSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqcm9zZV9tYWtl X25ldyhzdHJ1Y3Qgc29jayAqb3NrKQogCXJvc2UtPmhiCT0gb3Jvc2UtPmhiOwogCXJvc2UtPmlk bGUJPSBvcm9zZS0+aWRsZTsKIAlyb3NlLT5kZWZlcgk9IG9yb3NlLT5kZWZlcjsKLQlyb3NlLT5k ZXZpY2UJPSBvcm9zZS0+ZGV2aWNlOwotCWlmIChyb3NlLT5kZXZpY2UpCi0JCW5ldGRldl9ob2xk KHJvc2UtPmRldmljZSwgJnJvc2UtPmRldl90cmFja2VyLCBHRlBfQVRPTUlDKTsKKwlyb3NlLT5k ZXZpY2UJPSBOVUxMOyAgLyogcm9zZV9yeF9jYWxsX3JlcXVlc3QoKSBzZXRzIHRoaXMgKi8KIAly b3NlLT5xYml0aW5jbAk9IG9yb3NlLT5xYml0aW5jbDsKIAogCXJldHVybiBzazsKLS0gCjIuNTMu MAoKRnJvbSBkZjEyYmUwOTYzMDJkMmM5NDczODhhY2MyNTc2NDQ1NmM3ZjE4Y2MxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFyZC5mNmJ2cEBnbWFp bC5jb20+CkRhdGU6IFRodSwgMjggTWF5IDIwMjYgMTk6Mzg6MzEgKzAyMDAKU3ViamVjdDogW1BB VENIIDcuMC4xMyAxMS8xNV0gcm9zZTogcmVsZWFzZSBuZXRkZXYgcmVmIGFuZCBkZXN0cm95IG9y cGhhbmVkCiBpbmNvbWluZyBzb2NrZXRzCgpUd28gcmVsYXRlZCBjbGVhbnVwIGdhcHMgbGVmdCB0 aGUgbW9kdWxlIHVucmVtb3ZhYmxlIGFmdGVyIGEgbG9vcGJhY2sKc2Vzc2lvbjoKCjEuIHJvc2Vf ZGVzdHJveV9zb2NrZXQoKSBkaWQgbm90IHJlbGVhc2UgdGhlIGRldmljZSByZWZlcmVuY2UuICBX aGVuCiAgIGFuIHVuYWNjZXB0ZWQgaW5jb21pbmcgc29ja2V0IChjcmVhdGVkIGJ5IHJvc2Vfcnhf Y2FsbF9yZXF1ZXN0KCkpIGlzCiAgIGRlc3Ryb3llZCB2aWEgcm9zZV9oZWFydGJlYXRfZXhwaXJ5 KCksIGl0IGlzIHJlbW92ZWQgZnJvbSByb3NlX2xpc3QKICAgYmVmb3JlIHJvc2Vfa2lsbF9ieV9k ZXZpY2UoKSBjYW4gZmluZCBpdCwgc28gdGhlIG5ldGRldl9ob2xkKCkgdGFrZW4KICAgaW4gcm9z ZV9yeF9jYWxsX3JlcXVlc3QoKSB3YXMgbmV2ZXIgbWF0Y2hlZCBieSBuZXRkZXZfcHV0KCkuICBB ZGQgdGhlCiAgIHJlbGVhc2UgYXQgdGhlIHRvcCBvZiByb3NlX2Rlc3Ryb3lfc29ja2V0KCkgZ3Vh cmRlZCBieSBhIE5VTEwgY2hlY2sKICAgc28gdGhhdCByb3NlX3JlbGVhc2UoKSBhbmQgcm9zZV9r aWxsX2J5X2RldmljZSgpLCB3aGljaCBhbHJlYWR5IGNhbGwKICAgbmV0ZGV2X3B1dCgpIGFuZCBz ZXQgZGV2aWNlID0gTlVMTCwgYXJlIG5vdCBhZmZlY3RlZC4KCjIuIHJvc2VfaGVhcnRiZWF0X2V4 cGlyeSgpIFNUQVRFXzAgY2xlYW51cCByZXF1aXJlZCBUQ1BfTElTVEVOIGluCiAgIGFkZGl0aW9u IHRvIFNPQ0tfREVBRC4gIFVuYWNjZXB0ZWQgaW5jb21pbmcgc29ja2V0cyBhcmUKICAgVENQX0VT VEFCTElTSEVELCBzbyB0aGUgY29uZGl0aW9uIHdhcyBuZXZlciB0cnVlIGFuZCB0aG9zZSBzb2Nr ZXRzCiAgIGxpbmdlcmVkIGZvcmV2ZXIsIGhvbGRpbmcgdGhlIG1vZHVsZSB1c2UgY291bnQgYWJv dmUgemVybyBhbmQKICAgYmxvY2tpbmcgcm1tb2QuICBEcm9wIHRoZSBUQ1BfTElTVEVOIHJlc3Ry aWN0aW9uOiBhbnkgU1RBVEVfMCArCiAgIFNPQ0tfREVBRCBzb2NrZXQgaXMgb3JwaGFuZWQgYW5k IHNob3VsZCBiZSBkZXN0cm95ZWQuCgpUb2dldGhlciB3aXRoIHRoZSBlYXJsaWVyIHJvc2VfbWFr ZV9uZXcoKSBkb3VibGUtaG9sZCBmaXggdGhlc2UgdGhyZWUKcGF0Y2hlcyBhbGxvdyBjbGVhbiBy bW1vZCBhZnRlciBsb29wYmFjayBzZXNzaW9ucy4KClNpZ25lZC1vZmYtYnk6IEJlcm5hcmQgUGlk b3V4IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IGRmMTJiZTA5NjMwMmQyYzk0NzM4OGFjYzI1NzY0NDU2YzdmMThjYzEpCgotLS0KIG5ldC9yb3Nl L2FmX3Jvc2UuYyAgICB8IDkgKysrKysrKysrCiBuZXQvcm9zZS9yb3NlX3RpbWVyLmMgfCA5ICsr KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9yb3NlL2FmX3Jvc2UuYyBiL25ldC9yb3NlL2FmX3Jvc2UuYwpp bmRleCAxYjkxOGUzLi42YjliNDAyIDEwMDY0NAotLS0gYS9uZXQvcm9zZS9hZl9yb3NlLmMKKysr IGIvbmV0L3Jvc2UvYWZfcm9zZS5jCkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgcm9z ZV9kZXN0cm95X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogICovCiB2b2lkIHJvc2VfZGVz dHJveV9zb2NrZXQoc3RydWN0IHNvY2sgKnNrKQogeworCXN0cnVjdCByb3NlX3NvY2sgKnJvc2Ug PSByb3NlX3NrKHNrKTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCiAJcm9zZV9yZW1vdmVfc29j a2V0KHNrKTsKQEAgLTM3MCw2ICszNzEsMTQgQEAgdm9pZCByb3NlX2Rlc3Ryb3lfc29ja2V0KHN0 cnVjdCBzb2NrICpzaykKIAlyb3NlX3N0b3BfaWRsZXRpbWVyKHNrKTsKIAlyb3NlX3N0b3BfdGlt ZXIoc2spOwogCisJLyogRHJvcCBhbnkgZGV2aWNlIHJlZmVyZW5jZSBub3QgYWxyZWFkeSByZWxl YXNlZCBieSByb3NlX2tpbGxfYnlfZGV2aWNlKCkKKwkgKiBvciByb3NlX3JlbGVhc2UoKSAtLSBl LmcuIGluY29taW5nIHNvY2tldHMgdGhhdCB3ZXJlIG5ldmVyIGFjY2VwdGVkLgorCSAqLworCWlm IChyb3NlLT5kZXZpY2UpIHsKKwkJbmV0ZGV2X3B1dChyb3NlLT5kZXZpY2UsICZyb3NlLT5kZXZf dHJhY2tlcik7CisJCXJvc2UtPmRldmljZSA9IE5VTEw7CisJfQorCiAJcm9zZV9jbGVhcl9xdWV1 ZXMoc2spOwkJLyogRmx1c2ggdGhlIHF1ZXVlcyAqLwogCiAJd2hpbGUgKChza2IgPSBza2JfZGVx dWV1ZSgmc2stPnNrX3JlY2VpdmVfcXVldWUpKSAhPSBOVUxMKSB7CmRpZmYgLS1naXQgYS9uZXQv cm9zZS9yb3NlX3RpbWVyLmMgYi9uZXQvcm9zZS9yb3NlX3RpbWVyLmMKaW5kZXggYWEzZGQ0YS4u NzYyMDRiOCAxMDA2NDQKLS0tIGEvbmV0L3Jvc2Uvcm9zZV90aW1lci5jCisrKyBiL25ldC9yb3Nl L3Jvc2VfdGltZXIuYwpAQCAtMTI4LDEwICsxMjgsMTEgQEAgc3RhdGljIHZvaWQgcm9zZV9oZWFy dGJlYXRfZXhwaXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCX0KIAlzd2l0Y2ggKHJvc2UtPnN0 YXRlKSB7CiAJY2FzZSBST1NFX1NUQVRFXzA6Ci0JCS8qIE1hZ2ljIGhlcmU6IElmIHdlIGxpc3Rl bigpIGFuZCBhIG5ldyBsaW5rIGRpZXMgYmVmb3JlIGl0Ci0JCSAgIGlzIGFjY2VwdGVkKCkgaXQg aXNuJ3QgJ2RlYWQnIHNvIGRvZXNuJ3QgZ2V0IHJlbW92ZWQuICovCi0JCWlmIChzb2NrX2ZsYWco c2ssIFNPQ0tfREVTVFJPWSkgfHwKLQkJICAgIChzay0+c2tfc3RhdGUgPT0gVENQX0xJU1RFTiAm JiBzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpKSB7CisJCS8qIERlc3Ryb3kgYW55IG9ycGhhbmVk IFNUQVRFXzAgc29ja2V0OiBlaXRoZXIgZXhwbGljaXRseQorCQkgKiBmbGFnZ2VkIFNPQ0tfREVT VFJPWSwgb3IgU09DS19ERUFEIChjb3ZlcnMgYm90aCB1bmFjY2VwdGVkCisJCSAqIGluY29taW5n IGNvbm5lY3Rpb25zIGFuZCBsaXN0ZW5pbmcgc29ja2V0cyB3aG9zZSBsaW5rIGRpZWQpLgorCQkg Ki8KKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19ERVNUUk9ZKSB8fCBzb2NrX2ZsYWcoc2ssIFNP Q0tfREVBRCkpIHsKIAkJCWJoX3VubG9ja19zb2NrKHNrKTsKIAkJCXJvc2VfZGVzdHJveV9zb2Nr ZXQoc2spOwogCQkJc29ja19wdXQoc2spOwotLSAKMi41My4wCgpGcm9tIGNmNTU2N2EyNjUyZTQ0 ODY2ZWFlODk4N2RmZjRjMWVhNTA3NjgwZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEJlcm5hcmQgUGlkb3V4IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyOCBN YXkgMjAyNiAyMDoyMDo1NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy4wLjEzIDEyLzE1XSByb3Nl OiBkcm9wIENBTExfUkVRVUVTVCBpbiBsb29wYmFjayB0aW1lciB3aGVuCiBkZXZpY2UgaXMgbm90 IHJ1bm5pbmcKCldoZW4gYXgyNXN0b3AgYnJpbmdzIGRvd24gcm9zZTAgd2hpbGUgdGhlIGxvb3Bi YWNrIHRpbWVyIGhhcyBwZW5kaW5nCkNBTExfUkVRVUVTVCBmcmFtZXMsIHJvc2VfbG9vcGJhY2tf dGltZXIoKSBjYWxscyByb3NlX2Rldl9nZXQoKSBhbmQKZmluZHMgdGhlIGRldmljZSBzdGlsbCBy ZWdpc3RlcmVkICh1bnJlZ2lzdGVyX25ldGRldmljZSB3YWl0cyBmb3IKcmVmcyB0byBkcm9wKSwg dGhlbiBjYWxscyByb3NlX3J4X2NhbGxfcmVxdWVzdCgpIHdoaWNoIHRha2VzIGEKbmV0ZGV2X2hv bGQoKSBmb3IgdGhlIG5ldyBzb2NrZXQuCgpCdXQgTkVUREVWX0RPV04gZmlyZXMgb25seSBvbmNl OiByb3NlX2tpbGxfYnlfZGV2aWNlKCkgYWxyZWFkeSByYW4KYmVmb3JlIHRoaXMgdGltZXIgdGlj aywgc28gdGhlIG5ldyBzb2NrZXQgaXMgbmV2ZXIgY2xlYW5lZCB1cC4gIFRoZQpzdHVjayByZWZl cmVuY2UgcHJldmVudHMgdW5yZWdpc3Rlcl9uZXRkZXZpY2UgZnJvbSBjb21wbGV0aW5nLCBhbmQg dGhlCm9ycGhhbiBzb2NrZXQncyB0aW1lcnMgZXZlbnR1YWxseSBmaXJlIG9uIGZyZWVkIG1lbW9y eSAoS0FTQU4Kc2xhYi11c2UtYWZ0ZXItZnJlZSBpbiBfX3J1bl90aW1lcnMpLgoKVGhlIGtlcm5l bCBjbGVhcnMgSUZGX1VQIHZpYSBkZXZfY2xvc2UoKSBiZWZvcmUgc2VuZGluZyBORVRERVZfRE9X TiwKc28gY2hlY2tpbmcgbmV0aWZfcnVubmluZygpIGFmdGVyIHJvc2VfZGV2X2dldCgpIGlzIHN1 ZmZpY2llbnQ6IGlmIHRoZQpkZXZpY2UgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcsIHRoZSBDQUxMX1JF UVVFU1QgaXMgc2lsZW50bHkgZHJvcHBlZCBhbmQKbm8gc29ja2V0IGlzIGNyZWF0ZWQuICBUaGlz IGNsb3NlcyB0aGUgcmFjZSB3aXRob3V0IHRvdWNoaW5nIHRoZQptb2R1bGUtZXhpdCBwYXRoICh3 aGljaCBhbHJlYWR5IHN0b3BzIHRoZSB0aW1lciB2aWEgbG9vcGJhY2tfc3RvcHBpbmcpLgoKVGVz dGVkOiB1bnJlZ2lzdGVyX25ldGRldmljZSBjb21wbGV0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgYXgy NXN0b3Agd2l0aAphY3RpdmUgbG9vcGJhY2sgY29ubmVjdGlvbnM7IG5vIHJlZl90cmFja2VyIHdh cm5pbmdzLCBubyBLQVNBTi4KClNpZ25lZC1vZmYtYnk6IEJlcm5hcmQgUGlkb3V4IDxiZXJuYXJk LmY2YnZwQGdtYWlsLmNvbT4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGNmNTU2N2EyNjUy ZTQ0ODY2ZWFlODk4N2RmZjRjMWVhNTA3NjgwZGYpCgotLS0KIG5ldC9yb3NlL3Jvc2VfbG9vcGJh Y2suYyB8IDEwICsrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L3Jvc2Uvcm9zZV9sb29wYmFjay5jIGIvbmV0L3Jvc2Uvcm9zZV9sb29w YmFjay5jCmluZGV4IDgwZDc4NzkuLmZkNGU0NzkgMTAwNjQ0Ci0tLSBhL25ldC9yb3NlL3Jvc2Vf bG9vcGJhY2suYworKysgYi9uZXQvcm9zZS9yb3NlX2xvb3BiYWNrLmMKQEAgLTExOCw2ICsxMTgs MTYgQEAgc3RhdGljIHZvaWQgcm9zZV9sb29wYmFja190aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAq dW51c2VkKQogCQkJCWtmcmVlX3NrYihza2IpOwogCQkJCWNvbnRpbnVlOwogCQkJfQorCQkJLyog cm9zZV9raWxsX2J5X2RldmljZSgpIHJ1bnMgb24gTkVUREVWX0RPV04gKElGRl9VUCBjbGVhcmVk KQorCQkJICogYmVmb3JlIHRoZSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLiAgSWYgd2UgY3JlYXRl IGEgbmV3CisJCQkgKiBzb2NrZXQgaGVyZSBhZnRlciB0aGF0IGNsZWFudXAsIHRoZSByZWYgbmV2 ZXIgZ2V0cyByZWxlYXNlZAorCQkJICogYmVjYXVzZSBORVRERVZfRE9XTiBmaXJlcyBvbmx5IG9u Y2UuICBEcm9wIHRoZSBjYWxsIGluc3RlYWQuCisJCQkgKi8KKwkJCWlmICghbmV0aWZfcnVubmlu ZyhkZXYpKSB7CisJCQkJZGV2X3B1dChkZXYpOworCQkJCWtmcmVlX3NrYihza2IpOworCQkJCWNv bnRpbnVlOworCQkJfQogCiAJCQlpZiAocm9zZV9yeF9jYWxsX3JlcXVlc3Qoc2tiLCBkZXYsIHJv c2VfbG9vcGJhY2tfbmVpZ2gsIGxjaV9vKSA9PSAwKQogCQkJCWtmcmVlX3NrYihza2IpOwotLSAK Mi41My4wCgpGcm9tIDliMjIyY2IxZDIzZmYyMTA5NzVlOWRmNWViYWI3YjAxMWFjYjZmYWQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJlcm5hcmQgUGlkb3V4IDxiZXJuYXJkLmY2YnZw QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyNiAxNTo0MTo0NSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNy4wLjEzIDEzLzE1XSByb3NlOiBjYW5jZWwgbmVpZ2hib3VyIHRpbWVycyBpbgog cm9zZV9uZWlnaF9wdXQoKSBiZWZvcmUgZnJlZWluZwoKcm9zZV9uZWlnaF9wdXQoKSBrZnJlZSgp cyB0aGUgbmVpZ2hib3VyIGJ1dCBuZXZlciBjYW5jZWxzIGl0cyBmdGltZXIgYW5kCnQwdGltZXIu IFVudGlsIG5vdyBldmVyeSBjYWxsZXIgdGhhdCBkcm9wcGVkIHRoZSBmaW5hbCByZWZlcmVuY2Ug Zmlyc3QKY2FsbGVkIHJvc2VfcmVtb3ZlX25laWdoKCksIHdoaWNoIGRlbGV0ZXMgdGhvc2UgdGlt ZXJzLiBUaGUgc29ja2V0CmhlYXJ0YmVhdCByZWFwaW5nIHBhdGggZHJvcHMgdGhlIGxhc3QgcmVm ZXJlbmNlIGRpcmVjdGx5LCBzbyBhIG5laWdoYm91cgpjb3VsZCBiZSBmcmVlZCB3aXRoIHQwdGlt ZXIgc3RpbGwgYXJtZWQgLS0gaXQgcmUtYXJtcyBpdHNlbGYgaW4Kcm9zZV90MHRpbWVyX2V4cGly eSgpIC0tIGxlYWRpbmcgdG8gYSB1c2UtYWZ0ZXItZnJlZSB3cml0ZSBpbgplbnF1ZXVlX3RpbWVy KCkuCgpDYW5jZWwgYm90aCB0aW1lcnMgd2l0aCB0aW1lcl9kZWxldGVfc3luYygpICh0aGUgc3lu Y2hyb25vdXMgdmFyaWFudCwgdG8Kd2FpdCBvdXQgYSBjb25jdXJyZW50bHkgcnVubmluZywgc2Vs Zi1yZWFybWluZyBoYW5kbGVyKSBpbiB0aGUKcmVmY291bnQtemVybyBicmFuY2ggb2Ygcm9zZV9u ZWlnaF9wdXQoKS4KClNpZ25lZC1vZmYtYnk6IEJlcm5hcmQgUGlkb3V4IDxiZXJuYXJkLmY2YnZw QGdtYWlsLmNvbT4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDliMjIyY2IxZDIzZmYyMTA5 NzVlOWRmNWViYWI3YjAxMWFjYjZmYWQpCgotLS0KIGluY2x1ZGUvbmV0L3Jvc2UuaCB8IDEyICsr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9yb3NlLmggYi9pbmNsdWRlL25ldC9yb3NlLmgKaW5kZXggMmI1NDkxYi4u OTVkMWY5YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcm9zZS5oCisrKyBiL2luY2x1ZGUvbmV0 L3Jvc2UuaApAQCAtMTYwLDYgKzE2MCwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcm9zZV9uZWln aF9ob2xkKHN0cnVjdCByb3NlX25laWdoICpyb3NlX25laWdoKQogc3RhdGljIGlubGluZSB2b2lk IHJvc2VfbmVpZ2hfcHV0KHN0cnVjdCByb3NlX25laWdoICpyb3NlX25laWdoKQogewogCWlmIChy ZWZjb3VudF9kZWNfYW5kX3Rlc3QoJnJvc2VfbmVpZ2gtPnVzZSkpIHsKKwkJLyogV2UgYXJlIGRy b3BwaW5nIHRoZSBsYXN0IHJlZmVyZW5jZSwgc28gd2UgYXJlIGFib3V0IHRvIGZyZWUgdGhlCisJ CSAqIG5laWdoYm91ci4gIEl0cyB0aW1lcnMgbWF5IHN0aWxsIGJlIGFybWVkIC0tIHQwdGltZXIg aW4gcGFydGljdWxhcgorCQkgKiByZS1hcm1zIGl0c2VsZiBpbiByb3NlX3QwdGltZXJfZXhwaXJ5 KCkuICByb3NlX3JlbW92ZV9uZWlnaCgpCisJCSAqIGNhbmNlbHMgdGhlbSBiZWZvcmUgaXRzIG93 biBwdXQsIGJ1dCBjYWxsZXJzIHRoYXQgZHJvcCB0aGUgZmluYWwKKwkJICogcmVmZXJlbmNlIHdp dGhvdXQgZmlyc3QgY2FsbGluZyByb3NlX3JlbW92ZV9uZWlnaCgpICh0aGUgc29ja2V0CisJCSAq IGhlYXJ0YmVhdCByZWFwaW5nIHBhdGgpIHdvdWxkIG90aGVyd2lzZSBrZnJlZSgpIGEgbmVpZ2hi b3VyIHdpdGggYQorCQkgKiBsaXZlIHRpbWVyIC0+IHVzZS1hZnRlci1mcmVlLiAgdGltZXJfZGVs ZXRlX3N5bmMoKSAobm90IHRoZSBhc3luYworCQkgKiB2YXJpYW50KSBpcyByZXF1aXJlZDogaXQg d2FpdHMgb3V0IGEgY29uY3VycmVudGx5IHJ1bm5pbmcgaGFuZGxlcgorCQkgKiBhbmQgbG9vcHMg dW50aWwgdGhlIHNlbGYtcmVhcm1pbmcgdGltZXIgc3RheXMgc3RvcHBlZC4KKwkJICovCisJCXRp bWVyX2RlbGV0ZV9zeW5jKCZyb3NlX25laWdoLT5mdGltZXIpOworCQl0aW1lcl9kZWxldGVfc3lu Yygmcm9zZV9uZWlnaC0+dDB0aW1lcik7CiAJCWlmIChyb3NlX25laWdoLT5heDI1KQogCQkJYXgy NV9jYl9wdXQocm9zZV9uZWlnaC0+YXgyNSk7CiAJCWtmcmVlKHJvc2VfbmVpZ2gtPmRpZ2lwZWF0 KTsKLS0gCjIuNTMuMAoKRnJvbSA2MDZlNDJkMTk1YjQ2NzQ4MGQ0ZDQwNWY4ODE0YzQ4ZDE2NTFh NzZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8YmVybmFy ZC5mNmJ2cEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzEgTWF5IDIwMjYgMTU6NDE6NDUgKzAyMDAK U3ViamVjdDogW1BBVENIIDcuMC4xMyAxNC8xNV0gcm9zZTogY2xlYXIgbmVpZ2hib3VyIHBvaW50 ZXIgaW4KIHJvc2Vfa2lsbF9ieV9kZXZpY2UoKQoKcm9zZV9raWxsX2J5X2RldmljZSgpIGRyb3Bz IHRoZSBuZWlnaGJvdXIgcmVmZXJlbmNlIGJ1dCBsZWF2ZXMKcm9zZS0+bmVpZ2hib3VyIHBvaW50 aW5nIGF0IGl0LCB1bmxpa2UgZXZlcnkgb3RoZXIgcm9zZV9uZWlnaF9wdXQoKSBzaXRlCihzZWUg InJvc2U6IGNsZWFyIG5laWdoYm91ciBwb2ludGVyIGFmdGVyIHJvc2VfbmVpZ2hfcHV0KCkgaW4g c3RhdGUKbWFjaGluZXMiKS4gVGhlIGhlYXJ0YmVhdCBTVEFURV8wIHJlYXBpbmcgcGF0aCB0aGVu IHB1dHMgdGhlIHNhbWUKbmVpZ2hib3VyIGEgc2Vjb25kIHRpbWUsIGNhdXNpbmcgYSByb3NlX25l aWdoIHJlZmNvdW50IHVuZGVyZmxvdyBhbmQgYQp1c2UtYWZ0ZXItZnJlZS4KClNldCByb3NlLT5u ZWlnaGJvdXIgPSBOVUxMIGFmdGVyIHRoZSBwdXQsIHJlc3RvcmluZyB0aGUgaW52YXJpYW50LgoK U2lnbmVkLW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgoK KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNjA2ZTQyZDE5NWI0Njc0ODBkNGQ0MDVmODgxNGM0 OGQxNjUxYTc2YSkKCi0tLQogbmV0L3Jvc2UvYWZfcm9zZS5jIHwgMTAgKysrKysrKysrLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9yb3NlL2FmX3Jvc2UuYyBiL25ldC9yb3NlL2FmX3Jvc2UuYwppbmRleCA2YjliNDAyLi42 MTMyZjRjIDEwMDY0NAotLS0gYS9uZXQvcm9zZS9hZl9yb3NlLmMKKysrIGIvbmV0L3Jvc2UvYWZf cm9zZS5jCkBAIC0yMTYsOCArMjE2LDE2IEBAIHN0YXJ0OgogCQkJICogbG9vcGluZyBmb3JldmVy IGluIFJPU0VfU1RBVEVfMCB3aXRoIG5vIG93bmVyLgogCQkJICovCiAJCQlzb2NrX3NldF9mbGFn KHNrLCBTT0NLX0RFU1RST1kpOwotCQkJaWYgKHJvc2UtPm5laWdoYm91cikKKwkJCWlmIChyb3Nl LT5uZWlnaGJvdXIpIHsKIAkJCQlyb3NlX25laWdoX3B1dChyb3NlLT5uZWlnaGJvdXIpOworCQkJ CS8qIENsZWFyIHRoZSBwb2ludGVyIGFmdGVyIGRyb3BwaW5nIHRoZSByZWZlcmVuY2UsIGFzCisJ CQkJICogZXZlcnkgb3RoZXIgcm9zZV9uZWlnaF9wdXQoKSBzaXRlIGRvZXMuICBPdGhlcndpc2UK KwkJCQkgKiByb3NlX2hlYXJ0YmVhdF9leHBpcnkoKSAoU1RBVEVfMCByZWFwaW5nKSBzZWVzIGEg c3RhbGUKKwkJCQkgKiByb3NlLT5uZWlnaGJvdXIgYW5kIHB1dHMgaXQgYSBzZWNvbmQgdGltZSAt PiByb3NlX25laWdoCisJCQkJICogcmVmY291bnQgdW5kZXJmbG93IC8gdXNlLWFmdGVyLWZyZWUu CisJCQkJICovCisJCQkJcm9zZS0+bmVpZ2hib3VyID0gTlVMTDsKKwkJCX0KIAkJCW5ldGRldl9w dXQocm9zZS0+ZGV2aWNlLCAmcm9zZS0+ZGV2X3RyYWNrZXIpOwogCQkJcm9zZS0+ZGV2aWNlID0g TlVMTDsKIAkJfQotLSAKMi41My4wCgpGcm9tIDU2NTc2NTE4OTIwZWRkN2I2YzM0Nzk0NzdkOGQ0 OTBmZTJlYmRhYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJlcm5hcmQgUGlkb3V4 IDxiZXJuYXJkLmY2YnZwQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyNiAxNTo0MTo0 NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy4wLjEzIDE1LzE1XSByb3NlOiBkb24ndCBmcmVlIGZk LW93bmVkIHNvY2tldHMgd2hlbiByZWFwaW5nCiBpbiB0aGUgaGVhcnRiZWF0CgpUaGUgaGVhcnRi ZWF0IHJlYXBzIG9ycGhhbmVkIFJPU0Ugc29ja2V0cyBhZnRlciB0aGVpciBib3VuZCBkZXZpY2Ug Z29lcwpkb3duLiBBIHNvY2tldCBzdGlsbCBhdHRhY2hlZCB0byBhIHN0cnVjdCBzb2NrZXQgKHNr LT5za19zb2NrZXQgIT0gTlVMTCAtLQplLmcuIGFuIGluY29taW5nIGNvbm5lY3Rpb24gYW4gZnBh ZCBjbGllbnQgaGFzIGFjY2VwdGVkIGFuZCBrZXB0IG9wZW4pIGlzCm93bmVkIGJ5IHRoYXQgdXNl cnNwYWNlIGZkOiByb3NlX3JlbGVhc2UoKSBmcmVlcyBpdCBvbiBjbG9zZSgpLiBGcmVlaW5nIGl0 CmZyb20gdGhlIGhlYXJ0YmVhdCBsZWZ0IHRoZSBmZCBkYW5nbGluZywgc28gdGhlIGV2ZW50dWFs IGNsb3NlKCkgdG91Y2hlZApmcmVlZCBtZW1vcnkgLS0gc2xhYi11c2UtYWZ0ZXItZnJlZSBpbiBy b3NlX3JlbGVhc2UoKS4KClJlYXAgb25seSBzb2NrZXRzIHdpdGggc2stPnNrX3NvY2tldCA9PSBO VUxMICh1bmFjY2VwdGVkIGluY29taW5nCmNvbm5lY3Rpb25zIGFuZCBwb3N0LWNsb3NlIG9ycGhh bnMpLiBGb3IgYW4gZmQtb3duZWQgc29ja2V0IHdob3NlIGRldmljZQp3ZW50IGRvd24sIGRpc2Nv bm5lY3QgaXQgYW5kIGZhbGwgdGhyb3VnaCB0byB0aGUgc3dpdGNoIHNvIGNsb3NlKCkgZG9lcwp0 aGUgdGVhcmRvd24uIEFsc28gcmVsZWFzZSB0aGUgbmVpZ2hib3VyIHJlZmVyZW5jZSBoZWxkIGJ5 IG9ycGhhbmVkCmluY29taW5nIHNvY2tldHMgYmVmb3JlIHRlYXJpbmcgdGhlbSBkb3duLgoKU2ln bmVkLW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGJlcm5hcmQuZjZidnBAZ21haWwuY29tPgoKKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNTY1NzY1MTg5MjBlZGQ3YjZjMzQ3OTQ3N2Q4ZDQ5MGZl MmViZGFhYSkKCi0tLQogbmV0L3Jvc2Uvcm9zZV90aW1lci5jIHwgNTcgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDU2IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcm9zZS9yb3NlX3RpbWVyLmMg Yi9uZXQvcm9zZS9yb3NlX3RpbWVyLmMKaW5kZXggNzYyMDRiOC4uNDYxZTNkMCAxMDA2NDQKLS0t IGEvbmV0L3Jvc2Uvcm9zZV90aW1lci5jCisrKyBiL25ldC9yb3NlL3Jvc2VfdGltZXIuYwpAQCAt MTI2LDEzICsxMjYsNjggQEAgc3RhdGljIHZvaWQgcm9zZV9oZWFydGJlYXRfZXhwaXJ5KHN0cnVj dCB0aW1lcl9saXN0ICp0KQogCQlza19yZXNldF90aW1lcihzaywgJnNrLT5za190aW1lciwgamlm ZmllcyArIEhaLzIwKTsKIAkJZ290byBvdXQ7CiAJfQorCisJLyogVGhlIGJvdW5kIGRldmljZSB3 ZW50IGRvd24gd2hpbGUgd2Ugc3RpbGwgaG9sZCBhIHJlZmVyZW5jZSBvbiBpdC4KKwkgKiBUaGlz IGNhdGNoZXMgdGhlIG5hcnJvdyByYWNlIHdoZXJlIHJvc2VfbG9vcGJhY2tfdGltZXIoKSBjcmVh dGVkIGEKKwkgKiBzb2NrZXQgaW4gdGhlIHdpbmRvdyBhZnRlciByb3NlX2tpbGxfYnlfZGV2aWNl KCkncyBORVRERVZfRE9XTiBzd2VlcAorCSAqIGJ1dCBiZWZvcmUgcm9zZV9pbnNlcnRfc29ja2V0 KCkgLS0gbGVhdmluZyBhIFNUQVRFXzMgc29ja2V0IHRoYXQgbm8KKwkgKiBvdGhlciBicmFuY2gg cmVhcHMuICBBIGRvd24gZGV2aWNlIG1lYW5zIHRoZSBsaW5rIGlzIGRlYWQsIHNvIHRlYXIKKwkg KiB0aGUgc29ja2V0IGRvd24gcmVnYXJkbGVzcyBvZiBzdGF0ZS4gIHJvc2VfZGVzdHJveV9zb2Nr ZXQoKSByZWxlYXNlcworCSAqIHRoZSBoZWxkIG5ldGRldiByZWZlcmVuY2UgKHJvc2UtPmRldmlj ZSBzdGlsbCBzZXQpLgorCSAqLworCWlmIChyb3NlLT5kZXZpY2UgJiYgIW5ldGlmX3J1bm5pbmco cm9zZS0+ZGV2aWNlKSkgeworCQlpZiAocm9zZS0+bmVpZ2hib3VyKSB7CisJCQlyb3NlX25laWdo X3B1dChyb3NlLT5uZWlnaGJvdXIpOworCQkJcm9zZS0+bmVpZ2hib3VyID0gTlVMTDsKKwkJfQor CQlyb3NlX2Rpc2Nvbm5lY3Qoc2ssIEVORVRET1dOLCAtMSwgLTEpOworCisJCS8qIE9ubHkgcmVh cCB0aGUgc29ja2V0IGlmIHVzZXJzcGFjZSBubyBsb25nZXIgaG9sZHMgaXQuICBBIHNvY2tldAor CQkgKiBzdGlsbCBhdHRhY2hlZCB0byBhIHN0cnVjdCBzb2NrZXQgKHNrLT5za19zb2NrZXQgIT0g TlVMTCAtLSBlLmcuCisJCSAqIGEgY29ubmVjdGlvbiBhbiBmcGFkIGNsaWVudCBoYXMgYWNjZXB0 ZWQgYW5kIGtlcHQgb3BlbikgaXMgb3duZWQKKwkJICogYnkgdGhhdCBmZDogcm9zZV9yZWxlYXNl KCkgd2lsbCBkZXN0cm95IGl0IG9uIGNsb3NlKCkuICBEcm9wcGluZworCQkgKiB0aGUgbGFzdCBy ZWZlcmVuY2UgaGVyZSBsZWF2ZXMgdGhlIG9wZW4gZmQgZGFuZ2xpbmcsIHNvIHRoZQorCQkgKiBl dmVudHVhbCBjbG9zZSgpIHRvdWNoZXMgZnJlZWQgbWVtb3J5IC0+IHNsYWItdXNlLWFmdGVyLWZy ZWUgaW4KKwkJICogcm9zZV9yZWxlYXNlKCkuICBVbmFjY2VwdGVkIGluY29taW5nIHNvY2tldHMg YW5kIHBvc3QtY2xvc2UKKwkJICogb3JwaGFucyBoYXZlIHNrLT5za19zb2NrZXQgPT0gTlVMTCBh bmQgc3RheSBzYWZlIHRvIHJlYXAgaGVyZS4KKwkJICovCisJCWlmICghc2stPnNrX3NvY2tldCkg eworCQkJc29ja19zZXRfZmxhZyhzaywgU09DS19ERVNUUk9ZKTsKKwkJCWJoX3VubG9ja19zb2Nr KHNrKTsKKwkJCXJvc2VfZGVzdHJveV9zb2NrZXQoc2spOworCQkJc29ja19wdXQoc2spOworCQkJ cmV0dXJuOworCQl9CisKKwkJLyogT3duZWQgYnkgdXNlcnNwYWNlOiB0aGUgbGluayBpcyBkb3du IGFuZCB0aGUgc29ja2V0IGlzIG5vdworCQkgKiBkaXNjb25uZWN0ZWQgKHJvc2VfZGlzY29ubmVj dCgpIG1vdmVkIGl0IHRvIFNUQVRFXzApLiAgRmFsbAorCQkgKiB0aHJvdWdoIHRvIHRoZSBzd2l0 Y2gsIHdoaWNoIHJlLWFybXMgdGhlIGhlYXJ0YmVhdDsgdGhlIGNsb3NlKCkKKwkJICogd2lsbCB0 ZWFyIHRoZSBzb2NrZXQgZG93bi4gKi8KKwl9CisKIAlzd2l0Y2ggKHJvc2UtPnN0YXRlKSB7CiAJ Y2FzZSBST1NFX1NUQVRFXzA6CiAJCS8qIERlc3Ryb3kgYW55IG9ycGhhbmVkIFNUQVRFXzAgc29j a2V0OiBlaXRoZXIgZXhwbGljaXRseQogCQkgKiBmbGFnZ2VkIFNPQ0tfREVTVFJPWSwgb3IgU09D S19ERUFEIChjb3ZlcnMgYm90aCB1bmFjY2VwdGVkCiAJCSAqIGluY29taW5nIGNvbm5lY3Rpb25z IGFuZCBsaXN0ZW5pbmcgc29ja2V0cyB3aG9zZSBsaW5rIGRpZWQpLgogCQkgKi8KLQkJaWYgKHNv Y2tfZmxhZyhzaywgU09DS19ERVNUUk9ZKSB8fCBzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpIHsK KwkJaWYgKChzb2NrX2ZsYWcoc2ssIFNPQ0tfREVTVFJPWSkgfHwgc29ja19mbGFnKHNrLCBTT0NL X0RFQUQpKSAmJgorCQkgICAgIXNrLT5za19zb2NrZXQpIHsKKwkJCS8qIFJlYXAgb25seSBvcnBo YW5lZCBzb2NrZXRzIChzay0+c2tfc29ja2V0ID09IE5VTEwpLiAgQQorCQkJICogc29ja2V0IHN0 aWxsIG93bmVkIGJ5IGEgdXNlcnNwYWNlIGZkIHJlYWNoZXMgaGVyZSB2aWEgdGhlCisJCQkgKiBT VEFURV8yIGRldmljZS1nb25lIGJyYW5jaCwgd2hpY2ggc2V0cyBTT0NLX0RFU1RST1kgd2l0aG91 dAorCQkJICoga25vd2luZyBhYm91dCB0aGUgZmQ7IGZyZWVpbmcgaXQgd291bGQgcmFjZSByb3Nl X3JlbGVhc2UoKQorCQkJICogYXQgY2xvc2UoKSAtPiB1c2UtYWZ0ZXItZnJlZS4gIExlYXZlIGl0 IGZvciBjbG9zZSgpLgorCQkJICoKKwkJCSAqIE9ycGhhbmVkIGluY29taW5nIHNvY2tldHMgKHJv c2VfcnhfY2FsbF9yZXF1ZXN0KSBob2xkIGEKKwkJCSAqIG5laWdoYm91ciByZWZlcmVuY2U7IHJl bGVhc2UgaXQgYmVmb3JlIHRlYXJkb3duLCBhcyB0aGUKKwkJCSAqIFNUQVRFXzIgYW5kIGRldmlj ZS1kb3duIGJyYW5jaGVzIGRvLiAgcm9zZV9kZXN0cm95X3NvY2tldCgpCisJCQkgKiBkb2VzIG5v dCBkcm9wIGl0LgorCQkJICovCisJCQlpZiAocm9zZS0+bmVpZ2hib3VyKSB7CisJCQkJcm9zZV9u ZWlnaF9wdXQocm9zZS0+bmVpZ2hib3VyKTsKKwkJCQlyb3NlLT5uZWlnaGJvdXIgPSBOVUxMOwor CQkJfQogCQkJYmhfdW5sb2NrX3NvY2soc2spOwogCQkJcm9zZV9kZXN0cm95X3NvY2tldChzayk7 CiAJCQlzb2NrX3B1dChzayk7Ci0tIAoyLjUzLjAKCg== --000000000000ed57320654acfedf--