Re: [f2fs-dev] [PATCH] f2fs: quiesce background threads during system suspend using PM notifier
Daeho Jeong <[email protected]> Tue, 4 Aug 2026 10:35:00 -0700
| Newsgroups | net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CACOAw_y_SnSqcB6D6Yw5z7nkrFFr4aAHU6wj2KW4U2N7TeFMNQ@mail.gmail.com> |
T24gVHVlLCBBdWcgNCwgMjAyNiBhdCA0OjI04oCvQU0gQ2hhbyBZdSA8Y2hhb0BrZXJuZWwub3Jn PiB3cm90ZToKPgo+IE9uIDgvNC8yNiAwMjo0MiwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gPiBPbiBN b24sIEF1ZyAzLCAyMDI2IGF0IDI6MDjigK9BTSBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+IHdy b3RlOgo+ID4+Cj4gPj4gT24gNy8zMC8yNiAwMzoyMywgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gPj4+ IEZyb206IERhZWhvIEplb25nIDxkYWVob2plb25nQGdvb2dsZS5jb20+Cj4gPj4+Cj4gPj4+IER1 cmluZyBzeXN0ZW0gc3VzcGVuZCwgYSByYWNlIGNvbmRpdGlvbiBjYW4gY2F1c2UgZjJmc19nYyBh bmQgZjJmc19kaXNjYXJkCj4gPj4+IHRocmVhZHMgdG8gY2FsbCBzdWJtaXRfYmlvKCkgd2hpbGUg dGhlIHVuZGVybHlpbmcgYmxvY2sgZGV2aWNlIChlLmcuLCBVRlMpCj4gPj4+IGlzIGluIFJ1bnRp bWUgUE0gc3VzcGVuZC4gQmVjYXVzZSBSdW50aW1lIFBNIHdvcmtlciB0aHJlYWRzIGFyZSBhbHJl YWR5Cj4gPj4+IGZyb3plbiBkdXJpbmcgdGFzayBmcmVlemluZywgdGhlIHRocmVhZHMgYmVjb21l IHRyYXBwZWQgaW4KPiA+Pj4gX19iaW9fcXVldWVfZW50ZXIoKSB3YWl0aW5nIG9uIG1xX2ZyZWV6 ZV93cSwgbGVhZGluZyB0byBhIFBNIGZyZWV6ZXIKPiA+Pj4gdGltZW91dC4KPiA+Pj4KPiA+Pj4g VG8gcHJldmVudCB0aGlzIGRlYWRsb2NrLCByZWdpc3RlciBhIFBNIG5vdGlmaWVyIHRvIHNldCBT QklfSVNfU1VTUEVORElORwo+ID4+PiBkdXJpbmcgUE1fU1VTUEVORF9QUkVQQVJFLiBCYWNrZ3Jv dW5kIEdDIGFuZCBkaXNjYXJkIHRocmVhZHMgY2hlY2sgdGhpcwo+ID4+Cj4gPj4gU2hvdWxkIHdl IGNvdmVyIGlzc3VlX2ZsdXNoX3RocmVhZCBhbmQgaXNzdWVfY2hlY2twb2ludF90aHJlYWQgYXMg d2VsbCBpbgo+ID4+IHdoZXJlIHdlIHdpbGwgc3VibWl0IGJpbz8KPiA+Cj4gPiBVbmxpa2UgR0Mg YW5kIGRpc2NhcmQsIHdoaWNoIGFyZSBiYWNrZ3JvdW5kIG9wdGltaXphdGlvbiB0YXNrcyBhbmQg Y2FuCj4gPiBiZSBzYWZlbHkgcGF1c2VkLCBvdGhlciBvcGVyYXRpb25zIGxpa2UgY2hlY2twb2lu dCBhcmUgY3JpdGljYWwgZm9yCj4gPiBkYXRhIGNvbnNpc3RlbmN5Lgo+ID4gSXQgaXMgYmV0dGVy IG5vdCB0byBpbnRlcnJ1cHQgdGhlbSBpbiB0aGUgbWlkZGxlIG9mIHRoZWlyIHByb2dyZXNzLiBJ Zgo+ID4gdGhleSBhcmUgcnVubmluZyBhbmQgdGFrZSB0b28gbG9uZywgaXQgaXMgc2FmZXIgdG8g anVzdCBsZXQgdGhlIHN5c3RlbQo+ID4gc3VzcGVuZCB0ZW1wb3JhcmlseSBmYWlsIHJhdGhlciB0 aGFuIGZvcmNpYmx5IGJyZWFraW5nIHRoZWlyCj4gPiBvcGVyYXRpb25zLgo+Cj4gU28gd2h5IGZv cmVncm91bmQgdGhyZWFkIGxpa2UgY2twdCB0aHJlYWQgb3IgZmx1c2ggdGhyZWFkIHdvbid0IHN1 ZmZlciB0aGUKPiBzYW1lIGlzc3VlIGxpa2UgZ2Mgb3IgZGlzY2FyZCB0aHJlYWQ/IGJlY2F1c2Ug Zm9yZWdyb3VuZCB0aHJlYWQgd2lsbCBwcmV2ZW50Cj4gVUZTIGZyb20gcnVubmluZyBpbnRvIHN1 c3BlbmQgc3RhdGU/IEkgbWF5IG1pc3NlZCBzb21ldGhpbmcgaGVyZS4gOikKPgoKRm9yZWdyb3Vu ZCB0aHJlYWRzIChja3B0L2ZsdXNoKSBpc3N1ZSBJL08gb24tZGVtYW5kIGZvciBkaXJ0eSBkYXRh IHN5bmMuCklmIHN1c3BlbmQgYWJvcnRzIGR1ZSB0byBhY3RpdmUgSS9PLCBpdCBpcyBsZWdpdGlt YXRlIGFuZCBleHBlY3RlZApiZWhhdmlvciByYXRoZXIgdGhhbiBhbiBpc3N1ZSwgYXMgaXQgaXMg YSBuZWNlc3NhcnkgZmlsZXN5c3RlbQpvcGVyYXRpb24gdW5kZXIgYSBub24taWRsZSB3b3JrbG9h ZC4KSW4gY29udHJhc3QsIGYyZnNfZ2MgYW5kIGYyZnNfZGlzY2FyZCBhcmUgYXV0b25vbW91cyBi YWNrZ3JvdW5kCnRocmVhZHMgd2FraW5nIHVwIGV2ZW4gb24gYW4gaWRsZSBzeXN0ZW0gd2l0aCBV RlMgaW4gUnVudGltZSBQTQpzdXNwZW5kLCB3aGljaCBpcyB0aGUgbWFpbiBjYXVzZSBvZiBVRlMg ZGVhZGxvY2sgd2hlbiBlbnRlcmluZyB0aGUKc3VzcGVuZC4KV2l0aCBaVUZTLCBHQyBydW5zIG11 Y2ggbW9yZSBmcmVxdWVudGx5LCBjYXVzaW5nIGZyZXF1ZW50IHN1c3BlbmQgYWJvcnRzLgoKPiA+ Cj4gPj4KPiA+Pj4gZmxhZyBhbmQgaW1tZWRpYXRlbHkgc3RvcCBpc3N1aW5nIG5ldyBiaW9zLCBh bGxvd2luZyB0aGVtIHRvIGVudGVyIGEKPiA+Pj4gZnJlZXphYmxlIHNsZWVwIHN0YXRlIGNsZWFu bHkgYmVmb3JlIHByb2Nlc3MgZnJlZXppbmcgYmVnaW5zLgo+ID4+Pgo+ID4+PiBTaWduZWQtb2Zm LWJ5OiBEYWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ID4+PiAtLS0KPiA+Pj4g ICBmcy9mMmZzL2YyZnMuaCAgICB8ICAzICsrKwo+ID4+PiAgIGZzL2YyZnMvZ2MuYyAgICAgIHwg MTMgKysrKysrKystLS0tLQo+ID4+PiAgIGZzL2YyZnMvc2VnbWVudC5jIHwgMTMgKysrKysrKysr LS0tLQo+ID4+PiAgIGZzL2YyZnMvc3VwZXIuYyAgIHwgMjUgKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4+PiAgIDQgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKPiA+Pj4KPiA+Pj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9m MmZzLmgKPiA+Pj4gaW5kZXggZjI0ZTMwYmI1YzNkLi5jNDZiZjRkZjk0MTIgMTAwNjQ0Cj4gPj4+ IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4gPj4+ICsrKyBiL2ZzL2YyZnMvZjJmcy5oCj4gPj4+IEBA IC0yNSw2ICsyNSw3IEBACj4gPj4+ICAgI2luY2x1ZGUgPGxpbnV4L3F1b3Rhb3BzLmg+Cj4gPj4+ ICAgI2luY2x1ZGUgPGxpbnV4L3BhcnRfc3RhdC5oPgo+ID4+PiAgICNpbmNsdWRlIDxsaW51eC9y d19oaW50Lmg+Cj4gPj4+ICsjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgo+ID4+Pgo+ID4+PiAg ICNpbmNsdWRlIDxsaW51eC9mc2NyeXB0Lmg+Cj4gPj4+ICAgI2luY2x1ZGUgPGxpbnV4L2ZzdmVy aXR5Lmg+Cj4gPj4+IEBAIC0xNDk0LDYgKzE0OTUsNyBAQCBlbnVtIHsKPiA+Pj4gICAgICAgU0JJ X0lTX0ZSRUVaSU5HLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZyZWV6ZWZzIGlzIGluIHBy b2Nlc3MgKi8KPiA+Pj4gICAgICAgU0JJX0lTX1dSSVRBQkxFLCAgICAgICAgICAgICAgICAgICAg ICAgIC8qIHJlbW92ZSBybyBtb3VudG9wdGlvbiB0cmFuc2llbnRseSAqLwo+ID4+PiAgICAgICBT QklfRU5BQkxFX0NIRUNLUE9JTlQsICAgICAgICAgICAgICAgICAgLyogaW5kaWNhdGUgaXQncyBk dXJpbmcgZjJmc19lbmFibGVfY2hlY2twb2ludCgpICovCj4gPj4+ICsgICAgIFNCSV9JU19TVVNQ RU5ESU5HLCAgICAgICAgICAgICAgICAgICAgICAvKiBzeXN0ZW0gc3VzcGVuZCBpcyBpbiBwcm9n cmVzcyAqLwo+ID4+PiAgICAgICBNQVhfU0JJX0ZMQUcsCj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4g QEAgLTE3NTcsNiArMTc1OSw3IEBAIHN0cnVjdCBmMmZzX3NiX2luZm8gewo+ID4+PiAgICAgICBz dHJ1Y3QgZjJmc19yd3NlbSBzYl9sb2NrOyAgICAgICAgICAgICAgLyogbG9jayBmb3IgcmF3IHN1 cGVyIGJsb2NrICovCj4gPj4+ICAgICAgIGludCB2YWxpZF9zdXBlcl9ibG9jazsgICAgICAgICAg ICAgICAgICAvKiB2YWxpZCBzdXBlciBibG9jayBubyAqLwo+ID4+PiAgICAgICB1bnNpZ25lZCBs b25nIHNfZmxhZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmbGFncyBmb3Igc2JpICov Cj4gPj4+ICsgICAgIHN0cnVjdCBub3RpZmllcl9ibG9jayBwbV9uYjsgICAgICAgICAgICAvKiBm b3IgUE0gbm90aWZpZXIgKi8KPiA+Pj4gICAgICAgc3RydWN0IG11dGV4IHdyaXRlcGFnZXM7ICAg ICAgICAgICAgICAgIC8qIG11dGV4IGZvciB3cml0ZXBhZ2VzKCkgKi8KPiA+Pj4KPiA+Pj4gICAj aWZkZWYgQ09ORklHX0JMS19ERVZfWk9ORUQKPiA+Pj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZ2Mu YyBiL2ZzL2YyZnMvZ2MuYwo+ID4+PiBpbmRleCA5M2JjYjM1YTViNWQuLjg2YjJiMjk0MDJhNSAx MDA2NDQKPiA+Pj4gLS0tIGEvZnMvZjJmcy9nYy5jCj4gPj4+ICsrKyBiL2ZzL2YyZnMvZ2MuYwo+ ID4+PiBAQCAtNzEsNyArNzEsOCBAQCBzdGF0aWMgaW50IGdjX3RocmVhZF9mdW5jKHZvaWQgKmRh dGEpCj4gPj4+ICAgICAgICAgICAgICAgaWYgKGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkKPiA+Pj4g ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4+Pgo+ID4+PiAtICAgICAgICAgICAgIGlm IChzYmktPnNiLT5zX3dyaXRlcnMuZnJvemVuID49IFNCX0ZSRUVaRV9XUklURSkgewo+ID4+PiAr ICAgICAgICAgICAgIGlmIChzYmktPnNiLT5zX3dyaXRlcnMuZnJvemVuID49IFNCX0ZSRUVaRV9X UklURSB8fAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwg U0JJX0lTX1NVU1BFTkRJTkcpKSB7Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFz ZV9zbGVlcF90aW1lKGdjX3RoLCAmd2FpdF9tcyk7Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAg ICBzdGF0X290aGVyX3NraXBfYmdnY19jb3VudChzYmkpOwo+ID4+PiAgICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7Cj4gPj4+IEBAIC0xMDY0LDggKzEwNjUsOSBAQCBzdGF0aWMgaW50IGdj X25vZGVfc2VnbWVudChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4gPj4+ICAgICAgICAgICAg ICAgc3RydWN0IG5vZGVfaW5mbyBuaTsKPiA+Pj4gICAgICAgICAgICAgICBpbnQgZXJyOwo+ID4+ Pgo+ID4+PiAtICAgICAgICAgICAgIC8qIHN0b3AgQkdfR0MgaWYgdGhlcmUgaXMgbm90IGVub3Vn aCBmcmVlIHNlY3Rpb25zLiAqLwo+ID4+PiAtICAgICAgICAgICAgIGlmIChnY190eXBlID09IEJH X0dDICYmIGhhc19ub3RfZW5vdWdoX2ZyZWVfc2VjcyhzYmksIDAsIDApKQo+ID4+PiArICAgICAg ICAgICAgIC8qIHN0b3AgQkdfR0MgaWYgdGhlcmUgaXMgbm90IGVub3VnaCBmcmVlIHNlY3Rpb25z IG9yIHN1c3BlbmRpbmcuICovCj4gPj4+ICsgICAgICAgICAgICAgaWYgKGdjX3R5cGUgPT0gQkdf R0MgJiYgKGhhc19ub3RfZW5vdWdoX2ZyZWVfc2VjcyhzYmksIDAsIDApIHx8Cj4gPj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ X0lTX1NVU1BFTkRJTkcpKSkKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJt aXR0ZWQ7Cj4gPj4+Cj4gPj4+ICAgICAgICAgICAgICAgaWYgKGNoZWNrX3ZhbGlkX21hcChzYmks IHNlZ25vLCBvZmYpID09IDApCj4gPj4+IEBAIC0xNjExLDcgKzE2MTMsOCBAQCBzdGF0aWMgaW50 IGdjX2RhdGFfc2VnbWVudChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBmMmZzX3N1 bW1hcnkgKnN1bSwKPiA+Pj4gICAgICAgICAgICAgICAgKiBPciwgc3RvcCBHQyBpZiB0aGUgc2Vn bWVudCBiZWNvbWVzIGZ1bGx5IHZhbGlkIGNhdXNlZCBieQo+ID4+PiAgICAgICAgICAgICAgICAq IHJhY2UgY29uZGl0aW9uIGFsb25nIHdpdGggU1NSIGJsb2NrIGFsbG9jYXRpb24uCj4gPj4+ICAg ICAgICAgICAgICAgICovCj4gPj4+IC0gICAgICAgICAgICAgaWYgKChnY190eXBlID09IEJHX0dD ICYmIGhhc19ub3RfZW5vdWdoX2ZyZWVfc2VjcyhzYmksIDAsIDApKSB8fAo+ID4+PiArICAgICAg ICAgICAgIGlmICgoZ2NfdHlwZSA9PSBCR19HQyAmJiAoaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNz KHNiaSwgMCwgMCkgfHwKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykpKSB8fAo+ID4+PiAgICAg ICAgICAgICAgICAgICAgICAgKCFmb3JjZV9taWdyYXRlICYmIGdldF92YWxpZF9ibG9ja3Moc2Jp LCBzZWdubywgdHJ1ZSkgPT0KPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ0FQX0JMS1NfUEVSX1NFQyhzYmkpKSkKPiA+Pj4gICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBzdWJtaXR0ZWQ7Cj4gPj4+IEBAIC0yMDE1LDcgKzIwMTgs NyBAQCBpbnQgZjJmc19nYyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBmMmZzX2dj X2NvbnRyb2wgKmdjX2NvbnRyb2wpCj4gPj4+ICAgICAgICAgICAgICAgZ290byBzdG9wOwo+ID4+ PiAgICAgICB9Cj4gPj4+ICAgcmV0cnk6Cj4gPj4+IC0gICAgIGlmICh1bmxpa2VseShmcmVlemlu ZyhjdXJyZW50KSkpIHsKPiA+Pgo+ID4+IFNob3VsZG4ndCB3ZSBrZWVwIG9yaWdpbmFsIGZyZWV6 aW5nIGxvZ2ljPyBpbiBjYXNlIGZpbGVzeXN0ZW0gYXJlIGZyb3plbgo+ID4+IHdoZW4gbG93IGRl dmljZSBzbmFwc2hvdCBpcyB0cmlnZ2VyZWQ/Cj4gPgo+ID4gU2luY2UgdGhlIHJ1bnRpbWUgUE0g c3VzcGVuZC9yZXN1bWUgd29ya2VycyBhcmUgb25seSBmcm96ZW4gZHVyaW5nCj4gPiBzeXN0ZW0t d2lkZSBQTSB0cmFuc2l0aW9ucyAoc3VzcGVuZC9oaWJlcm5hdGlvbiksIHRoZSBQTSBub3RpZmll cgo+ID4gYXBwcm9hY2ggd2l0aCBTQklfSVNfU1VTUEVORElORyBzdWZmaWNpZW50bHkgcHJldmVu dHMgdGhlIGRlYWRsb2NrLgo+Cj4gV2hhdCBJIG1lYW4gaXM6Cj4KPiBpZiAoaXNfc2JpX2ZsYWdf c2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpIHx8IHVubGlrZWx5KGZyZWV6aW5nKGN1cnJlbnQp KSkgewo+Cj4gb3RoZXJ3aXNlLCBnYyB0aHJlYWQgb3IgZGlzY2FyZCB0aHJlYWQgd29uJ3QgZGV0 ZWN0IGZyZWV6ZSBzdGF0ZSwgYW5kIHdpbGwKPiBjb250aW51ZSB0byB0cmlnZ2VyIElPIGluIGJh Y2tncm91bmQgZXZlbiB0aGVyZSBpcyBhIHN5c3RlbSBmcmVlemUgcmVxdWVzdAo+IGZyb20gZGV2 aWNlIHNuYXBzaG90IG9yIGNncm91cCBmcmVlemluZywgcmlnaHQ/Cj4KClRoZSBoYW5nIGluIHN5 c3RlbSBzdXNwZW5kIGhhcHBlbnMgYmVjYXVzZSBSdW50aW1lIFBNIHdvcmtlcnMgKHBtX3dxKQph cmUgZnJvemVuLCBzbyBVRlMgY2Fubm90IGJlIHJlc3VtZWQgZnJvbSBzdWJtaXRfYmlvKCkuCkR1 cmluZyBjZ3JvdXAgZnJlZXplIG9yIHNuYXBzaG90LCBJIGJlbGlldmUgcG1fd3EgaXMgYWxpdmUs IHNvIFVGUwpyZXN1bWVzIGluIGEgZmV3IG1zIGFuZCBJL08gZmluaXNoZXMgd2l0aG91dCBkZWFk bG9jay4gQWxzbywKd2FpdF9ldmVudF9mcmVlemFibGVfdGltZW91dCgpIHdpbGwgZnJlZXplIHRo ZSB0aHJlYWRzIHdoZW4gdGhleQpzbGVlcC4KCklmIHlvdSBwcmVmZXIga2VlcGluZyBmcmVlemlu ZyhjdXJyZW50KSBhcyBhIGZhc3QgcGF0aCBmb3Igbm9uLVBNCmZyZWV6aW5nLCBJIGNhbiBjaGFu Z2UgaXQgdG86CmlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykgfHwg dW5saWtlbHkoZnJlZXppbmcoY3VycmVudCkpKQpEbyB5b3Ugc3RpbGwgdGhpbmsgaXQgaXMgcmVx dWlyZWQ/IElmIHNvLCBwbHosIGxldCBtZSBrbm93LgoKVGhhbmtzLgoKPiBUaGFua3MsCj4KPiA+ Cj4gPiBUaGFua3MsCj4gPgo+ID4+Cj4gPj4+ICsgICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2Jp LCBTQklfSVNfU1VTUEVORElORykpIHsKPiA+Pj4gICAgICAgICAgICAgICByZXQgPSAwOwo+ID4+ PiAgICAgICAgICAgICAgIGdvdG8gc3RvcDsKPiA+Pj4gICAgICAgfQo+ID4+PiBkaWZmIC0tZ2l0 IGEvZnMvZjJmcy9zZWdtZW50LmMgYi9mcy9mMmZzL3NlZ21lbnQuYwo+ID4+PiBpbmRleCBkNzBk YzVlZjNkZTQuLmUyNzE5Nzk1MzM1NiAxMDA2NDQKPiA+Pj4gLS0tIGEvZnMvZjJmcy9zZWdtZW50 LmMKPiA+Pj4gKysrIGIvZnMvZjJmcy9zZWdtZW50LmMKPiA+Pj4gQEAgLTEzMDAsNyArMTMwMCw4 IEBAIHN0YXRpYyBpbnQgX19zdWJtaXRfZGlzY2FyZF9jbWQoc3RydWN0IGYyZnNfc2JfaW5mbyAq c2JpLAo+ID4+PiAgICAgICBpZiAoZGMtPnN0YXRlICE9IERfUFJFUCkKPiA+Pj4gICAgICAgICAg ICAgICByZXR1cm4gMDsKPiA+Pj4KPiA+Pj4gLSAgICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmks IFNCSV9ORUVEX0ZTQ0spKQo+ID4+PiArICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ X05FRURfRlNDSykgfHwKPiA+Pj4gKyAgICAgICAgICAgICBpc19zYmlfZmxhZ19zZXQoc2JpLCBT QklfSVNfU1VTUEVORElORykpCj4gPj4+ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4g Pj4+ICAgI2lmZGVmIENPTkZJR19CTEtfREVWX1pPTkVECj4gPj4+IEBAIC0xMzQxLDYgKzEzNDIs OSBAQCBzdGF0aWMgaW50IF9fc3VibWl0X2Rpc2NhcmRfY21kKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSwKPiA+Pj4gICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4+PiAgICAg ICAgICAgICAgIGJvb2wgbGFzdCA9IHRydWU7Cj4gPj4+Cj4gPj4+ICsgICAgICAgICAgICAgaWYg KGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSkKPiA+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4+PiArCj4gPj4+ICAgICAgICAgICAgICAgaWYgKGxlbiA+ IG1heF9kaXNjYXJkX2Jsb2Nrcykgewo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgbGVuID0g bWF4X2Rpc2NhcmRfYmxvY2tzOwo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgbGFzdCA9IGZh bHNlOwo+ID4+PiBAQCAtMTYxNSw3ICsxNjE5LDcgQEAgc3RhdGljIHZvaWQgX19pc3N1ZV9kaXNj YXJkX2NtZF9vcmRlcmx5KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPiA+Pj4gICAgICAgICAg ICAgICBpZiAoZGMtPnN0YXRlICE9IERfUFJFUCkKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAg IGdvdG8gbmV4dDsKPiA+Pj4KPiA+Pj4gLSAgICAgICAgICAgICBpZiAoKmlzc3VlZCA+IDAgJiYg dW5saWtlbHkoZnJlZXppbmcoY3VycmVudCkpKQo+ID4+Cj4gPj4gRGl0dG8sCj4gPj4KPiA+Pj4g KyAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcp KQo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPj4+Cj4gPj4+ICAgICAgICAg ICAgICAgaWYgKGRwb2xpY3ktPmlvX2F3YXJlICYmICFpc19pZGxlKHNiaSwgRElTQ0FSRF9USU1F KSkgewo+ID4+PiBAQCAtMTY4OCw3ICsxNjkyLDcgQEAgc3RhdGljIGludCBfX2lzc3VlX2Rpc2Nh cmRfY21kKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPiA+Pj4gICAgICAgICAgICAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGMsIHRtcCwgcGVuZF9saXN0LCBsaXN0KSB7Cj4gPj4+ICAg ICAgICAgICAgICAgICAgICAgICBmMmZzX2J1Z19vbihzYmksIGRjLT5zdGF0ZSAhPSBEX1BSRVAp Owo+ID4+Pgo+ID4+PiAtICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc3VlZCA+IDAgJiYgdW5s aWtlbHkoZnJlZXppbmcoY3VycmVudCkpKSB7Cj4gPj4KPiA+PiBEaXR0bywKPiA+Pgo+ID4+IFRo YW5rcywKPiA+Pgo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX3NiaV9mbGFnX3Nl dChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSkgewo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdXNwZW5kZWQgPSB0cnVlOwo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgIH0KPiA+Pj4gQEAgLTE5NTUs NyArMTk1OSw4IEBAIHN0YXRpYyBpbnQgaXNzdWVfZGlzY2FyZF90aHJlYWQodm9pZCAqZGF0YSkK PiA+Pj4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4+PiAgICAgICAgICAgICAg IGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gMDsKPiA+Pj4gLSAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ X05FRURfRlNDSykgfHwKPiA+Pj4gKyAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNi aSwgU0JJX0lTX1NVU1BFTkRJTkcpIHx8Cj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICBpc19z YmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8fAo+ID4+PiAgICAgICAgICAgICAgICAg ICAgICAgIWF0b21pY19yZWFkKCZkY2MtPmRpc2NhcmRfY21kX2NudCkpIHsKPiA+Pj4gICAgICAg ICAgICAgICAgICAgICAgIHdhaXRfbXMgPSBkcG9saWN5Lm1heF9pbnRlcnZhbDsKPiA+Pj4gICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9z dXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCj4gPj4+IGluZGV4IGQ1ZGM4M2U2MTNlMi4uNTM2ZjNm ZmU1MzU0IDEwMDY0NAo+ID4+PiAtLS0gYS9mcy9mMmZzL3N1cGVyLmMKPiA+Pj4gKysrIGIvZnMv ZjJmcy9zdXBlci5jCj4gPj4+IEBAIC0xOTc5LDYgKzE5NzksMjYgQEAgc3RhdGljIHZvaWQgZGVz dHJveV9kZXZpY2VfbGlzdChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPj4+ICAgICAgIGt2 ZnJlZShzYmktPmRldnMpOwo+ID4+PiAgIH0KPiA+Pj4KPiA+Pj4gK3N0YXRpYyBpbnQgZjJmc19w bV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAo+ID4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpwdHIpCj4gPj4+ICt7Cj4g Pj4+ICsgICAgIHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IGNvbnRhaW5lcl9vZihuYiwgc3Ry dWN0IGYyZnNfc2JfaW5mbywgcG1fbmIpOwo+ID4+PiArCj4gPj4+ICsgICAgIHN3aXRjaCAoYWN0 aW9uKSB7Cj4gPj4+ICsgICAgIGNhc2UgUE1fSElCRVJOQVRJT05fUFJFUEFSRToKPiA+Pj4gKyAg ICAgY2FzZSBQTV9TVVNQRU5EX1BSRVBBUkU6Cj4gPj4+ICsgICAgIGNhc2UgUE1fUkVTVE9SRV9Q UkVQQVJFOgo+ID4+PiArICAgICAgICAgICAgIHNldF9zYmlfZmxhZyhzYmksIFNCSV9JU19TVVNQ RU5ESU5HKTsKPiA+Pj4gKyAgICAgICAgICAgICBicmVhazsKPiA+Pj4gKyAgICAgY2FzZSBQTV9Q T1NUX1NVU1BFTkQ6Cj4gPj4+ICsgICAgIGNhc2UgUE1fUE9TVF9ISUJFUk5BVElPTjoKPiA+Pj4g KyAgICAgY2FzZSBQTV9QT1NUX1JFU1RPUkU6Cj4gPj4+ICsgICAgICAgICAgICAgY2xlYXJfc2Jp X2ZsYWcoc2JpLCBTQklfSVNfU1VTUEVORElORyk7Cj4gPj4+ICsgICAgICAgICAgICAgYnJlYWs7 Cj4gPj4+ICsgICAgIH0KPiA+Pj4gKyAgICAgcmV0dXJuIE5PVElGWV9PSzsKPiA+Pj4gK30KPiA+ Pj4gKwo+ID4+PiAgIHN0YXRpYyB2b2lkIGYyZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IpCj4gPj4+ICAgewo+ID4+PiAgICAgICBzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBG MkZTX1NCKHNiKTsKPiA+Pj4gQEAgLTE5ODYsNiArMjAwNiw4IEBAIHN0YXRpYyB2b2lkIGYyZnNf cHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCj4gPj4+ICAgICAgIGludCBlcnIgPSAw Owo+ID4+PiAgICAgICBib29sIGRvbmU7Cj4gPj4+Cj4gPj4+ICsgICAgIHVucmVnaXN0ZXJfcG1f bm90aWZpZXIoJnNiaS0+cG1fbmIpOwo+ID4+PiArCj4gPj4+ICAgICAgIC8qIHVucmVnaXN0ZXIg cHJvY2ZzL3N5c2ZzIGVudHJpZXMgaW4gYWR2YW5jZSB0byBhdm9pZCByYWNlIGNhc2UgKi8KPiA+ Pj4gICAgICAgZjJmc191bnJlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4gPj4+Cj4gPj4+IEBAIC01NDcy LDYgKzU0OTQsOSBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4gPj4+Cj4gPj4+ICAgICAgIGYyZnNfcmVz dG9yZV9kZXZpY2VfYWxpYXMoc2JpKTsKPiA+Pj4KPiA+Pj4gKyAgICAgc2JpLT5wbV9uYi5ub3Rp Zmllcl9jYWxsID0gZjJmc19wbV9ub3RpZmllcjsKPiA+Pj4gKyAgICAgcmVnaXN0ZXJfcG1fbm90 aWZpZXIoJnNiaS0+cG1fbmIpOwo+ID4+PiArCj4gPj4+ICAgICAgIHNiaS0+dW1vdW50X2xvY2tf aG9sZGVyID0gTlVMTDsKPiA+Pj4gICAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4gPj4KPgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2 ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0 dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2 ZWwK