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=