From: Baoquan He <bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org,
fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
bp-l3A5Bk7waGM@public.gmane.org,
andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
brijesh.singh-5C7GfCeVMHo@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
airlied-cv59FeDIM0c@public.gmane.org,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Paul Mackerras <paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/@public.gmane.org,
kys-0li6OtcxBFHby3iVrkZq2A@public.gmane.org,
frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org,
sthemmin-0li6OtcxBFHby3iVrkZq2A@public.gmane.org,
Baoquan He <bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org,
Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org,
dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
thomas.lendacky-5C7GfCeVMHo@public.gmane.org,
haiyangz-0li6OtcxBFHby3iVrkZq2A@public.gmane.org,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
yinghai-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
chris-YvXeqwSYzG2sTnJN9+BGXg@public.gmane.org,
monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org,
linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Benjamin Herrenschmid
Subject: [PATCH v7 2/4] resource: Use list_head to link sibling resource
Date: Wed, 18 Jul 2018 10:49:42 +0800 [thread overview]
Message-ID: <20180718024944.577-3-bhe@redhat.com> (raw)
In-Reply-To: <20180718024944.577-1-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
VGhlIHN0cnVjdCByZXNvdXJjZSB1c2VzIHNpbmdseSBsaW5rZWQgbGlzdCB0byBsaW5rIHNpYmxp
bmdzLCBpbXBsZW1lbnRlZApieSBwb2ludGVyIG9wZXJhdGlvbi4gUmVwbGFjZSBpdCB3aXRoIGxp
c3RfaGVhZCBmb3IgYmV0dGVyIGNvZGUgcmVhZGFiaWxpdHkuCgpCYXNlZCBvbiB0aGlzIGxpc3Rf
aGVhZCByZXBsYWNlbWVudCwgaXQgd2lsbCBiZSB2ZXJ5IGVhc3kgdG8gZG8gcmV2ZXJzZQppdGVy
YXRpb24gb24gaW9tZW1fcmVzb3VyY2UncyBzaWJsaW5nIGxpc3QgaW4gbGF0ZXIgcGF0Y2guCgpC
ZXNpZGVzLCB0eXBlIG9mIG1lbWJlciB2YXJpYWJsZXMgb2Ygc3RydWN0IHJlc291cmNlLCBzaWJs
aW5nIGFuZCBjaGlsZCwgYXJlCmNoYW5nZWQgZnJvbSAnc3RydWN0IHJlc291cmNlIConIHRvICdz
dHJ1Y3QgbGlzdF9oZWFkJy4gVGhpcyBicmluZ3MgdHdvCnBvaW50ZXJzIG9mIHNpemUgaW5jcmVh
c2UuCgpTdWdnZXN0ZWQtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5v
cmc+ClNpZ25lZC1vZmYtYnk6IEJhb3F1YW4gSGUgPGJoZUByZWRoYXQuY29tPgpDYzogUGF0cmlr
IEpha29ic3NvbiA8cGF0cmlrLnIuamFrb2Jzc29uQGdtYWlsLmNvbT4KQ2M6IERhdmlkIEFpcmxp
ZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6ICJLLiBZLiBTcmluaXZhc2FuIiA8a3lzQG1pY3Jvc29m
dC5jb20+CkNjOiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPgpDYzogU3Rl
cGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+CkNjOiBEbWl0cnkgVG9yb2to
b3YgPGRtaXRyeS50b3Jva2hvdkBnbWFpbC5jb20+CkNjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndp
bGxpYW1zQGludGVsLmNvbT4KQ2M6IFJvYiBIZXJyaW5nIDxyb2JoK2R0QGtlcm5lbC5vcmc+CkNj
OiBGcmFuayBSb3dhbmQgPGZyb3dhbmQubGlzdEBnbWFpbC5jb20+CkNjOiBLZWl0aCBCdXNjaCA8
a2VpdGguYnVzY2hAaW50ZWwuY29tPgpDYzogSm9uYXRoYW4gRGVycmljayA8am9uYXRoYW4uZGVy
cmlja0BpbnRlbC5jb20+CkNjOiBMb3JlbnpvIFBpZXJhbGlzaSA8bG9yZW56by5waWVyYWxpc2lA
YXJtLmNvbT4KQ2M6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+CkNjOiBUaG9t
YXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4KQ2M6IEJyaWplc2ggU2luZ2ggPGJyaWpl
c2guc2luZ2hAYW1kLmNvbT4KQ2M6ICJKw6lyw7RtZSBHbGlzc2UiIDxqZ2xpc3NlQHJlZGhhdC5j
b20+CkNjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+CkNjOiBUb20gTGVuZGFja3kgPHRo
b21hcy5sZW5kYWNreUBhbWQuY29tPgpDYzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGlu
dXhmb3VuZGF0aW9uLm9yZz4KQ2M6IFlhb3dlaSBCYWkgPGJhaXlhb3dlaUBjbXNzLmNoaW5hbW9i
aWxlLmNvbT4KQ2M6IFdlaSBZYW5nIDxyaWNoYXJkLndlaXlhbmdAZ21haWwuY29tPgpDYzogZGV2
ZWxAbGludXhkcml2ZXJwcm9qZWN0Lm9yZwpDYzogbGludXgtaW5wdXRAdmdlci5rZXJuZWwub3Jn
CkNjOiBsaW51eC1udmRpbW1AbGlzdHMuMDEub3JnCkNjOiBkZXZpY2V0cmVlQHZnZXIua2VybmVs
Lm9yZwpDYzogbGludXgtcGNpQHZnZXIua2VybmVsLm9yZwpDYzogTWljaGFsIFNpbWVrIDxtb25z
dHJAbW9uc3RyLmV1PgpDYzogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBrZXJuZWwuY3Jh
c2hpbmcub3JnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApDYzogUGF1bCBN
YWNrZXJyYXMgPHBhdWx1c0BzYW1iYS5vcmc+CkNjOiBNaWNoYWVsIEVsbGVybWFuIDxtcGVAZWxs
ZXJtYW4uaWQuYXU+CkNjOiBsaW51eC1taXBzQGxpbnV4LW1pcHMub3JnCi0tLQogYXJjaC9hcm0v
cGxhdC1zYW1zdW5nL3BtLWNoZWNrLmMgICAgICAgICAgICB8ICAgNiArLQogYXJjaC9pYTY0L3Nu
L2tlcm5lbC9pb19pbml0LmMgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9taWNyb2JsYXpl
L3BjaS9wY2ktY29tbW9uLmMgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9taXBzL3BjaS9wY2kt
cmMzMjQzNC5jICAgICAgICAgICAgICAgICB8ICAxMiArLQogYXJjaC9wb3dlcnBjL2tlcm5lbC9w
Y2ktY29tbW9uLmMgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9zcGFyYy9rZXJuZWwvaW9wb3J0
LmMgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vcGNp
LWJyaWRnZS5oICAgICAgICB8ICAgNCArLQogZHJpdmVycy9laXNhL2Vpc2EtYnVzLmMgICAgICAg
ICAgICAgICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jICAgICAg
ICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2d0dC5jICAgICAgICAg
ICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2h2L3ZtYnVzX2Rydi5jICAgICAgICAgICAgICAgICAg
ICAgIHwgIDUyICsrKy0tLS0KIGRyaXZlcnMvaW5wdXQvam95c3RpY2svaWZvcmNlL2lmb3JjZS1t
YWluLmMgfCAgIDQgKy0KIGRyaXZlcnMvbnZkaW1tL25hbWVzcGFjZV9kZXZzLmMgICAgICAgICAg
ICAgfCAgIDYgKy0KIGRyaXZlcnMvbnZkaW1tL25kLmggICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDUgKy0KIGRyaXZlcnMvb2YvYWRkcmVzcy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIGRyaXZlcnMvcGFyaXNjL2xiYV9wY2kuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQg
Ky0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMgICAgICAgICAgICAgICAgfCAgIDggKy0K
IGRyaXZlcnMvcGNpL3Byb2JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogZHJp
dmVycy9wY2kvc2V0dXAtYnVzLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVk
ZS9saW51eC9pb3BvcnQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIGtlcm5lbC9y
ZXNvdXJjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDYgKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLQogMjEgZmlsZXMgY2hhbmdlZCwgMTgzIGluc2VydGlvbnMoKyksIDE3MSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXNhbXN1bmcvcG0tY2hlY2su
YyBiL2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9wbS1jaGVjay5jCmluZGV4IGNkMmMwMmM2OGJjMy4u
NTQ5NDM1NWIxYzQ5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXNhbXN1bmcvcG0tY2hlY2su
YworKysgYi9hcmNoL2FybS9wbGF0LXNhbXN1bmcvcG0tY2hlY2suYwpAQCAtNDYsOCArNDYsOCBA
QCB0eXBlZGVmIHUzMiAqKHJ1bl9mbl90KShzdHJ1Y3QgcmVzb3VyY2UgKnB0ciwgdTMyICphcmcp
Owogc3RhdGljIHZvaWQgczNjX3BtX3J1bl9yZXMoc3RydWN0IHJlc291cmNlICpwdHIsIHJ1bl9m
bl90IGZuLCB1MzIgKmFyZykKIHsKIAl3aGlsZSAocHRyICE9IE5VTEwpIHsKLQkJaWYgKHB0ci0+
Y2hpbGQgIT0gTlVMTCkKLQkJCXMzY19wbV9ydW5fcmVzKHB0ci0+Y2hpbGQsIGZuLCBhcmcpOwor
CQlpZiAoIWxpc3RfZW1wdHkoJnB0ci0+Y2hpbGQpKQorCQkJczNjX3BtX3J1bl9yZXMocmVzb3Vy
Y2VfZmlyc3RfY2hpbGQoJnB0ci0+Y2hpbGQpLCBmbiwgYXJnKTsKIAogCQlpZiAoKHB0ci0+Zmxh
Z3MgJiBJT1JFU09VUkNFX1NZU1RFTV9SQU0pCiAJCQkJPT0gSU9SRVNPVVJDRV9TWVNURU1fUkFN
KSB7CkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIHMzY19wbV9ydW5fcmVzKHN0cnVjdCBy
ZXNvdXJjZSAqcHRyLCBydW5fZm5fdCBmbiwgdTMyICphcmcpCiAJCQlhcmcgPSAoZm4pKHB0ciwg
YXJnKTsKIAkJfQogCi0JCXB0ciA9IHB0ci0+c2libGluZzsKKwkJcHRyID0gcmVzb3VyY2Vfc2li
bGluZyhwdHIpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19p
bml0LmMgYi9hcmNoL2lhNjQvc24va2VybmVsL2lvX2luaXQuYwppbmRleCBkNjM4MDlhNmFkZmEu
LjMzOGE3YjdmMTk0ZCAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19pbml0LmMK
KysrIGIvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19pbml0LmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBz
bl9pb19zbG90X2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJCSAqIGlmIGl0J3MgYWxyZWFk
eSBpbiB0aGUgZGV2aWNlIHN0cnVjdHVyZSwgcmVtb3ZlIGl0IGJlZm9yZQogCQkgKiBpbnNlcnRp
bmcKIAkJICovCi0JCWlmIChyZXMtPnBhcmVudCAmJiByZXMtPnBhcmVudC0+Y2hpbGQpCisJCWlm
IChyZXMtPnBhcmVudCAmJiAhbGlzdF9lbXB0eSgmcmVzLT5wYXJlbnQtPmNoaWxkKSkKIAkJCXJl
bGVhc2VfcmVzb3VyY2UocmVzKTsKIAogCQlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfSU8p
CmRpZmYgLS1naXQgYS9hcmNoL21pY3JvYmxhemUvcGNpL3BjaS1jb21tb24uYyBiL2FyY2gvbWlj
cm9ibGF6ZS9wY2kvcGNpLWNvbW1vbi5jCmluZGV4IDc4OTliYWZhYjA2NC4uMmJmNzNlMjdlMjMx
IDEwMDY0NAotLS0gYS9hcmNoL21pY3JvYmxhemUvcGNpL3BjaS1jb21tb24uYworKysgYi9hcmNo
L21pY3JvYmxhemUvcGNpL3BjaS1jb21tb24uYwpAQCAtNTMzLDcgKzUzMyw5IEBAIHZvaWQgcGNp
X3Byb2Nlc3NfYnJpZGdlX09GX3JhbmdlcyhzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UsCiAJ
CQlyZXMtPmZsYWdzID0gcmFuZ2UuZmxhZ3M7CiAJCQlyZXMtPnN0YXJ0ID0gcmFuZ2UuY3B1X2Fk
ZHI7CiAJCQlyZXMtPmVuZCA9IHJhbmdlLmNwdV9hZGRyICsgcmFuZ2Uuc2l6ZSAtIDE7Ci0JCQly
ZXMtPnBhcmVudCA9IHJlcy0+Y2hpbGQgPSByZXMtPnNpYmxpbmcgPSBOVUxMOworCQkJcmVzLT5w
YXJlbnQgPSBOVUxMOworCQkJSU5JVF9MSVNUX0hFQUQoJnJlcy0+Y2hpbGQpOworCQkJSU5JVF9M
SVNUX0hFQUQoJnJlcy0+c2libGluZyk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlw
cy9wY2kvcGNpLXJjMzI0MzQuYyBiL2FyY2gvbWlwcy9wY2kvcGNpLXJjMzI0MzQuYwppbmRleCA3
ZjZjZTZkNzM0YzAuLmU4MDI4M2RmNzkyNSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9wY2kt
cmMzMjQzNC5jCisrKyBiL2FyY2gvbWlwcy9wY2kvcGNpLXJjMzI0MzQuYwpAQCAtNTMsOCArNTMs
OCBAQCBzdGF0aWMgc3RydWN0IHJlc291cmNlIHJjMzI0MzRfcmVzX3BjaV9tZW0xID0gewogCS5z
dGFydCA9IDB4NTAwMDAwMDAsCiAJLmVuZCA9IDB4NUZGRkZGRkYsCiAJLmZsYWdzID0gSU9SRVNP
VVJDRV9NRU0sCi0JLnNpYmxpbmcgPSBOVUxMLAotCS5jaGlsZCA9ICZyYzMyNDM0X3Jlc19wY2lf
bWVtMgorCS5zaWJsaW5nID0gTElTVF9IRUFEX0lOSVQocmMzMjQzNF9yZXNfcGNpX21lbTEuc2li
bGluZyksCisJLmNoaWxkID0gTElTVF9IRUFEX0lOSVQocmMzMjQzNF9yZXNfcGNpX21lbTEuY2hp
bGQpLAogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSByYzMyNDM0X3Jlc19wY2lfbWVtMiA9
IHsKQEAgLTYzLDggKzYzLDggQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSByYzMyNDM0X3Jlc19w
Y2lfbWVtMiA9IHsKIAkuZW5kID0gMHg2RkZGRkZGRiwKIAkuZmxhZ3MgPSBJT1JFU09VUkNFX01F
TSwKIAkucGFyZW50ID0gJnJjMzI0MzRfcmVzX3BjaV9tZW0xLAotCS5zaWJsaW5nID0gTlVMTCwK
LQkuY2hpbGQgPSBOVUxMCisJLnNpYmxpbmcgPSBMSVNUX0hFQURfSU5JVChyYzMyNDM0X3Jlc19w
Y2lfbWVtMi5zaWJsaW5nKSwKKwkuY2hpbGQgPSBMSVNUX0hFQURfSU5JVChyYzMyNDM0X3Jlc19w
Y2lfbWVtMi5jaGlsZCksCiB9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHJjMzI0MzRfcmVz
X3BjaV9pbzEgPSB7CkBAIC03Miw2ICs3Miw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcmMz
MjQzNF9yZXNfcGNpX2lvMSA9IHsKIAkuc3RhcnQgPSAweDE4ODAwMDAwLAogCS5lbmQgPSAweDE4
OEZGRkZGLAogCS5mbGFncyA9IElPUkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcgPSBMSVNUX0hFQURf
SU5JVChyYzMyNDM0X3Jlc19wY2lfaW8xLnNpYmxpbmcpLAorCS5jaGlsZCA9IExJU1RfSEVBRF9J
TklUKHJjMzI0MzRfcmVzX3BjaV9pbzEuY2hpbGQpLAogfTsKIAogZXh0ZXJuIHN0cnVjdCBwY2lf
b3BzIHJjMzI0MzRfcGNpX29wczsKQEAgLTIwOCw2ICsyMTAsOCBAQCBzdGF0aWMgaW50IF9faW5p
dCByYzMyNDM0X3BjaV9pbml0KHZvaWQpCiAKIAlwcl9pbmZvKCJQQ0k6IEluaXRpYWxpemluZyBQ
Q0lcbiIpOwogCisJbGlzdF9hZGQoJnJjMzI0MzRfcmVzX3BjaV9tZW0yLnNpYmxpbmcsICZyYzMy
NDM0X3Jlc19wY2lfbWVtMS5jaGlsZCk7CisKIAlpb3BvcnRfcmVzb3VyY2Uuc3RhcnQgPSByYzMy
NDM0X3Jlc19wY2lfaW8xLnN0YXJ0OwogCWlvcG9ydF9yZXNvdXJjZS5lbmQgPSByYzMyNDM0X3Jl
c19wY2lfaW8xLmVuZDsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29t
bW9uLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYwppbmRleCA5MjYwMzViYjM3
OGQuLjI4ZmJlODNjOWRhZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29t
bW9uLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMKQEAgLTc2MSw3ICs3
NjEsOSBAQCB2b2lkIHBjaV9wcm9jZXNzX2JyaWRnZV9PRl9yYW5nZXMoc3RydWN0IHBjaV9jb250
cm9sbGVyICpob3NlLAogCQkJcmVzLT5mbGFncyA9IHJhbmdlLmZsYWdzOwogCQkJcmVzLT5zdGFy
dCA9IHJhbmdlLmNwdV9hZGRyOwogCQkJcmVzLT5lbmQgPSByYW5nZS5jcHVfYWRkciArIHJhbmdl
LnNpemUgLSAxOwotCQkJcmVzLT5wYXJlbnQgPSByZXMtPmNoaWxkID0gcmVzLT5zaWJsaW5nID0g
TlVMTDsKKwkJCXJlcy0+cGFyZW50ID0gTlVMTDsKKwkJCUlOSVRfTElTVF9IRUFEKCZyZXMtPmNo
aWxkKTsKKwkJCUlOSVRfTElTVF9IRUFEKCZyZXMtPnNpYmxpbmcpOwogCQl9CiAJfQogfQpkaWZm
IC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvaW9wb3J0LmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9p
b3BvcnQuYwppbmRleCBjY2E5MTM0Y2ZhN2QuLjk5ZWZlNGU5OGIxNiAxMDA2NDQKLS0tIGEvYXJj
aC9zcGFyYy9rZXJuZWwvaW9wb3J0LmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvaW9wb3J0LmMK
QEAgLTY2OSw3ICs2NjksNyBAQCBzdGF0aWMgaW50IHNwYXJjX2lvX3Byb2Nfc2hvdyhzdHJ1Y3Qg
c2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJc3RydWN0IHJlc291cmNlICpyb290ID0gbS0+cHJpdmF0
ZSwgKnI7CiAJY29uc3QgY2hhciAqbm07CiAKLQlmb3IgKHIgPSByb290LT5jaGlsZDsgciAhPSBO
VUxMOyByID0gci0+c2libGluZykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkociwgJnJvb3QtPmNo
aWxkLCBzaWJsaW5nKSB7CiAJCWlmICgobm0gPSByLT5uYW1lKSA9PSBOVUxMKSBubSA9ICI/Pz8i
OwogCQlzZXFfcHJpbnRmKG0sICIlMDE2bGx4LSUwMTZsbHg6ICVzXG4iLAogCQkJCSh1bnNpZ25l
ZCBsb25nIGxvbmcpci0+c3RhcnQsCmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9pbmNsdWRlL2Fz
bS9wY2ktYnJpZGdlLmggYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKaW5k
ZXggMGI2OGM3NmVjMWU2Li5mNDg3YjA2ODE3ZGYgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2lu
Y2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAorKysgYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wY2kt
YnJpZGdlLmgKQEAgLTcxLDggKzcxLDggQEAgc3RhdGljIGlubGluZSB2b2lkIHBjaWJpb3NfaW5p
dF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJlcywKIAlyZXMtPmZsYWdzID0gZmxhZ3M7CiAJ
cmVzLT5uYW1lID0gbmFtZTsKIAlyZXMtPnBhcmVudCA9IE5VTEw7Ci0JcmVzLT5zaWJsaW5nID0g
TlVMTDsKLQlyZXMtPmNoaWxkID0gTlVMTDsKKwlJTklUX0xJU1RfSEVBRCgmcmVzLT5jaGlsZCk7
CisJSU5JVF9MSVNUX0hFQUQoJnJlcy0+c2libGluZyk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZHJp
dmVycy9laXNhL2Vpc2EtYnVzLmMgYi9kcml2ZXJzL2Vpc2EvZWlzYS1idXMuYwppbmRleCAxZTgw
NjJmNmRiZmMuLmRiYTc4Zjc1ZmQwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9laXNhL2Vpc2EtYnVz
LmMKKysrIGIvZHJpdmVycy9laXNhL2Vpc2EtYnVzLmMKQEAgLTQwOCw2ICs0MDgsOCBAQCBzdGF0
aWMgc3RydWN0IHJlc291cmNlIGVpc2Ffcm9vdF9yZXMgPSB7CiAJLnN0YXJ0ID0gMCwKIAkuZW5k
ICAgPSAweGZmZmZmZmZmLAogCS5mbGFncyA9IElPUkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcgPSBM
SVNUX0hFQURfSU5JVChlaXNhX3Jvb3RfcmVzLnNpYmxpbmcpLAorCS5jaGlsZCAgPSBMSVNUX0hF
QURfSU5JVChlaXNhX3Jvb3RfcmVzLmNoaWxkKSwKIH07CiAKIHN0YXRpYyBpbnQgZWlzYV9idXNf
Y291bnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jIGIvZHJpdmVy
cy9ncHUvZHJtL2RybV9tZW1vcnkuYwppbmRleCBkNjllNGZjMWVlNzcuLjMzYmFhN2ZhNWU0MSAx
MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYworKysgYi9kcml2ZXJzL2dw
dS9kcm0vZHJtX21lbW9yeS5jCkBAIC0xNTUsOSArMTU1LDggQEAgdTY0IGRybV9nZXRfbWF4X2lv
bWVtKHZvaWQpCiAJc3RydWN0IHJlc291cmNlICp0bXA7CiAJcmVzb3VyY2Vfc2l6ZV90IG1heF9p
b21lbSA9IDA7CiAKLQlmb3IgKHRtcCA9IGlvbWVtX3Jlc291cmNlLmNoaWxkOyB0bXA7IHRtcCA9
IHRtcC0+c2libGluZykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wLCAmaW9tZW1fcmVzb3Vy
Y2UuY2hpbGQsIHNpYmxpbmcpCiAJCW1heF9pb21lbSA9IG1heChtYXhfaW9tZW0sICB0bXAtPmVu
ZCk7Ci0JfQogCiAJcmV0dXJuIG1heF9pb21lbTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1
L2RybS9nbWE1MDAvZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2d0dC5jCmluZGV4IDM5
NDliMDk5MDkxNi4uYWRkZDNiYzAwOWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21h
NTAwL2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ3R0LmMKQEAgLTU2NSw3ICs1
NjUsNyBAQCBpbnQgcHNiX2d0dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCByZXN1
bWUpCiBpbnQgcHNiX2d0dF9yZXN0b3JlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry
dWN0IGRybV9wc2JfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVj
dCByZXNvdXJjZSAqciA9IGRldl9wcml2LT5ndHRfbWVtLT5jaGlsZDsKKwlzdHJ1Y3QgcmVzb3Vy
Y2UgKnI7CiAJc3RydWN0IGd0dF9yYW5nZSAqcmFuZ2U7CiAJdW5zaWduZWQgaW50IHJlc3RvcmVk
ID0gMCwgdG90YWwgPSAwLCBzaXplID0gMDsKIApAQCAtNTczLDE0ICs1NzMsMTMgQEAgaW50IHBz
Yl9ndHRfcmVzdG9yZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCW11dGV4X2xvY2soJmRldl9w
cml2LT5ndHRfbXV0ZXgpOwogCXBzYl9ndHRfaW5pdChkZXYsIDEpOwogCi0Jd2hpbGUgKHIgIT0g
TlVMTCkgeworCWxpc3RfZm9yX2VhY2hfZW50cnkociwgJmRldl9wcml2LT5ndHRfbWVtLT5jaGls
ZCwgc2libGluZykgewogCQlyYW5nZSA9IGNvbnRhaW5lcl9vZihyLCBzdHJ1Y3QgZ3R0X3Jhbmdl
LCByZXNvdXJjZSk7CiAJCWlmIChyYW5nZS0+cGFnZXMpIHsKIAkJCXBzYl9ndHRfaW5zZXJ0KGRl
diwgcmFuZ2UsIDEpOwogCQkJc2l6ZSArPSByYW5nZS0+cmVzb3VyY2UuZW5kIC0gcmFuZ2UtPnJl
c291cmNlLnN0YXJ0OwogCQkJcmVzdG9yZWQrKzsKIAkJfQotCQlyID0gci0+c2libGluZzsKIAkJ
dG90YWwrKzsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Z3R0X211dGV4KTsKZGlmZiAt
LWdpdCBhL2RyaXZlcnMvaHYvdm1idXNfZHJ2LmMgYi9kcml2ZXJzL2h2L3ZtYnVzX2Rydi5jCmlu
ZGV4IGIxMGZlMjZjNDg5MS4uZDg3ZWM1YTFiYzRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h2L3Zt
YnVzX2Rydi5jCisrKyBiL2RyaXZlcnMvaHYvdm1idXNfZHJ2LmMKQEAgLTE0MTIsOSArMTQxMiw4
IEBAIHN0YXRpYyBhY3BpX3N0YXR1cyB2bWJ1c193YWxrX3Jlc291cmNlcyhzdHJ1Y3QgYWNwaV9y
ZXNvdXJjZSAqcmVzLCB2b2lkICpjdHgpCiB7CiAJcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0ID0gMDsK
IAlyZXNvdXJjZV9zaXplX3QgZW5kID0gMDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm5ld19yZXM7CisJ
c3RydWN0IHJlc291cmNlICpuZXdfcmVzLCAqdG1wOwogCXN0cnVjdCByZXNvdXJjZSAqKm9sZF9y
ZXMgPSAmaHlwZXJ2X21taW87Ci0Jc3RydWN0IHJlc291cmNlICoqcHJldl9yZXMgPSBOVUxMOwog
CiAJc3dpdGNoIChyZXMtPnR5cGUpIHsKIApAQCAtMTQ2MSw0NCArMTQ2MCwzNiBAQCBzdGF0aWMg
YWNwaV9zdGF0dXMgdm1idXNfd2Fsa19yZXNvdXJjZXMoc3RydWN0IGFjcGlfcmVzb3VyY2UgKnJl
cywgdm9pZCAqY3R4KQogCS8qCiAJICogSWYgdHdvIHJhbmdlcyBhcmUgYWRqYWNlbnQsIG1lcmdl
IHRoZW0uCiAJICovCi0JZG8gewotCQlpZiAoISpvbGRfcmVzKSB7Ci0JCQkqb2xkX3JlcyA9IG5l
d19yZXM7Ci0JCQlicmVhazsKLQkJfQotCi0JCWlmICgoKCpvbGRfcmVzKS0+ZW5kICsgMSkgPT0g
bmV3X3Jlcy0+c3RhcnQpIHsKLQkJCSgqb2xkX3JlcyktPmVuZCA9IG5ld19yZXMtPmVuZDsKKwlp
ZiAoISpvbGRfcmVzKSB7CisJCSpvbGRfcmVzID0gbmV3X3JlczsKKwkJcmV0dXJuIEFFX09LOwor
CX0KKwl0bXAgPSAqb2xkX3JlczsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20odG1wLCAmdG1w
LT5wYXJlbnQtPmNoaWxkLCBzaWJsaW5nKSB7CisJCWlmICgodG1wLT5lbmQgKyAxKSA9PSBuZXdf
cmVzLT5zdGFydCkgeworCQkJdG1wLT5lbmQgPSBuZXdfcmVzLT5lbmQ7CiAJCQlrZnJlZShuZXdf
cmVzKTsKIAkJCWJyZWFrOwogCQl9CiAKLQkJaWYgKCgqb2xkX3JlcyktPnN0YXJ0ID09IG5ld19y
ZXMtPmVuZCArIDEpIHsKLQkJCSgqb2xkX3JlcyktPnN0YXJ0ID0gbmV3X3Jlcy0+c3RhcnQ7CisJ
CWlmICh0bXAtPnN0YXJ0ID09IG5ld19yZXMtPmVuZCArIDEpIHsKKwkJCXRtcC0+c3RhcnQgPSBu
ZXdfcmVzLT5zdGFydDsKIAkJCWtmcmVlKG5ld19yZXMpOwogCQkJYnJlYWs7CiAJCX0KIAotCQlp
ZiAoKCpvbGRfcmVzKS0+c3RhcnQgPiBuZXdfcmVzLT5lbmQpIHsKLQkJCW5ld19yZXMtPnNpYmxp
bmcgPSAqb2xkX3JlczsKLQkJCWlmIChwcmV2X3JlcykKLQkJCQkoKnByZXZfcmVzKS0+c2libGlu
ZyA9IG5ld19yZXM7Ci0JCQkqb2xkX3JlcyA9IG5ld19yZXM7CisJCWlmICh0bXAtPnN0YXJ0ID4g
bmV3X3Jlcy0+ZW5kKSB7CisJCQlsaXN0X2FkZCgmbmV3X3Jlcy0+c2libGluZywgdG1wLT5zaWJs
aW5nLnByZXYpOwogCQkJYnJlYWs7CiAJCX0KLQotCQlwcmV2X3JlcyA9IG9sZF9yZXM7Ci0JCW9s
ZF9yZXMgPSAmKCpvbGRfcmVzKS0+c2libGluZzsKLQotCX0gd2hpbGUgKDEpOworCX0KIAogCXJl
dHVybiBBRV9PSzsKIH0KIAogc3RhdGljIGludCB2bWJ1c19hY3BpX3JlbW92ZShzdHJ1Y3QgYWNw
aV9kZXZpY2UgKmRldmljZSkKIHsKLQlzdHJ1Y3QgcmVzb3VyY2UgKmN1cl9yZXM7Ci0Jc3RydWN0
IHJlc291cmNlICpuZXh0X3JlczsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAogCWlmIChoeXBl
cnZfbW1pbykgewogCQlpZiAoZmJfbW1pbykgewpAQCAtMTUwNywxMCArMTQ5OCw5IEBAIHN0YXRp
YyBpbnQgdm1idXNfYWNwaV9yZW1vdmUoc3RydWN0IGFjcGlfZGV2aWNlICpkZXZpY2UpCiAJCQlm
Yl9tbWlvID0gTlVMTDsKIAkJfQogCi0JCWZvciAoY3VyX3JlcyA9IGh5cGVydl9tbWlvOyBjdXJf
cmVzOyBjdXJfcmVzID0gbmV4dF9yZXMpIHsKLQkJCW5leHRfcmVzID0gY3VyX3Jlcy0+c2libGlu
ZzsKLQkJCWtmcmVlKGN1cl9yZXMpOwotCQl9CisJCXJlcyA9IGh5cGVydl9tbWlvOworCQlsaXN0
X2Zvcl9lYWNoX2VudHJ5X2Zyb20ocmVzLCAmcmVzLT5wYXJlbnQtPmNoaWxkLCBzaWJsaW5nKQor
CQkJa2ZyZWUocmVzKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE1OTYsNyArMTU4Niw4IEBAIGlu
dCB2bWJ1c19hbGxvY2F0ZV9tbWlvKHN0cnVjdCByZXNvdXJjZSAqKm5ldywgc3RydWN0IGh2X2Rl
dmljZSAqZGV2aWNlX29iaiwKIAkJfQogCX0KIAotCWZvciAoaXRlciA9IGh5cGVydl9tbWlvOyBp
dGVyOyBpdGVyID0gaXRlci0+c2libGluZykgeworCWl0ZXIgPSBoeXBlcnZfbW1pbzsKKwlsaXN0
X2Zvcl9lYWNoX2VudHJ5X2Zyb20oaXRlciwgJml0ZXItPnBhcmVudC0+Y2hpbGQsIHNpYmxpbmcp
IHsKIAkJaWYgKChpdGVyLT5zdGFydCA+PSBtYXgpIHx8IChpdGVyLT5lbmQgPD0gbWluKSkKIAkJ
CWNvbnRpbnVlOwogCkBAIC0xNjM5LDcgKzE2MzAsOCBAQCB2b2lkIHZtYnVzX2ZyZWVfbW1pbyhy
ZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBzaXplKQogCXN0cnVjdCByZXNv
dXJjZSAqaXRlcjsKIAogCWRvd24oJmh5cGVydl9tbWlvX2xvY2spOwotCWZvciAoaXRlciA9IGh5
cGVydl9tbWlvOyBpdGVyOyBpdGVyID0gaXRlci0+c2libGluZykgeworCWl0ZXIgPSBoeXBlcnZf
bW1pbzsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20oaXRlciwgJml0ZXItPnBhcmVudC0+Y2hp
bGQsIHNpYmxpbmcpIHsKIAkJaWYgKChpdGVyLT5zdGFydCA+PSBzdGFydCArIHNpemUpIHx8IChp
dGVyLT5lbmQgPD0gc3RhcnQpKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv
aW5wdXQvam95c3RpY2svaWZvcmNlL2lmb3JjZS1tYWluLmMgYi9kcml2ZXJzL2lucHV0L2pveXN0
aWNrL2lmb3JjZS9pZm9yY2UtbWFpbi5jCmluZGV4IGRhZWViNGM3ZTNiMC4uNWMwYmUyN2IzM2Zm
IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2pveXN0aWNrL2lmb3JjZS9pZm9yY2UtbWFpbi5j
CisrKyBiL2RyaXZlcnMvaW5wdXQvam95c3RpY2svaWZvcmNlL2lmb3JjZS1tYWluLmMKQEAgLTMw
NSw4ICszMDUsOCBAQCBpbnQgaWZvcmNlX2luaXRfZGV2aWNlKHN0cnVjdCBpZm9yY2UgKmlmb3Jj
ZSkKIAlpZm9yY2UtPmRldmljZV9tZW1vcnkuZW5kID0gMjAwOwogCWlmb3JjZS0+ZGV2aWNlX21l
bW9yeS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOwogCWlmb3JjZS0+ZGV2aWNlX21lbW9yeS5wYXJl
bnQgPSBOVUxMOwotCWlmb3JjZS0+ZGV2aWNlX21lbW9yeS5jaGlsZCA9IE5VTEw7Ci0JaWZvcmNl
LT5kZXZpY2VfbWVtb3J5LnNpYmxpbmcgPSBOVUxMOworCUlOSVRfTElTVF9IRUFEKCZpZm9yY2Ut
PmRldmljZV9tZW1vcnkuY2hpbGQpOworCUlOSVRfTElTVF9IRUFEKCZpZm9yY2UtPmRldmljZV9t
ZW1vcnkuc2libGluZyk7CiAKIC8qCiAgKiBXYWl0IHVudGlsIGRldmljZSByZWFkeSAtIHVudGls
IGl0IHNlbmRzIGl0cyBmaXJzdCByZXNwb25zZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1t
L25hbWVzcGFjZV9kZXZzLmMgYi9kcml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jCmluZGV4
IDI4YWZkZDY2ODkwNS4uZjUzZDQxMGQ5OTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9u
YW1lc3BhY2VfZGV2cy5jCisrKyBiL2RyaXZlcnMvbnZkaW1tL25hbWVzcGFjZV9kZXZzLmMKQEAg
LTYzNyw3ICs2MzcsNyBAQCBzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IHNjYW5fYWxsb2NhdGUoc3Ry
dWN0IG5kX3JlZ2lvbiAqbmRfcmVnaW9uLAogIHJldHJ5OgogCWZpcnN0ID0gMDsKIAlmb3JfZWFj
aF9kcGFfcmVzb3VyY2UobmRkLCByZXMpIHsKLQkJc3RydWN0IHJlc291cmNlICpuZXh0ID0gcmVz
LT5zaWJsaW5nLCAqbmV3X3JlcyA9IE5VTEw7CisJCXN0cnVjdCByZXNvdXJjZSAqbmV4dCA9IHJl
c291cmNlX3NpYmxpbmcocmVzKSwgKm5ld19yZXMgPSBOVUxMOwogCQlyZXNvdXJjZV9zaXplX3Qg
YWxsb2NhdGUsIGF2YWlsYWJsZSA9IDA7CiAJCWVudW0gYWxsb2NfbG9jIGxvYyA9IEFMTE9DX0VS
UjsKIAkJY29uc3QgY2hhciAqYWN0aW9uOwpAQCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyByZXNv
dXJjZV9zaXplX3Qgc2Nhbl9hbGxvY2F0ZShzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24sCiAJ
ICogYW4gaW5pdGlhbCAicG1lbS1yZXNlcnZlIHBhc3MiLiAgT25seSBkbyBhbiBpbml0aWFsIEJM
SyBhbGxvY2F0aW9uCiAJICogd2hlbiBub25lIG9mIHRoZSBEUEEgc3BhY2UgaXMgcmVzZXJ2ZWQu
CiAJICovCi0JaWYgKChpc19wbWVtIHx8ICFuZGQtPmRwYS5jaGlsZCkgJiYgbiA9PSB0b19hbGxv
Y2F0ZSkKKwlpZiAoKGlzX3BtZW0gfHwgbGlzdF9lbXB0eSgmbmRkLT5kcGEuY2hpbGQpKSAmJiBu
ID09IHRvX2FsbG9jYXRlKQogCQlyZXR1cm4gaW5pdF9kcGFfYWxsb2NhdGlvbihsYWJlbF9pZCwg
bmRfcmVnaW9uLCBuZF9tYXBwaW5nLCBuKTsKIAlyZXR1cm4gbjsKIH0KQEAgLTc3OSw3ICs3Nzks
NyBAQCBzdGF0aWMgaW50IG1lcmdlX2RwYShzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24sCiAg
cmV0cnk6CiAJZm9yX2VhY2hfZHBhX3Jlc291cmNlKG5kZCwgcmVzKSB7CiAJCWludCByYzsKLQkJ
c3RydWN0IHJlc291cmNlICpuZXh0ID0gcmVzLT5zaWJsaW5nOworCQlzdHJ1Y3QgcmVzb3VyY2Ug
Km5leHQgPSByZXNvdXJjZV9zaWJsaW5nKHJlcyk7CiAJCXJlc291cmNlX3NpemVfdCBlbmQgPSBy
ZXMtPnN0YXJ0ICsgcmVzb3VyY2Vfc2l6ZShyZXMpOwogCiAJCWlmICghbmV4dCB8fCBzdHJjbXAo
cmVzLT5uYW1lLCBsYWJlbF9pZC0+aWQpICE9IDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1t
L25kLmggYi9kcml2ZXJzL252ZGltbS9uZC5oCmluZGV4IDMyZTAzNjRiNDhiOS4uZGE3ZGExNWUw
M2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9uZC5oCisrKyBiL2RyaXZlcnMvbnZkaW1t
L25kLmgKQEAgLTEwMiwxMSArMTAyLDEwIEBAIHVuc2lnbmVkIHNpemVvZl9uYW1lc3BhY2VfbGFi
ZWwoc3RydWN0IG52ZGltbV9kcnZkYXRhICpuZGQpOwogCQkodW5zaWduZWQgbG9uZyBsb25nKSAo
cmVzID8gcmVzLT5zdGFydCA6IDApLCAjI2FyZykKIAogI2RlZmluZSBmb3JfZWFjaF9kcGFfcmVz
b3VyY2UobmRkLCByZXMpIFwKLQlmb3IgKHJlcyA9IChuZGQpLT5kcGEuY2hpbGQ7IHJlczsgcmVz
ID0gcmVzLT5zaWJsaW5nKQorCWxpc3RfZm9yX2VhY2hfZW50cnkocmVzLCAmKG5kZCktPmRwYS5j
aGlsZCwgc2libGluZykKIAogI2RlZmluZSBmb3JfZWFjaF9kcGFfcmVzb3VyY2Vfc2FmZShuZGQs
IHJlcywgbmV4dCkgXAotCWZvciAocmVzID0gKG5kZCktPmRwYS5jaGlsZCwgbmV4dCA9IHJlcyA/
IHJlcy0+c2libGluZyA6IE5VTEw7IFwKLQkJCXJlczsgcmVzID0gbmV4dCwgbmV4dCA9IG5leHQg
PyBuZXh0LT5zaWJsaW5nIDogTlVMTCkKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVzLCBu
ZXh0LCAmKG5kZCktPmRwYS5jaGlsZCwgc2libGluZykKIAogc3RydWN0IG5kX3BlcmNwdV9sYW5l
IHsKIAlpbnQgY291bnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL2FkZHJlc3MuYyBiL2RyaXZl
cnMvb2YvYWRkcmVzcy5jCmluZGV4IDUzMzQ5OTEyYWM3NS4uZTJlMjU3MTlhYjUyIDEwMDY0NAot
LS0gYS9kcml2ZXJzL29mL2FkZHJlc3MuYworKysgYi9kcml2ZXJzL29mL2FkZHJlc3MuYwpAQCAt
MzMwLDcgKzMzMCw5IEBAIGludCBvZl9wY2lfcmFuZ2VfdG9fcmVzb3VyY2Uoc3RydWN0IG9mX3Bj
aV9yYW5nZSAqcmFuZ2UsCiB7CiAJaW50IGVycjsKIAlyZXMtPmZsYWdzID0gcmFuZ2UtPmZsYWdz
OwotCXJlcy0+cGFyZW50ID0gcmVzLT5jaGlsZCA9IHJlcy0+c2libGluZyA9IE5VTEw7CisJcmVz
LT5wYXJlbnQgPSBOVUxMOworCUlOSVRfTElTVF9IRUFEKCZyZXMtPmNoaWxkKTsKKwlJTklUX0xJ
U1RfSEVBRCgmcmVzLT5zaWJsaW5nKTsKIAlyZXMtPm5hbWUgPSBucC0+ZnVsbF9uYW1lOwogCiAJ
aWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bh
cmlzYy9sYmFfcGNpLmMgYi9kcml2ZXJzL3BhcmlzYy9sYmFfcGNpLmMKaW5kZXggNjliZDk4NDIx
ZWIxLi43NDgyYmRmZDE5NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL2xiYV9wY2kuYwor
KysgYi9kcml2ZXJzL3BhcmlzYy9sYmFfcGNpLmMKQEAgLTE3MCw4ICsxNzAsOCBAQCBsYmFfZHVt
cF9yZXMoc3RydWN0IHJlc291cmNlICpyLCBpbnQgZCkKIAlmb3IgKGkgPSBkOyBpIDsgLS1pKSBw
cmludGsoIiAiKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiJXAgWyVseCwlbHhdLyVseFxuIiwgciwK
IAkJKGxvbmcpci0+c3RhcnQsIChsb25nKXItPmVuZCwgci0+ZmxhZ3MpOwotCWxiYV9kdW1wX3Jl
cyhyLT5jaGlsZCwgZCsyKTsKLQlsYmFfZHVtcF9yZXMoci0+c2libGluZywgZCk7CisJbGJhX2R1
bXBfcmVzKHJlc291cmNlX2ZpcnN0X2NoaWxkKCZyLT5jaGlsZCksIGQrMik7CisJbGJhX2R1bXBf
cmVzKHJlc291cmNlX3NpYmxpbmcociksIGQpOwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv
cGNpL2NvbnRyb2xsZXIvdm1kLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jCmluZGV4
IDk0MmI2NGZjN2YxZi4uZTNhY2UyMDM0NWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250
cm9sbGVyL3ZtZC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMKQEAgLTU0Miwx
NCArNTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyB2bWRfb3BzID0gewogCiBzdGF0aWMg
dm9pZCB2bWRfYXR0YWNoX3Jlc291cmNlcyhzdHJ1Y3Qgdm1kX2RldiAqdm1kKQogewotCXZtZC0+
ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hpbGQgPSAmdm1kLT5yZXNvdXJjZXNbMV07Ci0J
dm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCA9ICZ2bWQtPnJlc291cmNlc1sy
XTsKKwlsaXN0X2FkZCgmdm1kLT5yZXNvdXJjZXNbMV0uc2libGluZywgJnZtZC0+ZGV2LT5yZXNv
dXJjZVtWTURfTUVNQkFSMV0uY2hpbGQpOworCWxpc3RfYWRkKCZ2bWQtPnJlc291cmNlc1syXS5z
aWJsaW5nLCAmdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHZtZF9kZXRhY2hfcmVzb3VyY2VzKHN0cnVjdCB2bWRfZGV2ICp2bWQpCiB7Ci0J
dm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIxXS5jaGlsZCA9IE5VTEw7Ci0Jdm1kLT5kZXYt
PnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCA9IE5VTEw7CisJSU5JVF9MSVNUX0hFQUQoJnZt
ZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hpbGQpOworCUlOSVRfTElTVF9IRUFEKCZ2
bWQtPmRldi0+cmVzb3VyY2VbVk1EX01FTUJBUjJdLmNoaWxkKTsKIH0KIAogLyoKZGlmZiAtLWdp
dCBhL2RyaXZlcnMvcGNpL3Byb2JlLmMgYi9kcml2ZXJzL3BjaS9wcm9iZS5jCmluZGV4IGFjODc2
ZTMyZGU0Yi4uOTYyNGRkMWRmZDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wcm9iZS5jCisr
KyBiL2RyaXZlcnMvcGNpL3Byb2JlLmMKQEAgLTU5LDYgKzU5LDggQEAgc3RhdGljIHN0cnVjdCBy
ZXNvdXJjZSAqZ2V0X3BjaV9kb21haW5fYnVzbl9yZXMoaW50IGRvbWFpbl9ucikKIAlyLT5yZXMu
c3RhcnQgPSAwOwogCXItPnJlcy5lbmQgPSAweGZmOwogCXItPnJlcy5mbGFncyA9IElPUkVTT1VS
Q0VfQlVTIHwgSU9SRVNPVVJDRV9QQ0lfRklYRUQ7CisJSU5JVF9MSVNUX0hFQUQoJnItPnJlcy5j
aGlsZCk7CisJSU5JVF9MSVNUX0hFQUQoJnItPnJlcy5zaWJsaW5nKTsKIAogCWxpc3RfYWRkX3Rh
aWwoJnItPmxpc3QsICZwY2lfZG9tYWluX2J1c25fcmVzX2xpc3QpOwogCmRpZmYgLS1naXQgYS9k
cml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCmluZGV4IDc5
YjE4MjRlODNiNC4uOGU2ODVhZjg5MzhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9zZXR1cC1i
dXMuYworKysgYi9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYwpAQCAtMjEwNyw3ICsyMTA3LDcgQEAg
aW50IHBjaV9yZWFzc2lnbl9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpicmlkZ2Us
IHVuc2lnbmVkIGxvbmcgdHlwZSkKIAkJCQljb250aW51ZTsKIAogCQkJLyogSWdub3JlIEJBUnMg
d2hpY2ggYXJlIHN0aWxsIGluIHVzZSAqLwotCQkJaWYgKHJlcy0+Y2hpbGQpCisJCQlpZiAoIWxp
c3RfZW1wdHkoJnJlcy0+Y2hpbGQpKQogCQkJCWNvbnRpbnVlOwogCiAJCQlyZXQgPSBhZGRfdG9f
bGlzdCgmc2F2ZWQsIGJyaWRnZSwgcmVzLCAwLCAwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu
dXgvaW9wb3J0LmggYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCmluZGV4IGRmZGNkMGJmZTU0ZS4u
Yjc0NTZhZTg4OWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCisrKyBiL2lu
Y2x1ZGUvbGludXgvaW9wb3J0LmgKQEAgLTEyLDYgKzEyLDcgQEAKICNpZm5kZWYgX19BU1NFTUJM
WV9fCiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5o
PgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KIC8qCiAgKiBSZXNvdXJjZXMgYXJlIHRyZWUtbGlr
ZSwgYWxsb3dpbmcKICAqIG5lc3RpbmcgZXRjLi4KQEAgLTIyLDcgKzIzLDggQEAgc3RydWN0IHJl
c291cmNlIHsKIAljb25zdCBjaGFyICpuYW1lOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5z
aWduZWQgbG9uZyBkZXNjOwotCXN0cnVjdCByZXNvdXJjZSAqcGFyZW50LCAqc2libGluZywgKmNo
aWxkOworCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGQsIHNpYmxpbmc7CisJc3RydWN0IHJlc291cmNl
ICpwYXJlbnQ7CiB9OwogCiAvKgpAQCAtMjE2LDcgKzIxOCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCByZXNvdXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1Y3QgcmVzb3VyY2Ug
KnIyKQogCXJldHVybiByMS0+c3RhcnQgPD0gcjItPnN0YXJ0ICYmIHIxLT5lbmQgPj0gcjItPmVu
ZDsKIH0KIAotCiAvKiBDb252ZW5pZW5jZSBzaG9ydGhhbmQgd2l0aCBhbGxvY2F0aW9uICovCiAj
ZGVmaW5lIHJlcXVlc3RfcmVnaW9uKHN0YXJ0LG4sbmFtZSkJCV9fcmVxdWVzdF9yZWdpb24oJmlv
cG9ydF9yZXNvdXJjZSwgKHN0YXJ0KSwgKG4pLCAobmFtZSksIDApCiAjZGVmaW5lIHJlcXVlc3Rf
bXV4ZWRfcmVnaW9uKHN0YXJ0LG4sbmFtZSkJX19yZXF1ZXN0X3JlZ2lvbigmaW9wb3J0X3Jlc291
cmNlLCAoc3RhcnQpLCAobiksIChuYW1lKSwgSU9SRVNPVVJDRV9NVVhFRCkKQEAgLTI4Nyw2ICsy
ODgsMTggQEAgc3RhdGljIGlubGluZSBib29sIHJlc291cmNlX292ZXJsYXBzKHN0cnVjdCByZXNv
dXJjZSAqcjEsIHN0cnVjdCByZXNvdXJjZSAqcjIpCiAgICAgICAgcmV0dXJuIChyMS0+c3RhcnQg
PD0gcjItPmVuZCAmJiByMS0+ZW5kID49IHIyLT5zdGFydCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
c3RydWN0IHJlc291cmNlICpyZXNvdXJjZV9zaWJsaW5nKHN0cnVjdCByZXNvdXJjZSAqcmVzKQor
eworCWlmIChyZXMtPnBhcmVudCAmJiAhbGlzdF9pc19sYXN0KCZyZXMtPnNpYmxpbmcsICZyZXMt
PnBhcmVudC0+Y2hpbGQpKQorCQlyZXR1cm4gbGlzdF9uZXh0X2VudHJ5KHJlcywgc2libGluZyk7
CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlc291cmNlICpyZXNv
dXJjZV9maXJzdF9jaGlsZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoreworCXJldHVybiBsaXN0
X2ZpcnN0X2VudHJ5X29yX251bGwoaGVhZCwgc3RydWN0IHJlc291cmNlLCBzaWJsaW5nKTsKK30K
KwogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYJLyogX0xJTlVYX0lPUE9SVF9I
ICovCmRpZmYgLS1naXQgYS9rZXJuZWwvcmVzb3VyY2UuYyBiL2tlcm5lbC9yZXNvdXJjZS5jCmlu
ZGV4IDgxY2NkMTljMWQ5Zi4uYzk2ZTU4ZDNkMmY4IDEwMDY0NAotLS0gYS9rZXJuZWwvcmVzb3Vy
Y2UuYworKysgYi9rZXJuZWwvcmVzb3VyY2UuYwpAQCAtMzEsNiArMzEsOCBAQCBzdHJ1Y3QgcmVz
b3VyY2UgaW9wb3J0X3Jlc291cmNlID0gewogCS5zdGFydAk9IDAsCiAJLmVuZAk9IElPX1NQQUNF
X0xJTUlULAogCS5mbGFncwk9IElPUkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcgPSBMSVNUX0hFQURf
SU5JVChpb3BvcnRfcmVzb3VyY2Uuc2libGluZyksCisJLmNoaWxkICA9IExJU1RfSEVBRF9JTklU
KGlvcG9ydF9yZXNvdXJjZS5jaGlsZCksCiB9OwogRVhQT1JUX1NZTUJPTChpb3BvcnRfcmVzb3Vy
Y2UpOwogCkBAIC0zOSw2ICs0MSw4IEBAIHN0cnVjdCByZXNvdXJjZSBpb21lbV9yZXNvdXJjZSA9
IHsKIAkuc3RhcnQJPSAwLAogCS5lbmQJPSAtMSwKIAkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwK
Kwkuc2libGluZyA9IExJU1RfSEVBRF9JTklUKGlvbWVtX3Jlc291cmNlLnNpYmxpbmcpLAorCS5j
aGlsZCAgPSBMSVNUX0hFQURfSU5JVChpb21lbV9yZXNvdXJjZS5jaGlsZCksCiB9OwogRVhQT1JU
X1NZTUJPTChpb21lbV9yZXNvdXJjZSk7CiAKQEAgLTU3LDIwICs2MSwyMCBAQCBzdGF0aWMgREVG
SU5FX1JXTE9DSyhyZXNvdXJjZV9sb2NrKTsKICAqIGJ5IGJvb3QgbWVtIGFmdGVyIHRoZSBzeXN0
ZW0gaXMgdXAuIFNvIGZvciByZXVzaW5nIHRoZSByZXNvdXJjZSBlbnRyeQogICogd2UgbmVlZCB0
byByZW1lbWJlciB0aGUgcmVzb3VyY2UuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKmJv
b3RtZW1fcmVzb3VyY2VfZnJlZTsKK3N0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkIGJvb3RtZW1fcmVz
b3VyY2VfZnJlZSA9IExJU1RfSEVBRF9JTklUKGJvb3RtZW1fcmVzb3VyY2VfZnJlZSk7CiBzdGF0
aWMgREVGSU5FX1NQSU5MT0NLKGJvb3RtZW1fcmVzb3VyY2VfbG9jayk7CiAKIHN0YXRpYyBzdHJ1
Y3QgcmVzb3VyY2UgKm5leHRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpwLCBib29sIHNpYmxp
bmdfb25seSkKIHsKIAkvKiBDYWxsZXIgd2FudHMgdG8gdHJhdmVyc2UgdGhyb3VnaCBzaWJsaW5n
cyBvbmx5ICovCiAJaWYgKHNpYmxpbmdfb25seSkKLQkJcmV0dXJuIHAtPnNpYmxpbmc7CisJCXJl
dHVybiByZXNvdXJjZV9zaWJsaW5nKHApOwogCi0JaWYgKHAtPmNoaWxkKQotCQlyZXR1cm4gcC0+
Y2hpbGQ7Ci0Jd2hpbGUgKCFwLT5zaWJsaW5nICYmIHAtPnBhcmVudCkKKwlpZiAoIWxpc3RfZW1w
dHkoJnAtPmNoaWxkKSkKKwkJcmV0dXJuIHJlc291cmNlX2ZpcnN0X2NoaWxkKCZwLT5jaGlsZCk7
CisJd2hpbGUgKCFyZXNvdXJjZV9zaWJsaW5nKHApICYmIHAtPnBhcmVudCkKIAkJcCA9IHAtPnBh
cmVudDsKLQlyZXR1cm4gcC0+c2libGluZzsKKwlyZXR1cm4gcmVzb3VyY2Vfc2libGluZyhwKTsK
IH0KIAogc3RhdGljIHZvaWQgKnJfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxv
ZmZfdCAqcG9zKQpAQCAtOTAsNyArOTQsNyBAQCBzdGF0aWMgdm9pZCAqcl9zdGFydChzdHJ1Y3Qg
c2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQogCXN0cnVjdCByZXNvdXJjZSAqcCA9IFBERV9EQVRB
KGZpbGVfaW5vZGUobS0+ZmlsZSkpOwogCWxvZmZfdCBsID0gMDsKIAlyZWFkX2xvY2soJnJlc291
cmNlX2xvY2spOwotCWZvciAocCA9IHAtPmNoaWxkOyBwICYmIGwgPCAqcG9zOyBwID0gcl9uZXh0
KG0sIHAsICZsKSkKKwlmb3IgKHAgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcC0+Y2hpbGQpOyBw
ICYmIGwgPCAqcG9zOyBwID0gcl9uZXh0KG0sIHAsICZsKSkKIAkJOwogCXJldHVybiBwOwogfQpA
QCAtMTUzLDggKzE1Nyw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcmVzb3VyY2Uoc3RydWN0IHJlc291
cmNlICpyZXMpCiAKIAlpZiAoIVBhZ2VTbGFiKHZpcnRfdG9faGVhZF9wYWdlKHJlcykpKSB7CiAJ
CXNwaW5fbG9jaygmYm9vdG1lbV9yZXNvdXJjZV9sb2NrKTsKLQkJcmVzLT5zaWJsaW5nID0gYm9v
dG1lbV9yZXNvdXJjZV9mcmVlOwotCQlib290bWVtX3Jlc291cmNlX2ZyZWUgPSByZXM7CisJCWxp
c3RfYWRkKCZyZXMtPnNpYmxpbmcsICZib290bWVtX3Jlc291cmNlX2ZyZWUpOwogCQlzcGluX3Vu
bG9jaygmYm9vdG1lbV9yZXNvdXJjZV9sb2NrKTsKIAl9IGVsc2UgewogCQlrZnJlZShyZXMpOwpA
QCAtMTY2LDEwICsxNjksOSBAQCBzdGF0aWMgc3RydWN0IHJlc291cmNlICphbGxvY19yZXNvdXJj
ZShnZnBfdCBmbGFncykKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IE5VTEw7CiAKIAlzcGluX2xv
Y2soJmJvb3RtZW1fcmVzb3VyY2VfbG9jayk7Ci0JaWYgKGJvb3RtZW1fcmVzb3VyY2VfZnJlZSkg
ewotCQlyZXMgPSBib290bWVtX3Jlc291cmNlX2ZyZWU7Ci0JCWJvb3RtZW1fcmVzb3VyY2VfZnJl
ZSA9IHJlcy0+c2libGluZzsKLQl9CisJcmVzID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJmJvb3Rt
ZW1fcmVzb3VyY2VfZnJlZSk7CisJaWYgKHJlcykKKwkJbGlzdF9kZWwoJnJlcy0+c2libGluZyk7
CiAJc3Bpbl91bmxvY2soJmJvb3RtZW1fcmVzb3VyY2VfbG9jayk7CiAKIAlpZiAocmVzKQpAQCAt
MTc3LDYgKzE3OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKmFsbG9jX3Jlc291cmNlKGdm
cF90IGZsYWdzKQogCWVsc2UKIAkJcmVzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJlc291cmNl
KSwgZmxhZ3MpOwogCisJSU5JVF9MSVNUX0hFQUQoJnJlcy0+Y2hpbGQpOworCUlOSVRfTElTVF9I
RUFEKCZyZXMtPnNpYmxpbmcpOwogCXJldHVybiByZXM7CiB9CiAKQEAgLTE4NSw3ICsxODksNyBA
QCBzdGF0aWMgc3RydWN0IHJlc291cmNlICogX19yZXF1ZXN0X3Jlc291cmNlKHN0cnVjdCByZXNv
dXJjZSAqcm9vdCwgc3RydWN0IHJlc291cgogewogCXJlc291cmNlX3NpemVfdCBzdGFydCA9IG5l
dy0+c3RhcnQ7CiAJcmVzb3VyY2Vfc2l6ZV90IGVuZCA9IG5ldy0+ZW5kOwotCXN0cnVjdCByZXNv
dXJjZSAqdG1wLCAqKnA7CisJc3RydWN0IHJlc291cmNlICp0bXA7CiAKIAlpZiAoZW5kIDwgc3Rh
cnQpCiAJCXJldHVybiByb290OwpAQCAtMTkzLDY0ICsxOTcsNjIgQEAgc3RhdGljIHN0cnVjdCBy
ZXNvdXJjZSAqIF9fcmVxdWVzdF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHN0cnVj
dCByZXNvdXIKIAkJcmV0dXJuIHJvb3Q7CiAJaWYgKGVuZCA+IHJvb3QtPmVuZCkKIAkJcmV0dXJu
IHJvb3Q7Ci0JcCA9ICZyb290LT5jaGlsZDsKLQlmb3IgKDs7KSB7Ci0JCXRtcCA9ICpwOwotCQlp
ZiAoIXRtcCB8fCB0bXAtPnN0YXJ0ID4gZW5kKSB7Ci0JCQluZXctPnNpYmxpbmcgPSB0bXA7Ci0J
CQkqcCA9IG5ldzsKKworCWlmIChsaXN0X2VtcHR5KCZyb290LT5jaGlsZCkpIHsKKwkJbGlzdF9h
ZGQoJm5ldy0+c2libGluZywgJnJvb3QtPmNoaWxkKTsKKwkJbmV3LT5wYXJlbnQgPSByb290Owor
CQlJTklUX0xJU1RfSEVBRCgmbmV3LT5jaGlsZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWxp
c3RfZm9yX2VhY2hfZW50cnkodG1wLCAmcm9vdC0+Y2hpbGQsIHNpYmxpbmcpIHsKKwkJaWYgKHRt
cC0+c3RhcnQgPiBlbmQpIHsKKwkJCWxpc3RfYWRkKCZuZXctPnNpYmxpbmcsIHRtcC0+c2libGlu
Zy5wcmV2KTsKIAkJCW5ldy0+cGFyZW50ID0gcm9vdDsKKwkJCUlOSVRfTElTVF9IRUFEKCZuZXct
PmNoaWxkKTsKIAkJCXJldHVybiBOVUxMOwogCQl9Ci0JCXAgPSAmdG1wLT5zaWJsaW5nOwogCQlp
ZiAodG1wLT5lbmQgPCBzdGFydCkKIAkJCWNvbnRpbnVlOwogCQlyZXR1cm4gdG1wOwogCX0KKwor
CWxpc3RfYWRkX3RhaWwoJm5ldy0+c2libGluZywgJnJvb3QtPmNoaWxkKTsKKwluZXctPnBhcmVu
dCA9IHJvb3Q7CisJSU5JVF9MSVNUX0hFQUQoJm5ldy0+Y2hpbGQpOworCXJldHVybiBOVUxMOwog
fQogCiBzdGF0aWMgaW50IF9fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKm9sZCwg
Ym9vbCByZWxlYXNlX2NoaWxkKQogewotCXN0cnVjdCByZXNvdXJjZSAqdG1wLCAqKnAsICpjaGQ7
CisJc3RydWN0IHJlc291cmNlICp0bXAsICpuZXh0LCAqY2hkOwogCi0JcCA9ICZvbGQtPnBhcmVu
dC0+Y2hpbGQ7Ci0JZm9yICg7OykgewotCQl0bXAgPSAqcDsKLQkJaWYgKCF0bXApCi0JCQlicmVh
azsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodG1wLCBuZXh0LCAmb2xkLT5wYXJlbnQtPmNo
aWxkLCBzaWJsaW5nKSB7CiAJCWlmICh0bXAgPT0gb2xkKSB7Ci0JCQlpZiAocmVsZWFzZV9jaGls
ZCB8fCAhKHRtcC0+Y2hpbGQpKSB7Ci0JCQkJKnAgPSB0bXAtPnNpYmxpbmc7CisJCQlpZiAocmVs
ZWFzZV9jaGlsZCB8fCBsaXN0X2VtcHR5KCZ0bXAtPmNoaWxkKSkgeworCQkJCWxpc3RfZGVsKCZ0
bXAtPnNpYmxpbmcpOwogCQkJfSBlbHNlIHsKLQkJCQlmb3IgKGNoZCA9IHRtcC0+Y2hpbGQ7OyBj
aGQgPSBjaGQtPnNpYmxpbmcpIHsKKwkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoZCwgJnRtcC0+
Y2hpbGQsIHNpYmxpbmcpCiAJCQkJCWNoZC0+cGFyZW50ID0gdG1wLT5wYXJlbnQ7Ci0JCQkJCWlm
ICghKGNoZC0+c2libGluZykpCi0JCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJKnAgPSB0bXAtPmNo
aWxkOwotCQkJCWNoZC0+c2libGluZyA9IHRtcC0+c2libGluZzsKKwkJCQlsaXN0X3NwbGljZSgm
dG1wLT5jaGlsZCwgdG1wLT5zaWJsaW5nLnByZXYpOworCQkJCWxpc3RfZGVsKCZ0bXAtPnNpYmxp
bmcpOwogCQkJfQorCiAJCQlvbGQtPnBhcmVudCA9IE5VTEw7CiAJCQlyZXR1cm4gMDsKIAkJfQot
CQlwID0gJnRtcC0+c2libGluZzsKIAl9CiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKIHN0YXRpYyB2
b2lkIF9fcmVsZWFzZV9jaGlsZF9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpyKQogewotCXN0
cnVjdCByZXNvdXJjZSAqdG1wLCAqcDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnRtcCwgKm5leHQ7CiAJ
cmVzb3VyY2Vfc2l6ZV90IHNpemU7CiAKLQlwID0gci0+Y2hpbGQ7Ci0Jci0+Y2hpbGQgPSBOVUxM
OwotCXdoaWxlIChwKSB7Ci0JCXRtcCA9IHA7Ci0JCXAgPSBwLT5zaWJsaW5nOwotCisJbGlzdF9m
b3JfZWFjaF9lbnRyeV9zYWZlKHRtcCwgbmV4dCwgJnItPmNoaWxkLCBzaWJsaW5nKSB7CiAJCXRt
cC0+cGFyZW50ID0gTlVMTDsKLQkJdG1wLT5zaWJsaW5nID0gTlVMTDsKKwkJbGlzdF9kZWxfaW5p
dCgmdG1wLT5zaWJsaW5nKTsKIAkJX19yZWxlYXNlX2NoaWxkX3Jlc291cmNlcyh0bXApOwogCiAJ
CXByaW50ayhLRVJOX0RFQlVHICJyZWxlYXNlIGNoaWxkIHJlc291cmNlICVwUlxuIiwgdG1wKTsK
QEAgLTI1OSw2ICsyNjEsOCBAQCBzdGF0aWMgdm9pZCBfX3JlbGVhc2VfY2hpbGRfcmVzb3VyY2Vz
KHN0cnVjdCByZXNvdXJjZSAqcikKIAkJdG1wLT5zdGFydCA9IDA7CiAJCXRtcC0+ZW5kID0gc2l6
ZSAtIDE7CiAJfQorCisJSU5JVF9MSVNUX0hFQUQoJnRtcC0+Y2hpbGQpOwogfQogCiB2b2lkIHJl
bGVhc2VfY2hpbGRfcmVzb3VyY2VzKHN0cnVjdCByZXNvdXJjZSAqcikKQEAgLTM0Myw3ICszNDcs
OCBAQCBzdGF0aWMgaW50IGZpbmRfbmV4dF9pb21lbV9yZXMoc3RydWN0IHJlc291cmNlICpyZXMs
IHVuc2lnbmVkIGxvbmcgZGVzYywKIAogCXJlYWRfbG9jaygmcmVzb3VyY2VfbG9jayk7CiAKLQlm
b3IgKHAgPSBpb21lbV9yZXNvdXJjZS5jaGlsZDsgcDsgcCA9IG5leHRfcmVzb3VyY2UocCwgc2li
bGluZ19vbmx5KSkgeworCWZvciAocCA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZpb21lbV9yZXNv
dXJjZS5jaGlsZCk7IHA7CisJCQlwID0gbmV4dF9yZXNvdXJjZShwLCBzaWJsaW5nX29ubHkpKSB7
CiAJCWlmICgocC0+ZmxhZ3MgJiByZXMtPmZsYWdzKSAhPSByZXMtPmZsYWdzKQogCQkJY29udGlu
dWU7CiAJCWlmICgoZGVzYyAhPSBJT1JFU19ERVNDX05PTkUpICYmIChkZXNjICE9IHAtPmRlc2Mp
KQpAQCAtNTMyLDcgKzUzNyw3IEBAIGludCByZWdpb25faW50ZXJzZWN0cyhyZXNvdXJjZV9zaXpl
X3Qgc3RhcnQsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBsb25nIGZsYWdzLAogCXN0cnVjdCByZXNv
dXJjZSAqcDsKIAogCXJlYWRfbG9jaygmcmVzb3VyY2VfbG9jayk7Ci0JZm9yIChwID0gaW9tZW1f
cmVzb3VyY2UuY2hpbGQ7IHAgOyBwID0gcC0+c2libGluZykgeworCWxpc3RfZm9yX2VhY2hfZW50
cnkocCwgJmlvbWVtX3Jlc291cmNlLmNoaWxkLCBzaWJsaW5nKSB7CiAJCWJvb2wgaXNfdHlwZSA9
ICgoKHAtPmZsYWdzICYgZmxhZ3MpID09IGZsYWdzKSAmJgogCQkJCSgoZGVzYyA9PSBJT1JFU19E
RVNDX05PTkUpIHx8CiAJCQkJIChkZXNjID09IHAtPmRlc2MpKSk7CkBAIC01ODYsNyArNTkxLDcg
QEAgc3RhdGljIGludCBfX2ZpbmRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1
Y3QgcmVzb3VyY2UgKm9sZCwKIAkJCSByZXNvdXJjZV9zaXplX3QgIHNpemUsCiAJCQkgc3RydWN0
IHJlc291cmNlX2NvbnN0cmFpbnQgKmNvbnN0cmFpbnQpCiB7Ci0Jc3RydWN0IHJlc291cmNlICp0
aGlzID0gcm9vdC0+Y2hpbGQ7CisJc3RydWN0IHJlc291cmNlICp0aGlzID0gcmVzb3VyY2VfZmly
c3RfY2hpbGQoJnJvb3QtPmNoaWxkKTsKIAlzdHJ1Y3QgcmVzb3VyY2UgdG1wID0gKm5ldywgYXZh
aWwsIGFsbG9jOwogCiAJdG1wLnN0YXJ0ID0gcm9vdC0+c3RhcnQ7CkBAIC01OTYsNyArNjAxLDcg
QEAgc3RhdGljIGludCBfX2ZpbmRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1
Y3QgcmVzb3VyY2UgKm9sZCwKIAkgKi8KIAlpZiAodGhpcyAmJiB0aGlzLT5zdGFydCA9PSByb290
LT5zdGFydCkgewogCQl0bXAuc3RhcnQgPSAodGhpcyA9PSBvbGQpID8gb2xkLT5zdGFydCA6IHRo
aXMtPmVuZCArIDE7Ci0JCXRoaXMgPSB0aGlzLT5zaWJsaW5nOworCQl0aGlzID0gcmVzb3VyY2Vf
c2libGluZyh0aGlzKTsKIAl9CiAJZm9yKDs7KSB7CiAJCWlmICh0aGlzKQpAQCAtNjMyLDcgKzYz
Nyw3IEBAIG5leHQ6CQlpZiAoIXRoaXMgfHwgdGhpcy0+ZW5kID09IHJvb3QtPmVuZCkKIAogCQlp
ZiAodGhpcyAhPSBvbGQpCiAJCQl0bXAuc3RhcnQgPSB0aGlzLT5lbmQgKyAxOwotCQl0aGlzID0g
dGhpcy0+c2libGluZzsKKwkJdGhpcyA9IHJlc291cmNlX3NpYmxpbmcodGhpcyk7CiAJfQogCXJl
dHVybiAtRUJVU1k7CiB9CkBAIC02NzYsNyArNjgxLDcgQEAgc3RhdGljIGludCByZWFsbG9jYXRl
X3Jlc291cmNlKHN0cnVjdCByZXNvdXJjZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpvbGQsCiAJ
CWdvdG8gb3V0OwogCX0KIAotCWlmIChvbGQtPmNoaWxkKSB7CisJaWYgKCFsaXN0X2VtcHR5KCZv
bGQtPmNoaWxkKSkgewogCQllcnIgPSAtRUJVU1k7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTc1Nyw3
ICs3NjIsNyBAQCBzdHJ1Y3QgcmVzb3VyY2UgKmxvb2t1cF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3Vy
Y2UgKnJvb3QsIHJlc291cmNlX3NpemVfdCBzdGFydCkKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsK
IAogCXJlYWRfbG9jaygmcmVzb3VyY2VfbG9jayk7Ci0JZm9yIChyZXMgPSByb290LT5jaGlsZDsg
cmVzOyByZXMgPSByZXMtPnNpYmxpbmcpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcywgJnJv
b3QtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlmIChyZXMtPnN0YXJ0ID09IHN0YXJ0KQogCQkJYnJl
YWs7CiAJfQpAQCAtNzkwLDMyICs3OTUsMjcgQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqIF9f
aW5zZXJ0X3Jlc291cmNlKHN0cnVjdCByZXNvdXJjZSAqcGFyZW50LCBzdHJ1Y3QgcmVzb3UKIAkJ
CWJyZWFrOwogCX0KIAotCWZvciAobmV4dCA9IGZpcnN0OyA7IG5leHQgPSBuZXh0LT5zaWJsaW5n
KSB7CisJZm9yIChuZXh0ID0gZmlyc3Q7IDsgbmV4dCA9IHJlc291cmNlX3NpYmxpbmcobmV4dCkp
IHsKIAkJLyogUGFydGlhbCBvdmVybGFwPyBCYWQsIGFuZCB1bmZpeGFibGUgKi8KIAkJaWYgKG5l
eHQtPnN0YXJ0IDwgbmV3LT5zdGFydCB8fCBuZXh0LT5lbmQgPiBuZXctPmVuZCkKIAkJCXJldHVy
biBuZXh0OwotCQlpZiAoIW5leHQtPnNpYmxpbmcpCisJCWlmICghcmVzb3VyY2Vfc2libGluZyhu
ZXh0KSkKIAkJCWJyZWFrOwotCQlpZiAobmV4dC0+c2libGluZy0+c3RhcnQgPiBuZXctPmVuZCkK
KwkJaWYgKHJlc291cmNlX3NpYmxpbmcobmV4dCktPnN0YXJ0ID4gbmV3LT5lbmQpCiAJCQlicmVh
azsKIAl9Ci0KIAluZXctPnBhcmVudCA9IHBhcmVudDsKLQluZXctPnNpYmxpbmcgPSBuZXh0LT5z
aWJsaW5nOwotCW5ldy0+Y2hpbGQgPSBmaXJzdDsKKwlsaXN0X2FkZCgmbmV3LT5zaWJsaW5nLCAm
bmV4dC0+c2libGluZyk7CisJSU5JVF9MSVNUX0hFQUQoJm5ldy0+Y2hpbGQpOwogCi0JbmV4dC0+
c2libGluZyA9IE5VTEw7Ci0JZm9yIChuZXh0ID0gZmlyc3Q7IG5leHQ7IG5leHQgPSBuZXh0LT5z
aWJsaW5nKQorCS8qCisJICogRnJvbSBmaXJzdCB0byBuZXh0LCB0aGV5IGFsbCBmYWxsIGludG8g
bmV3J3MgcmVnaW9uLCBzbyBjaGFuZ2UgdGhlbQorCSAqIGFzIG5ldydzIGNoaWxkcmVuLgorCSAq
LworCWxpc3RfY3V0X3Bvc2l0aW9uKCZuZXctPmNoaWxkLCBmaXJzdC0+c2libGluZy5wcmV2LCAm
bmV4dC0+c2libGluZyk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShuZXh0LCAmbmV3LT5jaGlsZCwg
c2libGluZykKIAkJbmV4dC0+cGFyZW50ID0gbmV3OwogCi0JaWYgKHBhcmVudC0+Y2hpbGQgPT0g
Zmlyc3QpIHsKLQkJcGFyZW50LT5jaGlsZCA9IG5ldzsKLQl9IGVsc2UgewotCQluZXh0ID0gcGFy
ZW50LT5jaGlsZDsKLQkJd2hpbGUgKG5leHQtPnNpYmxpbmcgIT0gZmlyc3QpCi0JCQluZXh0ID0g
bmV4dC0+c2libGluZzsKLQkJbmV4dC0+c2libGluZyA9IG5ldzsKLQl9CiAJcmV0dXJuIE5VTEw7
CiB9CiAKQEAgLTkzNywxOSArOTM3LDE3IEBAIHN0YXRpYyBpbnQgX19hZGp1c3RfcmVzb3VyY2Uo
c3RydWN0IHJlc291cmNlICpyZXMsIHJlc291cmNlX3NpemVfdCBzdGFydCwKIAlpZiAoKHN0YXJ0
IDwgcGFyZW50LT5zdGFydCkgfHwgKGVuZCA+IHBhcmVudC0+ZW5kKSkKIAkJZ290byBvdXQ7CiAK
LQlpZiAocmVzLT5zaWJsaW5nICYmIChyZXMtPnNpYmxpbmctPnN0YXJ0IDw9IGVuZCkpCisJaWYg
KHJlc291cmNlX3NpYmxpbmcocmVzKSAmJiAocmVzb3VyY2Vfc2libGluZyhyZXMpLT5zdGFydCA8
PSBlbmQpKQogCQlnb3RvIG91dDsKIAotCXRtcCA9IHBhcmVudC0+Y2hpbGQ7Ci0JaWYgKHRtcCAh
PSByZXMpIHsKLQkJd2hpbGUgKHRtcC0+c2libGluZyAhPSByZXMpCi0JCQl0bXAgPSB0bXAtPnNp
Ymxpbmc7CisJaWYgKHJlcy0+c2libGluZy5wcmV2ICE9ICZwYXJlbnQtPmNoaWxkKSB7CisJCXRt
cCA9IGxpc3RfcHJldl9lbnRyeShyZXMsIHNpYmxpbmcpOwogCQlpZiAoc3RhcnQgPD0gdG1wLT5l
bmQpCiAJCQlnb3RvIG91dDsKIAl9CiAKIHNraXA6Ci0JZm9yICh0bXAgPSByZXMtPmNoaWxkOyB0
bXA7IHRtcCA9IHRtcC0+c2libGluZykKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcCwgJnJlcy0+
Y2hpbGQsIHNpYmxpbmcpCiAJCWlmICgodG1wLT5zdGFydCA8IHN0YXJ0KSB8fCAodG1wLT5lbmQg
PiBlbmQpKQogCQkJZ290byBvdXQ7CiAKQEAgLTk5NiwyNyArOTk0LDMwIEBAIEVYUE9SVF9TWU1C
T0woYWRqdXN0X3Jlc291cmNlKTsKICAqLwogaW50IHJlcGFyZW50X3Jlc291cmNlcyhzdHJ1Y3Qg
cmVzb3VyY2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNlICpyZXMpCiB7Ci0Jc3RydWN0IHJlc291
cmNlICpwLCAqKnBwOwotCXN0cnVjdCByZXNvdXJjZSAqKmZpcnN0cHAgPSBOVUxMOworCXN0cnVj
dCByZXNvdXJjZSAqcCwgKmZpcnN0ID0gTlVMTDsKIAotCWZvciAocHAgPSAmcGFyZW50LT5jaGls
ZDsgKHAgPSAqcHApICE9IE5VTEw7IHBwID0gJnAtPnNpYmxpbmcpIHsKKwlsaXN0X2Zvcl9lYWNo
X2VudHJ5KHAsICZwYXJlbnQtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlmIChwLT5lbmQgPCByZXMt
PnN0YXJ0KQogCQkJY29udGludWU7CiAJCWlmIChyZXMtPmVuZCA8IHAtPnN0YXJ0KQogCQkJYnJl
YWs7CiAJCWlmIChwLT5zdGFydCA8IHJlcy0+c3RhcnQgfHwgcC0+ZW5kID4gcmVzLT5lbmQpCiAJ
CQlyZXR1cm4gLUVOT1RTVVBQOwkvKiBub3QgY29tcGxldGVseSBjb250YWluZWQgKi8KLQkJaWYg
KGZpcnN0cHAgPT0gTlVMTCkKLQkJCWZpcnN0cHAgPSBwcDsKKwkJaWYgKGZpcnN0ID09IE5VTEwp
CisJCQlmaXJzdCA9IHA7CiAJfQotCWlmIChmaXJzdHBwID09IE5VTEwpCisJaWYgKGZpcnN0ID09
IE5VTEwpCiAJCXJldHVybiAtRUNBTkNFTEVEOyAvKiBkaWRuJ3QgZmluZCBhbnkgY29uZmxpY3Rp
bmcgZW50cmllcz8gKi8KIAlyZXMtPnBhcmVudCA9IHBhcmVudDsKLQlyZXMtPmNoaWxkID0gKmZp
cnN0cHA7Ci0JcmVzLT5zaWJsaW5nID0gKnBwOwotCSpmaXJzdHBwID0gcmVzOwotCSpwcCA9IE5V
TEw7Ci0JZm9yIChwID0gcmVzLT5jaGlsZDsgcCAhPSBOVUxMOyBwID0gcC0+c2libGluZykgewor
CWxpc3RfYWRkKCZyZXMtPnNpYmxpbmcsIHAtPnNpYmxpbmcucHJldik7CisJSU5JVF9MSVNUX0hF
QUQoJnJlcy0+Y2hpbGQpOworCisJLyoKKwkgKiBGcm9tIGZpcnN0IHRvIHAncyBwcmV2aW91cyBz
aWJsaW5nLCB0aGV5IGFsbCBmYWxsIGludG8KKwkgKiByZXMncyByZWdpb24sIGNoYW5nZSB0aGVt
IGFzIHJlcydzIGNoaWxkcmVuLgorCSAqLworCWxpc3RfY3V0X3Bvc2l0aW9uKCZyZXMtPmNoaWxk
LCBmaXJzdC0+c2libGluZy5wcmV2LCByZXMtPnNpYmxpbmcucHJldik7CisJbGlzdF9mb3JfZWFj
aF9lbnRyeShwLCAmcmVzLT5jaGlsZCwgc2libGluZykgewogCQlwLT5wYXJlbnQgPSByZXM7CiAJ
CXByX2RlYnVnKCJQQ0k6IFJlcGFyZW50ZWQgJXMgJXBSIHVuZGVyICVzXG4iLAogCQkJIHAtPm5h
bWUsIHAsIHJlcy0+bmFtZSk7CkBAIC0xMjE2LDM0ICsxMjE3LDMyIEBAIEVYUE9SVF9TWU1CT0wo
X19yZXF1ZXN0X3JlZ2lvbik7CiB2b2lkIF9fcmVsZWFzZV9yZWdpb24oc3RydWN0IHJlc291cmNl
ICpwYXJlbnQsIHJlc291cmNlX3NpemVfdCBzdGFydCwKIAkJCXJlc291cmNlX3NpemVfdCBuKQog
ewotCXN0cnVjdCByZXNvdXJjZSAqKnA7CisJc3RydWN0IHJlc291cmNlICpyZXM7CiAJcmVzb3Vy
Y2Vfc2l6ZV90IGVuZDsKIAotCXAgPSAmcGFyZW50LT5jaGlsZDsKKwlyZXMgPSByZXNvdXJjZV9m
aXJzdF9jaGlsZCgmcGFyZW50LT5jaGlsZCk7CiAJZW5kID0gc3RhcnQgKyBuIC0gMTsKIAogCXdy
aXRlX2xvY2soJnJlc291cmNlX2xvY2spOwogCiAJZm9yICg7OykgewotCQlzdHJ1Y3QgcmVzb3Vy
Y2UgKnJlcyA9ICpwOwotCiAJCWlmICghcmVzKQogCQkJYnJlYWs7CiAJCWlmIChyZXMtPnN0YXJ0
IDw9IHN0YXJ0ICYmIHJlcy0+ZW5kID49IGVuZCkgewogCQkJaWYgKCEocmVzLT5mbGFncyAmIElP
UkVTT1VSQ0VfQlVTWSkpIHsKLQkJCQlwID0gJnJlcy0+Y2hpbGQ7CisJCQkJcmVzID0gcmVzb3Vy
Y2VfZmlyc3RfY2hpbGQoJnJlcy0+Y2hpbGQpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJaWYg
KHJlcy0+c3RhcnQgIT0gc3RhcnQgfHwgcmVzLT5lbmQgIT0gZW5kKQogCQkJCWJyZWFrOwotCQkJ
KnAgPSByZXMtPnNpYmxpbmc7CisJCQlsaXN0X2RlbCgmcmVzLT5zaWJsaW5nKTsKIAkJCXdyaXRl
X3VubG9jaygmcmVzb3VyY2VfbG9jayk7CiAJCQlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0Vf
TVVYRUQpCiAJCQkJd2FrZV91cCgmbXV4ZWRfcmVzb3VyY2Vfd2FpdCk7CiAJCQlmcmVlX3Jlc291
cmNlKHJlcyk7CiAJCQlyZXR1cm47CiAJCX0KLQkJcCA9ICZyZXMtPnNpYmxpbmc7CisJCXJlcyA9
IHJlc291cmNlX3NpYmxpbmcocmVzKTsKIAl9CiAKIAl3cml0ZV91bmxvY2soJnJlc291cmNlX2xv
Y2spOwpAQCAtMTI3OCw5ICsxMjc3LDcgQEAgRVhQT1JUX1NZTUJPTChfX3JlbGVhc2VfcmVnaW9u
KTsKIGludCByZWxlYXNlX21lbV9yZWdpb25fYWRqdXN0YWJsZShzdHJ1Y3QgcmVzb3VyY2UgKnBh
cmVudCwKIAkJCXJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IHNpemUpCiB7
Ci0Jc3RydWN0IHJlc291cmNlICoqcDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlzdHJ1Y3Qg
cmVzb3VyY2UgKm5ld19yZXM7CisJc3RydWN0IHJlc291cmNlICpyZXMsICpuZXdfcmVzOwogCXJl
c291cmNlX3NpemVfdCBlbmQ7CiAJaW50IHJldCA9IC1FSU5WQUw7CiAKQEAgLTEyOTEsMTYgKzEy
ODgsMTYgQEAgaW50IHJlbGVhc2VfbWVtX3JlZ2lvbl9hZGp1c3RhYmxlKHN0cnVjdCByZXNvdXJj
ZSAqcGFyZW50LAogCS8qIFRoZSBhbGxvY19yZXNvdXJjZSgpIHJlc3VsdCBnZXRzIGNoZWNrZWQg
bGF0ZXIgKi8KIAluZXdfcmVzID0gYWxsb2NfcmVzb3VyY2UoR0ZQX0tFUk5FTCk7CiAKLQlwID0g
JnBhcmVudC0+Y2hpbGQ7CisJcmVzID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnBhcmVudC0+Y2hp
bGQpOwogCXdyaXRlX2xvY2soJnJlc291cmNlX2xvY2spOwogCi0Jd2hpbGUgKChyZXMgPSAqcCkp
IHsKKwl3aGlsZSAoKHJlcykpIHsKIAkJaWYgKHJlcy0+c3RhcnQgPj0gZW5kKQogCQkJYnJlYWs7
CiAKIAkJLyogbG9vayBmb3IgdGhlIG5leHQgcmVzb3VyY2UgaWYgaXQgZG9lcyBub3QgZml0IGlu
dG8gKi8KIAkJaWYgKHJlcy0+c3RhcnQgPiBzdGFydCB8fCByZXMtPmVuZCA8IGVuZCkgewotCQkJ
cCA9ICZyZXMtPnNpYmxpbmc7CisJCQlyZXMgPSByZXNvdXJjZV9zaWJsaW5nKHJlcyk7CiAJCQlj
b250aW51ZTsKIAkJfQogCkBAIC0xMzA4LDE0ICsxMzA1LDE0IEBAIGludCByZWxlYXNlX21lbV9y
ZWdpb25fYWRqdXN0YWJsZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKIAkJCWJyZWFrOwogCiAJ
CWlmICghKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0JVU1kpKSB7Ci0JCQlwID0gJnJlcy0+Y2hp
bGQ7CisJCQlyZXMgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcmVzLT5jaGlsZCk7CiAJCQljb250
aW51ZTsKIAkJfQogCiAJCS8qIGZvdW5kIHRoZSB0YXJnZXQgcmVzb3VyY2U7IGxldCdzIGFkanVz
dCBhY2NvcmRpbmdseSAqLwogCQlpZiAocmVzLT5zdGFydCA9PSBzdGFydCAmJiByZXMtPmVuZCA9
PSBlbmQpIHsKIAkJCS8qIGZyZWUgdGhlIHdob2xlIGVudHJ5ICovCi0JCQkqcCA9IHJlcy0+c2li
bGluZzsKKwkJCWxpc3RfZGVsKCZyZXMtPnNpYmxpbmcpOwogCQkJZnJlZV9yZXNvdXJjZShyZXMp
OwogCQkJcmV0ID0gMDsKIAkJfSBlbHNlIGlmIChyZXMtPnN0YXJ0ID09IHN0YXJ0ICYmIHJlcy0+
ZW5kICE9IGVuZCkgewpAQCAtMTMzOCwxNCArMTMzNSwxMyBAQCBpbnQgcmVsZWFzZV9tZW1fcmVn
aW9uX2FkanVzdGFibGUoc3RydWN0IHJlc291cmNlICpwYXJlbnQsCiAJCQluZXdfcmVzLT5mbGFn
cyA9IHJlcy0+ZmxhZ3M7CiAJCQluZXdfcmVzLT5kZXNjID0gcmVzLT5kZXNjOwogCQkJbmV3X3Jl
cy0+cGFyZW50ID0gcmVzLT5wYXJlbnQ7Ci0JCQluZXdfcmVzLT5zaWJsaW5nID0gcmVzLT5zaWJs
aW5nOwotCQkJbmV3X3Jlcy0+Y2hpbGQgPSBOVUxMOworCQkJSU5JVF9MSVNUX0hFQUQoJm5ld19y
ZXMtPmNoaWxkKTsKIAogCQkJcmV0ID0gX19hZGp1c3RfcmVzb3VyY2UocmVzLCByZXMtPnN0YXJ0
LAogCQkJCQkJc3RhcnQgLSByZXMtPnN0YXJ0KTsKIAkJCWlmIChyZXQpCiAJCQkJYnJlYWs7Ci0J
CQlyZXMtPnNpYmxpbmcgPSBuZXdfcmVzOworCQkJbGlzdF9hZGQoJm5ld19yZXMtPnNpYmxpbmcs
ICZyZXMtPnNpYmxpbmcpOwogCQkJbmV3X3JlcyA9IE5VTEw7CiAJCX0KIApAQCAtMTUyNiw3ICsx
NTIyLDcgQEAgc3RhdGljIGludCBfX2luaXQgcmVzZXJ2ZV9zZXR1cChjaGFyICpzdHIpCiAJCQly
ZXMtPmVuZCA9IGlvX3N0YXJ0ICsgaW9fbnVtIC0gMTsKIAkJCXJlcy0+ZmxhZ3MgfD0gSU9SRVNP
VVJDRV9CVVNZOwogCQkJcmVzLT5kZXNjID0gSU9SRVNfREVTQ19OT05FOwotCQkJcmVzLT5jaGls
ZCA9IE5VTEw7CisJCQlJTklUX0xJU1RfSEVBRCgmcmVzLT5jaGlsZCk7CiAJCQlpZiAocmVxdWVz
dF9yZXNvdXJjZShwYXJlbnQsIHJlcykgPT0gMCkKIAkJCQlyZXNlcnZlZCA9IHgrMTsKIAkJfQpA
QCAtMTU0Niw3ICsxNTQyLDcgQEAgaW50IGlvbWVtX21hcF9zYW5pdHlfY2hlY2socmVzb3VyY2Vf
c2l6ZV90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAlsb2ZmX3QgbDsKIAogCXJlYWRfbG9j
aygmcmVzb3VyY2VfbG9jayk7Ci0JZm9yIChwID0gcC0+Y2hpbGQ7IHAgOyBwID0gcl9uZXh0KE5V
TEwsIHAsICZsKSkgeworCWZvciAocCA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZwLT5jaGlsZCk7
IHA7IHAgPSByX25leHQoTlVMTCwgcCwgJmwpKSB7CiAJCS8qCiAJCSAqIFdlIGNhbiBwcm9iYWJs
eSBza2lwIHRoZSByZXNvdXJjZXMgd2l0aG91dAogCQkgKiBJT1JFU09VUkNFX0lPIGF0dHJpYnV0
ZT8KQEAgLTE2MDIsNyArMTU5OCw3IEBAIGJvb2wgaW9tZW1faXNfZXhjbHVzaXZlKHU2NCBhZGRy
KQogCWFkZHIgPSBhZGRyICYgUEFHRV9NQVNLOwogCiAJcmVhZF9sb2NrKCZyZXNvdXJjZV9sb2Nr
KTsKLQlmb3IgKHAgPSBwLT5jaGlsZDsgcCA7IHAgPSByX25leHQoTlVMTCwgcCwgJmwpKSB7CisJ
Zm9yIChwID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnAtPmNoaWxkKTsgcDsgcCA9IHJfbmV4dChO
VUxMLCBwLCAmbCkpIHsKIAkJLyoKIAkJICogV2UgY2FuIHByb2JhYmx5IHNraXAgdGhlIHJlc291
cmNlcyB3aXRob3V0CiAJCSAqIElPUkVTT1VSQ0VfSU8gYXR0cmlidXRlPwotLSAKMi4xMy42Cgpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udmRp
bW0gbWFpbGluZyBsaXN0CkxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKaHR0cHM6Ly9saXN0cy4w
MS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udmRpbW0K
next prev parent reply other threads:[~2018-07-18 2:49 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-18 2:49 [PATCH v7 0/4] resource: Use list_head to link sibling resource Baoquan He
[not found] ` <20180718024944.577-1-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-07-18 2:49 ` [PATCH v7 1/4] resource: Move reparent_resources() to kernel/resource.c and make it public Baoquan He
2018-07-18 16:36 ` Andy Shevchenko
[not found] ` <CAHp75VdO88ydJQ9GHdaDUmAmzL6QHR=US6JiXZ1R_EEA-xWR1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-18 16:37 ` Andy Shevchenko
[not found] ` <CAHp75Vf2yEwHhEhhQH2XN+pOQ=-skiAHZ=FgLnfVV8vcm59qeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-19 15:18 ` Baoquan He
2018-07-18 2:49 ` Baoquan He [this message]
2018-07-18 2:49 ` [PATCH v7 3/4] resource: add walk_system_ram_res_rev() Baoquan He
2018-07-18 2:49 ` [PATCH v7 4/4] kexec_file: Load kernel at top of system RAM if required Baoquan He
2018-07-18 22:33 ` Andrew Morton
[not found] ` <20180718153326.b795e9ea7835432a56cd7011-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2018-07-19 15:17 ` Baoquan He
[not found] ` <20180719151753.GB7147-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-07-19 19:44 ` Andrew Morton
[not found] ` <20180719124444.c893712cca2e6f2649d1bc0d-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2018-07-25 2:21 ` Baoquan He
2018-07-23 14:34 ` Michal Hocko
[not found] ` <20180723143443.GD18181-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2018-07-25 6:48 ` Baoquan He
2018-07-26 12:59 ` Michal Hocko
[not found] ` <20180726125957.GH28386-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2018-07-26 13:09 ` Baoquan He
2018-07-26 13:12 ` Michal Hocko
[not found] ` <20180726131242.GI28386-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2018-07-26 13:14 ` Michal Hocko
[not found] ` <20180726131420.GJ28386-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2018-07-26 13:37 ` Baoquan He
2018-07-26 14:01 ` Michal Hocko
2018-07-26 15:10 ` Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180718024944.577-3-bhe@redhat.com \
--to=bhe-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=airlied-cv59FeDIM0c@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/@public.gmane.org \
--cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=bp-l3A5Bk7waGM@public.gmane.org \
--cc=brijesh.singh-5C7GfCeVMHo@public.gmane.org \
--cc=chris-YvXeqwSYzG2sTnJN9+BGXg@public.gmane.org \
--cc=dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org \
--cc=haiyangz-0li6OtcxBFHby3iVrkZq2A@public.gmane.org \
--cc=jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org \
--cc=kys-0li6OtcxBFHby3iVrkZq2A@public.gmane.org \
--cc=linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
--cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
--cc=linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org \
--cc=maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org \
--cc=mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org \
--cc=nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=paulus-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org \
--cc=richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=sthemmin-0li6OtcxBFHby3iVrkZq2A@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=thomas.lendacky-5C7GfCeVMHo@public.gmane.org \
--cc=yinghai-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).