Re: [patch 18/18] entry, treewide: Make syscall_enter_from_user_mode[_work]() indicate syscall execution

Shrikanth Hegde <[email protected]> Wed, 8 Jul 2026 10:51:56 +0530
Newsgroups org.infradead.lists.linux-snps-arc,dev.linux.lists.loongarch,org.infradead.lists.linux-riscv,org.infradead.lists.linux-um,org.kernel.vger.linux-alpha,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-doc,org.kernel.vger.linux-hexagon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc,org.kernel.vger.linux-parisc,org.kernel.vger.linux-s390,org.kernel.vger.linux-sh,org.kernel.vger.sparclinux,org.ozlabs.lists.linuxppc-dev
Message-ID <[email protected]>
SGkgVGhvbWFzLgoKT24gNy84LzI2IDEyOjM3IEFNLCBUaG9tYXMgR2xlaXhuZXIgd3JvdGU6Cj4g
RnJvbTogTWljaGFsIFN1Y2jDoW5layA8bXN1Y2hhbmVrQHN1c2UuZGU+Cj4gCj4gVGhlIHJldHVy
biB2YWx1ZXMgb2Ygc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZVtfd29ya10oKSBhcmUKPiBu
b24taW50dWl0aXZlLiBCb3RoIGZ1bmN0aW9ucyByZXR1cm4gdGhlIHN5c2NhbGwgbnVtYmVyIHdo
aWNoIHNob3VsZCBiZQo+IGludm9rZWQgYnkgdGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBzeXNj
YWxsIGVudHJ5IGNvZGUuIFRoZSByZXR1cm5lZAo+IG51bWJlciBjYW4gYmU6Cj4gCj4gICAgLSB0
aGUgdW5tb2RpZmllZCBzeXNjYWxsIG51bWJlciB3aGljaCB3YXMgaGFuZGVkIGluIGJ5IHRoZSBj
YWxsZXIKPiAKPiAgICAtIGEgbW9kaWZpZWQgc3lzY2FsbCBudW1iZXIgKHB0cmFjZSwgc2VjY29t
cCwgdHJhY2UvcHJvYmUvYnBmKQo+IAo+IFRoYXQgaGFzIGFuIGFkZGl0aW9uYWwgdHdpc3QuIElm
IHRoZSByZXR1cm4gdmFsdWUgaXMgLTFMIHRoZW4gdGhlIGNhbGxlciBpcwo+IG5vdCBhbGxvd2Vk
IHRvIG1vZGlmeSB0aGUgcmV0dXJuIHZhbHVlIGFzIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIG1v
ZGlmeWluZwo+IGVudGl0eSByZXF1ZXN0cyB0byBhYm9ydCB0aGUgc3lzY2FsbCBhbmQgc2V0IHRo
ZSByZXR1cm4gdmFsdWUgYWxyZWFkeS4gVGhhdAo+IGNhbiBvYnZpb3VzbHkgbm90IGJlIGRpZmZl
cmVudGlhdGVkIGZyb20gYSBzeXNjYWxsIHdoaWNoIGhhbmRlZCBpbiAtMSBhcwo+IHN5c2NhbGwg
bnVtYmVyLgo+IAo+IFRoZSBlc3RhYmxpc2hlZCB3YXkgdG8gZGVhbCB3aXRoIHRoYXQgaXM6Cj4g
Cj4gICAgICBzZXRfcmV0dXJuX3ZhbHVlKHJlZ3MsIC1FTk9TWVMpOwo+ICAgICAgbnIgPSBzeXNj
YWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlKHJlZ3MsIG5yKTsKPiAgICAgIGlmICgodW5zaWduZWQp
bnIgPCBTWVNDQUxMTlJfTUFYKQo+ICAgICAgCWhhbmRsZV9zeXNjYWxsKHJlZ3MsIG5yKTsKPiAg
ICAgIGVsc2UgaWYgKG5yICE9IC0xKQo+ICAgICAgCXNldF9yZXR1cm5fdmFsdWUocmVncywgLUVO
T1NZUyk7Cj4gCj4gVGhlIGxhdHRlciBpcyBvYnZpb3VzbHkgcmVkdW5kYW50LCBidXQgdGhhdCdz
IGp1c3QgYSBsZWZ0b3ZlciBvZiB0aGUKPiBoaXN0b3JpY2FsIGV2b2x1dGlvbiBvZiB0aGlzIGNv
ZGUuIFMzOTAgaGFzIHNvbWUgc3BlY2lhbCByZXF1aXJlbWVudHMgaGVyZSwKPiB3aGljaCBjYW4g
YmUgYXZvaWRlZCB3aGVuIHRoZSByZXR1cm4gdmFsdWUgaXMgbm90IGFtYmlndW91cy4KPiAKPiBO
b3cgdGhhdCB0aGUgZnVuY3Rpb25zIHdoaWNoIG1vZGlmeSB0aGUgc3lzY2FsbCBudW1iZXIgYW5k
IHdhbnQgdG8gYWJvcnQKPiBhcmUgY29udmVydGVkIHRvIGluZGljYXRlIHRoYXQgd2l0aCBhIGJv
b2xlYW4gcmV0dXJuIHZhbHVlLCBpdCdzIG9idmlvdXMgdG8KPiBoYW5kIHRoaXMgdGhyb3VnaCB0
byB0aGUgY2FsbGVycy4KPiAKPiBSZXdvcmsgc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZVtf
d29ya10pIHNvIHRoZXkgdGFrZSBhIHBvaW50ZXIgdG8gdGhlCj4gc3lzY2FsbCBudW1iZXIgYW5k
IHJldHVybiBhIGJvb2xlYW4sIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSBzeXNjYWxsCj4g
c2hvdWxkIGJlIGhhbmRsZWQgb3Igbm90Lgo+IAo+IFRoYXQncyBub3Qgb25seSBtb3JlIGludHVp
dGl2ZSwgaXQgYWxzbyByZXN1bHRzIGluIHNsaWdodGx5IGRlbnNlcgo+IGV4ZWN1dGFibGUgY29k
ZSBvbiB4ODYgYXQgbGVhc3QsIGJ1dCBwZXJmIHJlc3VsdHMgYXJlIG5ldXRyYWwgYW5kIHdpdGhp
bgo+IHRoZSBub2lzZS4KPiAKPiBbIHRnbHg6IEFkb3B0ZWQgaXQgdG8gdGhlIGNoYW5nZXMgaW4g
dGhlIGdlbmVyaWMgZW50cnkgY29kZSwgZml4ZWQgdXAgdGhlCj4gICAgCTMyLWJpdCBmYWxsb3V0
IGFuZCByZXdyb3RlIGNoYW5nZSBsb2cgXQo+IAo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTdWNo
w6FuZWsgPG1zdWNoYW5la0BzdXNlLmRlPgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBHbGVpeG5l
ciA8dGdseEBrZXJuZWwub3JnPgo+IENjOiBKb25hdGhhbiBDb3JiZXQgPGNvcmJldEBsd24ubmV0
Pgo+IENjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IENjOiBNYXJrIFJ1dGxhbmQg
PG1hcmsucnV0bGFuZEBhcm0uY29tPgo+IENjOiBIdWFjYWkgQ2hlbiA8Y2hlbmh1YWNhaUBrZXJu
ZWwub3JnPgo+IENjOiBNaWNoYWVsIEVsbGVybWFuIDxtcGVAZWxsZXJtYW4uaWQuYXU+Cj4gQ2M6
IFNocmlrYW50aCBIZWdkZSA8c3NoZWdkZUBsaW51eC5pYm0uY29tPgo+IENjOiBQYXVsIFdhbG1z
bGV5IDxwandAa2VybmVsLm9yZz4KPiBDYzogUGFsbWVyIERhYmJlbHQgPHBhbG1lckBkYWJiZWx0
LmNvbT4KPiBDYzogU3ZlbiBTY2huZWxsZSA8c3ZlbnNAbGludXguaWJtLmNvbT4KPiBDYzogbGlu
dXgtZG9jQHZnZXIua2VybmVsLm9yZwo+IENjOiBsb29uZ2FyY2hAbGlzdHMubGludXguZGV2Cj4g
Q2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCj4gQ2M6IGxpbnV4LXJpc2N2QGxpc3Rz
LmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgtczM5MEB2Z2VyLmtlcm5lbC5vcmcKPiAtLS0KPiAg
IERvY3VtZW50YXRpb24vY29yZS1hcGkvZW50cnkucnN0IHwgICAxOCArKysrKysrKysrKy0tLS0t
LS0KPiAgIGFyY2gvbG9vbmdhcmNoL2tlcm5lbC9zeXNjYWxsLmMgIHwgICAxNCArKysrKysrLS0t
LS0tLQo+ICAgYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxsLmMgICAgfCAgICAzICsrLQo+ICAg
YXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyAgICAgICAgfCAgIDExICsrKysrLS0tLS0tCj4gICBh
cmNoL3MzOTAva2VybmVsL3N5c2NhbGwuYyAgICAgICB8ICAgIDcgKysrKystLQo+ICAgYXJjaC94
ODYvZW50cnkvc3lzY2FsbF8zMi5jICAgICAgfCAgIDI1ICsrKysrKysrKysrKy0tLS0tLS0tLS0t
LS0KPiAgIGFyY2gveDg2L2VudHJ5L3N5c2NhbGxfNjQuYyAgICAgIHwgICAxMiArKysrKystLS0t
LS0KPiAgIGluY2x1ZGUvbGludXgvZW50cnktY29tbW9uLmggICAgIHwgICAxMiArKysrKy0tLS0t
LS0KPiAgIDggZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0p
Cj4gCj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9jb3JlLWFwaS9lbnRyeS5yc3QKPiArKysgYi9Eb2N1
bWVudGF0aW9uL2NvcmUtYXBpL2VudHJ5LnJzdAo+IEBAIC02OCwxNiArNjgsMjAgQEAgbG93LWxl
dmVsIEMgY29kZSBtdXN0IG5vdCBiZSBpbnN0cnVtZW50ZQo+ICAgICBub2luc3RyIHZvaWQgc3lz
Y2FsbChzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IG5yKQo+ICAgICB7Cj4gICAJYXJjaF9zeXNj
YWxsX2VudGVyKHJlZ3MpOwo+IC0JbnIgPSBzeXNjYWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlX3Jh
bmRvbWl6ZV9zdGFjayhyZWdzLCBucik7Cj4gLQo+IC0JaW5zdHJ1bWVudGF0aW9uX2JlZ2luKCk7
Cj4gLQlpZiAoIWludm9rZV9zeXNjYWxsKHJlZ3MsIG5yKSAmJiBuciAhPSAtMSkKPiAtCSAJcmVz
dWx0X3JlZyhyZWdzKSA9IF9fc3lzX25pX3N5c2NhbGwocmVncyk7Cj4gLQlpbnN0cnVtZW50YXRp
b25fZW5kKCk7Cj4gLQo+ICsJcmVzdWx0X3JlZyhyZWdzKSA9IC1FTk9TWVM7Cj4gKwlpZiAoc3lz
Y2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgJm5yKSkgewo+
ICsJCWluc3RydW1lbnRhdGlvbl9iZWdpbigpOwo+ICsJCWlmICghaW52b2tlX3N5c2NhbGwocmVn
cywgbnIpKQo+ICsJCQlyZXN1bHRfcmVnKHJlZ3MpID0gX19zeXNfbmlfc3lzY2FsbChyZWdzKTsK
PiArCQlpbnN0cnVtZW50YXRpb25fZW5kKCk7Cj4gKwl9Cj4gICAJc3lzY2FsbF9leGl0X3RvX3Vz
ZXJfbW9kZShyZWdzKTsKPiAgICAgfQo+ICAgCj4gK0l0IGlzIHJlcXVpcmVkIHRoYXQgZWl0aGVy
IHRoZSBsb3cgbGV2ZWwgYXNzZW1ibHkgY29kZSBvciB0aGUgc3lzY2FsbAo+ICtmdW5jdGlvbiBz
ZXRzIHRoZSByZXN1bHQgcmVnaXN0ZXIgdG8gLUVOT1NZUyBiZWZvcmUgaW52b2tpbmcgdGhlIGdl
bmVyaWMKPiArY29kZS4KPiArCj4gICBzeXNjYWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlX3JhbmRv
bWl6ZV9zdGFjaygpIGZpcnN0IGludm9rZXMKPiAgIGVudGVyX2Zyb21fdXNlcl9tb2RlX3JhbmRv
bWl6ZV9zdGFjaygpIHdoaWNoIGVzdGFibGlzaGVzIHN0YXRlIGluIHRoZQo+ICAgZm9sbG93aW5n
IG9yZGVyOgo+IC0tLSBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zeXNjYWxsLmMKPiArKysgYi9h
cmNoL2xvb25nYXJjaC9rZXJuZWwvc3lzY2FsbC5jCj4gQEAgLTU3LDggKzU3LDggQEAgdHlwZWRl
ZiBsb25nICgqc3lzX2NhbGxfZm4pKHVuc2lnbmVkIGxvbgo+ICAgCj4gICB2b2lkIG5vaW5zdHIg
X19ub19zdGFja19wcm90ZWN0b3IgZG9fc3lzY2FsbChzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiAg
IHsKPiAtCXVuc2lnbmVkIGxvbmcgbnI7Cj4gICAJc3lzX2NhbGxfZm4gc3lzY2FsbF9mbjsKPiAr
CXVuc2lnbmVkIGxvbmcgbnI7Cj4gICAKPiAgIAluciA9IHJlZ3MtPnJlZ3NbMTFdOwo+ICAgCS8q
IFNldCBmb3Igc3lzY2FsbCByZXN0YXJ0aW5nICovCj4gQEAgLTY5LDEyICs2OSwxMiBAQCB2b2lk
IG5vaW5zdHIgX19ub19zdGFja19wcm90ZWN0b3IgZG9fc3lzCj4gICAJcmVncy0+b3JpZ19hMCA9
IHJlZ3MtPnJlZ3NbNF07Cj4gICAJcmVncy0+cmVnc1s0XSA9IC1FTk9TWVM7Cj4gICAKPiAtCW5y
ID0gc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgbnIp
Owo+IC0KPiAtCWlmIChuciA8IE5SX3N5c2NhbGxzKSB7Cj4gLQkJc3lzY2FsbF9mbiA9IHN5c19j
YWxsX3RhYmxlW2FycmF5X2luZGV4X25vc3BlYyhuciwgTlJfc3lzY2FsbHMpXTsKPiAtCQlyZWdz
LT5yZWdzWzRdID0gc3lzY2FsbF9mbihyZWdzLT5vcmlnX2EwLCByZWdzLT5yZWdzWzVdLCByZWdz
LT5yZWdzWzZdLAo+IC0JCQkJCSAgIHJlZ3MtPnJlZ3NbN10sIHJlZ3MtPnJlZ3NbOF0sIHJlZ3Mt
PnJlZ3NbOV0pOwo+ICsJaWYgKGxpa2VseShzeXNjYWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlX3Jh
bmRvbWl6ZV9zdGFjayhyZWdzLCAmbnIpKSkgewo+ICsJCWlmIChuciA8IE5SX3N5c2NhbGxzKSB7
Cj4gKwkJCXN5c2NhbGxfZm4gPSBzeXNfY2FsbF90YWJsZVthcnJheV9pbmRleF9ub3NwZWMobnIs
IE5SX3N5c2NhbGxzKV07Cj4gKwkJCXJlZ3MtPnJlZ3NbNF0gPSBzeXNjYWxsX2ZuKHJlZ3MtPm9y
aWdfYTAsIHJlZ3MtPnJlZ3NbNV0sIHJlZ3MtPnJlZ3NbNl0sCj4gKwkJCQkJCSAgIHJlZ3MtPnJl
Z3NbN10sIHJlZ3MtPnJlZ3NbOF0sIHJlZ3MtPnJlZ3NbOV0pOwo+ICsJCX0KPiAgIAl9Cj4gICAK
PiAgIAlzeXNjYWxsX2V4aXRfdG9fdXNlcl9tb2RlKHJlZ3MpOwo+IC0tLSBhL2FyY2gvcG93ZXJw
Yy9rZXJuZWwvc3lzY2FsbC5jCj4gKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxsLmMK
PiBAQCAtMTgsNyArMTgsOCBAQCBub3RyYWNlIGxvbmcgc3lzdGVtX2NhbGxfZXhjZXB0aW9uKHN0
cnVjCj4gICAJbG9uZyByZXQ7Cj4gICAJc3lzY2FsbF9mbiBmOwo+ICAgCj4gLQlyMCA9IHN5c2Nh
bGxfZW50ZXJfZnJvbV91c2VyX21vZGVfcmFuZG9taXplX3N0YWNrKHJlZ3MsIHIwKTsKPiArCWlm
ICh1bmxpa2VseSghc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2so
cmVncywgJnIwKSkKPiArCQlyZXR1cm4gc3lzY2FsbF9nZXRfZXJyb3IoY3VycmVudCwgcmVncyk7
Cj4gICAKClRoZXJlIGlzIG9uZSBtaXNzaW5nICkKCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMv
a2VybmVsL3N5c2NhbGwuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbC5jCmluZGV4IGQ4
NTg5NGJkYjZhMi4uMTQ0MGRjYWJlMDUyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVs
L3N5c2NhbGwuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2NhbGwuYwpAQCAtMTgsNyAr
MTgsNyBAQCBub3RyYWNlIGxvbmcgc3lzdGVtX2NhbGxfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdz
ICpyZWdzLCB1bnNpZ25lZCBsb25nIHIwKQogICAgICAgICBsb25nIHJldDsKICAgICAgICAgc3lz
Y2FsbF9mbiBmOwogIAotICAgICAgIGlmICh1bmxpa2VseSghc3lzY2FsbF9lbnRlcl9mcm9tX3Vz
ZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgJnIwKSkKKyAgICAgICBpZiAodW5saWtlbHko
IXN5c2NhbGxfZW50ZXJfZnJvbV91c2VyX21vZGVfcmFuZG9taXplX3N0YWNrKHJlZ3MsICZyMCkp
KQogICAgICAgICAgICAgICAgIHJldHVybiBzeXNjYWxsX2dldF9lcnJvcihjdXJyZW50LCByZWdz
KTsKICAKICAgICAgICAgaWYgKHVubGlrZWx5KHIwID49IE5SX3N5c2NhbGxzKSkgewoKCj4gICAJ
aWYgKHVubGlrZWx5KHIwID49IE5SX3N5c2NhbGxzKSkgewo+ICAgCQlpZiAodW5saWtlbHkodHJh
cF9pc191bnN1cHBvcnRlZF9zY3YocmVncykpKSB7Cj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwv
dHJhcHMuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMKPiBAQCAtMzMyLDEzICsz
MzIsMTIgQEAgdm9pZCBkb190cmFwX2VjYWxsX3Uoc3RydWN0IHB0X3JlZ3MgKnJlZwo+ICAgCj4g
ICAJCXJpc2N2X3ZfdnN0YXRlX2Rpc2NhcmQocmVncyk7Cj4gICAKPiAtCQlzeXNjYWxsID0gc3lz
Y2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgc3lzY2FsbCk7
Cj4gLQo+IC0JCWlmIChzeXNjYWxsID49IDAgJiYgc3lzY2FsbCA8IE5SX3N5c2NhbGxzKSB7Cj4g
LQkJCXN5c2NhbGwgPSBhcnJheV9pbmRleF9ub3NwZWMoc3lzY2FsbCwgTlJfc3lzY2FsbHMpOwo+
IC0JCQlzeXNjYWxsX2hhbmRsZXIocmVncywgc3lzY2FsbCk7Cj4gKwkJaWYgKHN5c2NhbGxfZW50
ZXJfZnJvbV91c2VyX21vZGVfcmFuZG9taXplX3N0YWNrKHJlZ3MsICZzeXNjYWxsKSkgewo+ICsJ
CQlpZiAoc3lzY2FsbCA+PSAwICYmIHN5c2NhbGwgPCBOUl9zeXNjYWxscykgewo+ICsJCQkJc3lz
Y2FsbCA9IGFycmF5X2luZGV4X25vc3BlYyhzeXNjYWxsLCBOUl9zeXNjYWxscyk7Cj4gKwkJCQlz
eXNjYWxsX2hhbmRsZXIocmVncywgc3lzY2FsbCk7Cj4gKwkJCX0KPiAgIAkJfQo+IC0KPiAgIAkJ
c3lzY2FsbF9leGl0X3RvX3VzZXJfbW9kZShyZWdzKTsKPiAgIAl9IGVsc2Ugewo+ICAgCQlpcnFl
bnRyeV9zdGF0ZV90IHN0YXRlID0gaXJxZW50cnlfbm1pX2VudGVyKHJlZ3MpOwo+IC0tLSBhL2Fy
Y2gvczM5MC9rZXJuZWwvc3lzY2FsbC5jCj4gKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9zeXNjYWxs
LmMKPiBAQCAtOTYsNiArOTYsNyBAQCBTWVNDQUxMX0RFRklORTAobmlfc3lzY2FsbCkKPiAgIHZv
aWQgbm9pbnN0ciBfX2RvX3N5c2NhbGwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBwZXJfdHJh
cCkKPiAgIHsKPiAgIAl1bnNpZ25lZCBsb25nIG5yOwo+ICsJYm9vbCBwZXJtaXQ7Cj4gICAKPiAg
IAllbnRlcl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncyk7Cj4gICAKPiBAQCAt
MTIxLDcgKzEyMiw5IEBAIHZvaWQgbm9pbnN0ciBfX2RvX3N5c2NhbGwoc3RydWN0IHB0X3JlZ3MK
PiAgIAkJcmVncy0+cHN3LmFkZHIgPSBjdXJyZW50LT5yZXN0YXJ0X2Jsb2NrLmFyY2hfZGF0YTsK
PiAgIAkJY3VycmVudC0+cmVzdGFydF9ibG9jay5hcmNoX2RhdGEgPSAxOwo+ICAgCX0KPiAtCW5y
ID0gc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV93b3JrKHJlZ3MsIG5yKTsKPiArCj4gKwlw
ZXJtaXQgPSBzeXNjYWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlX3dvcmsocmVncywgJm5yKTsKPiAr
Cj4gICAJLyoKPiAgIAkgKiBJbiB0aGUgczM5MCBwdHJhY2UgQUJJLCBib3RoIHRoZSBzeXNjYWxs
IG51bWJlciBhbmQgdGhlIHJldHVybiB2YWx1ZQo+ICAgCSAqIHVzZSBncHIyLiBIb3dldmVyLCB1
c2Vyc3BhY2UgcHV0cyB0aGUgc3lzY2FsbCBudW1iZXIgZWl0aGVyIGluIHRoZQo+IEBAIC0xMjks
NyArMTMyLDcgQEAgdm9pZCBub2luc3RyIF9fZG9fc3lzY2FsbChzdHJ1Y3QgcHRfcmVncwo+ICAg
CSAqIHdvcmssIHRoZSBwdHJhY2UgY29kZSBzZXRzIFBJRl9TWVNDQUxMX1JFVF9TRVQsIHdoaWNo
IGlzIGNoZWNrZWQgaGVyZQo+ICAgCSAqIGFuZCBpZiBzZXQsIHRoZSBzeXNjYWxsIHdpbGwgYmUg
c2tpcHBlZC4KPiAgIAkgKi8KPiAtCWlmICh1bmxpa2VseSh0ZXN0X2FuZF9jbGVhcl9wdF9yZWdz
X2ZsYWcocmVncywgUElGX1NZU0NBTExfUkVUX1NFVCkpKQo+ICsJaWYgKHVubGlrZWx5KHRlc3Rf
YW5kX2NsZWFyX3B0X3JlZ3NfZmxhZyhyZWdzLCBQSUZfU1lTQ0FMTF9SRVRfU0VUKSB8fCAhcGVy
bWl0KSkKPiAgIAkJZ290byBvdXQ7Cj4gICAJcmVncy0+Z3Byc1syXSA9IC1FTk9TWVM7Cj4gICAJ
aWYgKGxpa2VseShuciA8IE5SX3N5c2NhbGxzKSkgewo+IC0tLSBhL2FyY2gveDg2L2VudHJ5L3N5
c2NhbGxfMzIuYwo+ICsrKyBiL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxfMzIuYwo+IEBAIC0xNjEs
OCArMTYxLDkgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSBib29sIGludDgwX2lzX2V4dAo+ICAg
CW5yID0gc3lzY2FsbF8zMl9lbnRlcihyZWdzKTsKPiAgIAo+ICAgCWxvY2FsX2lycV9lbmFibGUo
KTsKPiAtCW5yID0gc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV93b3JrKHJlZ3MsIG5yKTsK
PiAtCWRvX3N5c2NhbGxfMzJfaXJxc19vbihyZWdzLCBucik7Cj4gKwo+ICsJaWYgKGxpa2VseShz
eXNjYWxsX2VudGVyX2Zyb21fdXNlcl9tb2RlX3dvcmsocmVncywgJm5yKSkpCj4gKwkJZG9fc3lz
Y2FsbF8zMl9pcnFzX29uKHJlZ3MsIG5yKTsKPiAgIAo+ICAgCWluc3RydW1lbnRhdGlvbl9lbmQo
KTsKPiAgIAlzeXNjYWxsX2V4aXRfdG9fdXNlcl9tb2RlKHJlZ3MpOwo+IEBAIC0yMjMsOCArMjI0
LDggQEAgREVGSU5FX0ZSRURFTlRSWV9SQVcoaW50ODBfZW11bGF0aW9uKQo+ICAgCW5yID0gc3lz
Y2FsbF8zMl9lbnRlcihyZWdzKTsKPiAgIAo+ICAgCWxvY2FsX2lycV9lbmFibGUoKTsKPiAtCW5y
ID0gc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV93b3JrKHJlZ3MsIG5yKTsKPiAtCWRvX3N5
c2NhbGxfMzJfaXJxc19vbihyZWdzLCBucik7Cj4gKwlpZiAobGlrZWx5KHN5c2NhbGxfZW50ZXJf
ZnJvbV91c2VyX21vZGVfd29yayhyZWdzLCAmbnIpKSkKPiArCQlkb19zeXNjYWxsXzMyX2lycXNf
b24ocmVncywgbnIpOwo+ICAgCj4gICAJaW5zdHJ1bWVudGF0aW9uX2VuZCgpOwo+ICAgCXN5c2Nh
bGxfZXhpdF90b191c2VyX21vZGUocmVncyk7Cj4gQEAgLTI0MywxMyArMjQ0LDEzIEBAIERFRklO
RV9GUkVERU5UUllfUkFXKGludDgwX2VtdWxhdGlvbikKPiAgIAkgKiBvcmlnX2F4LCB0aGUgaW50
IHJldHVybiB2YWx1ZSB0cnVuY2F0ZXMgaXQuIFRoaXMgbWF0Y2hlcwo+ICAgCSAqIHRoZSBzZW1h
bnRpY3Mgb2Ygc3lzY2FsbF9nZXRfbnIoKS4KPiAgIAkgKi8KPiAtCW5yID0gc3lzY2FsbF9lbnRl
cl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgbnIpOwo+IC0KPiAtCWluc3Ry
dW1lbnRhdGlvbl9iZWdpbigpOwo+ICsJaWYgKGxpa2VseShzeXNjYWxsX2VudGVyX2Zyb21fdXNl
cl9tb2RlX3JhbmRvbWl6ZV9zdGFjayhyZWdzLCAmbnIpKSkgewo+ICsJCWluc3RydW1lbnRhdGlv
bl9iZWdpbigpOwo+ICAgCj4gLQlkb19zeXNjYWxsXzMyX2lycXNfb24ocmVncywgbnIpOwo+ICsJ
CWRvX3N5c2NhbGxfMzJfaXJxc19vbihyZWdzLCBucik7Cj4gICAKPiAtCWluc3RydW1lbnRhdGlv
bl9lbmQoKTsKPiArCQlpbnN0cnVtZW50YXRpb25fZW5kKCk7Cj4gKwl9Cj4gICAJc3lzY2FsbF9l
eGl0X3RvX3VzZXJfbW9kZShyZWdzKTsKPiAgIH0KPiAgICNlbmRpZiAvKiAhQ09ORklHX0lBMzJf
RU1VTEFUSU9OICovCj4gQEAgLTI4NiwxMCArMjg3LDggQEAgc3RhdGljIG5vaW5zdHIgYm9vbCBf
X2RvX2Zhc3Rfc3lzY2FsbF8zMgo+ICAgCQlyZXR1cm4gZmFsc2U7Cj4gICAJfQo+ICAgCj4gLQlu
ciA9IHN5c2NhbGxfZW50ZXJfZnJvbV91c2VyX21vZGVfd29yayhyZWdzLCBucik7Cj4gLQo+IC0J
LyogTm93IHRoaXMgaXMganVzdCBsaWtlIGEgbm9ybWFsIHN5c2NhbGwuICovCj4gLQlkb19zeXNj
YWxsXzMyX2lycXNfb24ocmVncywgbnIpOwo+ICsJaWYgKGxpa2VseShzeXNjYWxsX2VudGVyX2Zy
b21fdXNlcl9tb2RlX3dvcmsocmVncywgJm5yKSkpCj4gKwkJZG9fc3lzY2FsbF8zMl9pcnFzX29u
KHJlZ3MsIG5yKTsKPiAgIAo+ICAgCWluc3RydW1lbnRhdGlvbl9lbmQoKTsKPiAgIAlzeXNjYWxs
X2V4aXRfdG9fdXNlcl9tb2RlKHJlZ3MpOwo+IC0tLSBhL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxf
NjQuYwo+ICsrKyBiL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxfNjQuYwo+IEBAIC03OCwxNCArNzgs
MTQgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIGRvX3N5c2NhbGxfeAo+ICAgLyogUmV0
dXJucyB0cnVlIHRvIHJldHVybiB1c2luZyBTWVNSRVQsIG9yIGZhbHNlIHRvIHVzZSBJUkVUICov
Cj4gICBfX3Zpc2libGUgbm9pbnN0ciBib29sIGRvX3N5c2NhbGxfNjQoc3RydWN0IHB0X3JlZ3Mg
KnJlZ3MsIGxvbmcgbnIpCj4gICB7Cj4gLQluciA9IHN5c2NhbGxfZW50ZXJfZnJvbV91c2VyX21v
ZGVfcmFuZG9taXplX3N0YWNrKHJlZ3MsIG5yKTsKPiArCWlmIChsaWtlbHkoc3lzY2FsbF9lbnRl
cl9mcm9tX3VzZXJfbW9kZV9yYW5kb21pemVfc3RhY2socmVncywgJm5yKSkpIHsKPiArCQlpbnN0
cnVtZW50YXRpb25fYmVnaW4oKTsKPiAgIAo+IC0JaW5zdHJ1bWVudGF0aW9uX2JlZ2luKCk7Cj4g
KwkJaWYgKCFkb19zeXNjYWxsX3g2NChyZWdzLCBucikpCj4gKwkJCWRvX3N5c2NhbGxfeDMyKHJl
Z3MsIG5yKTsKPiAgIAo+IC0JaWYgKCFkb19zeXNjYWxsX3g2NChyZWdzLCBucikpCj4gLQkJZG9f
c3lzY2FsbF94MzIocmVncywgbnIpOwo+IC0KPiAtCWluc3RydW1lbnRhdGlvbl9lbmQoKTsKPiAr
CQlpbnN0cnVtZW50YXRpb25fZW5kKCk7Cj4gKwl9Cj4gICAJc3lzY2FsbF9leGl0X3RvX3VzZXJf
bW9kZShyZWdzKTsKPiAgIAo+ICAgCS8qCj4gLS0tIGEvaW5jbHVkZS9saW51eC9lbnRyeS1jb21t
b24uaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZW50cnktY29tbW9uLmgKPiBAQCAtNzEsNyArNzEs
NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3lzY2FsbF9lbnRlcl9hdWRpdChzCj4gICAJfQo+ICAg
fQo+ICAgCj4gLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBzeXNjYWxsX3RyYWNlX2VudGVy
KHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIHdvcmssCj4gK3N0YXRpYyBfX2Fs
d2F5c19pbmxpbmUgbG9uZyBzeXNjYWxsX3RyYWNlX2VudGVyKHN0cnVjdCBwdF9yZWdzICpyZWdz
LCB1bnNpZ25lZCBsb25nIHdvcmssCj4gICAJCQkJCQlsb25nICpzeXNjYWxsKQo+ICAgewo+ICAg
CS8qCj4gQEAgLTE0MSwxNiArMTQxLDE0IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBz
eXNjYWxsX3RyYWMKPiAgICAqICAgICBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5
KCksIF9fc2VjY29tcF9wZXJtaXRfc3lzY2FsbCgpLCB0cmFjZV9zeXNfZW50ZXIoKQo+ICAgICog
IDIpIEludm9jYXRpb24gb2YgYXVkaXRfc3lzY2FsbF9lbnRyeSgpCj4gICAgKi8KPiAtc3RhdGlj
IF9fYWx3YXlzX2lubGluZSBsb25nIHN5c2NhbGxfZW50ZXJfZnJvbV91c2VyX21vZGVfd29yayhz
dHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBzeXNjYWxsKQo+ICtzdGF0aWMgX19hbHdheXNfaW5s
aW5lIGJvb2wgc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZV93b3JrKHN0cnVjdCBwdF9yZWdz
ICpyZWdzLCBsb25nICpzeXNjYWxsKQo+ICAgewo+ICAgCXVuc2lnbmVkIGxvbmcgd29yayA9IFJF
QURfT05DRShjdXJyZW50X3RocmVhZF9pbmZvKCktPnN5c2NhbGxfd29yayk7Cj4gICAKPiAtCWlm
ICh3b3JrICYgU1lTQ0FMTF9XT1JLX0VOVEVSKSB7Cj4gLQkJaWYgKCFzeXNjYWxsX3RyYWNlX2Vu
dGVyKHJlZ3MsIHdvcmssICZzeXNjYWxsKSkKPiAtCQkJcmV0dXJuIC0xTDsKPiAtCX0KPiArCWlm
ICh1bmxpa2VseSh3b3JrICYgU1lTQ0FMTF9XT1JLX0VOVEVSKSkKPiArCQlyZXR1cm4gc3lzY2Fs
bF90cmFjZV9lbnRlcihyZWdzLCB3b3JrLCBzeXNjYWxsKTsKPiAgIAo+IC0JcmV0dXJuIHN5c2Nh
bGw7Cj4gKwlyZXR1cm4gdHJ1ZTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtc25wcy1hcmMgbWFpbGlu
ZyBsaXN0CmxpbnV4LXNucHMtYXJjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu
ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1zbnBzLWFyYwo=