Re: [f2fs-dev] [PATCH] f2fs: quiesce background threads during system suspend using PM notifier
Chao Yu via Linux-f2fs-devel <[email protected]> Tue, 4 Aug 2026 19:24:39 +0800
| Newsgroups | net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
T24gOC80LzI2IDAyOjQyLCBEYWVobyBKZW9uZyB3cm90ZToKPiBPbiBNb24sIEF1ZyAzLCAyMDI2 IGF0IDI6MDjigK9BTSBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+IHdyb3RlOgo+Pgo+PiBPbiA3 LzMwLzI2IDAzOjIzLCBEYWVobyBKZW9uZyB3cm90ZToKPj4+IEZyb206IERhZWhvIEplb25nIDxk YWVob2plb25nQGdvb2dsZS5jb20+Cj4+Pgo+Pj4gRHVyaW5nIHN5c3RlbSBzdXNwZW5kLCBhIHJh Y2UgY29uZGl0aW9uIGNhbiBjYXVzZSBmMmZzX2djIGFuZCBmMmZzX2Rpc2NhcmQKPj4+IHRocmVh ZHMgdG8gY2FsbCBzdWJtaXRfYmlvKCkgd2hpbGUgdGhlIHVuZGVybHlpbmcgYmxvY2sgZGV2aWNl IChlLmcuLCBVRlMpCj4+PiBpcyBpbiBSdW50aW1lIFBNIHN1c3BlbmQuIEJlY2F1c2UgUnVudGlt ZSBQTSB3b3JrZXIgdGhyZWFkcyBhcmUgYWxyZWFkeQo+Pj4gZnJvemVuIGR1cmluZyB0YXNrIGZy ZWV6aW5nLCB0aGUgdGhyZWFkcyBiZWNvbWUgdHJhcHBlZCBpbgo+Pj4gX19iaW9fcXVldWVfZW50 ZXIoKSB3YWl0aW5nIG9uIG1xX2ZyZWV6ZV93cSwgbGVhZGluZyB0byBhIFBNIGZyZWV6ZXIKPj4+ IHRpbWVvdXQuCj4+Pgo+Pj4gVG8gcHJldmVudCB0aGlzIGRlYWRsb2NrLCByZWdpc3RlciBhIFBN IG5vdGlmaWVyIHRvIHNldCBTQklfSVNfU1VTUEVORElORwo+Pj4gZHVyaW5nIFBNX1NVU1BFTkRf UFJFUEFSRS4gQmFja2dyb3VuZCBHQyBhbmQgZGlzY2FyZCB0aHJlYWRzIGNoZWNrIHRoaXMKPj4K Pj4gU2hvdWxkIHdlIGNvdmVyIGlzc3VlX2ZsdXNoX3RocmVhZCBhbmQgaXNzdWVfY2hlY2twb2lu dF90aHJlYWQgYXMgd2VsbCBpbgo+PiB3aGVyZSB3ZSB3aWxsIHN1Ym1pdCBiaW8/Cj4gCj4gVW5s aWtlIEdDIGFuZCBkaXNjYXJkLCB3aGljaCBhcmUgYmFja2dyb3VuZCBvcHRpbWl6YXRpb24gdGFz a3MgYW5kIGNhbgo+IGJlIHNhZmVseSBwYXVzZWQsIG90aGVyIG9wZXJhdGlvbnMgbGlrZSBjaGVj a3BvaW50IGFyZSBjcml0aWNhbCBmb3IKPiBkYXRhIGNvbnNpc3RlbmN5Lgo+IEl0IGlzIGJldHRl ciBub3QgdG8gaW50ZXJydXB0IHRoZW0gaW4gdGhlIG1pZGRsZSBvZiB0aGVpciBwcm9ncmVzcy4g SWYKPiB0aGV5IGFyZSBydW5uaW5nIGFuZCB0YWtlIHRvbyBsb25nLCBpdCBpcyBzYWZlciB0byBq dXN0IGxldCB0aGUgc3lzdGVtCj4gc3VzcGVuZCB0ZW1wb3JhcmlseSBmYWlsIHJhdGhlciB0aGFu IGZvcmNpYmx5IGJyZWFraW5nIHRoZWlyCj4gb3BlcmF0aW9ucy4KClNvIHdoeSBmb3JlZ3JvdW5k IHRocmVhZCBsaWtlIGNrcHQgdGhyZWFkIG9yIGZsdXNoIHRocmVhZCB3b24ndCBzdWZmZXIgdGhl CnNhbWUgaXNzdWUgbGlrZSBnYyBvciBkaXNjYXJkIHRocmVhZD8gYmVjYXVzZSBmb3JlZ3JvdW5k IHRocmVhZCB3aWxsIHByZXZlbnQKVUZTIGZyb20gcnVubmluZyBpbnRvIHN1c3BlbmQgc3RhdGU/ IEkgbWF5IG1pc3NlZCBzb21ldGhpbmcgaGVyZS4gOikKCj4gCj4+Cj4+PiBmbGFnIGFuZCBpbW1l ZGlhdGVseSBzdG9wIGlzc3VpbmcgbmV3IGJpb3MsIGFsbG93aW5nIHRoZW0gdG8gZW50ZXIgYQo+ Pj4gZnJlZXphYmxlIHNsZWVwIHN0YXRlIGNsZWFubHkgYmVmb3JlIHByb2Nlc3MgZnJlZXppbmcg YmVnaW5zLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IERhZWhvIEplb25nIDxkYWVob2plb25nQGdv b2dsZS5jb20+Cj4+PiAtLS0KPj4+ICAgZnMvZjJmcy9mMmZzLmggICAgfCAgMyArKysKPj4+ICAg ZnMvZjJmcy9nYy5jICAgICAgfCAxMyArKysrKysrKy0tLS0tCj4+PiAgIGZzL2YyZnMvc2VnbWVu dC5jIHwgMTMgKysrKysrKysrLS0tLQo+Pj4gICBmcy9mMmZzL3N1cGVyLmMgICB8IDI1ICsrKysr KysrKysrKysrKysrKysrKysrKysKPj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBi L2ZzL2YyZnMvZjJmcy5oCj4+PiBpbmRleCBmMjRlMzBiYjVjM2QuLmM0NmJmNGRmOTQxMiAxMDA2 NDQKPj4+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4+PiArKysgYi9mcy9mMmZzL2YyZnMuaAo+Pj4g QEAgLTI1LDYgKzI1LDcgQEAKPj4+ICAgI2luY2x1ZGUgPGxpbnV4L3F1b3Rhb3BzLmg+Cj4+PiAg ICNpbmNsdWRlIDxsaW51eC9wYXJ0X3N0YXQuaD4KPj4+ICAgI2luY2x1ZGUgPGxpbnV4L3J3X2hp bnQuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgo+Pj4KPj4+ICAgI2luY2x1ZGUg PGxpbnV4L2ZzY3J5cHQuaD4KPj4+ICAgI2luY2x1ZGUgPGxpbnV4L2ZzdmVyaXR5Lmg+Cj4+PiBA QCAtMTQ5NCw2ICsxNDk1LDcgQEAgZW51bSB7Cj4+PiAgICAgICBTQklfSVNfRlJFRVpJTkcsICAg ICAgICAgICAgICAgICAgICAgICAgLyogZnJlZXplZnMgaXMgaW4gcHJvY2VzcyAqLwo+Pj4gICAg ICAgU0JJX0lTX1dSSVRBQkxFLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlbW92ZSBybyBt b3VudG9wdGlvbiB0cmFuc2llbnRseSAqLwo+Pj4gICAgICAgU0JJX0VOQUJMRV9DSEVDS1BPSU5U LCAgICAgICAgICAgICAgICAgIC8qIGluZGljYXRlIGl0J3MgZHVyaW5nIGYyZnNfZW5hYmxlX2No ZWNrcG9pbnQoKSAqLwo+Pj4gKyAgICAgU0JJX0lTX1NVU1BFTkRJTkcsICAgICAgICAgICAgICAg ICAgICAgIC8qIHN5c3RlbSBzdXNwZW5kIGlzIGluIHByb2dyZXNzICovCj4+PiAgICAgICBNQVhf U0JJX0ZMQUcsCj4+PiAgIH07Cj4+Pgo+Pj4gQEAgLTE3NTcsNiArMTc1OSw3IEBAIHN0cnVjdCBm MmZzX3NiX2luZm8gewo+Pj4gICAgICAgc3RydWN0IGYyZnNfcndzZW0gc2JfbG9jazsgICAgICAg ICAgICAgIC8qIGxvY2sgZm9yIHJhdyBzdXBlciBibG9jayAqLwo+Pj4gICAgICAgaW50IHZhbGlk X3N1cGVyX2Jsb2NrOyAgICAgICAgICAgICAgICAgIC8qIHZhbGlkIHN1cGVyIGJsb2NrIG5vICov Cj4+PiAgICAgICB1bnNpZ25lZCBsb25nIHNfZmxhZzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBmbGFncyBmb3Igc2JpICovCj4+PiArICAgICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcG1f bmI7ICAgICAgICAgICAgLyogZm9yIFBNIG5vdGlmaWVyICovCj4+PiAgICAgICBzdHJ1Y3QgbXV0 ZXggd3JpdGVwYWdlczsgICAgICAgICAgICAgICAgLyogbXV0ZXggZm9yIHdyaXRlcGFnZXMoKSAq Lwo+Pj4KPj4+ICAgI2lmZGVmIENPTkZJR19CTEtfREVWX1pPTkVECj4+PiBkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9nYy5jIGIvZnMvZjJmcy9nYy5jCj4+PiBpbmRleCA5M2JjYjM1YTViNWQuLjg2YjJi Mjk0MDJhNSAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMvZ2MuYwo+Pj4gKysrIGIvZnMvZjJmcy9n Yy5jCj4+PiBAQCAtNzEsNyArNzEsOCBAQCBzdGF0aWMgaW50IGdjX3RocmVhZF9mdW5jKHZvaWQg KmRhdGEpCj4+PiAgICAgICAgICAgICAgIGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pgo+Pj4gLSAgICAgICAgICAgICBpZiAoc2Jp LT5zYi0+c193cml0ZXJzLmZyb3plbiA+PSBTQl9GUkVFWkVfV1JJVEUpIHsKPj4+ICsgICAgICAg ICAgICAgaWYgKHNiaS0+c2ItPnNfd3JpdGVycy5mcm96ZW4gPj0gU0JfRlJFRVpFX1dSSVRFIHx8 Cj4+PiArICAgICAgICAgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NV U1BFTkRJTkcpKSB7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2Vfc2xlZXBfdGlt ZShnY190aCwgJndhaXRfbXMpOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgIHN0YXRfb3RoZXJf c2tpcF9iZ2djX2NvdW50KHNiaSk7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4+PiBAQCAtMTA2NCw4ICsxMDY1LDkgQEAgc3RhdGljIGludCBnY19ub2RlX3NlZ21lbnQoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gICAgICAgICAgICAgICBzdHJ1Y3Qgbm9kZV9pbmZv IG5pOwo+Pj4gICAgICAgICAgICAgICBpbnQgZXJyOwo+Pj4KPj4+IC0gICAgICAgICAgICAgLyog c3RvcCBCR19HQyBpZiB0aGVyZSBpcyBub3QgZW5vdWdoIGZyZWUgc2VjdGlvbnMuICovCj4+PiAt ICAgICAgICAgICAgIGlmIChnY190eXBlID09IEJHX0dDICYmIGhhc19ub3RfZW5vdWdoX2ZyZWVf c2VjcyhzYmksIDAsIDApKQo+Pj4gKyAgICAgICAgICAgICAvKiBzdG9wIEJHX0dDIGlmIHRoZXJl IGlzIG5vdCBlbm91Z2ggZnJlZSBzZWN0aW9ucyBvciBzdXNwZW5kaW5nLiAqLwo+Pj4gKyAgICAg ICAgICAgICBpZiAoZ2NfdHlwZSA9PSBCR19HQyAmJiAoaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNz KHNiaSwgMCwgMCkgfHwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKSkKPj4+ICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gc3VibWl0dGVkOwo+Pj4KPj4+ICAgICAgICAgICAgICAgaWYgKGNo ZWNrX3ZhbGlkX21hcChzYmksIHNlZ25vLCBvZmYpID09IDApCj4+PiBAQCAtMTYxMSw3ICsxNjEz LDggQEAgc3RhdGljIGludCBnY19kYXRhX3NlZ21lbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp LCBzdHJ1Y3QgZjJmc19zdW1tYXJ5ICpzdW0sCj4+PiAgICAgICAgICAgICAgICAqIE9yLCBzdG9w IEdDIGlmIHRoZSBzZWdtZW50IGJlY29tZXMgZnVsbHkgdmFsaWQgY2F1c2VkIGJ5Cj4+PiAgICAg ICAgICAgICAgICAqIHJhY2UgY29uZGl0aW9uIGFsb25nIHdpdGggU1NSIGJsb2NrIGFsbG9jYXRp b24uCj4+PiAgICAgICAgICAgICAgICAqLwo+Pj4gLSAgICAgICAgICAgICBpZiAoKGdjX3R5cGUg PT0gQkdfR0MgJiYgaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNzKHNiaSwgMCwgMCkpIHx8Cj4+PiAr ICAgICAgICAgICAgIGlmICgoZ2NfdHlwZSA9PSBCR19HQyAmJiAoaGFzX25vdF9lbm91Z2hfZnJl ZV9zZWNzKHNiaSwgMCwgMCkgfHwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKSkgfHwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAoIWZvcmNlX21pZ3JhdGUgJiYgZ2V0X3ZhbGlkX2Jsb2Nrcyhz YmksIHNlZ25vLCB0cnVlKSA9PQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ0FQX0JMS1NfUEVSX1NFQyhzYmkpKSkKPj4+ICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gc3VibWl0dGVkOwo+Pj4gQEAgLTIwMTUsNyArMjAxOCw3IEBA IGludCBmMmZzX2djKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGYyZnNfZ2NfY29u dHJvbCAqZ2NfY29udHJvbCkKPj4+ICAgICAgICAgICAgICAgZ290byBzdG9wOwo+Pj4gICAgICAg fQo+Pj4gICByZXRyeToKPj4+IC0gICAgIGlmICh1bmxpa2VseShmcmVlemluZyhjdXJyZW50KSkp IHsKPj4KPj4gU2hvdWxkbid0IHdlIGtlZXAgb3JpZ2luYWwgZnJlZXppbmcgbG9naWM/IGluIGNh c2UgZmlsZXN5c3RlbSBhcmUgZnJvemVuCj4+IHdoZW4gbG93IGRldmljZSBzbmFwc2hvdCBpcyB0 cmlnZ2VyZWQ/Cj4gCj4gU2luY2UgdGhlIHJ1bnRpbWUgUE0gc3VzcGVuZC9yZXN1bWUgd29ya2Vy cyBhcmUgb25seSBmcm96ZW4gZHVyaW5nCj4gc3lzdGVtLXdpZGUgUE0gdHJhbnNpdGlvbnMgKHN1 c3BlbmQvaGliZXJuYXRpb24pLCB0aGUgUE0gbm90aWZpZXIKPiBhcHByb2FjaCB3aXRoIFNCSV9J U19TVVNQRU5ESU5HIHN1ZmZpY2llbnRseSBwcmV2ZW50cyB0aGUgZGVhZGxvY2suCgpXaGF0IEkg bWVhbiBpczoKCmlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykgfHwg dW5saWtlbHkoZnJlZXppbmcoY3VycmVudCkpKSB7CgpvdGhlcndpc2UsIGdjIHRocmVhZCBvciBk aXNjYXJkIHRocmVhZCB3b24ndCBkZXRlY3QgZnJlZXplIHN0YXRlLCBhbmQgd2lsbApjb250aW51 ZSB0byB0cmlnZ2VyIElPIGluIGJhY2tncm91bmQgZXZlbiB0aGVyZSBpcyBhIHN5c3RlbSBmcmVl emUgcmVxdWVzdApmcm9tIGRldmljZSBzbmFwc2hvdCBvciBjZ3JvdXAgZnJlZXppbmcsIHJpZ2h0 PwoKVGhhbmtzLAoKPiAKPiBUaGFua3MsCj4gCj4+Cj4+PiArICAgICBpZiAoaXNfc2JpX2ZsYWdf c2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKSB7Cj4+PiAgICAgICAgICAgICAgIHJldCA9IDA7 Cj4+PiAgICAgICAgICAgICAgIGdvdG8gc3RvcDsKPj4+ICAgICAgIH0KPj4+IGRpZmYgLS1naXQg YS9mcy9mMmZzL3NlZ21lbnQuYyBiL2ZzL2YyZnMvc2VnbWVudC5jCj4+PiBpbmRleCBkNzBkYzVl ZjNkZTQuLmUyNzE5Nzk1MzM1NiAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMvc2VnbWVudC5jCj4+ PiArKysgYi9mcy9mMmZzL3NlZ21lbnQuYwo+Pj4gQEAgLTEzMDAsNyArMTMwMCw4IEBAIHN0YXRp YyBpbnQgX19zdWJtaXRfZGlzY2FyZF9jbWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4g ICAgICAgaWYgKGRjLT5zdGF0ZSAhPSBEX1BSRVApCj4+PiAgICAgICAgICAgICAgIHJldHVybiAw Owo+Pj4KPj4+IC0gICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSkK Pj4+ICsgICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8fAo+Pj4g KyAgICAgICAgICAgICBpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykpCj4+ PiAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pj4KPj4+ICAgI2lmZGVmIENPTkZJR19CTEtfREVW X1pPTkVECj4+PiBAQCAtMTM0MSw2ICsxMzQyLDkgQEAgc3RhdGljIGludCBfX3N1Ym1pdF9kaXNj YXJkX2NtZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4+PiAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4+PiAgICAgICAgICAgICAgIGJvb2wgbGFzdCA9IHRydWU7Cj4+Pgo+ Pj4gKyAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJ TkcpKQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKwo+Pj4gICAgICAgICAg ICAgICBpZiAobGVuID4gbWF4X2Rpc2NhcmRfYmxvY2tzKSB7Cj4+PiAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gbWF4X2Rpc2NhcmRfYmxvY2tzOwo+Pj4gICAgICAgICAgICAgICAgICAgICAg IGxhc3QgPSBmYWxzZTsKPj4+IEBAIC0xNjE1LDcgKzE2MTksNyBAQCBzdGF0aWMgdm9pZCBfX2lz c3VlX2Rpc2NhcmRfY21kX29yZGVybHkoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gICAg ICAgICAgICAgICBpZiAoZGMtPnN0YXRlICE9IERfUFJFUCkKPj4+ICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIG5leHQ7Cj4+Pgo+Pj4gLSAgICAgICAgICAgICBpZiAoKmlzc3VlZCA+IDAgJiYg dW5saWtlbHkoZnJlZXppbmcoY3VycmVudCkpKQo+Pgo+PiBEaXR0bywKPj4KPj4+ICsgICAgICAg ICAgICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSkKPj4+ICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKPj4+Cj4+PiAgICAgICAgICAgICAgIGlmIChkcG9s aWN5LT5pb19hd2FyZSAmJiAhaXNfaWRsZShzYmksIERJU0NBUkRfVElNRSkpIHsKPj4+IEBAIC0x Njg4LDcgKzE2OTIsNyBAQCBzdGF0aWMgaW50IF9faXNzdWVfZGlzY2FyZF9jbWQoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLAo+Pj4gICAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoZGMsIHRtcCwgcGVuZF9saXN0LCBsaXN0KSB7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAg ZjJmc19idWdfb24oc2JpLCBkYy0+c3RhdGUgIT0gRF9QUkVQKTsKPj4+Cj4+PiAtICAgICAgICAg ICAgICAgICAgICAgaWYgKGlzc3VlZCA+IDAgJiYgdW5saWtlbHkoZnJlZXppbmcoY3VycmVudCkp KSB7Cj4+Cj4+IERpdHRvLAo+Pgo+PiBUaGFua3MsCj4+Cj4+PiArICAgICAgICAgICAgICAgICAg ICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSkgewo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VzcGVuZGVkID0gdHJ1ZTsKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgIH0K Pj4+IEBAIC0xOTU1LDcgKzE5NTksOCBAQCBzdGF0aWMgaW50IGlzc3VlX2Rpc2NhcmRfdGhyZWFk KHZvaWQgKmRhdGEpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+PiAgICAg ICAgICAgICAgIGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDA7Cj4+PiAtICAgICAgICAgICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2Jp LCBTQklfTkVFRF9GU0NLKSB8fAo+Pj4gKyAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0 KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpIHx8Cj4+PiArICAgICAgICAgICAgICAgICAgICAgaXNf c2JpX2ZsYWdfc2V0KHNiaSwgU0JJX05FRURfRlNDSykgfHwKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAhYXRvbWljX3JlYWQoJmRjYy0+ZGlzY2FyZF9jbWRfY250KSkgewo+Pj4gICAgICAgICAg ICAgICAgICAgICAgIHdhaXRfbXMgPSBkcG9saWN5Lm1heF9pbnRlcnZhbDsKPj4+ICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3N1cGVyLmMg Yi9mcy9mMmZzL3N1cGVyLmMKPj4+IGluZGV4IGQ1ZGM4M2U2MTNlMi4uNTM2ZjNmZmU1MzU0IDEw MDY0NAo+Pj4gLS0tIGEvZnMvZjJmcy9zdXBlci5jCj4+PiArKysgYi9mcy9mMmZzL3N1cGVyLmMK Pj4+IEBAIC0xOTc5LDYgKzE5NzksMjYgQEAgc3RhdGljIHZvaWQgZGVzdHJveV9kZXZpY2VfbGlz dChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+PiAgICAgICBrdmZyZWUoc2JpLT5kZXZzKTsK Pj4+ICAgfQo+Pj4KPj4+ICtzdGF0aWMgaW50IGYyZnNfcG1fbm90aWZpZXIoc3RydWN0IG5vdGlm aWVyX2Jsb2NrICpuYiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBhY3Rpb24sIHZvaWQgKnB0cikKPj4+ICt7Cj4+PiArICAgICBzdHJ1Y3QgZjJmc19zYl9pbmZv ICpzYmkgPSBjb250YWluZXJfb2YobmIsIHN0cnVjdCBmMmZzX3NiX2luZm8sIHBtX25iKTsKPj4+ ICsKPj4+ICsgICAgIHN3aXRjaCAoYWN0aW9uKSB7Cj4+PiArICAgICBjYXNlIFBNX0hJQkVSTkFU SU9OX1BSRVBBUkU6Cj4+PiArICAgICBjYXNlIFBNX1NVU1BFTkRfUFJFUEFSRToKPj4+ICsgICAg IGNhc2UgUE1fUkVTVE9SRV9QUkVQQVJFOgo+Pj4gKyAgICAgICAgICAgICBzZXRfc2JpX2ZsYWco c2JpLCBTQklfSVNfU1VTUEVORElORyk7Cj4+PiArICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAg ICAgY2FzZSBQTV9QT1NUX1NVU1BFTkQ6Cj4+PiArICAgICBjYXNlIFBNX1BPU1RfSElCRVJOQVRJ T046Cj4+PiArICAgICBjYXNlIFBNX1BPU1RfUkVTVE9SRToKPj4+ICsgICAgICAgICAgICAgY2xl YXJfc2JpX2ZsYWcoc2JpLCBTQklfSVNfU1VTUEVORElORyk7Cj4+PiArICAgICAgICAgICAgIGJy ZWFrOwo+Pj4gKyAgICAgfQo+Pj4gKyAgICAgcmV0dXJuIE5PVElGWV9PSzsKPj4+ICt9Cj4+PiAr Cj4+PiAgIHN0YXRpYyB2b2lkIGYyZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Ip Cj4+PiAgIHsKPj4+ICAgICAgIHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfU0Ioc2Ip Owo+Pj4gQEAgLTE5ODYsNiArMjAwNiw4IEBAIHN0YXRpYyB2b2lkIGYyZnNfcHV0X3N1cGVyKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IpCj4+PiAgICAgICBpbnQgZXJyID0gMDsKPj4+ICAgICAgIGJv b2wgZG9uZTsKPj4+Cj4+PiArICAgICB1bnJlZ2lzdGVyX3BtX25vdGlmaWVyKCZzYmktPnBtX25i KTsKPj4+ICsKPj4+ICAgICAgIC8qIHVucmVnaXN0ZXIgcHJvY2ZzL3N5c2ZzIGVudHJpZXMgaW4g YWR2YW5jZSB0byBhdm9pZCByYWNlIGNhc2UgKi8KPj4+ICAgICAgIGYyZnNfdW5yZWdpc3Rlcl9z eXNmcyhzYmkpOwo+Pj4KPj4+IEBAIC01NDcyLDYgKzU0OTQsOSBAQCBzdGF0aWMgaW50IGYyZnNf ZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMp Cj4+Pgo+Pj4gICAgICAgZjJmc19yZXN0b3JlX2RldmljZV9hbGlhcyhzYmkpOwo+Pj4KPj4+ICsg ICAgIHNiaS0+cG1fbmIubm90aWZpZXJfY2FsbCA9IGYyZnNfcG1fbm90aWZpZXI7Cj4+PiArICAg ICByZWdpc3Rlcl9wbV9ub3RpZmllcigmc2JpLT5wbV9uYik7Cj4+PiArCj4+PiAgICAgICBzYmkt PnVtb3VudF9sb2NrX2hvbGRlciA9IE5VTEw7Cj4+PiAgICAgICByZXR1cm4gMDsKPj4+Cj4+CgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYy ZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2Uu bmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYy ZnMtZGV2ZWwK