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: 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,
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,
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,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
devel-tBiZLqfeLfOHmIFyCCdPziST3g8Odh+X@public.gmane.org,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
davem@davem
Subject: [PATCH v6 2/4] resource: Use list_head to link sibling resource
Date: Wed, 4 Jul 2018 12:10:36 +0800 [thread overview]
Message-ID: <20180704041038.8190-3-bhe@redhat.com> (raw)
In-Reply-To: <20180704041038.8190-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
Lm9yZwpDYzogbGludXgtcGNpQHZnZXIua2VybmVsLm9yZwotLS0KIGFyY2gvYXJtL3BsYXQtc2Ft
c3VuZy9wbS1jaGVjay5jICAgICAgICAgICAgfCAgIDYgKy0KIGFyY2gvbWljcm9ibGF6ZS9wY2kv
cGNpLWNvbW1vbi5jICAgICAgICAgICAgfCAgIDQgKy0KIGFyY2gvcG93ZXJwYy9rZXJuZWwvcGNp
LWNvbW1vbi5jICAgICAgICAgICAgfCAgIDQgKy0KIGFyY2gvc3BhcmMva2VybmVsL2lvcG9ydC5j
ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGFyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3BjaS1i
cmlkZ2UuaCAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZWlzYS9laXNhLWJ1cy5jICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYyAgICAgICAg
ICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9ndHQuYyAgICAgICAgICAg
ICAgICB8ICAgNSArLQogZHJpdmVycy9odi92bWJ1c19kcnYuYyAgICAgICAgICAgICAgICAgICAg
ICB8ICA1MiArKystLS0tCiBkcml2ZXJzL2lucHV0L2pveXN0aWNrL2lmb3JjZS9pZm9yY2UtbWFp
bi5jIHwgICA0ICstCiBkcml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jICAgICAgICAgICAg
IHwgICA2ICstCiBkcml2ZXJzL252ZGltbS9uZC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICA1ICstCiBkcml2ZXJzL29mL2FkZHJlc3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0
ICstCiBkcml2ZXJzL3BhcmlzYy9sYmFfcGNpLmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICst
CiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jICAgICAgICAgICAgICAgIHwgICA4ICstCiBk
cml2ZXJzL3BjaS9wcm9iZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZl
cnMvcGNpL3NldHVwLWJ1cy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUv
bGludXgvaW9wb3J0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKystCiBrZXJuZWwvcmVz
b3VyY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjA4ICsrKysrKysrKysrKysrLS0t
LS0tLS0tLS0tLS0KIDE5IGZpbGVzIGNoYW5nZWQsIDE3NSBpbnNlcnRpb25zKCspLCAxNjcgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL3BtLWNoZWNrLmMg
Yi9hcmNoL2FybS9wbGF0LXNhbXN1bmcvcG0tY2hlY2suYwppbmRleCBjZDJjMDJjNjhiYzMuLjU0
OTQzNTViMWM0OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL3BtLWNoZWNrLmMK
KysrIGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL3BtLWNoZWNrLmMKQEAgLTQ2LDggKzQ2LDggQEAg
dHlwZWRlZiB1MzIgKihydW5fZm5fdCkoc3RydWN0IHJlc291cmNlICpwdHIsIHUzMiAqYXJnKTsK
IHN0YXRpYyB2b2lkIHMzY19wbV9ydW5fcmVzKHN0cnVjdCByZXNvdXJjZSAqcHRyLCBydW5fZm5f
dCBmbiwgdTMyICphcmcpCiB7CiAJd2hpbGUgKHB0ciAhPSBOVUxMKSB7Ci0JCWlmIChwdHItPmNo
aWxkICE9IE5VTEwpCi0JCQlzM2NfcG1fcnVuX3JlcyhwdHItPmNoaWxkLCBmbiwgYXJnKTsKKwkJ
aWYgKCFsaXN0X2VtcHR5KCZwdHItPmNoaWxkKSkKKwkJCXMzY19wbV9ydW5fcmVzKHJlc291cmNl
X2ZpcnN0X2NoaWxkKCZwdHItPmNoaWxkKSwgZm4sIGFyZyk7CiAKIAkJaWYgKChwdHItPmZsYWdz
ICYgSU9SRVNPVVJDRV9TWVNURU1fUkFNKQogCQkJCT09IElPUkVTT1VSQ0VfU1lTVEVNX1JBTSkg
ewpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdm9pZCBzM2NfcG1fcnVuX3JlcyhzdHJ1Y3QgcmVz
b3VyY2UgKnB0ciwgcnVuX2ZuX3QgZm4sIHUzMiAqYXJnKQogCQkJYXJnID0gKGZuKShwdHIsIGFy
Zyk7CiAJCX0KIAotCQlwdHIgPSBwdHItPnNpYmxpbmc7CisJCXB0ciA9IHJlc291cmNlX3NpYmxp
bmcocHRyKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9wY2kvcGNpLWNv
bW1vbi5jIGIvYXJjaC9taWNyb2JsYXplL3BjaS9wY2ktY29tbW9uLmMKaW5kZXggNzg5OWJhZmFi
MDY0Li4yYmY3M2UyN2UyMzEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9ibGF6ZS9wY2kvcGNpLWNv
bW1vbi5jCisrKyBiL2FyY2gvbWljcm9ibGF6ZS9wY2kvcGNpLWNvbW1vbi5jCkBAIC01MzMsNyAr
NTMzLDkgQEAgdm9pZCBwY2lfcHJvY2Vzc19icmlkZ2VfT0ZfcmFuZ2VzKHN0cnVjdCBwY2lfY29u
dHJvbGxlciAqaG9zZSwKIAkJCXJlcy0+ZmxhZ3MgPSByYW5nZS5mbGFnczsKIAkJCXJlcy0+c3Rh
cnQgPSByYW5nZS5jcHVfYWRkcjsKIAkJCXJlcy0+ZW5kID0gcmFuZ2UuY3B1X2FkZHIgKyByYW5n
ZS5zaXplIC0gMTsKLQkJCXJlcy0+cGFyZW50ID0gcmVzLT5jaGlsZCA9IHJlcy0+c2libGluZyA9
IE5VTEw7CisJCQlyZXMtPnBhcmVudCA9IE5VTEw7CisJCQlJTklUX0xJU1RfSEVBRCgmcmVzLT5j
aGlsZCk7CisJCQlJTklUX0xJU1RfSEVBRCgmcmVzLT5zaWJsaW5nKTsKIAkJfQogCX0KIApkaWZm
IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMgYi9hcmNoL3Bvd2VycGMv
a2VybmVsL3BjaS1jb21tb24uYwppbmRleCA5MjYwMzViYjM3OGQuLjI4ZmJlODNjOWRhZiAxMDA2
NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMKKysrIGIvYXJjaC9wb3dl
cnBjL2tlcm5lbC9wY2ktY29tbW9uLmMKQEAgLTc2MSw3ICs3NjEsOSBAQCB2b2lkIHBjaV9wcm9j
ZXNzX2JyaWRnZV9PRl9yYW5nZXMoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlLAogCQkJcmVz
LT5mbGFncyA9IHJhbmdlLmZsYWdzOwogCQkJcmVzLT5zdGFydCA9IHJhbmdlLmNwdV9hZGRyOwog
CQkJcmVzLT5lbmQgPSByYW5nZS5jcHVfYWRkciArIHJhbmdlLnNpemUgLSAxOwotCQkJcmVzLT5w
YXJlbnQgPSByZXMtPmNoaWxkID0gcmVzLT5zaWJsaW5nID0gTlVMTDsKKwkJCXJlcy0+cGFyZW50
ID0gTlVMTDsKKwkJCUlOSVRfTElTVF9IRUFEKCZyZXMtPmNoaWxkKTsKKwkJCUlOSVRfTElTVF9I
RUFEKCZyZXMtPnNpYmxpbmcpOwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9r
ZXJuZWwvaW9wb3J0LmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9pb3BvcnQuYwppbmRleCBjY2E5MTM0
Y2ZhN2QuLjk5ZWZlNGU5OGIxNiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvaW9wb3J0
LmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvaW9wb3J0LmMKQEAgLTY2OSw3ICs2NjksNyBAQCBz
dGF0aWMgaW50IHNwYXJjX2lvX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYp
CiAJc3RydWN0IHJlc291cmNlICpyb290ID0gbS0+cHJpdmF0ZSwgKnI7CiAJY29uc3QgY2hhciAq
bm07CiAKLQlmb3IgKHIgPSByb290LT5jaGlsZDsgciAhPSBOVUxMOyByID0gci0+c2libGluZykg
eworCWxpc3RfZm9yX2VhY2hfZW50cnkociwgJnJvb3QtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlm
ICgobm0gPSByLT5uYW1lKSA9PSBOVUxMKSBubSA9ICI/Pz8iOwogCQlzZXFfcHJpbnRmKG0sICIl
MDE2bGx4LSUwMTZsbHg6ICVzXG4iLAogCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpci0+c3RhcnQs
CmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmggYi9hcmNo
L3h0ZW5zYS9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKaW5kZXggMGI2OGM3NmVjMWU2Li5mNDg3
YjA2ODE3ZGYgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2Uu
aAorKysgYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKQEAgLTcxLDggKzcx
LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHBjaWJpb3NfaW5pdF9yZXNvdXJjZShzdHJ1Y3QgcmVz
b3VyY2UgKnJlcywKIAlyZXMtPmZsYWdzID0gZmxhZ3M7CiAJcmVzLT5uYW1lID0gbmFtZTsKIAly
ZXMtPnBhcmVudCA9IE5VTEw7Ci0JcmVzLT5zaWJsaW5nID0gTlVMTDsKLQlyZXMtPmNoaWxkID0g
TlVMTDsKKwlJTklUX0xJU1RfSEVBRCgmcmVzLT5jaGlsZCk7CisJSU5JVF9MSVNUX0hFQUQoJnJl
cy0+c2libGluZyk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9laXNhL2Vpc2EtYnVzLmMg
Yi9kcml2ZXJzL2Vpc2EvZWlzYS1idXMuYwppbmRleCAxZTgwNjJmNmRiZmMuLmRiYTc4Zjc1ZmQw
NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9laXNhL2Vpc2EtYnVzLmMKKysrIGIvZHJpdmVycy9laXNh
L2Vpc2EtYnVzLmMKQEAgLTQwOCw2ICs0MDgsOCBAQCBzdGF0aWMgc3RydWN0IHJlc291cmNlIGVp
c2Ffcm9vdF9yZXMgPSB7CiAJLnN0YXJ0ID0gMCwKIAkuZW5kICAgPSAweGZmZmZmZmZmLAogCS5m
bGFncyA9IElPUkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcgPSBMSVNUX0hFQURfSU5JVChlaXNhX3Jv
b3RfcmVzLnNpYmxpbmcpLAorCS5jaGlsZCAgPSBMSVNUX0hFQURfSU5JVChlaXNhX3Jvb3RfcmVz
LmNoaWxkKSwKIH07CiAKIHN0YXRpYyBpbnQgZWlzYV9idXNfY291bnQ7CmRpZmYgLS1naXQgYS9k
cml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnku
YwppbmRleCBkNjllNGZjMWVlNzcuLjMzYmFhN2ZhNWU0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n
cHUvZHJtL2RybV9tZW1vcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jCkBA
IC0xNTUsOSArMTU1LDggQEAgdTY0IGRybV9nZXRfbWF4X2lvbWVtKHZvaWQpCiAJc3RydWN0IHJl
c291cmNlICp0bXA7CiAJcmVzb3VyY2Vfc2l6ZV90IG1heF9pb21lbSA9IDA7CiAKLQlmb3IgKHRt
cCA9IGlvbWVtX3Jlc291cmNlLmNoaWxkOyB0bXA7IHRtcCA9IHRtcC0+c2libGluZykgeworCWxp
c3RfZm9yX2VhY2hfZW50cnkodG1wLCAmaW9tZW1fcmVzb3VyY2UuY2hpbGQsIHNpYmxpbmcpCiAJ
CW1heF9pb21lbSA9IG1heChtYXhfaW9tZW0sICB0bXAtPmVuZCk7Ci0JfQogCiAJcmV0dXJuIG1h
eF9pb21lbTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ3R0LmMgYi9k
cml2ZXJzL2dwdS9kcm0vZ21hNTAwL2d0dC5jCmluZGV4IDM5NDliMDk5MDkxNi4uYWRkZDNiYzAw
OWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2d0dC5jCisrKyBiL2RyaXZl
cnMvZ3B1L2RybS9nbWE1MDAvZ3R0LmMKQEAgLTU2NSw3ICs1NjUsNyBAQCBpbnQgcHNiX2d0dF9p
bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCByZXN1bWUpCiBpbnQgcHNiX2d0dF9yZXN0
b3JlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9wc2JfcHJpdmF0ZSAq
ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCByZXNvdXJjZSAqciA9IGRldl9w
cml2LT5ndHRfbWVtLT5jaGlsZDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJc3RydWN0IGd0dF9y
YW5nZSAqcmFuZ2U7CiAJdW5zaWduZWQgaW50IHJlc3RvcmVkID0gMCwgdG90YWwgPSAwLCBzaXpl
ID0gMDsKIApAQCAtNTczLDE0ICs1NzMsMTMgQEAgaW50IHBzYl9ndHRfcmVzdG9yZShzdHJ1Y3Qg
ZHJtX2RldmljZSAqZGV2KQogCW11dGV4X2xvY2soJmRldl9wcml2LT5ndHRfbXV0ZXgpOwogCXBz
Yl9ndHRfaW5pdChkZXYsIDEpOwogCi0Jd2hpbGUgKHIgIT0gTlVMTCkgeworCWxpc3RfZm9yX2Vh
Y2hfZW50cnkociwgJmRldl9wcml2LT5ndHRfbWVtLT5jaGlsZCwgc2libGluZykgewogCQlyYW5n
ZSA9IGNvbnRhaW5lcl9vZihyLCBzdHJ1Y3QgZ3R0X3JhbmdlLCByZXNvdXJjZSk7CiAJCWlmIChy
YW5nZS0+cGFnZXMpIHsKIAkJCXBzYl9ndHRfaW5zZXJ0KGRldiwgcmFuZ2UsIDEpOwogCQkJc2l6
ZSArPSByYW5nZS0+cmVzb3VyY2UuZW5kIC0gcmFuZ2UtPnJlc291cmNlLnN0YXJ0OwogCQkJcmVz
dG9yZWQrKzsKIAkJfQotCQlyID0gci0+c2libGluZzsKIAkJdG90YWwrKzsKIAl9CiAJbXV0ZXhf
dW5sb2NrKCZkZXZfcHJpdi0+Z3R0X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHYvdm1i
dXNfZHJ2LmMgYi9kcml2ZXJzL2h2L3ZtYnVzX2Rydi5jCmluZGV4IGIxMGZlMjZjNDg5MS4uZDg3
ZWM1YTFiYzRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h2L3ZtYnVzX2Rydi5jCisrKyBiL2RyaXZl
cnMvaHYvdm1idXNfZHJ2LmMKQEAgLTE0MTIsOSArMTQxMiw4IEBAIHN0YXRpYyBhY3BpX3N0YXR1
cyB2bWJ1c193YWxrX3Jlc291cmNlcyhzdHJ1Y3QgYWNwaV9yZXNvdXJjZSAqcmVzLCB2b2lkICpj
dHgpCiB7CiAJcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0ID0gMDsKIAlyZXNvdXJjZV9zaXplX3QgZW5k
ID0gMDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKm5ld19yZXM7CisJc3RydWN0IHJlc291cmNlICpuZXdf
cmVzLCAqdG1wOwogCXN0cnVjdCByZXNvdXJjZSAqKm9sZF9yZXMgPSAmaHlwZXJ2X21taW87Ci0J
c3RydWN0IHJlc291cmNlICoqcHJldl9yZXMgPSBOVUxMOwogCiAJc3dpdGNoIChyZXMtPnR5cGUp
IHsKIApAQCAtMTQ2MSw0NCArMTQ2MCwzNiBAQCBzdGF0aWMgYWNwaV9zdGF0dXMgdm1idXNfd2Fs
a19yZXNvdXJjZXMoc3RydWN0IGFjcGlfcmVzb3VyY2UgKnJlcywgdm9pZCAqY3R4KQogCS8qCiAJ
ICogSWYgdHdvIHJhbmdlcyBhcmUgYWRqYWNlbnQsIG1lcmdlIHRoZW0uCiAJICovCi0JZG8gewot
CQlpZiAoISpvbGRfcmVzKSB7Ci0JCQkqb2xkX3JlcyA9IG5ld19yZXM7Ci0JCQlicmVhazsKLQkJ
fQotCi0JCWlmICgoKCpvbGRfcmVzKS0+ZW5kICsgMSkgPT0gbmV3X3Jlcy0+c3RhcnQpIHsKLQkJ
CSgqb2xkX3JlcyktPmVuZCA9IG5ld19yZXMtPmVuZDsKKwlpZiAoISpvbGRfcmVzKSB7CisJCSpv
bGRfcmVzID0gbmV3X3JlczsKKwkJcmV0dXJuIEFFX09LOworCX0KKwl0bXAgPSAqb2xkX3JlczsK
KwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20odG1wLCAmdG1wLT5wYXJlbnQtPmNoaWxkLCBzaWJs
aW5nKSB7CisJCWlmICgodG1wLT5lbmQgKyAxKSA9PSBuZXdfcmVzLT5zdGFydCkgeworCQkJdG1w
LT5lbmQgPSBuZXdfcmVzLT5lbmQ7CiAJCQlrZnJlZShuZXdfcmVzKTsKIAkJCWJyZWFrOwogCQl9
CiAKLQkJaWYgKCgqb2xkX3JlcyktPnN0YXJ0ID09IG5ld19yZXMtPmVuZCArIDEpIHsKLQkJCSgq
b2xkX3JlcyktPnN0YXJ0ID0gbmV3X3Jlcy0+c3RhcnQ7CisJCWlmICh0bXAtPnN0YXJ0ID09IG5l
d19yZXMtPmVuZCArIDEpIHsKKwkJCXRtcC0+c3RhcnQgPSBuZXdfcmVzLT5zdGFydDsKIAkJCWtm
cmVlKG5ld19yZXMpOwogCQkJYnJlYWs7CiAJCX0KIAotCQlpZiAoKCpvbGRfcmVzKS0+c3RhcnQg
PiBuZXdfcmVzLT5lbmQpIHsKLQkJCW5ld19yZXMtPnNpYmxpbmcgPSAqb2xkX3JlczsKLQkJCWlm
IChwcmV2X3JlcykKLQkJCQkoKnByZXZfcmVzKS0+c2libGluZyA9IG5ld19yZXM7Ci0JCQkqb2xk
X3JlcyA9IG5ld19yZXM7CisJCWlmICh0bXAtPnN0YXJ0ID4gbmV3X3Jlcy0+ZW5kKSB7CisJCQls
aXN0X2FkZCgmbmV3X3Jlcy0+c2libGluZywgdG1wLT5zaWJsaW5nLnByZXYpOwogCQkJYnJlYWs7
CiAJCX0KLQotCQlwcmV2X3JlcyA9IG9sZF9yZXM7Ci0JCW9sZF9yZXMgPSAmKCpvbGRfcmVzKS0+
c2libGluZzsKLQotCX0gd2hpbGUgKDEpOworCX0KIAogCXJldHVybiBBRV9PSzsKIH0KIAogc3Rh
dGljIGludCB2bWJ1c19hY3BpX3JlbW92ZShzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkKIHsK
LQlzdHJ1Y3QgcmVzb3VyY2UgKmN1cl9yZXM7Ci0Jc3RydWN0IHJlc291cmNlICpuZXh0X3JlczsK
KwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAogCWlmIChoeXBlcnZfbW1pbykgewogCQlpZiAoZmJf
bW1pbykgewpAQCAtMTUwNywxMCArMTQ5OCw5IEBAIHN0YXRpYyBpbnQgdm1idXNfYWNwaV9yZW1v
dmUoc3RydWN0IGFjcGlfZGV2aWNlICpkZXZpY2UpCiAJCQlmYl9tbWlvID0gTlVMTDsKIAkJfQog
Ci0JCWZvciAoY3VyX3JlcyA9IGh5cGVydl9tbWlvOyBjdXJfcmVzOyBjdXJfcmVzID0gbmV4dF9y
ZXMpIHsKLQkJCW5leHRfcmVzID0gY3VyX3Jlcy0+c2libGluZzsKLQkJCWtmcmVlKGN1cl9yZXMp
OwotCQl9CisJCXJlcyA9IGh5cGVydl9tbWlvOworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20o
cmVzLCAmcmVzLT5wYXJlbnQtPmNoaWxkLCBzaWJsaW5nKQorCQkJa2ZyZWUocmVzKTsKIAl9CiAK
IAlyZXR1cm4gMDsKQEAgLTE1OTYsNyArMTU4Niw4IEBAIGludCB2bWJ1c19hbGxvY2F0ZV9tbWlv
KHN0cnVjdCByZXNvdXJjZSAqKm5ldywgc3RydWN0IGh2X2RldmljZSAqZGV2aWNlX29iaiwKIAkJ
fQogCX0KIAotCWZvciAoaXRlciA9IGh5cGVydl9tbWlvOyBpdGVyOyBpdGVyID0gaXRlci0+c2li
bGluZykgeworCWl0ZXIgPSBoeXBlcnZfbW1pbzsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20o
aXRlciwgJml0ZXItPnBhcmVudC0+Y2hpbGQsIHNpYmxpbmcpIHsKIAkJaWYgKChpdGVyLT5zdGFy
dCA+PSBtYXgpIHx8IChpdGVyLT5lbmQgPD0gbWluKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xNjM5
LDcgKzE2MzAsOCBAQCB2b2lkIHZtYnVzX2ZyZWVfbW1pbyhyZXNvdXJjZV9zaXplX3Qgc3RhcnQs
IHJlc291cmNlX3NpemVfdCBzaXplKQogCXN0cnVjdCByZXNvdXJjZSAqaXRlcjsKIAogCWRvd24o
Jmh5cGVydl9tbWlvX2xvY2spOwotCWZvciAoaXRlciA9IGh5cGVydl9tbWlvOyBpdGVyOyBpdGVy
ID0gaXRlci0+c2libGluZykgeworCWl0ZXIgPSBoeXBlcnZfbW1pbzsKKwlsaXN0X2Zvcl9lYWNo
X2VudHJ5X2Zyb20oaXRlciwgJml0ZXItPnBhcmVudC0+Y2hpbGQsIHNpYmxpbmcpIHsKIAkJaWYg
KChpdGVyLT5zdGFydCA+PSBzdGFydCArIHNpemUpIHx8IChpdGVyLT5lbmQgPD0gc3RhcnQpKQog
CQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvam95c3RpY2svaWZvcmNl
L2lmb3JjZS1tYWluLmMgYi9kcml2ZXJzL2lucHV0L2pveXN0aWNrL2lmb3JjZS9pZm9yY2UtbWFp
bi5jCmluZGV4IGRhZWViNGM3ZTNiMC4uNWMwYmUyN2IzM2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJz
L2lucHV0L2pveXN0aWNrL2lmb3JjZS9pZm9yY2UtbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5wdXQv
am95c3RpY2svaWZvcmNlL2lmb3JjZS1tYWluLmMKQEAgLTMwNSw4ICszMDUsOCBAQCBpbnQgaWZv
cmNlX2luaXRfZGV2aWNlKHN0cnVjdCBpZm9yY2UgKmlmb3JjZSkKIAlpZm9yY2UtPmRldmljZV9t
ZW1vcnkuZW5kID0gMjAwOwogCWlmb3JjZS0+ZGV2aWNlX21lbW9yeS5mbGFncyA9IElPUkVTT1VS
Q0VfTUVNOwogCWlmb3JjZS0+ZGV2aWNlX21lbW9yeS5wYXJlbnQgPSBOVUxMOwotCWlmb3JjZS0+
ZGV2aWNlX21lbW9yeS5jaGlsZCA9IE5VTEw7Ci0JaWZvcmNlLT5kZXZpY2VfbWVtb3J5LnNpYmxp
bmcgPSBOVUxMOworCUlOSVRfTElTVF9IRUFEKCZpZm9yY2UtPmRldmljZV9tZW1vcnkuY2hpbGQp
OworCUlOSVRfTElTVF9IRUFEKCZpZm9yY2UtPmRldmljZV9tZW1vcnkuc2libGluZyk7CiAKIC8q
CiAgKiBXYWl0IHVudGlsIGRldmljZSByZWFkeSAtIHVudGlsIGl0IHNlbmRzIGl0cyBmaXJzdCBy
ZXNwb25zZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL25hbWVzcGFjZV9kZXZzLmMgYi9k
cml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jCmluZGV4IDI4YWZkZDY2ODkwNS4uZjUzZDQx
MGQ5OTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9uYW1lc3BhY2VfZGV2cy5jCisrKyBi
L2RyaXZlcnMvbnZkaW1tL25hbWVzcGFjZV9kZXZzLmMKQEAgLTYzNyw3ICs2MzcsNyBAQCBzdGF0
aWMgcmVzb3VyY2Vfc2l6ZV90IHNjYW5fYWxsb2NhdGUoc3RydWN0IG5kX3JlZ2lvbiAqbmRfcmVn
aW9uLAogIHJldHJ5OgogCWZpcnN0ID0gMDsKIAlmb3JfZWFjaF9kcGFfcmVzb3VyY2UobmRkLCBy
ZXMpIHsKLQkJc3RydWN0IHJlc291cmNlICpuZXh0ID0gcmVzLT5zaWJsaW5nLCAqbmV3X3JlcyA9
IE5VTEw7CisJCXN0cnVjdCByZXNvdXJjZSAqbmV4dCA9IHJlc291cmNlX3NpYmxpbmcocmVzKSwg
Km5ld19yZXMgPSBOVUxMOwogCQlyZXNvdXJjZV9zaXplX3QgYWxsb2NhdGUsIGF2YWlsYWJsZSA9
IDA7CiAJCWVudW0gYWxsb2NfbG9jIGxvYyA9IEFMTE9DX0VSUjsKIAkJY29uc3QgY2hhciAqYWN0
aW9uOwpAQCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyByZXNvdXJjZV9zaXplX3Qgc2Nhbl9hbGxv
Y2F0ZShzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24sCiAJICogYW4gaW5pdGlhbCAicG1lbS1y
ZXNlcnZlIHBhc3MiLiAgT25seSBkbyBhbiBpbml0aWFsIEJMSyBhbGxvY2F0aW9uCiAJICogd2hl
biBub25lIG9mIHRoZSBEUEEgc3BhY2UgaXMgcmVzZXJ2ZWQuCiAJICovCi0JaWYgKChpc19wbWVt
IHx8ICFuZGQtPmRwYS5jaGlsZCkgJiYgbiA9PSB0b19hbGxvY2F0ZSkKKwlpZiAoKGlzX3BtZW0g
fHwgbGlzdF9lbXB0eSgmbmRkLT5kcGEuY2hpbGQpKSAmJiBuID09IHRvX2FsbG9jYXRlKQogCQly
ZXR1cm4gaW5pdF9kcGFfYWxsb2NhdGlvbihsYWJlbF9pZCwgbmRfcmVnaW9uLCBuZF9tYXBwaW5n
LCBuKTsKIAlyZXR1cm4gbjsKIH0KQEAgLTc3OSw3ICs3NzksNyBAQCBzdGF0aWMgaW50IG1lcmdl
X2RwYShzdHJ1Y3QgbmRfcmVnaW9uICpuZF9yZWdpb24sCiAgcmV0cnk6CiAJZm9yX2VhY2hfZHBh
X3Jlc291cmNlKG5kZCwgcmVzKSB7CiAJCWludCByYzsKLQkJc3RydWN0IHJlc291cmNlICpuZXh0
ID0gcmVzLT5zaWJsaW5nOworCQlzdHJ1Y3QgcmVzb3VyY2UgKm5leHQgPSByZXNvdXJjZV9zaWJs
aW5nKHJlcyk7CiAJCXJlc291cmNlX3NpemVfdCBlbmQgPSByZXMtPnN0YXJ0ICsgcmVzb3VyY2Vf
c2l6ZShyZXMpOwogCiAJCWlmICghbmV4dCB8fCBzdHJjbXAocmVzLT5uYW1lLCBsYWJlbF9pZC0+
aWQpICE9IDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL25kLmggYi9kcml2ZXJzL252ZGlt
bS9uZC5oCmluZGV4IDMyZTAzNjRiNDhiOS4uZGE3ZGExNWUwM2U3IDEwMDY0NAotLS0gYS9kcml2
ZXJzL252ZGltbS9uZC5oCisrKyBiL2RyaXZlcnMvbnZkaW1tL25kLmgKQEAgLTEwMiwxMSArMTAy
LDEwIEBAIHVuc2lnbmVkIHNpemVvZl9uYW1lc3BhY2VfbGFiZWwoc3RydWN0IG52ZGltbV9kcnZk
YXRhICpuZGQpOwogCQkodW5zaWduZWQgbG9uZyBsb25nKSAocmVzID8gcmVzLT5zdGFydCA6IDAp
LCAjI2FyZykKIAogI2RlZmluZSBmb3JfZWFjaF9kcGFfcmVzb3VyY2UobmRkLCByZXMpIFwKLQlm
b3IgKHJlcyA9IChuZGQpLT5kcGEuY2hpbGQ7IHJlczsgcmVzID0gcmVzLT5zaWJsaW5nKQorCWxp
c3RfZm9yX2VhY2hfZW50cnkocmVzLCAmKG5kZCktPmRwYS5jaGlsZCwgc2libGluZykKIAogI2Rl
ZmluZSBmb3JfZWFjaF9kcGFfcmVzb3VyY2Vfc2FmZShuZGQsIHJlcywgbmV4dCkgXAotCWZvciAo
cmVzID0gKG5kZCktPmRwYS5jaGlsZCwgbmV4dCA9IHJlcyA/IHJlcy0+c2libGluZyA6IE5VTEw7
IFwKLQkJCXJlczsgcmVzID0gbmV4dCwgbmV4dCA9IG5leHQgPyBuZXh0LT5zaWJsaW5nIDogTlVM
TCkKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVzLCBuZXh0LCAmKG5kZCktPmRwYS5jaGls
ZCwgc2libGluZykKIAogc3RydWN0IG5kX3BlcmNwdV9sYW5lIHsKIAlpbnQgY291bnQ7CmRpZmYg
LS1naXQgYS9kcml2ZXJzL29mL2FkZHJlc3MuYyBiL2RyaXZlcnMvb2YvYWRkcmVzcy5jCmluZGV4
IDUzMzQ5OTEyYWM3NS4uZTJlMjU3MTlhYjUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL29mL2FkZHJl
c3MuYworKysgYi9kcml2ZXJzL29mL2FkZHJlc3MuYwpAQCAtMzMwLDcgKzMzMCw5IEBAIGludCBv
Zl9wY2lfcmFuZ2VfdG9fcmVzb3VyY2Uoc3RydWN0IG9mX3BjaV9yYW5nZSAqcmFuZ2UsCiB7CiAJ
aW50IGVycjsKIAlyZXMtPmZsYWdzID0gcmFuZ2UtPmZsYWdzOwotCXJlcy0+cGFyZW50ID0gcmVz
LT5jaGlsZCA9IHJlcy0+c2libGluZyA9IE5VTEw7CisJcmVzLT5wYXJlbnQgPSBOVUxMOworCUlO
SVRfTElTVF9IRUFEKCZyZXMtPmNoaWxkKTsKKwlJTklUX0xJU1RfSEVBRCgmcmVzLT5zaWJsaW5n
KTsKIAlyZXMtPm5hbWUgPSBucC0+ZnVsbF9uYW1lOwogCiAJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JF
U09VUkNFX0lPKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcmlzYy9sYmFfcGNpLmMgYi9kcml2
ZXJzL3BhcmlzYy9sYmFfcGNpLmMKaW5kZXggNjliZDk4NDIxZWIxLi43NDgyYmRmZDE5NTkgMTAw
NjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL2xiYV9wY2kuYworKysgYi9kcml2ZXJzL3BhcmlzYy9s
YmFfcGNpLmMKQEAgLTE3MCw4ICsxNzAsOCBAQCBsYmFfZHVtcF9yZXMoc3RydWN0IHJlc291cmNl
ICpyLCBpbnQgZCkKIAlmb3IgKGkgPSBkOyBpIDsgLS1pKSBwcmludGsoIiAiKTsKIAlwcmludGso
S0VSTl9ERUJVRyAiJXAgWyVseCwlbHhdLyVseFxuIiwgciwKIAkJKGxvbmcpci0+c3RhcnQsIChs
b25nKXItPmVuZCwgci0+ZmxhZ3MpOwotCWxiYV9kdW1wX3JlcyhyLT5jaGlsZCwgZCsyKTsKLQls
YmFfZHVtcF9yZXMoci0+c2libGluZywgZCk7CisJbGJhX2R1bXBfcmVzKHJlc291cmNlX2ZpcnN0
X2NoaWxkKCZyLT5jaGlsZCksIGQrMik7CisJbGJhX2R1bXBfcmVzKHJlc291cmNlX3NpYmxpbmco
ciksIGQpOwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMg
Yi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jCmluZGV4IDk0MmI2NGZjN2YxZi4uZTNhY2Uy
MDM0NWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jCisrKyBiL2Ry
aXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMKQEAgLTU0MiwxNCArNTQyLDE0IEBAIHN0YXRpYyBz
dHJ1Y3QgcGNpX29wcyB2bWRfb3BzID0gewogCiBzdGF0aWMgdm9pZCB2bWRfYXR0YWNoX3Jlc291
cmNlcyhzdHJ1Y3Qgdm1kX2RldiAqdm1kKQogewotCXZtZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVN
QkFSMV0uY2hpbGQgPSAmdm1kLT5yZXNvdXJjZXNbMV07Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZN
RF9NRU1CQVIyXS5jaGlsZCA9ICZ2bWQtPnJlc291cmNlc1syXTsKKwlsaXN0X2FkZCgmdm1kLT5y
ZXNvdXJjZXNbMV0uc2libGluZywgJnZtZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hp
bGQpOworCWxpc3RfYWRkKCZ2bWQtPnJlc291cmNlc1syXS5zaWJsaW5nLCAmdm1kLT5kZXYtPnJl
c291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHZtZF9kZXRhY2hf
cmVzb3VyY2VzKHN0cnVjdCB2bWRfZGV2ICp2bWQpCiB7Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZN
RF9NRU1CQVIxXS5jaGlsZCA9IE5VTEw7Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIy
XS5jaGlsZCA9IE5VTEw7CisJSU5JVF9MSVNUX0hFQUQoJnZtZC0+ZGV2LT5yZXNvdXJjZVtWTURf
TUVNQkFSMV0uY2hpbGQpOworCUlOSVRfTElTVF9IRUFEKCZ2bWQtPmRldi0+cmVzb3VyY2VbVk1E
X01FTUJBUjJdLmNoaWxkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Byb2Jl
LmMgYi9kcml2ZXJzL3BjaS9wcm9iZS5jCmluZGV4IGFjODc2ZTMyZGU0Yi4uOTYyNGRkMWRmZDQ5
IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wcm9iZS5jCisrKyBiL2RyaXZlcnMvcGNpL3Byb2Jl
LmMKQEAgLTU5LDYgKzU5LDggQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqZ2V0X3BjaV9kb21h
aW5fYnVzbl9yZXMoaW50IGRvbWFpbl9ucikKIAlyLT5yZXMuc3RhcnQgPSAwOwogCXItPnJlcy5l
bmQgPSAweGZmOwogCXItPnJlcy5mbGFncyA9IElPUkVTT1VSQ0VfQlVTIHwgSU9SRVNPVVJDRV9Q
Q0lfRklYRUQ7CisJSU5JVF9MSVNUX0hFQUQoJnItPnJlcy5jaGlsZCk7CisJSU5JVF9MSVNUX0hF
QUQoJnItPnJlcy5zaWJsaW5nKTsKIAogCWxpc3RfYWRkX3RhaWwoJnItPmxpc3QsICZwY2lfZG9t
YWluX2J1c25fcmVzX2xpc3QpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMu
YyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCmluZGV4IDc5YjE4MjRlODNiNC4uOGU2ODVhZjg5
MzhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYworKysgYi9kcml2ZXJzL3Bj
aS9zZXR1cC1idXMuYwpAQCAtMjEwNyw3ICsyMTA3LDcgQEAgaW50IHBjaV9yZWFzc2lnbl9icmlk
Z2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpicmlkZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkK
IAkJCQljb250aW51ZTsKIAogCQkJLyogSWdub3JlIEJBUnMgd2hpY2ggYXJlIHN0aWxsIGluIHVz
ZSAqLwotCQkJaWYgKHJlcy0+Y2hpbGQpCisJCQlpZiAoIWxpc3RfZW1wdHkoJnJlcy0+Y2hpbGQp
KQogCQkJCWNvbnRpbnVlOwogCiAJCQlyZXQgPSBhZGRfdG9fbGlzdCgmc2F2ZWQsIGJyaWRnZSwg
cmVzLCAwLCAwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW9wb3J0LmggYi9pbmNsdWRl
L2xpbnV4L2lvcG9ydC5oCmluZGV4IGRmZGNkMGJmZTU0ZS4uYjc0NTZhZTg4OWRkIDEwMDY0NAot
LS0gYS9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCisrKyBiL2luY2x1ZGUvbGludXgvaW9wb3J0LmgK
QEAgLTEyLDYgKzEyLDcgQEAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAjaW5jbHVkZSA8bGludXgv
Y29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2xp
c3QuaD4KIC8qCiAgKiBSZXNvdXJjZXMgYXJlIHRyZWUtbGlrZSwgYWxsb3dpbmcKICAqIG5lc3Rp
bmcgZXRjLi4KQEAgLTIyLDcgKzIzLDggQEAgc3RydWN0IHJlc291cmNlIHsKIAljb25zdCBjaGFy
ICpuYW1lOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgbG9uZyBkZXNjOwotCXN0
cnVjdCByZXNvdXJjZSAqcGFyZW50LCAqc2libGluZywgKmNoaWxkOworCXN0cnVjdCBsaXN0X2hl
YWQgY2hpbGQsIHNpYmxpbmc7CisJc3RydWN0IHJlc291cmNlICpwYXJlbnQ7CiB9OwogCiAvKgpA
QCAtMjE2LDcgKzIxOCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCByZXNvdXJjZV9jb250YWlucyhz
dHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1Y3QgcmVzb3VyY2UgKnIyKQogCXJldHVybiByMS0+c3Rh
cnQgPD0gcjItPnN0YXJ0ICYmIHIxLT5lbmQgPj0gcjItPmVuZDsKIH0KIAotCiAvKiBDb252ZW5p
ZW5jZSBzaG9ydGhhbmQgd2l0aCBhbGxvY2F0aW9uICovCiAjZGVmaW5lIHJlcXVlc3RfcmVnaW9u
KHN0YXJ0LG4sbmFtZSkJCV9fcmVxdWVzdF9yZWdpb24oJmlvcG9ydF9yZXNvdXJjZSwgKHN0YXJ0
KSwgKG4pLCAobmFtZSksIDApCiAjZGVmaW5lIHJlcXVlc3RfbXV4ZWRfcmVnaW9uKHN0YXJ0LG4s
bmFtZSkJX19yZXF1ZXN0X3JlZ2lvbigmaW9wb3J0X3Jlc291cmNlLCAoc3RhcnQpLCAobiksIChu
YW1lKSwgSU9SRVNPVVJDRV9NVVhFRCkKQEAgLTI4Nyw2ICsyODgsMTggQEAgc3RhdGljIGlubGlu
ZSBib29sIHJlc291cmNlX292ZXJsYXBzKHN0cnVjdCByZXNvdXJjZSAqcjEsIHN0cnVjdCByZXNv
dXJjZSAqcjIpCiAgICAgICAgcmV0dXJuIChyMS0+c3RhcnQgPD0gcjItPmVuZCAmJiByMS0+ZW5k
ID49IHIyLT5zdGFydCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlc291cmNlICpyZXNv
dXJjZV9zaWJsaW5nKHN0cnVjdCByZXNvdXJjZSAqcmVzKQoreworCWlmIChyZXMtPnBhcmVudCAm
JiAhbGlzdF9pc19sYXN0KCZyZXMtPnNpYmxpbmcsICZyZXMtPnBhcmVudC0+Y2hpbGQpKQorCQly
ZXR1cm4gbGlzdF9uZXh0X2VudHJ5KHJlcywgc2libGluZyk7CisJcmV0dXJuIE5VTEw7Cit9CisK
K3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlc291cmNlICpyZXNvdXJjZV9maXJzdF9jaGlsZChzdHJ1
Y3QgbGlzdF9oZWFkICpoZWFkKQoreworCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwo
aGVhZCwgc3RydWN0IHJlc291cmNlLCBzaWJsaW5nKTsKK30KKwogCiAjZW5kaWYgLyogX19BU1NF
TUJMWV9fICovCiAjZW5kaWYJLyogX0xJTlVYX0lPUE9SVF9IICovCmRpZmYgLS1naXQgYS9rZXJu
ZWwvcmVzb3VyY2UuYyBiL2tlcm5lbC9yZXNvdXJjZS5jCmluZGV4IGQxY2JmNGI1MGUxNy4uNmQ2
NDdhMzgyNGIxIDEwMDY0NAotLS0gYS9rZXJuZWwvcmVzb3VyY2UuYworKysgYi9rZXJuZWwvcmVz
b3VyY2UuYwpAQCAtMzEsNiArMzEsOCBAQCBzdHJ1Y3QgcmVzb3VyY2UgaW9wb3J0X3Jlc291cmNl
ID0gewogCS5zdGFydAk9IDAsCiAJLmVuZAk9IElPX1NQQUNFX0xJTUlULAogCS5mbGFncwk9IElP
UkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcgPSBMSVNUX0hFQURfSU5JVChpb3BvcnRfcmVzb3VyY2Uu
c2libGluZyksCisJLmNoaWxkICA9IExJU1RfSEVBRF9JTklUKGlvcG9ydF9yZXNvdXJjZS5jaGls
ZCksCiB9OwogRVhQT1JUX1NZTUJPTChpb3BvcnRfcmVzb3VyY2UpOwogCkBAIC0zOSw2ICs0MSw4
IEBAIHN0cnVjdCByZXNvdXJjZSBpb21lbV9yZXNvdXJjZSA9IHsKIAkuc3RhcnQJPSAwLAogCS5l
bmQJPSAtMSwKIAkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwkuc2libGluZyA9IExJU1RfSEVB
RF9JTklUKGlvbWVtX3Jlc291cmNlLnNpYmxpbmcpLAorCS5jaGlsZCAgPSBMSVNUX0hFQURfSU5J
VChpb21lbV9yZXNvdXJjZS5jaGlsZCksCiB9OwogRVhQT1JUX1NZTUJPTChpb21lbV9yZXNvdXJj
ZSk7CiAKQEAgLTU3LDIwICs2MSwyMCBAQCBzdGF0aWMgREVGSU5FX1JXTE9DSyhyZXNvdXJjZV9s
b2NrKTsKICAqIGJ5IGJvb3QgbWVtIGFmdGVyIHRoZSBzeXN0ZW0gaXMgdXAuIFNvIGZvciByZXVz
aW5nIHRoZSByZXNvdXJjZSBlbnRyeQogICogd2UgbmVlZCB0byByZW1lbWJlciB0aGUgcmVzb3Vy
Y2UuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKmJvb3RtZW1fcmVzb3VyY2VfZnJlZTsK
K3N0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkIGJvb3RtZW1fcmVzb3VyY2VfZnJlZSA9IExJU1RfSEVB
RF9JTklUKGJvb3RtZW1fcmVzb3VyY2VfZnJlZSk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGJv
b3RtZW1fcmVzb3VyY2VfbG9jayk7CiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKm5leHRfcmVz
b3VyY2Uoc3RydWN0IHJlc291cmNlICpwLCBib29sIHNpYmxpbmdfb25seSkKIHsKIAkvKiBDYWxs
ZXIgd2FudHMgdG8gdHJhdmVyc2UgdGhyb3VnaCBzaWJsaW5ncyBvbmx5ICovCiAJaWYgKHNpYmxp
bmdfb25seSkKLQkJcmV0dXJuIHAtPnNpYmxpbmc7CisJCXJldHVybiByZXNvdXJjZV9zaWJsaW5n
KHApOwogCi0JaWYgKHAtPmNoaWxkKQotCQlyZXR1cm4gcC0+Y2hpbGQ7Ci0Jd2hpbGUgKCFwLT5z
aWJsaW5nICYmIHAtPnBhcmVudCkKKwlpZiAoIWxpc3RfZW1wdHkoJnAtPmNoaWxkKSkKKwkJcmV0
dXJuIHJlc291cmNlX2ZpcnN0X2NoaWxkKCZwLT5jaGlsZCk7CisJd2hpbGUgKCFyZXNvdXJjZV9z
aWJsaW5nKHApICYmIHAtPnBhcmVudCkKIAkJcCA9IHAtPnBhcmVudDsKLQlyZXR1cm4gcC0+c2li
bGluZzsKKwlyZXR1cm4gcmVzb3VyY2Vfc2libGluZyhwKTsKIH0KIAogc3RhdGljIHZvaWQgKnJf
bmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKQpAQCAtOTAsNyAr
OTQsNyBAQCBzdGF0aWMgdm9pZCAqcl9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAq
cG9zKQogCXN0cnVjdCByZXNvdXJjZSAqcCA9IFBERV9EQVRBKGZpbGVfaW5vZGUobS0+ZmlsZSkp
OwogCWxvZmZfdCBsID0gMDsKIAlyZWFkX2xvY2soJnJlc291cmNlX2xvY2spOwotCWZvciAocCA9
IHAtPmNoaWxkOyBwICYmIGwgPCAqcG9zOyBwID0gcl9uZXh0KG0sIHAsICZsKSkKKwlmb3IgKHAg
PSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcC0+Y2hpbGQpOyBwICYmIGwgPCAqcG9zOyBwID0gcl9u
ZXh0KG0sIHAsICZsKSkKIAkJOwogCXJldHVybiBwOwogfQpAQCAtMTUzLDggKzE1Nyw3IEBAIHN0
YXRpYyB2b2lkIGZyZWVfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyZXMpCiAKIAlpZiAoIVBh
Z2VTbGFiKHZpcnRfdG9faGVhZF9wYWdlKHJlcykpKSB7CiAJCXNwaW5fbG9jaygmYm9vdG1lbV9y
ZXNvdXJjZV9sb2NrKTsKLQkJcmVzLT5zaWJsaW5nID0gYm9vdG1lbV9yZXNvdXJjZV9mcmVlOwot
CQlib290bWVtX3Jlc291cmNlX2ZyZWUgPSByZXM7CisJCWxpc3RfYWRkKCZyZXMtPnNpYmxpbmcs
ICZib290bWVtX3Jlc291cmNlX2ZyZWUpOwogCQlzcGluX3VubG9jaygmYm9vdG1lbV9yZXNvdXJj
ZV9sb2NrKTsKIAl9IGVsc2UgewogCQlrZnJlZShyZXMpOwpAQCAtMTY2LDEwICsxNjksOSBAQCBz
dGF0aWMgc3RydWN0IHJlc291cmNlICphbGxvY19yZXNvdXJjZShnZnBfdCBmbGFncykKIAlzdHJ1
Y3QgcmVzb3VyY2UgKnJlcyA9IE5VTEw7CiAKIAlzcGluX2xvY2soJmJvb3RtZW1fcmVzb3VyY2Vf
bG9jayk7Ci0JaWYgKGJvb3RtZW1fcmVzb3VyY2VfZnJlZSkgewotCQlyZXMgPSBib290bWVtX3Jl
c291cmNlX2ZyZWU7Ci0JCWJvb3RtZW1fcmVzb3VyY2VfZnJlZSA9IHJlcy0+c2libGluZzsKLQl9
CisJcmVzID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJmJvb3RtZW1fcmVzb3VyY2VfZnJlZSk7CisJ
aWYgKHJlcykKKwkJbGlzdF9kZWwoJnJlcy0+c2libGluZyk7CiAJc3Bpbl91bmxvY2soJmJvb3Rt
ZW1fcmVzb3VyY2VfbG9jayk7CiAKIAlpZiAocmVzKQpAQCAtMTc3LDYgKzE3OSw4IEBAIHN0YXRp
YyBzdHJ1Y3QgcmVzb3VyY2UgKmFsbG9jX3Jlc291cmNlKGdmcF90IGZsYWdzKQogCWVsc2UKIAkJ
cmVzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSwgZmxhZ3MpOwogCisJSU5JVF9M
SVNUX0hFQUQoJnJlcy0+Y2hpbGQpOworCUlOSVRfTElTVF9IRUFEKCZyZXMtPnNpYmxpbmcpOwog
CXJldHVybiByZXM7CiB9CiAKQEAgLTE4NSw3ICsxODksNyBAQCBzdGF0aWMgc3RydWN0IHJlc291
cmNlICogX19yZXF1ZXN0X3Jlc291cmNlKHN0cnVjdCByZXNvdXJjZSAqcm9vdCwgc3RydWN0IHJl
c291cgogewogCXJlc291cmNlX3NpemVfdCBzdGFydCA9IG5ldy0+c3RhcnQ7CiAJcmVzb3VyY2Vf
c2l6ZV90IGVuZCA9IG5ldy0+ZW5kOwotCXN0cnVjdCByZXNvdXJjZSAqdG1wLCAqKnA7CisJc3Ry
dWN0IHJlc291cmNlICp0bXA7CiAKIAlpZiAoZW5kIDwgc3RhcnQpCiAJCXJldHVybiByb290OwpA
QCAtMTkzLDY0ICsxOTcsNjIgQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqIF9fcmVxdWVzdF9y
ZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHN0cnVjdCByZXNvdXIKIAkJcmV0dXJuIHJv
b3Q7CiAJaWYgKGVuZCA+IHJvb3QtPmVuZCkKIAkJcmV0dXJuIHJvb3Q7Ci0JcCA9ICZyb290LT5j
aGlsZDsKLQlmb3IgKDs7KSB7Ci0JCXRtcCA9ICpwOwotCQlpZiAoIXRtcCB8fCB0bXAtPnN0YXJ0
ID4gZW5kKSB7Ci0JCQluZXctPnNpYmxpbmcgPSB0bXA7Ci0JCQkqcCA9IG5ldzsKKworCWlmIChs
aXN0X2VtcHR5KCZyb290LT5jaGlsZCkpIHsKKwkJbGlzdF9hZGQoJm5ldy0+c2libGluZywgJnJv
b3QtPmNoaWxkKTsKKwkJbmV3LT5wYXJlbnQgPSByb290OworCQlJTklUX0xJU1RfSEVBRCgmbmV3
LT5jaGlsZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkodG1w
LCAmcm9vdC0+Y2hpbGQsIHNpYmxpbmcpIHsKKwkJaWYgKHRtcC0+c3RhcnQgPiBlbmQpIHsKKwkJ
CWxpc3RfYWRkKCZuZXctPnNpYmxpbmcsIHRtcC0+c2libGluZy5wcmV2KTsKIAkJCW5ldy0+cGFy
ZW50ID0gcm9vdDsKKwkJCUlOSVRfTElTVF9IRUFEKCZuZXctPmNoaWxkKTsKIAkJCXJldHVybiBO
VUxMOwogCQl9Ci0JCXAgPSAmdG1wLT5zaWJsaW5nOwogCQlpZiAodG1wLT5lbmQgPCBzdGFydCkK
IAkJCWNvbnRpbnVlOwogCQlyZXR1cm4gdG1wOwogCX0KKworCWxpc3RfYWRkX3RhaWwoJm5ldy0+
c2libGluZywgJnJvb3QtPmNoaWxkKTsKKwluZXctPnBhcmVudCA9IHJvb3Q7CisJSU5JVF9MSVNU
X0hFQUQoJm5ldy0+Y2hpbGQpOworCXJldHVybiBOVUxMOwogfQogCiBzdGF0aWMgaW50IF9fcmVs
ZWFzZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKm9sZCwgYm9vbCByZWxlYXNlX2NoaWxkKQog
ewotCXN0cnVjdCByZXNvdXJjZSAqdG1wLCAqKnAsICpjaGQ7CisJc3RydWN0IHJlc291cmNlICp0
bXAsICpuZXh0LCAqY2hkOwogCi0JcCA9ICZvbGQtPnBhcmVudC0+Y2hpbGQ7Ci0JZm9yICg7Oykg
ewotCQl0bXAgPSAqcDsKLQkJaWYgKCF0bXApCi0JCQlicmVhazsKKwlsaXN0X2Zvcl9lYWNoX2Vu
dHJ5X3NhZmUodG1wLCBuZXh0LCAmb2xkLT5wYXJlbnQtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlm
ICh0bXAgPT0gb2xkKSB7Ci0JCQlpZiAocmVsZWFzZV9jaGlsZCB8fCAhKHRtcC0+Y2hpbGQpKSB7
Ci0JCQkJKnAgPSB0bXAtPnNpYmxpbmc7CisJCQlpZiAocmVsZWFzZV9jaGlsZCB8fCBsaXN0X2Vt
cHR5KCZ0bXAtPmNoaWxkKSkgeworCQkJCWxpc3RfZGVsKCZ0bXAtPnNpYmxpbmcpOwogCQkJfSBl
bHNlIHsKLQkJCQlmb3IgKGNoZCA9IHRtcC0+Y2hpbGQ7OyBjaGQgPSBjaGQtPnNpYmxpbmcpIHsK
KwkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoZCwgJnRtcC0+Y2hpbGQsIHNpYmxpbmcpCiAJCQkJ
CWNoZC0+cGFyZW50ID0gdG1wLT5wYXJlbnQ7Ci0JCQkJCWlmICghKGNoZC0+c2libGluZykpCi0J
CQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJKnAgPSB0bXAtPmNoaWxkOwotCQkJCWNoZC0+c2libGlu
ZyA9IHRtcC0+c2libGluZzsKKwkJCQlsaXN0X3NwbGljZSgmdG1wLT5jaGlsZCwgdG1wLT5zaWJs
aW5nLnByZXYpOworCQkJCWxpc3RfZGVsKCZ0bXAtPnNpYmxpbmcpOwogCQkJfQorCiAJCQlvbGQt
PnBhcmVudCA9IE5VTEw7CiAJCQlyZXR1cm4gMDsKIAkJfQotCQlwID0gJnRtcC0+c2libGluZzsK
IAl9CiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKIHN0YXRpYyB2b2lkIF9fcmVsZWFzZV9jaGlsZF9y
ZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpyKQogewotCXN0cnVjdCByZXNvdXJjZSAqdG1wLCAq
cDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnRtcCwgKm5leHQ7CiAJcmVzb3VyY2Vfc2l6ZV90IHNpemU7
CiAKLQlwID0gci0+Y2hpbGQ7Ci0Jci0+Y2hpbGQgPSBOVUxMOwotCXdoaWxlIChwKSB7Ci0JCXRt
cCA9IHA7Ci0JCXAgPSBwLT5zaWJsaW5nOwotCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRt
cCwgbmV4dCwgJnItPmNoaWxkLCBzaWJsaW5nKSB7CiAJCXRtcC0+cGFyZW50ID0gTlVMTDsKLQkJ
dG1wLT5zaWJsaW5nID0gTlVMTDsKKwkJbGlzdF9kZWxfaW5pdCgmdG1wLT5zaWJsaW5nKTsKIAkJ
X19yZWxlYXNlX2NoaWxkX3Jlc291cmNlcyh0bXApOwogCiAJCXByaW50ayhLRVJOX0RFQlVHICJy
ZWxlYXNlIGNoaWxkIHJlc291cmNlICVwUlxuIiwgdG1wKTsKQEAgLTI1OSw2ICsyNjEsOCBAQCBz
dGF0aWMgdm9pZCBfX3JlbGVhc2VfY2hpbGRfcmVzb3VyY2VzKHN0cnVjdCByZXNvdXJjZSAqcikK
IAkJdG1wLT5zdGFydCA9IDA7CiAJCXRtcC0+ZW5kID0gc2l6ZSAtIDE7CiAJfQorCisJSU5JVF9M
SVNUX0hFQUQoJnRtcC0+Y2hpbGQpOwogfQogCiB2b2lkIHJlbGVhc2VfY2hpbGRfcmVzb3VyY2Vz
KHN0cnVjdCByZXNvdXJjZSAqcikKQEAgLTM0Myw3ICszNDcsOCBAQCBzdGF0aWMgaW50IGZpbmRf
bmV4dF9pb21lbV9yZXMoc3RydWN0IHJlc291cmNlICpyZXMsIHVuc2lnbmVkIGxvbmcgZGVzYywK
IAogCXJlYWRfbG9jaygmcmVzb3VyY2VfbG9jayk7CiAKLQlmb3IgKHAgPSBpb21lbV9yZXNvdXJj
ZS5jaGlsZDsgcDsgcCA9IG5leHRfcmVzb3VyY2UocCwgc2libGluZ19vbmx5KSkgeworCWZvciAo
cCA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZpb21lbV9yZXNvdXJjZS5jaGlsZCk7IHA7CisJCQlw
ID0gbmV4dF9yZXNvdXJjZShwLCBzaWJsaW5nX29ubHkpKSB7CiAJCWlmICgocC0+ZmxhZ3MgJiBy
ZXMtPmZsYWdzKSAhPSByZXMtPmZsYWdzKQogCQkJY29udGludWU7CiAJCWlmICgoZGVzYyAhPSBJ
T1JFU19ERVNDX05PTkUpICYmIChkZXNjICE9IHAtPmRlc2MpKQpAQCAtNTMyLDcgKzUzNyw3IEBA
IGludCByZWdpb25faW50ZXJzZWN0cyhyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHNpemVfdCBzaXpl
LCB1bnNpZ25lZCBsb25nIGZsYWdzLAogCXN0cnVjdCByZXNvdXJjZSAqcDsKIAogCXJlYWRfbG9j
aygmcmVzb3VyY2VfbG9jayk7Ci0JZm9yIChwID0gaW9tZW1fcmVzb3VyY2UuY2hpbGQ7IHAgOyBw
ID0gcC0+c2libGluZykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmlvbWVtX3Jlc291cmNl
LmNoaWxkLCBzaWJsaW5nKSB7CiAJCWJvb2wgaXNfdHlwZSA9ICgoKHAtPmZsYWdzICYgZmxhZ3Mp
ID09IGZsYWdzKSAmJgogCQkJCSgoZGVzYyA9PSBJT1JFU19ERVNDX05PTkUpIHx8CiAJCQkJIChk
ZXNjID09IHAtPmRlc2MpKSk7CkBAIC01ODYsNyArNTkxLDcgQEAgc3RhdGljIGludCBfX2ZpbmRf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm9sZCwKIAkJ
CSByZXNvdXJjZV9zaXplX3QgIHNpemUsCiAJCQkgc3RydWN0IHJlc291cmNlX2NvbnN0cmFpbnQg
KmNvbnN0cmFpbnQpCiB7Ci0Jc3RydWN0IHJlc291cmNlICp0aGlzID0gcm9vdC0+Y2hpbGQ7CisJ
c3RydWN0IHJlc291cmNlICp0aGlzID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnJvb3QtPmNoaWxk
KTsKIAlzdHJ1Y3QgcmVzb3VyY2UgdG1wID0gKm5ldywgYXZhaWwsIGFsbG9jOwogCiAJdG1wLnN0
YXJ0ID0gcm9vdC0+c3RhcnQ7CkBAIC01OTYsNyArNjAxLDcgQEAgc3RhdGljIGludCBfX2ZpbmRf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm9sZCwKIAkg
Ki8KIAlpZiAodGhpcyAmJiB0aGlzLT5zdGFydCA9PSByb290LT5zdGFydCkgewogCQl0bXAuc3Rh
cnQgPSAodGhpcyA9PSBvbGQpID8gb2xkLT5zdGFydCA6IHRoaXMtPmVuZCArIDE7Ci0JCXRoaXMg
PSB0aGlzLT5zaWJsaW5nOworCQl0aGlzID0gcmVzb3VyY2Vfc2libGluZyh0aGlzKTsKIAl9CiAJ
Zm9yKDs7KSB7CiAJCWlmICh0aGlzKQpAQCAtNjMyLDcgKzYzNyw3IEBAIG5leHQ6CQlpZiAoIXRo
aXMgfHwgdGhpcy0+ZW5kID09IHJvb3QtPmVuZCkKIAogCQlpZiAodGhpcyAhPSBvbGQpCiAJCQl0
bXAuc3RhcnQgPSB0aGlzLT5lbmQgKyAxOwotCQl0aGlzID0gdGhpcy0+c2libGluZzsKKwkJdGhp
cyA9IHJlc291cmNlX3NpYmxpbmcodGhpcyk7CiAJfQogCXJldHVybiAtRUJVU1k7CiB9CkBAIC02
NzYsNyArNjgxLDcgQEAgc3RhdGljIGludCByZWFsbG9jYXRlX3Jlc291cmNlKHN0cnVjdCByZXNv
dXJjZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpvbGQsCiAJCWdvdG8gb3V0OwogCX0KIAotCWlm
IChvbGQtPmNoaWxkKSB7CisJaWYgKCFsaXN0X2VtcHR5KCZvbGQtPmNoaWxkKSkgewogCQllcnIg
PSAtRUJVU1k7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTc1Nyw3ICs3NjIsNyBAQCBzdHJ1Y3QgcmVz
b3VyY2UgKmxvb2t1cF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHJlc291cmNlX3Np
emVfdCBzdGFydCkKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAogCXJlYWRfbG9jaygmcmVzb3Vy
Y2VfbG9jayk7Ci0JZm9yIChyZXMgPSByb290LT5jaGlsZDsgcmVzOyByZXMgPSByZXMtPnNpYmxp
bmcpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcywgJnJvb3QtPmNoaWxkLCBzaWJsaW5nKSB7
CiAJCWlmIChyZXMtPnN0YXJ0ID09IHN0YXJ0KQogCQkJYnJlYWs7CiAJfQpAQCAtNzkwLDMyICs3
OTUsMjcgQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqIF9faW5zZXJ0X3Jlc291cmNlKHN0cnVj
dCByZXNvdXJjZSAqcGFyZW50LCBzdHJ1Y3QgcmVzb3UKIAkJCWJyZWFrOwogCX0KIAotCWZvciAo
bmV4dCA9IGZpcnN0OyA7IG5leHQgPSBuZXh0LT5zaWJsaW5nKSB7CisJZm9yIChuZXh0ID0gZmly
c3Q7IDsgbmV4dCA9IHJlc291cmNlX3NpYmxpbmcobmV4dCkpIHsKIAkJLyogUGFydGlhbCBvdmVy
bGFwPyBCYWQsIGFuZCB1bmZpeGFibGUgKi8KIAkJaWYgKG5leHQtPnN0YXJ0IDwgbmV3LT5zdGFy
dCB8fCBuZXh0LT5lbmQgPiBuZXctPmVuZCkKIAkJCXJldHVybiBuZXh0OwotCQlpZiAoIW5leHQt
PnNpYmxpbmcpCisJCWlmICghcmVzb3VyY2Vfc2libGluZyhuZXh0KSkKIAkJCWJyZWFrOwotCQlp
ZiAobmV4dC0+c2libGluZy0+c3RhcnQgPiBuZXctPmVuZCkKKwkJaWYgKHJlc291cmNlX3NpYmxp
bmcobmV4dCktPnN0YXJ0ID4gbmV3LT5lbmQpCiAJCQlicmVhazsKIAl9Ci0KIAluZXctPnBhcmVu
dCA9IHBhcmVudDsKLQluZXctPnNpYmxpbmcgPSBuZXh0LT5zaWJsaW5nOwotCW5ldy0+Y2hpbGQg
PSBmaXJzdDsKKwlsaXN0X2FkZCgmbmV3LT5zaWJsaW5nLCAmbmV4dC0+c2libGluZyk7CisJSU5J
VF9MSVNUX0hFQUQoJm5ldy0+Y2hpbGQpOwogCi0JbmV4dC0+c2libGluZyA9IE5VTEw7Ci0JZm9y
IChuZXh0ID0gZmlyc3Q7IG5leHQ7IG5leHQgPSBuZXh0LT5zaWJsaW5nKQorCS8qCisJICogRnJv
bSBmaXJzdCB0byBuZXh0LCB0aGV5IGFsbCBmYWxsIGludG8gbmV3J3MgcmVnaW9uLCBzbyBjaGFu
Z2UgdGhlbQorCSAqIGFzIG5ldydzIGNoaWxkcmVuLgorCSAqLworCWxpc3RfY3V0X3Bvc2l0aW9u
KCZuZXctPmNoaWxkLCBmaXJzdC0+c2libGluZy5wcmV2LCAmbmV4dC0+c2libGluZyk7CisJbGlz
dF9mb3JfZWFjaF9lbnRyeShuZXh0LCAmbmV3LT5jaGlsZCwgc2libGluZykKIAkJbmV4dC0+cGFy
ZW50ID0gbmV3OwogCi0JaWYgKHBhcmVudC0+Y2hpbGQgPT0gZmlyc3QpIHsKLQkJcGFyZW50LT5j
aGlsZCA9IG5ldzsKLQl9IGVsc2UgewotCQluZXh0ID0gcGFyZW50LT5jaGlsZDsKLQkJd2hpbGUg
KG5leHQtPnNpYmxpbmcgIT0gZmlyc3QpCi0JCQluZXh0ID0gbmV4dC0+c2libGluZzsKLQkJbmV4
dC0+c2libGluZyA9IG5ldzsKLQl9CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTkzNywxOSArOTM3
LDE3IEBAIHN0YXRpYyBpbnQgX19hZGp1c3RfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyZXMs
IHJlc291cmNlX3NpemVfdCBzdGFydCwKIAlpZiAoKHN0YXJ0IDwgcGFyZW50LT5zdGFydCkgfHwg
KGVuZCA+IHBhcmVudC0+ZW5kKSkKIAkJZ290byBvdXQ7CiAKLQlpZiAocmVzLT5zaWJsaW5nICYm
IChyZXMtPnNpYmxpbmctPnN0YXJ0IDw9IGVuZCkpCisJaWYgKHJlc291cmNlX3NpYmxpbmcocmVz
KSAmJiAocmVzb3VyY2Vfc2libGluZyhyZXMpLT5zdGFydCA8PSBlbmQpKQogCQlnb3RvIG91dDsK
IAotCXRtcCA9IHBhcmVudC0+Y2hpbGQ7Ci0JaWYgKHRtcCAhPSByZXMpIHsKLQkJd2hpbGUgKHRt
cC0+c2libGluZyAhPSByZXMpCi0JCQl0bXAgPSB0bXAtPnNpYmxpbmc7CisJaWYgKHJlcy0+c2li
bGluZy5wcmV2ICE9ICZwYXJlbnQtPmNoaWxkKSB7CisJCXRtcCA9IGxpc3RfcHJldl9lbnRyeShy
ZXMsIHNpYmxpbmcpOwogCQlpZiAoc3RhcnQgPD0gdG1wLT5lbmQpCiAJCQlnb3RvIG91dDsKIAl9
CiAKIHNraXA6Ci0JZm9yICh0bXAgPSByZXMtPmNoaWxkOyB0bXA7IHRtcCA9IHRtcC0+c2libGlu
ZykKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcCwgJnJlcy0+Y2hpbGQsIHNpYmxpbmcpCiAJCWlm
ICgodG1wLT5zdGFydCA8IHN0YXJ0KSB8fCAodG1wLT5lbmQgPiBlbmQpKQogCQkJZ290byBvdXQ7
CiAKQEAgLTk5MywyOCArOTkxLDMxIEBAIEVYUE9SVF9TWU1CT0woYWRqdXN0X3Jlc291cmNlKTsK
ICAqLwogaW50IHJlcGFyZW50X3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3Ry
dWN0IHJlc291cmNlICpyZXMpCiB7Ci0Jc3RydWN0IHJlc291cmNlICpwLCAqKnBwOwotCXN0cnVj
dCByZXNvdXJjZSAqKmZpcnN0cHAgPSBOVUxMOworCXN0cnVjdCByZXNvdXJjZSAqcCwgKmZpcnN0
ID0gTlVMTDsKIAotCWZvciAocHAgPSAmcGFyZW50LT5jaGlsZDsgKHAgPSAqcHApICE9IE5VTEw7
IHBwID0gJnAtPnNpYmxpbmcpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZwYXJlbnQtPmNo
aWxkLCBzaWJsaW5nKSB7CiAJCWlmIChwLT5lbmQgPCByZXMtPnN0YXJ0KQogCQkJY29udGludWU7
CiAJCWlmIChyZXMtPmVuZCA8IHAtPnN0YXJ0KQogCQkJYnJlYWs7CiAJCWlmIChwLT5zdGFydCA8
IHJlcy0+c3RhcnQgfHwgcC0+ZW5kID4gcmVzLT5lbmQpCiAJCQlyZXR1cm4gLUVOT1RTVVBQOwkv
KiBub3QgY29tcGxldGVseSBjb250YWluZWQgKi8KLQkJaWYgKGZpcnN0cHAgPT0gTlVMTCkKLQkJ
CWZpcnN0cHAgPSBwcDsKKwkJaWYgKGZpcnN0ID09IE5VTEwpCisJCQlmaXJzdCA9IHA7CiAJfQot
CWlmIChmaXJzdHBwID09IE5VTEwpCisJaWYgKGZpcnN0ID09IE5VTEwpCiAJCXJldHVybiAtRUNB
TkNFTEVEOyAvKiBkaWRuJ3QgZmluZCBhbnkgY29uZmxpY3RpbmcgZW50cmllcz8gKi8KIAlyZXMt
PnBhcmVudCA9IHBhcmVudDsKLQlyZXMtPmNoaWxkID0gKmZpcnN0cHA7Ci0JcmVzLT5zaWJsaW5n
ID0gKnBwOwotCSpmaXJzdHBwID0gcmVzOwotCSpwcCA9IE5VTEw7Ci0JZm9yIChwID0gcmVzLT5j
aGlsZDsgcCAhPSBOVUxMOyBwID0gcC0+c2libGluZykgewotCQlwLT5wYXJlbnQgPSByZXM7CisJ
bGlzdF9hZGQoJnJlcy0+c2libGluZywgcC0+c2libGluZy5wcmV2KTsKKwlJTklUX0xJU1RfSEVB
RCgmcmVzLT5jaGlsZCk7CisKKwkvKgorCSAqIEZyb20gZmlyc3QgdG8gcCdzIHByZXZpb3VzIHNp
YmxpbmcsIHRoZXkgYWxsIGZhbGwgaW50bworCSAqIHJlcydzIHJlZ2lvbiwgY2hhbmdlIHRoZW0g
YXMgcmVzJ3MgY2hpbGRyZW4uCisJICovCisJbGlzdF9jdXRfcG9zaXRpb24oJnJlcy0+Y2hpbGQs
IGZpcnN0LT5zaWJsaW5nLnByZXYsIHJlcy0+c2libGluZy5wcmV2KTsKKwlsaXN0X2Zvcl9lYWNo
X2VudHJ5KHAsICZyZXMtPmNoaWxkLCBzaWJsaW5nKSB7CisgICAgICAgICAgICAgICAgcC0+cGFy
ZW50ID0gcmVzOwogCQlwcl9kZWJ1ZygiUENJOiBSZXBhcmVudGVkICVzICVwUiB1bmRlciAlc1xu
IiwKIAkJCSBwLT5uYW1lLCBwLCByZXMtPm5hbWUpOwogCX0KQEAgLTEyMTMsMzQgKzEyMTQsMzIg
QEAgRVhQT1JUX1NZTUJPTChfX3JlcXVlc3RfcmVnaW9uKTsKIHZvaWQgX19yZWxlYXNlX3JlZ2lv
bihzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAogCQkJcmVz
b3VyY2Vfc2l6ZV90IG4pCiB7Ci0Jc3RydWN0IHJlc291cmNlICoqcDsKKwlzdHJ1Y3QgcmVzb3Vy
Y2UgKnJlczsKIAlyZXNvdXJjZV9zaXplX3QgZW5kOwogCi0JcCA9ICZwYXJlbnQtPmNoaWxkOwor
CXJlcyA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZwYXJlbnQtPmNoaWxkKTsKIAllbmQgPSBzdGFy
dCArIG4gLSAxOwogCiAJd3JpdGVfbG9jaygmcmVzb3VyY2VfbG9jayk7CiAKIAlmb3IgKDs7KSB7
Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gKnA7Ci0KIAkJaWYgKCFyZXMpCiAJCQlicmVhazsK
IAkJaWYgKHJlcy0+c3RhcnQgPD0gc3RhcnQgJiYgcmVzLT5lbmQgPj0gZW5kKSB7CiAJCQlpZiAo
IShyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9CVVNZKSkgewotCQkJCXAgPSAmcmVzLT5jaGlsZDsK
KwkJCQlyZXMgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcmVzLT5jaGlsZCk7CiAJCQkJY29udGlu
dWU7CiAJCQl9CiAJCQlpZiAocmVzLT5zdGFydCAhPSBzdGFydCB8fCByZXMtPmVuZCAhPSBlbmQp
CiAJCQkJYnJlYWs7Ci0JCQkqcCA9IHJlcy0+c2libGluZzsKKwkJCWxpc3RfZGVsKCZyZXMtPnNp
YmxpbmcpOwogCQkJd3JpdGVfdW5sb2NrKCZyZXNvdXJjZV9sb2NrKTsKIAkJCWlmIChyZXMtPmZs
YWdzICYgSU9SRVNPVVJDRV9NVVhFRCkKIAkJCQl3YWtlX3VwKCZtdXhlZF9yZXNvdXJjZV93YWl0
KTsKIAkJCWZyZWVfcmVzb3VyY2UocmVzKTsKIAkJCXJldHVybjsKIAkJfQotCQlwID0gJnJlcy0+
c2libGluZzsKKwkJcmVzID0gcmVzb3VyY2Vfc2libGluZyhyZXMpOwogCX0KIAogCXdyaXRlX3Vu
bG9jaygmcmVzb3VyY2VfbG9jayk7CkBAIC0xMjc1LDkgKzEyNzQsNyBAQCBFWFBPUlRfU1lNQk9M
KF9fcmVsZWFzZV9yZWdpb24pOwogaW50IHJlbGVhc2VfbWVtX3JlZ2lvbl9hZGp1c3RhYmxlKHN0
cnVjdCByZXNvdXJjZSAqcGFyZW50LAogCQkJcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJj
ZV9zaXplX3Qgc2l6ZSkKIHsKLQlzdHJ1Y3QgcmVzb3VyY2UgKipwOwotCXN0cnVjdCByZXNvdXJj
ZSAqcmVzOwotCXN0cnVjdCByZXNvdXJjZSAqbmV3X3JlczsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJl
cywgKm5ld19yZXM7CiAJcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIAlpbnQgcmV0ID0gLUVJTlZBTDsK
IApAQCAtMTI4OCwxNiArMTI4NSwxNiBAQCBpbnQgcmVsZWFzZV9tZW1fcmVnaW9uX2FkanVzdGFi
bGUoc3RydWN0IHJlc291cmNlICpwYXJlbnQsCiAJLyogVGhlIGFsbG9jX3Jlc291cmNlKCkgcmVz
dWx0IGdldHMgY2hlY2tlZCBsYXRlciAqLwogCW5ld19yZXMgPSBhbGxvY19yZXNvdXJjZShHRlBf
S0VSTkVMKTsKIAotCXAgPSAmcGFyZW50LT5jaGlsZDsKKwlyZXMgPSByZXNvdXJjZV9maXJzdF9j
aGlsZCgmcGFyZW50LT5jaGlsZCk7CiAJd3JpdGVfbG9jaygmcmVzb3VyY2VfbG9jayk7CiAKLQl3
aGlsZSAoKHJlcyA9ICpwKSkgeworCXdoaWxlICgocmVzKSkgewogCQlpZiAocmVzLT5zdGFydCA+
PSBlbmQpCiAJCQlicmVhazsKIAogCQkvKiBsb29rIGZvciB0aGUgbmV4dCByZXNvdXJjZSBpZiBp
dCBkb2VzIG5vdCBmaXQgaW50byAqLwogCQlpZiAocmVzLT5zdGFydCA+IHN0YXJ0IHx8IHJlcy0+
ZW5kIDwgZW5kKSB7Ci0JCQlwID0gJnJlcy0+c2libGluZzsKKwkJCXJlcyA9IHJlc291cmNlX3Np
YmxpbmcocmVzKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTEzMDUsMTQgKzEzMDIsMTQgQEAg
aW50IHJlbGVhc2VfbWVtX3JlZ2lvbl9hZGp1c3RhYmxlKHN0cnVjdCByZXNvdXJjZSAqcGFyZW50
LAogCQkJYnJlYWs7CiAKIAkJaWYgKCEocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfQlVTWSkpIHsK
LQkJCXAgPSAmcmVzLT5jaGlsZDsKKwkJCXJlcyA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZyZXMt
PmNoaWxkKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKIAkJLyogZm91bmQgdGhlIHRhcmdldCByZXNv
dXJjZTsgbGV0J3MgYWRqdXN0IGFjY29yZGluZ2x5ICovCiAJCWlmIChyZXMtPnN0YXJ0ID09IHN0
YXJ0ICYmIHJlcy0+ZW5kID09IGVuZCkgewogCQkJLyogZnJlZSB0aGUgd2hvbGUgZW50cnkgKi8K
LQkJCSpwID0gcmVzLT5zaWJsaW5nOworCQkJbGlzdF9kZWwoJnJlcy0+c2libGluZyk7CiAJCQlm
cmVlX3Jlc291cmNlKHJlcyk7CiAJCQlyZXQgPSAwOwogCQl9IGVsc2UgaWYgKHJlcy0+c3RhcnQg
PT0gc3RhcnQgJiYgcmVzLT5lbmQgIT0gZW5kKSB7CkBAIC0xMzM1LDE0ICsxMzMyLDEzIEBAIGlu
dCByZWxlYXNlX21lbV9yZWdpb25fYWRqdXN0YWJsZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwK
IAkJCW5ld19yZXMtPmZsYWdzID0gcmVzLT5mbGFnczsKIAkJCW5ld19yZXMtPmRlc2MgPSByZXMt
PmRlc2M7CiAJCQluZXdfcmVzLT5wYXJlbnQgPSByZXMtPnBhcmVudDsKLQkJCW5ld19yZXMtPnNp
YmxpbmcgPSByZXMtPnNpYmxpbmc7Ci0JCQluZXdfcmVzLT5jaGlsZCA9IE5VTEw7CisJCQlJTklU
X0xJU1RfSEVBRCgmbmV3X3Jlcy0+Y2hpbGQpOwogCiAJCQlyZXQgPSBfX2FkanVzdF9yZXNvdXJj
ZShyZXMsIHJlcy0+c3RhcnQsCiAJCQkJCQlzdGFydCAtIHJlcy0+c3RhcnQpOwogCQkJaWYgKHJl
dCkKIAkJCQlicmVhazsKLQkJCXJlcy0+c2libGluZyA9IG5ld19yZXM7CisJCQlsaXN0X2FkZCgm
bmV3X3Jlcy0+c2libGluZywgJnJlcy0+c2libGluZyk7CiAJCQluZXdfcmVzID0gTlVMTDsKIAkJ
fQogCkBAIC0xNTIzLDcgKzE1MTksNyBAQCBzdGF0aWMgaW50IF9faW5pdCByZXNlcnZlX3NldHVw
KGNoYXIgKnN0cikKIAkJCXJlcy0+ZW5kID0gaW9fc3RhcnQgKyBpb19udW0gLSAxOwogCQkJcmVz
LT5mbGFncyB8PSBJT1JFU09VUkNFX0JVU1k7CiAJCQlyZXMtPmRlc2MgPSBJT1JFU19ERVNDX05P
TkU7Ci0JCQlyZXMtPmNoaWxkID0gTlVMTDsKKwkJCUlOSVRfTElTVF9IRUFEKCZyZXMtPmNoaWxk
KTsKIAkJCWlmIChyZXF1ZXN0X3Jlc291cmNlKHBhcmVudCwgcmVzKSA9PSAwKQogCQkJCXJlc2Vy
dmVkID0geCsxOwogCQl9CkBAIC0xNTQzLDcgKzE1MzksNyBAQCBpbnQgaW9tZW1fbWFwX3Nhbml0
eV9jaGVjayhyZXNvdXJjZV9zaXplX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogCWxvZmZf
dCBsOwogCiAJcmVhZF9sb2NrKCZyZXNvdXJjZV9sb2NrKTsKLQlmb3IgKHAgPSBwLT5jaGlsZDsg
cCA7IHAgPSByX25leHQoTlVMTCwgcCwgJmwpKSB7CisJZm9yIChwID0gcmVzb3VyY2VfZmlyc3Rf
Y2hpbGQoJnAtPmNoaWxkKTsgcDsgcCA9IHJfbmV4dChOVUxMLCBwLCAmbCkpIHsKIAkJLyoKIAkJ
ICogV2UgY2FuIHByb2JhYmx5IHNraXAgdGhlIHJlc291cmNlcyB3aXRob3V0CiAJCSAqIElPUkVT
T1VSQ0VfSU8gYXR0cmlidXRlPwpAQCAtMTU5OSw3ICsxNTk1LDcgQEAgYm9vbCBpb21lbV9pc19l
eGNsdXNpdmUodTY0IGFkZHIpCiAJYWRkciA9IGFkZHIgJiBQQUdFX01BU0s7CiAKIAlyZWFkX2xv
Y2soJnJlc291cmNlX2xvY2spOwotCWZvciAocCA9IHAtPmNoaWxkOyBwIDsgcCA9IHJfbmV4dChO
VUxMLCBwLCAmbCkpIHsKKwlmb3IgKHAgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcC0+Y2hpbGQp
OyBwOyBwID0gcl9uZXh0KE5VTEwsIHAsICZsKSkgewogCQkvKgogCQkgKiBXZSBjYW4gcHJvYmFi
bHkgc2tpcCB0aGUgcmVzb3VyY2VzIHdpdGhvdXQKIAkJICogSU9SRVNPVVJDRV9JTyBhdHRyaWJ1
dGU/Ci0tIAoyLjEzLjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkxpbnV4LW52ZGltbSBtYWlsaW5nIGxpc3QKTGludXgtbnZkaW1tQGxpc3RzLjAxLm9y
ZwpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52ZGltbQo=
next prev parent reply other threads:[~2018-07-04 4:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-04 4:10 [PATCH v6 0/4] resource: Use list_head to link sibling resource Baoquan He
[not found] ` <20180704041038.8190-1-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-07-04 4:10 ` [PATCH v6 1/4] resource: Move reparent_resources() to kernel/resource.c and make it public Baoquan He
[not found] ` <20180704041038.8190-2-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-07-04 16:46 ` Andy Shevchenko
[not found] ` <CAHp75VfWLcQq4XGM3RyfO_ENx=3=WrCEhtOw+a0Sfwz_OpQ0UQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-05 10:09 ` Baoquan He
2018-07-04 4:10 ` Baoquan He [this message]
2018-07-04 17:00 ` [PATCH v6 2/4] resource: Use list_head to link sibling resource kbuild test robot
[not found] ` <201807042347.hfDcKxmG%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-07-08 2:59 ` Baoquan He
2018-07-08 17:48 ` Andy Shevchenko
[not found] ` <CAHp75VcjGQutVtZ90C0huUGCY6yj8H0Wo0tMdrbLmLsRQ+x4XQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-09 3:04 ` Baoquan He
2018-07-10 0:59 ` [kbuild-all] " Ye Xiaolong
2018-07-10 3:10 ` Baoquan He
[not found] ` <20180704041038.8190-3-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-07-04 17:00 ` kbuild test robot
2018-07-04 4:10 ` [PATCH v6 3/4] resource: add walk_system_ram_res_rev() Baoquan He
2018-07-04 4:10 ` [PATCH v6 4/4] kexec_file: Load kernel at top of system RAM if required 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=20180704041038.8190-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=davem@davem \
--cc=devel-tBiZLqfeLfOHmIFyCCdPziST3g8Odh+X@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=ebiederm-aS9lmoZGLiVWk0Htik3J/w@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=kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@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-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
--cc=linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@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=nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w@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).