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--