* [PATCH v5 2/4] resource: Use list_head to link sibling resource
[not found] ` <20180612032831.29747-1-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2018-06-12 3:28 ` Baoquan He
[not found] ` <20180612032831.29747-3-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Baoquan He @ 2018-06-12 3:28 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
dan.j.williams-ral2JQCrhuEAvxtiuMwx3w,
nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A, josh-iaAMLnmF4UmaiuxdJuQwMA,
fengguang.wu-ral2JQCrhuEAvxtiuMwx3w, bp-l3A5Bk7waGM
Cc: brijesh.singh-5C7GfCeVMHo, devicetree-u79uwXL29TY76Z2rM5mHXA,
airlied-cv59FeDIM0c, linux-pci-u79uwXL29TY76Z2rM5mHXA,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w,
keith.busch-ral2JQCrhuEAvxtiuMwx3w,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/,
kys-0li6OtcxBFHby3iVrkZq2A, frowand.list-Re5JQEeQqe8AvxtiuMwx3w,
lorenzo.pieralisi-5wv7dgnIgG8, sthemmin-0li6OtcxBFHby3iVrkZq2A,
Baoquan He, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w,
linux-input-u79uwXL29TY76Z2rM5mHXA,
gustavo-THi1TnShQwVAfugRpC6u6w, dyoung-H+wXaHxf7aLQT0dZR+AlfA,
thomas.lendacky-5C7GfCeVMHo, haiyangz-0li6OtcxBFHby3iVrkZq2A,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA,
jglisse-H+wXaHxf7aLQT0dZR+AlfA, seanpaul-F7+t8E8rja9g9hUCZPvPmw,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, tglx-hfZtesqFncYOwBW4kG4KsQ,
yinghai-DgEjT+Ai2ygdnm+yROfE0A,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w,
chris-YvXeqwSYzG2sTnJN9+BGXg, monstr-pSz03upnqPeHXe+LvDLADg,
linux-parisc-u79uwXL29TY76Z2rM5mHXA,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
ebiederm-aS9lmoZGLiVWk0Htik3J/w,
devel-tBiZLqfeLfOHmIFyCCdPziST3g8Odh+X, linuxppc-dev
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
CiBkcml2ZXJzL3BjaS9ob3N0L3ZtZC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBk
cml2ZXJzL3BjaS9wcm9iZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZl
cnMvcGNpL3NldHVwLWJ1cy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUv
bGludXgvaW9wb3J0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKystCiBrZXJuZWwvcmVz
b3VyY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjExICsrKysrKysrKysrKysrLS0t
LS0tLS0tLS0tLS0KIDE5IGZpbGVzIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspLCAxNjkgZGVs
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
YwppbmRleCAzYzU0MDQ0MjE0ZGIuLjUzZTMwMGE5OTNkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n
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
ciksIGQpOwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvc3Qvdm1kLmMgYi9kcml2
ZXJzL3BjaS9ob3N0L3ZtZC5jCmluZGV4IDk0MmI2NGZjN2YxZi4uZTNhY2UyMDM0NWM3IDEwMDY0
NAotLS0gYS9kcml2ZXJzL3BjaS9ob3N0L3ZtZC5jCisrKyBiL2RyaXZlcnMvcGNpL2hvc3Qvdm1k
LmMKQEAgLTU0MiwxNCArNTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyB2bWRfb3BzID0g
ewogCiBzdGF0aWMgdm9pZCB2bWRfYXR0YWNoX3Jlc291cmNlcyhzdHJ1Y3Qgdm1kX2RldiAqdm1k
KQogewotCXZtZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hpbGQgPSAmdm1kLT5yZXNv
dXJjZXNbMV07Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCA9ICZ2bWQt
PnJlc291cmNlc1syXTsKKwlsaXN0X2FkZCgmdm1kLT5yZXNvdXJjZXNbMV0uc2libGluZywgJnZt
ZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hpbGQpOworCWxpc3RfYWRkKCZ2bWQtPnJl
c291cmNlc1syXS5zaWJsaW5nLCAmdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGls
ZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHZtZF9kZXRhY2hfcmVzb3VyY2VzKHN0cnVjdCB2bWRfZGV2
ICp2bWQpCiB7Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIxXS5jaGlsZCA9IE5VTEw7
Ci0Jdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9NRU1CQVIyXS5jaGlsZCA9IE5VTEw7CisJSU5JVF9M
SVNUX0hFQUQoJnZtZC0+ZGV2LT5yZXNvdXJjZVtWTURfTUVNQkFSMV0uY2hpbGQpOworCUlOSVRf
TElTVF9IRUFEKCZ2bWQtPmRldi0+cmVzb3VyY2VbVk1EX01FTUJBUjJdLmNoaWxkKTsKIH0KIAog
LyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Byb2JlLmMgYi9kcml2ZXJzL3BjaS9wcm9iZS5j
CmluZGV4IGFjODc2ZTMyZGU0Yi4uOTYyNGRkMWRmZDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bj
aS9wcm9iZS5jCisrKyBiL2RyaXZlcnMvcGNpL3Byb2JlLmMKQEAgLTU5LDYgKzU5LDggQEAgc3Rh
dGljIHN0cnVjdCByZXNvdXJjZSAqZ2V0X3BjaV9kb21haW5fYnVzbl9yZXMoaW50IGRvbWFpbl9u
cikKIAlyLT5yZXMuc3RhcnQgPSAwOwogCXItPnJlcy5lbmQgPSAweGZmOwogCXItPnJlcy5mbGFn
cyA9IElPUkVTT1VSQ0VfQlVTIHwgSU9SRVNPVVJDRV9QQ0lfRklYRUQ7CisJSU5JVF9MSVNUX0hF
QUQoJnItPnJlcy5jaGlsZCk7CisJSU5JVF9MSVNUX0hFQUQoJnItPnJlcy5zaWJsaW5nKTsKIAog
CWxpc3RfYWRkX3RhaWwoJnItPmxpc3QsICZwY2lfZG9tYWluX2J1c25fcmVzX2xpc3QpOwogCmRp
ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1
cy5jCmluZGV4IDc5YjE4MjRlODNiNC4uOGU2ODVhZjg5MzhkIDEwMDY0NAotLS0gYS9kcml2ZXJz
L3BjaS9zZXR1cC1idXMuYworKysgYi9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYwpAQCAtMjEwNyw3
ICsyMTA3LDcgQEAgaW50IHBjaV9yZWFzc2lnbl9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lf
ZGV2ICpicmlkZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkKIAkJCQljb250aW51ZTsKIAogCQkJLyog
SWdub3JlIEJBUnMgd2hpY2ggYXJlIHN0aWxsIGluIHVzZSAqLwotCQkJaWYgKHJlcy0+Y2hpbGQp
CisJCQlpZiAoIWxpc3RfZW1wdHkoJnJlcy0+Y2hpbGQpKQogCQkJCWNvbnRpbnVlOwogCiAJCQly
ZXQgPSBhZGRfdG9fbGlzdCgmc2F2ZWQsIGJyaWRnZSwgcmVzLCAwLCAwKTsKZGlmZiAtLWdpdCBh
L2luY2x1ZGUvbGludXgvaW9wb3J0LmggYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCmluZGV4IGRm
ZGNkMGJmZTU0ZS4uYjc0NTZhZTg4OWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lvcG9y
dC5oCisrKyBiL2luY2x1ZGUvbGludXgvaW9wb3J0LmgKQEAgLTEyLDYgKzEyLDcgQEAKICNpZm5k
ZWYgX19BU1NFTUJMWV9fCiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxs
aW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KIC8qCiAgKiBSZXNvdXJjZXMg
YXJlIHRyZWUtbGlrZSwgYWxsb3dpbmcKICAqIG5lc3RpbmcgZXRjLi4KQEAgLTIyLDcgKzIzLDgg
QEAgc3RydWN0IHJlc291cmNlIHsKIAljb25zdCBjaGFyICpuYW1lOwogCXVuc2lnbmVkIGxvbmcg
ZmxhZ3M7CiAJdW5zaWduZWQgbG9uZyBkZXNjOwotCXN0cnVjdCByZXNvdXJjZSAqcGFyZW50LCAq
c2libGluZywgKmNoaWxkOworCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGQsIHNpYmxpbmc7CisJc3Ry
dWN0IHJlc291cmNlICpwYXJlbnQ7CiB9OwogCiAvKgpAQCAtMjE2LDcgKzIxOCw2IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCByZXNvdXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1
Y3QgcmVzb3VyY2UgKnIyKQogCXJldHVybiByMS0+c3RhcnQgPD0gcjItPnN0YXJ0ICYmIHIxLT5l
bmQgPj0gcjItPmVuZDsKIH0KIAotCiAvKiBDb252ZW5pZW5jZSBzaG9ydGhhbmQgd2l0aCBhbGxv
Y2F0aW9uICovCiAjZGVmaW5lIHJlcXVlc3RfcmVnaW9uKHN0YXJ0LG4sbmFtZSkJCV9fcmVxdWVz
dF9yZWdpb24oJmlvcG9ydF9yZXNvdXJjZSwgKHN0YXJ0KSwgKG4pLCAobmFtZSksIDApCiAjZGVm
aW5lIHJlcXVlc3RfbXV4ZWRfcmVnaW9uKHN0YXJ0LG4sbmFtZSkJX19yZXF1ZXN0X3JlZ2lvbigm
aW9wb3J0X3Jlc291cmNlLCAoc3RhcnQpLCAobiksIChuYW1lKSwgSU9SRVNPVVJDRV9NVVhFRCkK
QEAgLTI4Nyw2ICsyODgsMTggQEAgc3RhdGljIGlubGluZSBib29sIHJlc291cmNlX292ZXJsYXBz
KHN0cnVjdCByZXNvdXJjZSAqcjEsIHN0cnVjdCByZXNvdXJjZSAqcjIpCiAgICAgICAgcmV0dXJu
IChyMS0+c3RhcnQgPD0gcjItPmVuZCAmJiByMS0+ZW5kID49IHIyLT5zdGFydCk7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgc3RydWN0IHJlc291cmNlICpyZXNvdXJjZV9zaWJsaW5nKHN0cnVjdCByZXNv
dXJjZSAqcmVzKQoreworCWlmIChyZXMtPnBhcmVudCAmJiAhbGlzdF9pc19sYXN0KCZyZXMtPnNp
YmxpbmcsICZyZXMtPnBhcmVudC0+Y2hpbGQpKQorCQlyZXR1cm4gbGlzdF9uZXh0X2VudHJ5KHJl
cywgc2libGluZyk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJl
c291cmNlICpyZXNvdXJjZV9maXJzdF9jaGlsZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQorewor
CXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoaGVhZCwgc3RydWN0IHJlc291cmNlLCBz
aWJsaW5nKTsKK30KKwogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYJLyogX0xJ
TlVYX0lPUE9SVF9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvcmVzb3VyY2UuYyBiL2tlcm5lbC9y
ZXNvdXJjZS5jCmluZGV4IDVlN2M1NmQ1ZDgzOC4uZWY5YTIwYjc1MjM0IDEwMDY0NAotLS0gYS9r
ZXJuZWwvcmVzb3VyY2UuYworKysgYi9rZXJuZWwvcmVzb3VyY2UuYwpAQCAtMzEsNiArMzEsOCBA
QCBzdHJ1Y3QgcmVzb3VyY2UgaW9wb3J0X3Jlc291cmNlID0gewogCS5zdGFydAk9IDAsCiAJLmVu
ZAk9IElPX1NQQUNFX0xJTUlULAogCS5mbGFncwk9IElPUkVTT1VSQ0VfSU8sCisJLnNpYmxpbmcg
PSBMSVNUX0hFQURfSU5JVChpb3BvcnRfcmVzb3VyY2Uuc2libGluZyksCisJLmNoaWxkICA9IExJ
U1RfSEVBRF9JTklUKGlvcG9ydF9yZXNvdXJjZS5jaGlsZCksCiB9OwogRVhQT1JUX1NZTUJPTChp
b3BvcnRfcmVzb3VyY2UpOwogCkBAIC0zOSw2ICs0MSw4IEBAIHN0cnVjdCByZXNvdXJjZSBpb21l
bV9yZXNvdXJjZSA9IHsKIAkuc3RhcnQJPSAwLAogCS5lbmQJPSAtMSwKIAkuZmxhZ3MJPSBJT1JF
U09VUkNFX01FTSwKKwkuc2libGluZyA9IExJU1RfSEVBRF9JTklUKGlvbWVtX3Jlc291cmNlLnNp
YmxpbmcpLAorCS5jaGlsZCAgPSBMSVNUX0hFQURfSU5JVChpb21lbV9yZXNvdXJjZS5jaGlsZCks
CiB9OwogRVhQT1JUX1NZTUJPTChpb21lbV9yZXNvdXJjZSk7CiAKQEAgLTU3LDIwICs2MSwyMCBA
QCBzdGF0aWMgREVGSU5FX1JXTE9DSyhyZXNvdXJjZV9sb2NrKTsKICAqIGJ5IGJvb3QgbWVtIGFm
dGVyIHRoZSBzeXN0ZW0gaXMgdXAuIFNvIGZvciByZXVzaW5nIHRoZSByZXNvdXJjZSBlbnRyeQog
ICogd2UgbmVlZCB0byByZW1lbWJlciB0aGUgcmVzb3VyY2UuCiAgKi8KLXN0YXRpYyBzdHJ1Y3Qg
cmVzb3VyY2UgKmJvb3RtZW1fcmVzb3VyY2VfZnJlZTsKK3N0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFk
IGJvb3RtZW1fcmVzb3VyY2VfZnJlZSA9IExJU1RfSEVBRF9JTklUKGJvb3RtZW1fcmVzb3VyY2Vf
ZnJlZSk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGJvb3RtZW1fcmVzb3VyY2VfbG9jayk7CiAK
IHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKm5leHRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpw
LCBib29sIHNpYmxpbmdfb25seSkKIHsKIAkvKiBDYWxsZXIgd2FudHMgdG8gdHJhdmVyc2UgdGhy
b3VnaCBzaWJsaW5ncyBvbmx5ICovCiAJaWYgKHNpYmxpbmdfb25seSkKLQkJcmV0dXJuIHAtPnNp
Ymxpbmc7CisJCXJldHVybiByZXNvdXJjZV9zaWJsaW5nKHApOwogCi0JaWYgKHAtPmNoaWxkKQot
CQlyZXR1cm4gcC0+Y2hpbGQ7Ci0Jd2hpbGUgKCFwLT5zaWJsaW5nICYmIHAtPnBhcmVudCkKKwlp
ZiAoIWxpc3RfZW1wdHkoJnAtPmNoaWxkKSkKKwkJcmV0dXJuIHJlc291cmNlX2ZpcnN0X2NoaWxk
KCZwLT5jaGlsZCk7CisJd2hpbGUgKCFyZXNvdXJjZV9zaWJsaW5nKHApICYmIHAtPnBhcmVudCkK
IAkJcCA9IHAtPnBhcmVudDsKLQlyZXR1cm4gcC0+c2libGluZzsKKwlyZXR1cm4gcmVzb3VyY2Vf
c2libGluZyhwKTsKIH0KIAogc3RhdGljIHZvaWQgKnJfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0s
IHZvaWQgKnYsIGxvZmZfdCAqcG9zKQpAQCAtOTAsNyArOTQsNyBAQCBzdGF0aWMgdm9pZCAqcl9z
dGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQogCXN0cnVjdCByZXNvdXJjZSAq
cCA9IFBERV9EQVRBKGZpbGVfaW5vZGUobS0+ZmlsZSkpOwogCWxvZmZfdCBsID0gMDsKIAlyZWFk
X2xvY2soJnJlc291cmNlX2xvY2spOwotCWZvciAocCA9IHAtPmNoaWxkOyBwICYmIGwgPCAqcG9z
OyBwID0gcl9uZXh0KG0sIHAsICZsKSkKKwlmb3IgKHAgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgm
cC0+Y2hpbGQpOyBwICYmIGwgPCAqcG9zOyBwID0gcl9uZXh0KG0sIHAsICZsKSkKIAkJOwogCXJl
dHVybiBwOwogfQpAQCAtMTUzLDggKzE1Nyw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcmVzb3VyY2Uo
c3RydWN0IHJlc291cmNlICpyZXMpCiAKIAlpZiAoIVBhZ2VTbGFiKHZpcnRfdG9faGVhZF9wYWdl
KHJlcykpKSB7CiAJCXNwaW5fbG9jaygmYm9vdG1lbV9yZXNvdXJjZV9sb2NrKTsKLQkJcmVzLT5z
aWJsaW5nID0gYm9vdG1lbV9yZXNvdXJjZV9mcmVlOwotCQlib290bWVtX3Jlc291cmNlX2ZyZWUg
PSByZXM7CisJCWxpc3RfYWRkKCZyZXMtPnNpYmxpbmcsICZib290bWVtX3Jlc291cmNlX2ZyZWUp
OwogCQlzcGluX3VubG9jaygmYm9vdG1lbV9yZXNvdXJjZV9sb2NrKTsKIAl9IGVsc2UgewogCQlr
ZnJlZShyZXMpOwpAQCAtMTY2LDEwICsxNjksOSBAQCBzdGF0aWMgc3RydWN0IHJlc291cmNlICph
bGxvY19yZXNvdXJjZShnZnBfdCBmbGFncykKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IE5VTEw7
CiAKIAlzcGluX2xvY2soJmJvb3RtZW1fcmVzb3VyY2VfbG9jayk7Ci0JaWYgKGJvb3RtZW1fcmVz
b3VyY2VfZnJlZSkgewotCQlyZXMgPSBib290bWVtX3Jlc291cmNlX2ZyZWU7Ci0JCWJvb3RtZW1f
cmVzb3VyY2VfZnJlZSA9IHJlcy0+c2libGluZzsKLQl9CisJcmVzID0gcmVzb3VyY2VfZmlyc3Rf
Y2hpbGQoJmJvb3RtZW1fcmVzb3VyY2VfZnJlZSk7CisJaWYgKHJlcykKKwkJbGlzdF9kZWwoJnJl
cy0+c2libGluZyk7CiAJc3Bpbl91bmxvY2soJmJvb3RtZW1fcmVzb3VyY2VfbG9jayk7CiAKIAlp
ZiAocmVzKQpAQCAtMTc3LDYgKzE3OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKmFsbG9j
X3Jlc291cmNlKGdmcF90IGZsYWdzKQogCWVsc2UKIAkJcmVzID0ga3phbGxvYyhzaXplb2Yoc3Ry
dWN0IHJlc291cmNlKSwgZmxhZ3MpOwogCisJSU5JVF9MSVNUX0hFQUQoJnJlcy0+Y2hpbGQpOwor
CUlOSVRfTElTVF9IRUFEKCZyZXMtPnNpYmxpbmcpOwogCXJldHVybiByZXM7CiB9CiAKQEAgLTE4
NSw3ICsxODksNyBAQCBzdGF0aWMgc3RydWN0IHJlc291cmNlICogX19yZXF1ZXN0X3Jlc291cmNl
KHN0cnVjdCByZXNvdXJjZSAqcm9vdCwgc3RydWN0IHJlc291cgogewogCXJlc291cmNlX3NpemVf
dCBzdGFydCA9IG5ldy0+c3RhcnQ7CiAJcmVzb3VyY2Vfc2l6ZV90IGVuZCA9IG5ldy0+ZW5kOwot
CXN0cnVjdCByZXNvdXJjZSAqdG1wLCAqKnA7CisJc3RydWN0IHJlc291cmNlICp0bXA7CiAKIAlp
ZiAoZW5kIDwgc3RhcnQpCiAJCXJldHVybiByb290OwpAQCAtMTkzLDY0ICsxOTcsNjIgQEAgc3Rh
dGljIHN0cnVjdCByZXNvdXJjZSAqIF9fcmVxdWVzdF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2Ug
KnJvb3QsIHN0cnVjdCByZXNvdXIKIAkJcmV0dXJuIHJvb3Q7CiAJaWYgKGVuZCA+IHJvb3QtPmVu
ZCkKIAkJcmV0dXJuIHJvb3Q7Ci0JcCA9ICZyb290LT5jaGlsZDsKLQlmb3IgKDs7KSB7Ci0JCXRt
cCA9ICpwOwotCQlpZiAoIXRtcCB8fCB0bXAtPnN0YXJ0ID4gZW5kKSB7Ci0JCQluZXctPnNpYmxp
bmcgPSB0bXA7Ci0JCQkqcCA9IG5ldzsKKworCWlmIChsaXN0X2VtcHR5KCZyb290LT5jaGlsZCkp
IHsKKwkJbGlzdF9hZGQoJm5ldy0+c2libGluZywgJnJvb3QtPmNoaWxkKTsKKwkJbmV3LT5wYXJl
bnQgPSByb290OworCQlJTklUX0xJU1RfSEVBRCgmbmV3LT5jaGlsZCk7CisJCXJldHVybiBOVUxM
OworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wLCAmcm9vdC0+Y2hpbGQsIHNpYmxpbmcp
IHsKKwkJaWYgKHRtcC0+c3RhcnQgPiBlbmQpIHsKKwkJCWxpc3RfYWRkKCZuZXctPnNpYmxpbmcs
IHRtcC0+c2libGluZy5wcmV2KTsKIAkJCW5ldy0+cGFyZW50ID0gcm9vdDsKKwkJCUlOSVRfTElT
VF9IRUFEKCZuZXctPmNoaWxkKTsKIAkJCXJldHVybiBOVUxMOwogCQl9Ci0JCXAgPSAmdG1wLT5z
aWJsaW5nOwogCQlpZiAodG1wLT5lbmQgPCBzdGFydCkKIAkJCWNvbnRpbnVlOwogCQlyZXR1cm4g
dG1wOwogCX0KKworCWxpc3RfYWRkX3RhaWwoJm5ldy0+c2libGluZywgJnJvb3QtPmNoaWxkKTsK
KwluZXctPnBhcmVudCA9IHJvb3Q7CisJSU5JVF9MSVNUX0hFQUQoJm5ldy0+Y2hpbGQpOworCXJl
dHVybiBOVUxMOwogfQogCiBzdGF0aWMgaW50IF9fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgcmVz
b3VyY2UgKm9sZCwgYm9vbCByZWxlYXNlX2NoaWxkKQogewotCXN0cnVjdCByZXNvdXJjZSAqdG1w
LCAqKnAsICpjaGQ7CisJc3RydWN0IHJlc291cmNlICp0bXAsICpuZXh0LCAqY2hkOwogCi0JcCA9
ICZvbGQtPnBhcmVudC0+Y2hpbGQ7Ci0JZm9yICg7OykgewotCQl0bXAgPSAqcDsKLQkJaWYgKCF0
bXApCi0JCQlicmVhazsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodG1wLCBuZXh0LCAmb2xk
LT5wYXJlbnQtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlmICh0bXAgPT0gb2xkKSB7Ci0JCQlpZiAo
cmVsZWFzZV9jaGlsZCB8fCAhKHRtcC0+Y2hpbGQpKSB7Ci0JCQkJKnAgPSB0bXAtPnNpYmxpbmc7
CisJCQlpZiAocmVsZWFzZV9jaGlsZCB8fCBsaXN0X2VtcHR5KCZ0bXAtPmNoaWxkKSkgeworCQkJ
CWxpc3RfZGVsKCZ0bXAtPnNpYmxpbmcpOwogCQkJfSBlbHNlIHsKLQkJCQlmb3IgKGNoZCA9IHRt
cC0+Y2hpbGQ7OyBjaGQgPSBjaGQtPnNpYmxpbmcpIHsKKwkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5
KGNoZCwgJnRtcC0+Y2hpbGQsIHNpYmxpbmcpCiAJCQkJCWNoZC0+cGFyZW50ID0gdG1wLT5wYXJl
bnQ7Ci0JCQkJCWlmICghKGNoZC0+c2libGluZykpCi0JCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJ
KnAgPSB0bXAtPmNoaWxkOwotCQkJCWNoZC0+c2libGluZyA9IHRtcC0+c2libGluZzsKKwkJCQls
aXN0X3NwbGljZSgmdG1wLT5jaGlsZCwgdG1wLT5zaWJsaW5nLnByZXYpOworCQkJCWxpc3RfZGVs
KCZ0bXAtPnNpYmxpbmcpOwogCQkJfQorCiAJCQlvbGQtPnBhcmVudCA9IE5VTEw7CiAJCQlyZXR1
cm4gMDsKIAkJfQotCQlwID0gJnRtcC0+c2libGluZzsKIAl9CiAJcmV0dXJuIC1FSU5WQUw7CiB9
CiAKIHN0YXRpYyB2b2lkIF9fcmVsZWFzZV9jaGlsZF9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNl
ICpyKQogewotCXN0cnVjdCByZXNvdXJjZSAqdG1wLCAqcDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnRt
cCwgKm5leHQ7CiAJcmVzb3VyY2Vfc2l6ZV90IHNpemU7CiAKLQlwID0gci0+Y2hpbGQ7Ci0Jci0+
Y2hpbGQgPSBOVUxMOwotCXdoaWxlIChwKSB7Ci0JCXRtcCA9IHA7Ci0JCXAgPSBwLT5zaWJsaW5n
OwotCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRtcCwgbmV4dCwgJnItPmNoaWxkLCBzaWJs
aW5nKSB7CiAJCXRtcC0+cGFyZW50ID0gTlVMTDsKLQkJdG1wLT5zaWJsaW5nID0gTlVMTDsKKwkJ
SU5JVF9MSVNUX0hFQUQoJnRtcC0+c2libGluZyk7CiAJCV9fcmVsZWFzZV9jaGlsZF9yZXNvdXJj
ZXModG1wKTsKIAogCQlwcmludGsoS0VSTl9ERUJVRyAicmVsZWFzZSBjaGlsZCByZXNvdXJjZSAl
cFJcbiIsIHRtcCk7CkBAIC0yNTksNiArMjYxLDggQEAgc3RhdGljIHZvaWQgX19yZWxlYXNlX2No
aWxkX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKnIpCiAJCXRtcC0+c3RhcnQgPSAwOwogCQl0
bXAtPmVuZCA9IHNpemUgLSAxOwogCX0KKworCUlOSVRfTElTVF9IRUFEKCZ0bXAtPmNoaWxkKTsK
IH0KIAogdm9pZCByZWxlYXNlX2NoaWxkX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKnIpCkBA
IC0zNDMsNyArMzQ3LDggQEAgc3RhdGljIGludCBmaW5kX25leHRfaW9tZW1fcmVzKHN0cnVjdCBy
ZXNvdXJjZSAqcmVzLCB1bnNpZ25lZCBsb25nIGRlc2MsCiAKIAlyZWFkX2xvY2soJnJlc291cmNl
X2xvY2spOwogCi0JZm9yIChwID0gaW9tZW1fcmVzb3VyY2UuY2hpbGQ7IHA7IHAgPSBuZXh0X3Jl
c291cmNlKHAsIHNpYmxpbmdfb25seSkpIHsKKwlmb3IgKHAgPSByZXNvdXJjZV9maXJzdF9jaGls
ZCgmaW9tZW1fcmVzb3VyY2UuY2hpbGQpOyBwOworCQkJcCA9IG5leHRfcmVzb3VyY2UocCwgc2li
bGluZ19vbmx5KSkgewogCQlpZiAoKHAtPmZsYWdzICYgcmVzLT5mbGFncykgIT0gcmVzLT5mbGFn
cykKIAkJCWNvbnRpbnVlOwogCQlpZiAoKGRlc2MgIT0gSU9SRVNfREVTQ19OT05FKSAmJiAoZGVz
YyAhPSBwLT5kZXNjKSkKQEAgLTUzMiw3ICs1MzcsNyBAQCBpbnQgcmVnaW9uX2ludGVyc2VjdHMo
cmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCBzaXplX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyBmbGFncywK
IAlzdHJ1Y3QgcmVzb3VyY2UgKnA7CiAKIAlyZWFkX2xvY2soJnJlc291cmNlX2xvY2spOwotCWZv
ciAocCA9IGlvbWVtX3Jlc291cmNlLmNoaWxkOyBwIDsgcCA9IHAtPnNpYmxpbmcpIHsKKwlsaXN0
X2Zvcl9lYWNoX2VudHJ5KHAsICZpb21lbV9yZXNvdXJjZS5jaGlsZCwgc2libGluZykgewogCQli
b29sIGlzX3R5cGUgPSAoKChwLT5mbGFncyAmIGZsYWdzKSA9PSBmbGFncykgJiYKIAkJCQkoKGRl
c2MgPT0gSU9SRVNfREVTQ19OT05FKSB8fAogCQkJCSAoZGVzYyA9PSBwLT5kZXNjKSkpOwpAQCAt
NTg2LDcgKzU5MSw3IEBAIHN0YXRpYyBpbnQgX19maW5kX3Jlc291cmNlKHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpvbGQsCiAJCQkgcmVzb3VyY2Vfc2l6ZV90ICBzaXpl
LAogCQkJIHN0cnVjdCByZXNvdXJjZV9jb25zdHJhaW50ICpjb25zdHJhaW50KQogewotCXN0cnVj
dCByZXNvdXJjZSAqdGhpcyA9IHJvb3QtPmNoaWxkOworCXN0cnVjdCByZXNvdXJjZSAqdGhpcyA9
IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZyb290LT5jaGlsZCk7CiAJc3RydWN0IHJlc291cmNlIHRt
cCA9ICpuZXcsIGF2YWlsLCBhbGxvYzsKIAogCXRtcC5zdGFydCA9IHJvb3QtPnN0YXJ0OwpAQCAt
NTk2LDcgKzYwMSw3IEBAIHN0YXRpYyBpbnQgX19maW5kX3Jlc291cmNlKHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpvbGQsCiAJICovCiAJaWYgKHRoaXMgJiYgdGhpcy0+
c3RhcnQgPT0gcm9vdC0+c3RhcnQpIHsKIAkJdG1wLnN0YXJ0ID0gKHRoaXMgPT0gb2xkKSA/IG9s
ZC0+c3RhcnQgOiB0aGlzLT5lbmQgKyAxOwotCQl0aGlzID0gdGhpcy0+c2libGluZzsKKwkJdGhp
cyA9IHJlc291cmNlX3NpYmxpbmcodGhpcyk7CiAJfQogCWZvcig7OykgewogCQlpZiAodGhpcykK
QEAgLTYzMiw3ICs2MzcsNyBAQCBuZXh0OgkJaWYgKCF0aGlzIHx8IHRoaXMtPmVuZCA9PSByb290
LT5lbmQpCiAKIAkJaWYgKHRoaXMgIT0gb2xkKQogCQkJdG1wLnN0YXJ0ID0gdGhpcy0+ZW5kICsg
MTsKLQkJdGhpcyA9IHRoaXMtPnNpYmxpbmc7CisJCXRoaXMgPSByZXNvdXJjZV9zaWJsaW5nKHRo
aXMpOwogCX0KIAlyZXR1cm4gLUVCVVNZOwogfQpAQCAtNjc2LDcgKzY4MSw3IEBAIHN0YXRpYyBp
bnQgcmVhbGxvY2F0ZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHN0cnVjdCByZXNv
dXJjZSAqb2xkLAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAob2xkLT5jaGlsZCkgeworCWlmICgh
bGlzdF9lbXB0eSgmb2xkLT5jaGlsZCkpIHsKIAkJZXJyID0gLUVCVVNZOwogCQlnb3RvIG91dDsK
IAl9CkBAIC03NTcsNyArNzYyLDcgQEAgc3RydWN0IHJlc291cmNlICpsb29rdXBfcmVzb3VyY2Uo
c3RydWN0IHJlc291cmNlICpyb290LCByZXNvdXJjZV9zaXplX3Qgc3RhcnQpCiAJc3RydWN0IHJl
c291cmNlICpyZXM7CiAKIAlyZWFkX2xvY2soJnJlc291cmNlX2xvY2spOwotCWZvciAocmVzID0g
cm9vdC0+Y2hpbGQ7IHJlczsgcmVzID0gcmVzLT5zaWJsaW5nKSB7CisJbGlzdF9mb3JfZWFjaF9l
bnRyeShyZXMsICZyb290LT5jaGlsZCwgc2libGluZykgewogCQlpZiAocmVzLT5zdGFydCA9PSBz
dGFydCkKIAkJCWJyZWFrOwogCX0KQEAgLTc5MCwzMiArNzk1LDI3IEBAIHN0YXRpYyBzdHJ1Y3Qg
cmVzb3VyY2UgKiBfX2luc2VydF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3Ry
dWN0IHJlc291CiAJCQlicmVhazsKIAl9CiAKLQlmb3IgKG5leHQgPSBmaXJzdDsgOyBuZXh0ID0g
bmV4dC0+c2libGluZykgeworCWZvciAobmV4dCA9IGZpcnN0OyA7IG5leHQgPSByZXNvdXJjZV9z
aWJsaW5nKG5leHQpKSB7CiAJCS8qIFBhcnRpYWwgb3ZlcmxhcD8gQmFkLCBhbmQgdW5maXhhYmxl
ICovCiAJCWlmIChuZXh0LT5zdGFydCA8IG5ldy0+c3RhcnQgfHwgbmV4dC0+ZW5kID4gbmV3LT5l
bmQpCiAJCQlyZXR1cm4gbmV4dDsKLQkJaWYgKCFuZXh0LT5zaWJsaW5nKQorCQlpZiAoIXJlc291
cmNlX3NpYmxpbmcobmV4dCkpCiAJCQlicmVhazsKLQkJaWYgKG5leHQtPnNpYmxpbmctPnN0YXJ0
ID4gbmV3LT5lbmQpCisJCWlmIChyZXNvdXJjZV9zaWJsaW5nKG5leHQpLT5zdGFydCA+IG5ldy0+
ZW5kKQogCQkJYnJlYWs7CiAJfQotCiAJbmV3LT5wYXJlbnQgPSBwYXJlbnQ7Ci0JbmV3LT5zaWJs
aW5nID0gbmV4dC0+c2libGluZzsKLQluZXctPmNoaWxkID0gZmlyc3Q7CisJbGlzdF9hZGQoJm5l
dy0+c2libGluZywgJm5leHQtPnNpYmxpbmcpOworCUlOSVRfTElTVF9IRUFEKCZuZXctPmNoaWxk
KTsKIAotCW5leHQtPnNpYmxpbmcgPSBOVUxMOwotCWZvciAobmV4dCA9IGZpcnN0OyBuZXh0OyBu
ZXh0ID0gbmV4dC0+c2libGluZykKKwkvKgorCSAqIEZyb20gZmlyc3QgdG8gbmV4dCwgdGhleSBh
bGwgZmFsbCBpbnRvIG5ldydzIHJlZ2lvbiwgc28gY2hhbmdlIHRoZW0KKwkgKiBhcyBuZXcncyBj
aGlsZHJlbi4KKwkgKi8KKwlsaXN0X2N1dF9wb3NpdGlvbigmbmV3LT5jaGlsZCwgZmlyc3QtPnNp
YmxpbmcucHJldiwgJm5leHQtPnNpYmxpbmcpOworCWxpc3RfZm9yX2VhY2hfZW50cnkobmV4dCwg
Jm5ldy0+Y2hpbGQsIHNpYmxpbmcpCiAJCW5leHQtPnBhcmVudCA9IG5ldzsKIAotCWlmIChwYXJl
bnQtPmNoaWxkID09IGZpcnN0KSB7Ci0JCXBhcmVudC0+Y2hpbGQgPSBuZXc7Ci0JfSBlbHNlIHsK
LQkJbmV4dCA9IHBhcmVudC0+Y2hpbGQ7Ci0JCXdoaWxlIChuZXh0LT5zaWJsaW5nICE9IGZpcnN0
KQotCQkJbmV4dCA9IG5leHQtPnNpYmxpbmc7Ci0JCW5leHQtPnNpYmxpbmcgPSBuZXc7Ci0JfQog
CXJldHVybiBOVUxMOwogfQogCkBAIC05MzcsMTkgKzkzNywxNyBAQCBzdGF0aWMgaW50IF9fYWRq
dXN0X3Jlc291cmNlKHN0cnVjdCByZXNvdXJjZSAqcmVzLCByZXNvdXJjZV9zaXplX3Qgc3RhcnQs
CiAJaWYgKChzdGFydCA8IHBhcmVudC0+c3RhcnQpIHx8IChlbmQgPiBwYXJlbnQtPmVuZCkpCiAJ
CWdvdG8gb3V0OwogCi0JaWYgKHJlcy0+c2libGluZyAmJiAocmVzLT5zaWJsaW5nLT5zdGFydCA8
PSBlbmQpKQorCWlmIChyZXNvdXJjZV9zaWJsaW5nKHJlcykgJiYgKHJlc291cmNlX3NpYmxpbmco
cmVzKS0+c3RhcnQgPD0gZW5kKSkKIAkJZ290byBvdXQ7CiAKLQl0bXAgPSBwYXJlbnQtPmNoaWxk
OwotCWlmICh0bXAgIT0gcmVzKSB7Ci0JCXdoaWxlICh0bXAtPnNpYmxpbmcgIT0gcmVzKQotCQkJ
dG1wID0gdG1wLT5zaWJsaW5nOworCWlmIChyZXMtPnNpYmxpbmcucHJldiAhPSAmcGFyZW50LT5j
aGlsZCkgeworCQl0bXAgPSBsaXN0X3ByZXZfZW50cnkocmVzLCBzaWJsaW5nKTsKIAkJaWYgKHN0
YXJ0IDw9IHRtcC0+ZW5kKQogCQkJZ290byBvdXQ7CiAJfQogCiBza2lwOgotCWZvciAodG1wID0g
cmVzLT5jaGlsZDsgdG1wOyB0bXAgPSB0bXAtPnNpYmxpbmcpCisJbGlzdF9mb3JfZWFjaF9lbnRy
eSh0bXAsICZyZXMtPmNoaWxkLCBzaWJsaW5nKQogCQlpZiAoKHRtcC0+c3RhcnQgPCBzdGFydCkg
fHwgKHRtcC0+ZW5kID4gZW5kKSkKIAkJCWdvdG8gb3V0OwogCkBAIC05ODcsMzEgKzk4NSwzMyBA
QCBFWFBPUlRfU1lNQk9MKGFkanVzdF9yZXNvdXJjZSk7CiAgKiBSZXBhcmVudCByZXNvdXJjZSBj
aGlsZHJlbiBvZiBwciB0aGF0IGNvbmZsaWN0IHdpdGggcmVzCiAgKiB1bmRlciByZXMsIGFuZCBt
YWtlIHJlcyByZXBsYWNlIHRob3NlIGNoaWxkcmVuLgogICovCi1zdGF0aWMgaW50IHJlcGFyZW50
X3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKLQkJCQkgICAgIHN0cnVjdCByZXNv
dXJjZSAqcmVzKQoraW50IHJlcGFyZW50X3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVu
dCwgc3RydWN0IHJlc291cmNlICpyZXMpCiB7Ci0Jc3RydWN0IHJlc291cmNlICpwLCAqKnBwOwot
CXN0cnVjdCByZXNvdXJjZSAqKmZpcnN0cHAgPSBOVUxMOworCXN0cnVjdCByZXNvdXJjZSAqcCwg
KmZpcnN0ID0gTlVMTDsKIAotCWZvciAocHAgPSAmcGFyZW50LT5jaGlsZDsgKHAgPSAqcHApICE9
IE5VTEw7IHBwID0gJnAtPnNpYmxpbmcpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZwYXJl
bnQtPmNoaWxkLCBzaWJsaW5nKSB7CiAJCWlmIChwLT5lbmQgPCByZXMtPnN0YXJ0KQogCQkJY29u
dGludWU7CiAJCWlmIChyZXMtPmVuZCA8IHAtPnN0YXJ0KQogCQkJYnJlYWs7CiAJCWlmIChwLT5z
dGFydCA8IHJlcy0+c3RhcnQgfHwgcC0+ZW5kID4gcmVzLT5lbmQpCiAJCQlyZXR1cm4gLTE7CS8q
IG5vdCBjb21wbGV0ZWx5IGNvbnRhaW5lZCAqLwotCQlpZiAoZmlyc3RwcCA9PSBOVUxMKQotCQkJ
Zmlyc3RwcCA9IHBwOworCQlpZiAoZmlyc3QgPT0gTlVMTCkKKwkJCWZpcnN0ID0gcDsKIAl9Ci0J
aWYgKGZpcnN0cHAgPT0gTlVMTCkKKwlpZiAoZmlyc3QgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwkv
KiBkaWRuJ3QgZmluZCBhbnkgY29uZmxpY3RpbmcgZW50cmllcz8gKi8KIAlyZXMtPnBhcmVudCA9
IHBhcmVudDsKLQlyZXMtPmNoaWxkID0gKmZpcnN0cHA7Ci0JcmVzLT5zaWJsaW5nID0gKnBwOwot
CSpmaXJzdHBwID0gcmVzOwotCSpwcCA9IE5VTEw7Ci0JZm9yIChwID0gcmVzLT5jaGlsZDsgcCAh
PSBOVUxMOyBwID0gcC0+c2libGluZykgewotCQlwLT5wYXJlbnQgPSByZXM7CisJbGlzdF9hZGQo
JnJlcy0+c2libGluZywgJnAtPnNpYmxpbmcucHJldik7CisJSU5JVF9MSVNUX0hFQUQoJnJlcy0+
Y2hpbGQpOworCisJLyoKKwkgKiBGcm9tIGZpcnN0IHRvIHAncyBwcmV2aW91cyBzaWJsaW5nLCB0
aGV5IGFsbCBmYWxsIGludG8KKwkgKiByZXMncyByZWdpb24sIGNoYW5nZSB0aGVtIGFzIHJlcydz
IGNoaWxkcmVuLgorCSAqLworCWxpc3RfY3V0X3Bvc2l0aW9uKCZyZXMtPmNoaWxkLCBmaXJzdC0+
c2libGluZy5wcmV2LCByZXMtPnNpYmxpbmcucHJldik7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShw
LCAmbmV3LT5jaGlsZCwgc2libGluZykgeworICAgICAgICAgICAgICAgIHAtPnBhcmVudCA9IG5l
dzsKIAkJcHJfZGVidWcoIlBDSTogUmVwYXJlbnRlZCAlcyAlcFIgdW5kZXIgJXNcbiIsCiAJCQkg
cC0+bmFtZSwgcCwgcmVzLT5uYW1lKTsKIAl9CkBAIC0xMjEwLDM0ICsxMjEwLDMyIEBAIEVYUE9S
VF9TWU1CT0woX19yZXF1ZXN0X3JlZ2lvbik7CiB2b2lkIF9fcmVsZWFzZV9yZWdpb24oc3RydWN0
IHJlc291cmNlICpwYXJlbnQsIHJlc291cmNlX3NpemVfdCBzdGFydCwKIAkJCXJlc291cmNlX3Np
emVfdCBuKQogewotCXN0cnVjdCByZXNvdXJjZSAqKnA7CisJc3RydWN0IHJlc291cmNlICpyZXM7
CiAJcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIAotCXAgPSAmcGFyZW50LT5jaGlsZDsKKwlyZXMgPSBy
ZXNvdXJjZV9maXJzdF9jaGlsZCgmcGFyZW50LT5jaGlsZCk7CiAJZW5kID0gc3RhcnQgKyBuIC0g
MTsKIAogCXdyaXRlX2xvY2soJnJlc291cmNlX2xvY2spOwogCiAJZm9yICg7OykgewotCQlzdHJ1
Y3QgcmVzb3VyY2UgKnJlcyA9ICpwOwotCiAJCWlmICghcmVzKQogCQkJYnJlYWs7CiAJCWlmIChy
ZXMtPnN0YXJ0IDw9IHN0YXJ0ICYmIHJlcy0+ZW5kID49IGVuZCkgewogCQkJaWYgKCEocmVzLT5m
bGFncyAmIElPUkVTT1VSQ0VfQlVTWSkpIHsKLQkJCQlwID0gJnJlcy0+Y2hpbGQ7CisJCQkJcmVz
ID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnJlcy0+Y2hpbGQpOwogCQkJCWNvbnRpbnVlOwogCQkJ
fQogCQkJaWYgKHJlcy0+c3RhcnQgIT0gc3RhcnQgfHwgcmVzLT5lbmQgIT0gZW5kKQogCQkJCWJy
ZWFrOwotCQkJKnAgPSByZXMtPnNpYmxpbmc7CisJCQlsaXN0X2RlbCgmcmVzLT5zaWJsaW5nKTsK
IAkJCXdyaXRlX3VubG9jaygmcmVzb3VyY2VfbG9jayk7CiAJCQlpZiAocmVzLT5mbGFncyAmIElP
UkVTT1VSQ0VfTVVYRUQpCiAJCQkJd2FrZV91cCgmbXV4ZWRfcmVzb3VyY2Vfd2FpdCk7CiAJCQlm
cmVlX3Jlc291cmNlKHJlcyk7CiAJCQlyZXR1cm47CiAJCX0KLQkJcCA9ICZyZXMtPnNpYmxpbmc7
CisJCXJlcyA9IHJlc291cmNlX3NpYmxpbmcocmVzKTsKIAl9CiAKIAl3cml0ZV91bmxvY2soJnJl
c291cmNlX2xvY2spOwpAQCAtMTI3Miw5ICsxMjcwLDcgQEAgRVhQT1JUX1NZTUJPTChfX3JlbGVh
c2VfcmVnaW9uKTsKIGludCByZWxlYXNlX21lbV9yZWdpb25fYWRqdXN0YWJsZShzdHJ1Y3QgcmVz
b3VyY2UgKnBhcmVudCwKIAkJCXJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90
IHNpemUpCiB7Ci0Jc3RydWN0IHJlc291cmNlICoqcDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsK
LQlzdHJ1Y3QgcmVzb3VyY2UgKm5ld19yZXM7CisJc3RydWN0IHJlc291cmNlICpyZXMsICpuZXdf
cmVzOwogCXJlc291cmNlX3NpemVfdCBlbmQ7CiAJaW50IHJldCA9IC1FSU5WQUw7CiAKQEAgLTEy
ODUsMTYgKzEyODEsMTYgQEAgaW50IHJlbGVhc2VfbWVtX3JlZ2lvbl9hZGp1c3RhYmxlKHN0cnVj
dCByZXNvdXJjZSAqcGFyZW50LAogCS8qIFRoZSBhbGxvY19yZXNvdXJjZSgpIHJlc3VsdCBnZXRz
IGNoZWNrZWQgbGF0ZXIgKi8KIAluZXdfcmVzID0gYWxsb2NfcmVzb3VyY2UoR0ZQX0tFUk5FTCk7
CiAKLQlwID0gJnBhcmVudC0+Y2hpbGQ7CisJcmVzID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnBh
cmVudC0+Y2hpbGQpOwogCXdyaXRlX2xvY2soJnJlc291cmNlX2xvY2spOwogCi0Jd2hpbGUgKChy
ZXMgPSAqcCkpIHsKKwl3aGlsZSAoKHJlcykpIHsKIAkJaWYgKHJlcy0+c3RhcnQgPj0gZW5kKQog
CQkJYnJlYWs7CiAKIAkJLyogbG9vayBmb3IgdGhlIG5leHQgcmVzb3VyY2UgaWYgaXQgZG9lcyBu
b3QgZml0IGludG8gKi8KIAkJaWYgKHJlcy0+c3RhcnQgPiBzdGFydCB8fCByZXMtPmVuZCA8IGVu
ZCkgewotCQkJcCA9ICZyZXMtPnNpYmxpbmc7CisJCQlyZXMgPSByZXNvdXJjZV9zaWJsaW5nKHJl
cyk7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC0xMzAyLDE0ICsxMjk4LDE0IEBAIGludCByZWxl
YXNlX21lbV9yZWdpb25fYWRqdXN0YWJsZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKIAkJCWJy
ZWFrOwogCiAJCWlmICghKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0JVU1kpKSB7Ci0JCQlwID0g
JnJlcy0+Y2hpbGQ7CisJCQlyZXMgPSByZXNvdXJjZV9maXJzdF9jaGlsZCgmcmVzLT5jaGlsZCk7
CiAJCQljb250aW51ZTsKIAkJfQogCiAJCS8qIGZvdW5kIHRoZSB0YXJnZXQgcmVzb3VyY2U7IGxl
dCdzIGFkanVzdCBhY2NvcmRpbmdseSAqLwogCQlpZiAocmVzLT5zdGFydCA9PSBzdGFydCAmJiBy
ZXMtPmVuZCA9PSBlbmQpIHsKIAkJCS8qIGZyZWUgdGhlIHdob2xlIGVudHJ5ICovCi0JCQkqcCA9
IHJlcy0+c2libGluZzsKKwkJCWxpc3RfZGVsKCZyZXMtPnNpYmxpbmcpOwogCQkJZnJlZV9yZXNv
dXJjZShyZXMpOwogCQkJcmV0ID0gMDsKIAkJfSBlbHNlIGlmIChyZXMtPnN0YXJ0ID09IHN0YXJ0
ICYmIHJlcy0+ZW5kICE9IGVuZCkgewpAQCAtMTMzMiwxNCArMTMyOCwxMyBAQCBpbnQgcmVsZWFz
ZV9tZW1fcmVnaW9uX2FkanVzdGFibGUoc3RydWN0IHJlc291cmNlICpwYXJlbnQsCiAJCQluZXdf
cmVzLT5mbGFncyA9IHJlcy0+ZmxhZ3M7CiAJCQluZXdfcmVzLT5kZXNjID0gcmVzLT5kZXNjOwog
CQkJbmV3X3Jlcy0+cGFyZW50ID0gcmVzLT5wYXJlbnQ7Ci0JCQluZXdfcmVzLT5zaWJsaW5nID0g
cmVzLT5zaWJsaW5nOwotCQkJbmV3X3Jlcy0+Y2hpbGQgPSBOVUxMOworCQkJSU5JVF9MSVNUX0hF
QUQoJm5ld19yZXMtPmNoaWxkKTsKIAogCQkJcmV0ID0gX19hZGp1c3RfcmVzb3VyY2UocmVzLCBy
ZXMtPnN0YXJ0LAogCQkJCQkJc3RhcnQgLSByZXMtPnN0YXJ0KTsKIAkJCWlmIChyZXQpCiAJCQkJ
YnJlYWs7Ci0JCQlyZXMtPnNpYmxpbmcgPSBuZXdfcmVzOworCQkJbGlzdF9hZGQoJm5ld19yZXMt
PnNpYmxpbmcsICZyZXMtPnNpYmxpbmcpOwogCQkJbmV3X3JlcyA9IE5VTEw7CiAJCX0KIApAQCAt
MTUyMCw3ICsxNTE1LDcgQEAgc3RhdGljIGludCBfX2luaXQgcmVzZXJ2ZV9zZXR1cChjaGFyICpz
dHIpCiAJCQlyZXMtPmVuZCA9IGlvX3N0YXJ0ICsgaW9fbnVtIC0gMTsKIAkJCXJlcy0+ZmxhZ3Mg
fD0gSU9SRVNPVVJDRV9CVVNZOwogCQkJcmVzLT5kZXNjID0gSU9SRVNfREVTQ19OT05FOwotCQkJ
cmVzLT5jaGlsZCA9IE5VTEw7CisJCQlJTklUX0xJU1RfSEVBRCgmcmVzLT5jaGlsZCk7CiAJCQlp
ZiAocmVxdWVzdF9yZXNvdXJjZShwYXJlbnQsIHJlcykgPT0gMCkKIAkJCQlyZXNlcnZlZCA9IHgr
MTsKIAkJfQpAQCAtMTU0MCw3ICsxNTM1LDcgQEAgaW50IGlvbWVtX21hcF9zYW5pdHlfY2hlY2so
cmVzb3VyY2Vfc2l6ZV90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAlsb2ZmX3QgbDsKIAog
CXJlYWRfbG9jaygmcmVzb3VyY2VfbG9jayk7Ci0JZm9yIChwID0gcC0+Y2hpbGQ7IHAgOyBwID0g
cl9uZXh0KE5VTEwsIHAsICZsKSkgeworCWZvciAocCA9IHJlc291cmNlX2ZpcnN0X2NoaWxkKCZw
LT5jaGlsZCk7IHA7IHAgPSByX25leHQoTlVMTCwgcCwgJmwpKSB7CiAJCS8qCiAJCSAqIFdlIGNh
biBwcm9iYWJseSBza2lwIHRoZSByZXNvdXJjZXMgd2l0aG91dAogCQkgKiBJT1JFU09VUkNFX0lP
IGF0dHJpYnV0ZT8KQEAgLTE1OTYsNyArMTU5MSw3IEBAIGJvb2wgaW9tZW1faXNfZXhjbHVzaXZl
KHU2NCBhZGRyKQogCWFkZHIgPSBhZGRyICYgUEFHRV9NQVNLOwogCiAJcmVhZF9sb2NrKCZyZXNv
dXJjZV9sb2NrKTsKLQlmb3IgKHAgPSBwLT5jaGlsZDsgcCA7IHAgPSByX25leHQoTlVMTCwgcCwg
JmwpKSB7CisJZm9yIChwID0gcmVzb3VyY2VfZmlyc3RfY2hpbGQoJnAtPmNoaWxkKTsgcDsgcCA9
IHJfbmV4dChOVUxMLCBwLCAmbCkpIHsKIAkJLyoKIAkJICogV2UgY2FuIHByb2JhYmx5IHNraXAg
dGhlIHJlc291cmNlcyB3aXRob3V0CiAJCSAqIElPUkVTT1VSQ0VfSU8gYXR0cmlidXRlPwotLSAK
Mi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM
aW51eC1udmRpbW0gbWFpbGluZyBsaXN0CkxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKaHR0cHM6
Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udmRpbW0K
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
[not found] ` <20180612032831.29747-3-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2018-06-12 4:37 ` kbuild test robot
2018-06-12 4:49 ` kbuild test robot
1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2018-06-12 4:37 UTC (permalink / raw)
To: Baoquan He
Cc: nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A, brijesh.singh-5C7GfCeVMHo,
thomas.lendacky-5C7GfCeVMHo, airlied-cv59FeDIM0c,
linux-pci-u79uwXL29TY76Z2rM5mHXA,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w,
keith.busch-ral2JQCrhuEAvxtiuMwx3w,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/,
frowand.list-Re5JQEeQqe8AvxtiuMwx3w, tglx-hfZtesqFncYOwBW4kG4KsQ,
lorenzo.pieralisi-5wv7dgnIgG8, sthemmin-0li6OtcxBFHby3iVrkZq2A,
Baoquan He, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w,
linux-input-u79uwXL29TY76Z2rM5mHXA,
gustavo-THi1TnShQwVAfugRpC6u6w, bp-l3A5Bk7waGM,
dyoung-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
devicetree-u79uwXL29TY76Z2rM5mHXA,
haiyangz-0li6OtcxBFHby3iVrkZq2A,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA,
josh-iaAMLnmF4UmaiuxdJuQwMA, jglisse-H+wXaHxf7aLQT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, seanpaul-F7+t8E8rja9g9hUCZPvPmw,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, yinghai-DgEjT+Ai2ygdnm+yROfE0A,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w,
chris-YvXeqwSYzG2sTnJN9+BGXg, monstr-pSz03upnqPeHXe+LvDLADg,
linux-parisc-u79uwXL29TY76Z2rM5mHXA,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w,
kexec-IAPFreCvJWMP3drIcvDWNA
Hi Baoquan,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v4.17 next-20180608]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600
config: i386-tinyconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
kernel/resource.c: In function 'reparent_resources':
>> kernel/resource.c:1005:26: error: passing argument 2 of 'list_add' from incompatible pointer type [-Werror=incompatible-pointer-types]
list_add(&res->sibling, &p->sibling.prev);
^
In file included from include/linux/ioport.h:15:0,
from kernel/resource.c:14:
include/linux/list.h:77:20: note: expected 'struct list_head *' but argument is of type 'struct list_head **'
static inline void list_add(struct list_head *new, struct list_head *head)
^~~~~~~~
In file included from include/linux/list.h:9:0,
from include/linux/ioport.h:15,
from kernel/resource.c:14:
>> kernel/resource.c:1013:26: error: 'new' undeclared (first use in this function); did you mean 'net'?
list_for_each_entry(p, &new->child, sibling) {
^
include/linux/kernel.h:963:26: note: in definition of macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~
include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(p, &new->child, sibling) {
^~~~~~~~~~~~~~~~~~~
kernel/resource.c:1013:26: note: each undeclared identifier is reported only once for each function it appears in
list_for_each_entry(p, &new->child, sibling) {
^
include/linux/kernel.h:963:26: note: in definition of macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~
include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(p, &new->child, sibling) {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/list_add +1005 kernel/resource.c
983
984 /*
985 * Reparent resource children of pr that conflict with res
986 * under res, and make res replace those children.
987 */
988 int reparent_resources(struct resource *parent, struct resource *res)
989 {
990 struct resource *p, *first = NULL;
991
992 list_for_each_entry(p, &parent->child, sibling) {
993 if (p->end < res->start)
994 continue;
995 if (res->end < p->start)
996 break;
997 if (p->start < res->start || p->end > res->end)
998 return -1; /* not completely contained */
999 if (first == NULL)
1000 first = p;
1001 }
1002 if (first == NULL)
1003 return -1; /* didn't find any conflicting entries? */
1004 res->parent = parent;
> 1005 list_add(&res->sibling, &p->sibling.prev);
1006 INIT_LIST_HEAD(&res->child);
1007
1008 /*
1009 * From first to p's previous sibling, they all fall into
1010 * res's region, change them as res's children.
1011 */
1012 list_cut_position(&res->child, first->sibling.prev, res->sibling.prev);
> 1013 list_for_each_entry(p, &new->child, sibling) {
1014 p->parent = new;
1015 pr_debug("PCI: Reparented %s %pR under %s\n",
1016 p->name, p, res->name);
1017 }
1018 return 0;
1019 }
1020 EXPORT_SYMBOL(reparent_resources);
1021
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
[not found] ` <20180612032831.29747-3-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-06-12 4:37 ` kbuild test robot
@ 2018-06-12 4:49 ` kbuild test robot
1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2018-06-12 4:49 UTC (permalink / raw)
To: Baoquan He
Cc: nicolas.pitre-QSEj5FYQhm4dnm+yROfE0A, brijesh.singh-5C7GfCeVMHo,
thomas.lendacky-5C7GfCeVMHo, airlied-cv59FeDIM0c,
linux-pci-u79uwXL29TY76Z2rM5mHXA,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w,
keith.busch-ral2JQCrhuEAvxtiuMwx3w,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/,
frowand.list-Re5JQEeQqe8AvxtiuMwx3w, tglx-hfZtesqFncYOwBW4kG4KsQ,
lorenzo.pieralisi-5wv7dgnIgG8, sthemmin-0li6OtcxBFHby3iVrkZq2A,
Baoquan He, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w,
linux-input-u79uwXL29TY76Z2rM5mHXA,
gustavo-THi1TnShQwVAfugRpC6u6w, bp-l3A5Bk7waGM,
dyoung-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
devicetree-u79uwXL29TY76Z2rM5mHXA,
haiyangz-0li6OtcxBFHby3iVrkZq2A,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA,
josh-iaAMLnmF4UmaiuxdJuQwMA, jglisse-H+wXaHxf7aLQT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, seanpaul-F7+t8E8rja9g9hUCZPvPmw,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, yinghai-DgEjT+Ai2ygdnm+yROfE0A,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w,
chris-YvXeqwSYzG2sTnJN9+BGXg, monstr-pSz03upnqPeHXe+LvDLADg,
linux-parisc-u79uwXL29TY76Z2rM5mHXA,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w,
kexec-IAPFreCvJWMP3drIcvDWNA
Hi Baoquan,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v4.17 next-20180608]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600
config: x86_64-randconfig-x011-201823 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
kernel/resource.c: In function 'reparent_resources':
kernel/resource.c:1005:26: error: passing argument 2 of 'list_add' from incompatible pointer type [-Werror=incompatible-pointer-types]
list_add(&res->sibling, &p->sibling.prev);
^
In file included from include/linux/ioport.h:15:0,
from kernel/resource.c:14:
include/linux/list.h:77:20: note: expected 'struct list_head *' but argument is of type 'struct list_head **'
static inline void list_add(struct list_head *new, struct list_head *head)
^~~~~~~~
In file included from include/linux/list.h:9:0,
from include/linux/ioport.h:15,
from kernel/resource.c:14:
kernel/resource.c:1013:26: error: 'new' undeclared (first use in this function); did you mean 'net'?
list_for_each_entry(p, &new->child, sibling) {
^
include/linux/kernel.h:963:26: note: in definition of macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~
include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
>> kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(p, &new->child, sibling) {
^~~~~~~~~~~~~~~~~~~
kernel/resource.c:1013:26: note: each undeclared identifier is reported only once for each function it appears in
list_for_each_entry(p, &new->child, sibling) {
^
include/linux/kernel.h:963:26: note: in definition of macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~
include/linux/list.h:377:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^~~~~~~~~~
include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^~~~~~~~~~~~~~~~
>> kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(p, &new->child, sibling) {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/list_for_each_entry +1013 kernel/resource.c
983
984 /*
985 * Reparent resource children of pr that conflict with res
986 * under res, and make res replace those children.
987 */
988 int reparent_resources(struct resource *parent, struct resource *res)
989 {
990 struct resource *p, *first = NULL;
991
992 list_for_each_entry(p, &parent->child, sibling) {
993 if (p->end < res->start)
994 continue;
995 if (res->end < p->start)
996 break;
997 if (p->start < res->start || p->end > res->end)
998 return -1; /* not completely contained */
999 if (first == NULL)
1000 first = p;
1001 }
1002 if (first == NULL)
1003 return -1; /* didn't find any conflicting entries? */
1004 res->parent = parent;
1005 list_add(&res->sibling, &p->sibling.prev);
1006 INIT_LIST_HEAD(&res->child);
1007
1008 /*
1009 * From first to p's previous sibling, they all fall into
1010 * res's region, change them as res's children.
1011 */
1012 list_cut_position(&res->child, first->sibling.prev, res->sibling.prev);
> 1013 list_for_each_entry(p, &new->child, sibling) {
1014 p->parent = new;
1015 pr_debug("PCI: Reparented %s %pR under %s\n",
1016 p->name, p, res->name);
1017 }
1018 return 0;
1019 }
1020 EXPORT_SYMBOL(reparent_resources);
1021
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
@ 2018-06-12 15:10 Julia Lawall
2018-06-13 6:55 ` Baoquan He
0 siblings, 1 reply; 5+ messages in thread
From: Julia Lawall @ 2018-06-12 15:10 UTC (permalink / raw)
To: Baoquan He
Cc: brijesh.singh-5C7GfCeVMHo, thomas.lendacky-5C7GfCeVMHo,
airlied-cv59FeDIM0c, linux-pci-u79uwXL29TY76Z2rM5mHXA,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w,
keith.busch-ral2JQCrhuEAvxtiuMwx3w,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/,
frowand.list-Re5JQEeQqe8AvxtiuMwx3w,
lorenzo.pieralisi-5wv7dgnIgG8, sthemmin-0li6OtcxBFHby3iVrkZq2A,
Baoquan He, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w,
linux-input-u79uwXL29TY76Z2rM5mHXA,
gustavo-THi1TnShQwVAfugRpC6u6w, dyoung-H+wXaHxf7aLQT0dZR+AlfA,
kbuild-all-JC7UmRfGjtg, devicetree-u79uwXL29TY76Z2rM5mHXA,
haiyangz-0li6OtcxBFHby3iVrkZq2A,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA,
jglisse-H+wXaHxf7aLQT0dZR+AlfA, seanpaul-F7+t8E8rja9g9hUCZPvPmw,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, tglx-hfZtesqFncYOwBW4kG4KsQ,
yinghai-DgEjT+Ai2ygdnm+yROfE0A,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w,
chris-YvXeqwSYzG2sTnJN9+BGXg, monstr-pSz03upnqPeHXe+LvDLADg,
linux-parisc-u79uwXL29TY76Z2rM5mHXA,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
ebiederm-aS9lmoZGLiVWk0Htik3J/w,
devel-tBiZLqfeLfOHmIFyCCdPziST3g8Odh+X, linuxppc-dev
This looks wrong. After a list iterator, the index variable points to a
dummy structure.
julia
url: https://github.com/0day-ci/linux/commits/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
>> kernel/resource.c:265:17-20: ERROR: invalid reference to the index variable of the iterator on line 253
# https://github.com/0day-ci/linux/commit/e906f15906750a86913ba2b1f08bad99129d3dfc
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout e906f15906750a86913ba2b1f08bad99129d3dfc
vim +265 kernel/resource.c
^1da177e4 Linus Torvalds 2005-04-16 247
5eeec0ec9 Yinghai Lu 2009-12-22 248 static void __release_child_resources(struct resource *r)
5eeec0ec9 Yinghai Lu 2009-12-22 249 {
e906f1590 Baoquan He 2018-06-12 250 struct resource *tmp, *next;
5eeec0ec9 Yinghai Lu 2009-12-22 251 resource_size_t size;
5eeec0ec9 Yinghai Lu 2009-12-22 252
e906f1590 Baoquan He 2018-06-12 @253 list_for_each_entry_safe(tmp, next, &r->child, sibling) {
5eeec0ec9 Yinghai Lu 2009-12-22 254 tmp->parent = NULL;
e906f1590 Baoquan He 2018-06-12 255 INIT_LIST_HEAD(&tmp->sibling);
5eeec0ec9 Yinghai Lu 2009-12-22 256 __release_child_resources(tmp);
5eeec0ec9 Yinghai Lu 2009-12-22 257
5eeec0ec9 Yinghai Lu 2009-12-22 258 printk(KERN_DEBUG "release child resource %pR\n", tmp);
5eeec0ec9 Yinghai Lu 2009-12-22 259 /* need to restore size, and keep flags */
5eeec0ec9 Yinghai Lu 2009-12-22 260 size = resource_size(tmp);
5eeec0ec9 Yinghai Lu 2009-12-22 261 tmp->start = 0;
5eeec0ec9 Yinghai Lu 2009-12-22 262 tmp->end = size - 1;
5eeec0ec9 Yinghai Lu 2009-12-22 263 }
e906f1590 Baoquan He 2018-06-12 264
e906f1590 Baoquan He 2018-06-12 @265 INIT_LIST_HEAD(&tmp->child);
5eeec0ec9 Yinghai Lu 2009-12-22 266 }
5eeec0ec9 Yinghai Lu 2009-12-22 267
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
2018-06-12 15:10 [PATCH v5 2/4] resource: Use list_head to link sibling resource Julia Lawall
@ 2018-06-13 6:55 ` Baoquan He
0 siblings, 0 replies; 5+ messages in thread
From: Baoquan He @ 2018-06-13 6:55 UTC (permalink / raw)
To: Julia Lawall
Cc: brijesh.singh-5C7GfCeVMHo, thomas.lendacky-5C7GfCeVMHo,
airlied-cv59FeDIM0c, linux-pci-u79uwXL29TY76Z2rM5mHXA,
richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w,
keith.busch-ral2JQCrhuEAvxtiuMwx3w,
jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w,
baiyaowei-0p4V/sDNsUmm0O/7XYngnFaTQe2KTcn/,
frowand.list-Re5JQEeQqe8AvxtiuMwx3w,
lorenzo.pieralisi-5wv7dgnIgG8, sthemmin-0li6OtcxBFHby3iVrkZq2A,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w,
linux-input-u79uwXL29TY76Z2rM5mHXA,
gustavo-THi1TnShQwVAfugRpC6u6w, dyoung-H+wXaHxf7aLQT0dZR+AlfA,
kbuild-all-JC7UmRfGjtg, devicetree-u79uwXL29TY76Z2rM5mHXA,
haiyangz-0li6OtcxBFHby3iVrkZq2A,
maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA,
jglisse-H+wXaHxf7aLQT0dZR+AlfA, seanpaul-F7+t8E8rja9g9hUCZPvPmw,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, tglx-hfZtesqFncYOwBW4kG4KsQ,
yinghai-DgEjT+Ai2ygdnm+yROfE0A,
jonathan.derrick-ral2JQCrhuEAvxtiuMwx3w,
chris-YvXeqwSYzG2sTnJN9+BGXg, monstr-pSz03upnqPeHXe+LvDLADg,
linux-parisc-u79uwXL29TY76Z2rM5mHXA,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
ebiederm-aS9lmoZGLiVWk0Htik3J/w,
devel-tBiZLqfeLfOHmIFyCCdPziST3g8Odh+X,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ, davem-fT/PcQaiUtJq0hI55+XSNA
On 06/12/18 at 05:10pm, Julia Lawall wrote:
> This looks wrong. After a list iterator, the index variable points to a
> dummy structure.
>
> julia
>
> url: https://github.com/0day-ci/linux/commits/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600
> :::::: branch date: 7 hours ago
> :::::: commit date: 7 hours ago
>
> >> kernel/resource.c:265:17-20: ERROR: invalid reference to the index variable of the iterator on line 253
>
> # https://github.com/0day-ci/linux/commit/e906f15906750a86913ba2b1f08bad99129d3dfc
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout e906f15906750a86913ba2b1f08bad99129d3dfc
> vim +265 kernel/resource.c
>
> ^1da177e4 Linus Torvalds 2005-04-16 247
> 5eeec0ec9 Yinghai Lu 2009-12-22 248 static void __release_child_resources(struct resource *r)
> 5eeec0ec9 Yinghai Lu 2009-12-22 249 {
> e906f1590 Baoquan He 2018-06-12 250 struct resource *tmp, *next;
> 5eeec0ec9 Yinghai Lu 2009-12-22 251 resource_size_t size;
> 5eeec0ec9 Yinghai Lu 2009-12-22 252
> e906f1590 Baoquan He 2018-06-12 @253 list_for_each_entry_safe(tmp, next, &r->child, sibling) {
> 5eeec0ec9 Yinghai Lu 2009-12-22 254 tmp->parent = NULL;
> e906f1590 Baoquan He 2018-06-12 255 INIT_LIST_HEAD(&tmp->sibling);
list_del_init(&tmp->sibling);
Thanks, Julia. Here I should use list_del_init(&op->list) to
replace INIT_LIST_HEAD(&tmp->sibling).
> 5eeec0ec9 Yinghai Lu 2009-12-22 256 __release_child_resources(tmp);
> 5eeec0ec9 Yinghai Lu 2009-12-22 257
> 5eeec0ec9 Yinghai Lu 2009-12-22 258 printk(KERN_DEBUG "release child resource %pR\n", tmp);
> 5eeec0ec9 Yinghai Lu 2009-12-22 259 /* need to restore size, and keep flags */
> 5eeec0ec9 Yinghai Lu 2009-12-22 260 size = resource_size(tmp);
> 5eeec0ec9 Yinghai Lu 2009-12-22 261 tmp->start = 0;
> 5eeec0ec9 Yinghai Lu 2009-12-22 262 tmp->end = size - 1;
> 5eeec0ec9 Yinghai Lu 2009-12-22 263 }
> e906f1590 Baoquan He 2018-06-12 264
> e906f1590 Baoquan He 2018-06-12 @265 INIT_LIST_HEAD(&tmp->child);
> 5eeec0ec9 Yinghai Lu 2009-12-22 266 }
> 5eeec0ec9 Yinghai Lu 2009-12-22 267
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-06-13 6:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-12 15:10 [PATCH v5 2/4] resource: Use list_head to link sibling resource Julia Lawall
2018-06-13 6:55 ` Baoquan He
-- strict thread matches above, loose matches on Subject: below --
2018-06-12 3:28 [PATCH v5 0/4] " Baoquan He
[not found] ` <20180612032831.29747-1-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-06-12 3:28 ` [PATCH v5 2/4] " Baoquan He
[not found] ` <20180612032831.29747-3-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-06-12 4:37 ` kbuild test robot
2018-06-12 4:49 ` kbuild test robot
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).