Re: [f2fs-dev] [PATCH] f2fs: quiesce background threads during system suspend using PM notifier
Daeho Jeong <[email protected]> Wed, 5 Aug 2026 09:45:24 -0700
| Newsgroups | net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CACOAw_zuX528b55_A3Lsk=DvS3Z4snSsB-xbPR+ZQ8_gcQN5SA@mail.gmail.com> |
T24gVHVlLCBBdWcgNCwgMjAyNiBhdCA2OjUx4oCvUE0gQ2hhbyBZdSA8Y2hhb0BrZXJuZWwub3Jn PiB3cm90ZToKPgo+IE9uIDgvNS8yNiAwMTozNSwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gPiBPbiBU dWUsIEF1ZyA0LCAyMDI2IGF0IDQ6MjTigK9BTSBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+IHdy b3RlOgo+ID4+Cj4gPj4gT24gOC80LzI2IDAyOjQyLCBEYWVobyBKZW9uZyB3cm90ZToKPiA+Pj4g T24gTW9uLCBBdWcgMywgMjAyNiBhdCAyOjA44oCvQU0gQ2hhbyBZdSA8Y2hhb0BrZXJuZWwub3Jn PiB3cm90ZToKPiA+Pj4+Cj4gPj4+PiBPbiA3LzMwLzI2IDAzOjIzLCBEYWVobyBKZW9uZyB3cm90 ZToKPiA+Pj4+PiBGcm9tOiBEYWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ID4+ Pj4+Cj4gPj4+Pj4gRHVyaW5nIHN5c3RlbSBzdXNwZW5kLCBhIHJhY2UgY29uZGl0aW9uIGNhbiBj YXVzZSBmMmZzX2djIGFuZCBmMmZzX2Rpc2NhcmQKPiA+Pj4+PiB0aHJlYWRzIHRvIGNhbGwgc3Vi bWl0X2JpbygpIHdoaWxlIHRoZSB1bmRlcmx5aW5nIGJsb2NrIGRldmljZSAoZS5nLiwgVUZTKQo+ ID4+Pj4+IGlzIGluIFJ1bnRpbWUgUE0gc3VzcGVuZC4gQmVjYXVzZSBSdW50aW1lIFBNIHdvcmtl ciB0aHJlYWRzIGFyZSBhbHJlYWR5Cj4gPj4+Pj4gZnJvemVuIGR1cmluZyB0YXNrIGZyZWV6aW5n LCB0aGUgdGhyZWFkcyBiZWNvbWUgdHJhcHBlZCBpbgo+ID4+Pj4+IF9fYmlvX3F1ZXVlX2VudGVy KCkgd2FpdGluZyBvbiBtcV9mcmVlemVfd3EsIGxlYWRpbmcgdG8gYSBQTSBmcmVlemVyCj4gPj4+ Pj4gdGltZW91dC4KPiA+Pj4+Pgo+ID4+Pj4+IFRvIHByZXZlbnQgdGhpcyBkZWFkbG9jaywgcmVn aXN0ZXIgYSBQTSBub3RpZmllciB0byBzZXQgU0JJX0lTX1NVU1BFTkRJTkcKPiA+Pj4+PiBkdXJp bmcgUE1fU1VTUEVORF9QUkVQQVJFLiBCYWNrZ3JvdW5kIEdDIGFuZCBkaXNjYXJkIHRocmVhZHMg Y2hlY2sgdGhpcwo+ID4+Pj4KPiA+Pj4+IFNob3VsZCB3ZSBjb3ZlciBpc3N1ZV9mbHVzaF90aHJl YWQgYW5kIGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkIGFzIHdlbGwgaW4KPiA+Pj4+IHdoZXJlIHdl IHdpbGwgc3VibWl0IGJpbz8KPiA+Pj4KPiA+Pj4gVW5saWtlIEdDIGFuZCBkaXNjYXJkLCB3aGlj aCBhcmUgYmFja2dyb3VuZCBvcHRpbWl6YXRpb24gdGFza3MgYW5kIGNhbgo+ID4+PiBiZSBzYWZl bHkgcGF1c2VkLCBvdGhlciBvcGVyYXRpb25zIGxpa2UgY2hlY2twb2ludCBhcmUgY3JpdGljYWwg Zm9yCj4gPj4+IGRhdGEgY29uc2lzdGVuY3kuCj4gPj4+IEl0IGlzIGJldHRlciBub3QgdG8gaW50 ZXJydXB0IHRoZW0gaW4gdGhlIG1pZGRsZSBvZiB0aGVpciBwcm9ncmVzcy4gSWYKPiA+Pj4gdGhl eSBhcmUgcnVubmluZyBhbmQgdGFrZSB0b28gbG9uZywgaXQgaXMgc2FmZXIgdG8ganVzdCBsZXQg dGhlIHN5c3RlbQo+ID4+PiBzdXNwZW5kIHRlbXBvcmFyaWx5IGZhaWwgcmF0aGVyIHRoYW4gZm9y Y2libHkgYnJlYWtpbmcgdGhlaXIKPiA+Pj4gb3BlcmF0aW9ucy4KPiA+Pgo+ID4+IFNvIHdoeSBm b3JlZ3JvdW5kIHRocmVhZCBsaWtlIGNrcHQgdGhyZWFkIG9yIGZsdXNoIHRocmVhZCB3b24ndCBz dWZmZXIgdGhlCj4gPj4gc2FtZSBpc3N1ZSBsaWtlIGdjIG9yIGRpc2NhcmQgdGhyZWFkPyBiZWNh dXNlIGZvcmVncm91bmQgdGhyZWFkIHdpbGwgcHJldmVudAo+ID4+IFVGUyBmcm9tIHJ1bm5pbmcg aW50byBzdXNwZW5kIHN0YXRlPyBJIG1heSBtaXNzZWQgc29tZXRoaW5nIGhlcmUuIDopCj4gPj4K PiA+Cj4gPiBGb3JlZ3JvdW5kIHRocmVhZHMgKGNrcHQvZmx1c2gpIGlzc3VlIEkvTyBvbi1kZW1h bmQgZm9yIGRpcnR5IGRhdGEgc3luYy4KPiA+IElmIHN1c3BlbmQgYWJvcnRzIGR1ZSB0byBhY3Rp dmUgSS9PLCBpdCBpcyBsZWdpdGltYXRlIGFuZCBleHBlY3RlZAo+ID4gYmVoYXZpb3IgcmF0aGVy IHRoYW4gYW4gaXNzdWUsIGFzIGl0IGlzIGEgbmVjZXNzYXJ5IGZpbGVzeXN0ZW0KPiA+IG9wZXJh dGlvbiB1bmRlciBhIG5vbi1pZGxlIHdvcmtsb2FkLgo+Cj4gT2theSwgc28gaWYgY2twdC9mbHVz aCBhcmUgYWN0aXZlLCB0aGF0IG1lYW5zIHRoZXJlIGFyZSB1c2Vyc3BhY2UgYXBwbGljYXRpb25z IGFyZQo+IHdhaXRpbmcgZm9yIGNoZWNrcG9pbnQvZmx1c2ggY29tcGxldGlvbiwgc28gZnJlZXpl X3Byb2Nlc3NlcygpIGZvcm0gc3lzdGVtIHN1c3BlbmQKPiBzdGlsbCBkaWRuJ3QgY29tcGxldGlv biwgYW5kIGl0IHdvbid0IGVudGVyIHBoYXNlIDIgKGRldmljZSBzdXNwZW5kICYgZnJlZXppbmcg cG1fd3EpLgo+Cj4gTGV0IG1lIGtub3cgaWYgSSB1bmRlcnN0YW5kIGl0IGNvcnJlY3RseS4KClll cywgeW91ciB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3QuCgo+Cj4gPiBJbiBjb250cmFzdCwgZjJm c19nYyBhbmQgZjJmc19kaXNjYXJkIGFyZSBhdXRvbm9tb3VzIGJhY2tncm91bmQKPiA+IHRocmVh ZHMgd2FraW5nIHVwIGV2ZW4gb24gYW4gaWRsZSBzeXN0ZW0gd2l0aCBVRlMgaW4gUnVudGltZSBQ TQo+ID4gc3VzcGVuZCwgd2hpY2ggaXMgdGhlIG1haW4gY2F1c2Ugb2YgVUZTIGRlYWRsb2NrIHdo ZW4gZW50ZXJpbmcgdGhlCj4gPiBzdXNwZW5kLgo+ID4gV2l0aCBaVUZTLCBHQyBydW5zIG11Y2gg bW9yZSBmcmVxdWVudGx5LCBjYXVzaW5nIGZyZXF1ZW50IHN1c3BlbmQgYWJvcnRzLgo+ID4KPiA+ Pj4KPiA+Pj4+Cj4gPj4+Pj4gZmxhZyBhbmQgaW1tZWRpYXRlbHkgc3RvcCBpc3N1aW5nIG5ldyBi aW9zLCBhbGxvd2luZyB0aGVtIHRvIGVudGVyIGEKPiA+Pj4+PiBmcmVlemFibGUgc2xlZXAgc3Rh dGUgY2xlYW5seSBiZWZvcmUgcHJvY2VzcyBmcmVlemluZyBiZWdpbnMuCj4gPj4+Pj4KPiA+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBEYWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ID4+ Pj4+IC0tLQo+ID4+Pj4+ICAgZnMvZjJmcy9mMmZzLmggICAgfCAgMyArKysKPiA+Pj4+PiAgIGZz L2YyZnMvZ2MuYyAgICAgIHwgMTMgKysrKysrKystLS0tLQo+ID4+Pj4+ICAgZnMvZjJmcy9zZWdt ZW50LmMgfCAxMyArKysrKysrKystLS0tCj4gPj4+Pj4gICBmcy9mMmZzL3N1cGVyLmMgICB8IDI1 ICsrKysrKysrKysrKysrKysrKysrKysrKysKPiA+Pj4+PiAgIDQgZmlsZXMgY2hhbmdlZCwgNDUg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiA+Pj4+Pgo+ID4+Pj4+IGRpZmYgLS1naXQg YS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCj4gPj4+Pj4gaW5kZXggZjI0ZTMwYmI1 YzNkLi5jNDZiZjRkZjk0MTIgMTAwNjQ0Cj4gPj4+Pj4gLS0tIGEvZnMvZjJmcy9mMmZzLmgKPiA+ Pj4+PiArKysgYi9mcy9mMmZzL2YyZnMuaAo+ID4+Pj4+IEBAIC0yNSw2ICsyNSw3IEBACj4gPj4+ Pj4gICAjaW5jbHVkZSA8bGludXgvcXVvdGFvcHMuaD4KPiA+Pj4+PiAgICNpbmNsdWRlIDxsaW51 eC9wYXJ0X3N0YXQuaD4KPiA+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9yd19oaW50Lmg+Cj4gPj4+ Pj4gKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+Cj4gPj4+Pj4KPiA+Pj4+PiAgICNpbmNsdWRl IDxsaW51eC9mc2NyeXB0Lmg+Cj4gPj4+Pj4gICAjaW5jbHVkZSA8bGludXgvZnN2ZXJpdHkuaD4K PiA+Pj4+PiBAQCAtMTQ5NCw2ICsxNDk1LDcgQEAgZW51bSB7Cj4gPj4+Pj4gICAgICAgU0JJX0lT X0ZSRUVaSU5HLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZyZWV6ZWZzIGlzIGluIHByb2Nl c3MgKi8KPiA+Pj4+PiAgICAgICBTQklfSVNfV1JJVEFCTEUsICAgICAgICAgICAgICAgICAgICAg ICAgLyogcmVtb3ZlIHJvIG1vdW50b3B0aW9uIHRyYW5zaWVudGx5ICovCj4gPj4+Pj4gICAgICAg U0JJX0VOQUJMRV9DSEVDS1BPSU5ULCAgICAgICAgICAgICAgICAgIC8qIGluZGljYXRlIGl0J3Mg ZHVyaW5nIGYyZnNfZW5hYmxlX2NoZWNrcG9pbnQoKSAqLwo+ID4+Pj4+ICsgICAgIFNCSV9JU19T VVNQRU5ESU5HLCAgICAgICAgICAgICAgICAgICAgICAvKiBzeXN0ZW0gc3VzcGVuZCBpcyBpbiBw cm9ncmVzcyAqLwo+ID4+Pj4+ICAgICAgIE1BWF9TQklfRkxBRywKPiA+Pj4+PiAgIH07Cj4gPj4+ Pj4KPiA+Pj4+PiBAQCAtMTc1Nyw2ICsxNzU5LDcgQEAgc3RydWN0IGYyZnNfc2JfaW5mbyB7Cj4g Pj4+Pj4gICAgICAgc3RydWN0IGYyZnNfcndzZW0gc2JfbG9jazsgICAgICAgICAgICAgIC8qIGxv Y2sgZm9yIHJhdyBzdXBlciBibG9jayAqLwo+ID4+Pj4+ICAgICAgIGludCB2YWxpZF9zdXBlcl9i bG9jazsgICAgICAgICAgICAgICAgICAvKiB2YWxpZCBzdXBlciBibG9jayBubyAqLwo+ID4+Pj4+ ICAgICAgIHVuc2lnbmVkIGxvbmcgc19mbGFnOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IGZsYWdzIGZvciBzYmkgKi8KPiA+Pj4+PiArICAgICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcG1f bmI7ICAgICAgICAgICAgLyogZm9yIFBNIG5vdGlmaWVyICovCj4gPj4+Pj4gICAgICAgc3RydWN0 IG11dGV4IHdyaXRlcGFnZXM7ICAgICAgICAgICAgICAgIC8qIG11dGV4IGZvciB3cml0ZXBhZ2Vz KCkgKi8KPiA+Pj4+Pgo+ID4+Pj4+ICAgI2lmZGVmIENPTkZJR19CTEtfREVWX1pPTkVECj4gPj4+ Pj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZ2MuYyBiL2ZzL2YyZnMvZ2MuYwo+ID4+Pj4+IGluZGV4 IDkzYmNiMzVhNWI1ZC4uODZiMmIyOTQwMmE1IDEwMDY0NAo+ID4+Pj4+IC0tLSBhL2ZzL2YyZnMv Z2MuYwo+ID4+Pj4+ICsrKyBiL2ZzL2YyZnMvZ2MuYwo+ID4+Pj4+IEBAIC03MSw3ICs3MSw4IEBA IHN0YXRpYyBpbnQgZ2NfdGhyZWFkX2Z1bmModm9pZCAqZGF0YSkKPiA+Pj4+PiAgICAgICAgICAg ICAgIGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4gPj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwo+ID4+Pj4+Cj4gPj4+Pj4gLSAgICAgICAgICAgICBpZiAoc2JpLT5zYi0+c193 cml0ZXJzLmZyb3plbiA+PSBTQl9GUkVFWkVfV1JJVEUpIHsKPiA+Pj4+PiArICAgICAgICAgICAg IGlmIChzYmktPnNiLT5zX3dyaXRlcnMuZnJvemVuID49IFNCX0ZSRUVaRV9XUklURSB8fAo+ID4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICBpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VT UEVORElORykpIHsKPiA+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2Vfc2xlZXBf dGltZShnY190aCwgJndhaXRfbXMpOwo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBzdGF0 X290aGVyX3NraXBfYmdnY19jb3VudChzYmkpOwo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKPiA+Pj4+PiBAQCAtMTA2NCw4ICsxMDY1LDkgQEAgc3RhdGljIGludCBnY19u b2RlX3NlZ21lbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ID4+Pj4+ICAgICAgICAgICAg ICAgc3RydWN0IG5vZGVfaW5mbyBuaTsKPiA+Pj4+PiAgICAgICAgICAgICAgIGludCBlcnI7Cj4g Pj4+Pj4KPiA+Pj4+PiAtICAgICAgICAgICAgIC8qIHN0b3AgQkdfR0MgaWYgdGhlcmUgaXMgbm90 IGVub3VnaCBmcmVlIHNlY3Rpb25zLiAqLwo+ID4+Pj4+IC0gICAgICAgICAgICAgaWYgKGdjX3R5 cGUgPT0gQkdfR0MgJiYgaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNzKHNiaSwgMCwgMCkpCj4gPj4+ Pj4gKyAgICAgICAgICAgICAvKiBzdG9wIEJHX0dDIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggZnJl ZSBzZWN0aW9ucyBvciBzdXNwZW5kaW5nLiAqLwo+ID4+Pj4+ICsgICAgICAgICAgICAgaWYgKGdj X3R5cGUgPT0gQkdfR0MgJiYgKGhhc19ub3RfZW5vdWdoX2ZyZWVfc2VjcyhzYmksIDAsIDApIHx8 Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19zYmlfZmxh Z19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykpKQo+ID4+Pj4+ICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gc3VibWl0dGVkOwo+ID4+Pj4+Cj4gPj4+Pj4gICAgICAgICAgICAgICBpZiAo Y2hlY2tfdmFsaWRfbWFwKHNiaSwgc2Vnbm8sIG9mZikgPT0gMCkKPiA+Pj4+PiBAQCAtMTYxMSw3 ICsxNjEzLDggQEAgc3RhdGljIGludCBnY19kYXRhX3NlZ21lbnQoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpLCBzdHJ1Y3QgZjJmc19zdW1tYXJ5ICpzdW0sCj4gPj4+Pj4gICAgICAgICAgICAgICAg KiBPciwgc3RvcCBHQyBpZiB0aGUgc2VnbWVudCBiZWNvbWVzIGZ1bGx5IHZhbGlkIGNhdXNlZCBi eQo+ID4+Pj4+ICAgICAgICAgICAgICAgICogcmFjZSBjb25kaXRpb24gYWxvbmcgd2l0aCBTU1Ig YmxvY2sgYWxsb2NhdGlvbi4KPiA+Pj4+PiAgICAgICAgICAgICAgICAqLwo+ID4+Pj4+IC0gICAg ICAgICAgICAgaWYgKChnY190eXBlID09IEJHX0dDICYmIGhhc19ub3RfZW5vdWdoX2ZyZWVfc2Vj cyhzYmksIDAsIDApKSB8fAo+ID4+Pj4+ICsgICAgICAgICAgICAgaWYgKChnY190eXBlID09IEJH X0dDICYmIChoYXNfbm90X2Vub3VnaF9mcmVlX3NlY3Moc2JpLCAwLCAwKSB8fAo+ID4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwg U0JJX0lTX1NVU1BFTkRJTkcpKSkgfHwKPiA+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgKCFm b3JjZV9taWdyYXRlICYmIGdldF92YWxpZF9ibG9ja3Moc2JpLCBzZWdubywgdHJ1ZSkgPT0KPiA+ Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDQVBfQkxLU19QRVJfU0VDKHNiaSkpKQo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gc3VibWl0dGVkOwo+ID4+Pj4+IEBAIC0yMDE1LDcgKzIwMTgsNyBAQCBpbnQgZjJmc19n YyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBmMmZzX2djX2NvbnRyb2wgKmdjX2Nv bnRyb2wpCj4gPj4+Pj4gICAgICAgICAgICAgICBnb3RvIHN0b3A7Cj4gPj4+Pj4gICAgICAgfQo+ ID4+Pj4+ICAgcmV0cnk6Cj4gPj4+Pj4gLSAgICAgaWYgKHVubGlrZWx5KGZyZWV6aW5nKGN1cnJl bnQpKSkgewo+ID4+Pj4KPiA+Pj4+IFNob3VsZG4ndCB3ZSBrZWVwIG9yaWdpbmFsIGZyZWV6aW5n IGxvZ2ljPyBpbiBjYXNlIGZpbGVzeXN0ZW0gYXJlIGZyb3plbgo+ID4+Pj4gd2hlbiBsb3cgZGV2 aWNlIHNuYXBzaG90IGlzIHRyaWdnZXJlZD8KPiA+Pj4KPiA+Pj4gU2luY2UgdGhlIHJ1bnRpbWUg UE0gc3VzcGVuZC9yZXN1bWUgd29ya2VycyBhcmUgb25seSBmcm96ZW4gZHVyaW5nCj4gPj4+IHN5 c3RlbS13aWRlIFBNIHRyYW5zaXRpb25zIChzdXNwZW5kL2hpYmVybmF0aW9uKSwgdGhlIFBNIG5v dGlmaWVyCj4gPj4+IGFwcHJvYWNoIHdpdGggU0JJX0lTX1NVU1BFTkRJTkcgc3VmZmljaWVudGx5 IHByZXZlbnRzIHRoZSBkZWFkbG9jay4KPiA+Pgo+ID4+IFdoYXQgSSBtZWFuIGlzOgo+ID4+Cj4g Pj4gaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSB8fCB1bmxpa2Vs eShmcmVlemluZyhjdXJyZW50KSkpIHsKPiA+Pgo+ID4+IG90aGVyd2lzZSwgZ2MgdGhyZWFkIG9y IGRpc2NhcmQgdGhyZWFkIHdvbid0IGRldGVjdCBmcmVlemUgc3RhdGUsIGFuZCB3aWxsCj4gPj4g Y29udGludWUgdG8gdHJpZ2dlciBJTyBpbiBiYWNrZ3JvdW5kIGV2ZW4gdGhlcmUgaXMgYSBzeXN0 ZW0gZnJlZXplIHJlcXVlc3QKPiA+PiBmcm9tIGRldmljZSBzbmFwc2hvdCBvciBjZ3JvdXAgZnJl ZXppbmcsIHJpZ2h0Pwo+ID4+Cj4gPgo+ID4gVGhlIGhhbmcgaW4gc3lzdGVtIHN1c3BlbmQgaGFw cGVucyBiZWNhdXNlIFJ1bnRpbWUgUE0gd29ya2VycyAocG1fd3EpCj4gPiBhcmUgZnJvemVuLCBz byBVRlMgY2Fubm90IGJlIHJlc3VtZWQgZnJvbSBzdWJtaXRfYmlvKCkuCj4gPiBEdXJpbmcgY2dy b3VwIGZyZWV6ZSBvciBzbmFwc2hvdCwgSSBiZWxpZXZlIHBtX3dxIGlzIGFsaXZlLCBzbyBVRlMK PiA+IHJlc3VtZXMgaW4gYSBmZXcgbXMgYW5kIEkvTyBmaW5pc2hlcyB3aXRob3V0IGRlYWRsb2Nr LiBBbHNvLAo+ID4gd2FpdF9ldmVudF9mcmVlemFibGVfdGltZW91dCgpIHdpbGwgZnJlZXplIHRo ZSB0aHJlYWRzIHdoZW4gdGhleQo+ID4gc2xlZXAuCj4KPiBIZXJlLCB3ZSBuZWVkIHRvIGRldGVj dCB0aGUgZnJlZXppbmcgc3RhdGUgYW5kIHN0b3AgaXNzdWluZyBhbnkgbmV3IEkvTwo+IGltbWVk aWF0ZWx5IGJlY2F1c2Ugbm9uLVBNIGZyZWV6aW5nIG1lY2hhbmlzbXMgKHN1Y2ggYXMgZG0tc25h cHNob3Qgb3IKPiBjZ3JvdXAgZnJlZXplcikgcmVxdWlyZSB0aGUgdW5kZXJseWluZyBmaWxlc3lz dGVtL2RldmljZSB0byByZWFjaCBhCj4gcXVpZXNjZW50IChzdGF0aWMpIHN0YXRlLiBJdCdzIG5v dCBsaW1pdGVkIHN0cmljdGx5IHRvIHRoZSBQTSBzdXNwZW5kCj4gc3RhdGUuCj4KPiA+Cj4gPiBJ ZiB5b3UgcHJlZmVyIGtlZXBpbmcgZnJlZXppbmcoY3VycmVudCkgYXMgYSBmYXN0IHBhdGggZm9y IG5vbi1QTQo+ID4gZnJlZXppbmcsIEkgY2FuIGNoYW5nZSBpdCB0bzoKPiA+IGlmIChpc19zYmlf ZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykgfHwgdW5saWtlbHkoZnJlZXppbmcoY3Vy cmVudCkpKQo+ID4gRG8geW91IHN0aWxsIHRoaW5rIGl0IGlzIHJlcXVpcmVkPyBJZiBzbywgcGx6 LCBsZXQgbWUga25vdy4KPgo+IFllcywgcGxlYXNlLgoKSSB3aWxsIHVwZGF0ZSB0aGUgcGF0Y2gu IFRoYW5rcywKCj4KPiBUaGFua3MsCj4KPiA+Cj4gPiBUaGFua3MuCj4gPgo+ID4+IFRoYW5rcywK PiA+Pgo+ID4+Pgo+ID4+PiBUaGFua3MsCj4gPj4+Cj4gPj4+Pgo+ID4+Pj4+ICsgICAgIGlmIChp c19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykpIHsKPiA+Pj4+PiAgICAgICAg ICAgICAgIHJldCA9IDA7Cj4gPj4+Pj4gICAgICAgICAgICAgICBnb3RvIHN0b3A7Cj4gPj4+Pj4g ICAgICAgfQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3NlZ21lbnQuYyBiL2ZzL2YyZnMv c2VnbWVudC5jCj4gPj4+Pj4gaW5kZXggZDcwZGM1ZWYzZGU0Li5lMjcxOTc5NTMzNTYgMTAwNjQ0 Cj4gPj4+Pj4gLS0tIGEvZnMvZjJmcy9zZWdtZW50LmMKPiA+Pj4+PiArKysgYi9mcy9mMmZzL3Nl Z21lbnQuYwo+ID4+Pj4+IEBAIC0xMzAwLDcgKzEzMDAsOCBAQCBzdGF0aWMgaW50IF9fc3VibWl0 X2Rpc2NhcmRfY21kKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPiA+Pj4+PiAgICAgICBpZiAo ZGMtPnN0YXRlICE9IERfUFJFUCkKPiA+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ Pj4+Cj4gPj4+Pj4gLSAgICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9ORUVEX0ZTQ0sp KQo+ID4+Pj4+ICsgICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8 fAo+ID4+Pj4+ICsgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BF TkRJTkcpKQo+ID4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPj4+Pj4KPiA+Pj4+PiAg ICNpZmRlZiBDT05GSUdfQkxLX0RFVl9aT05FRAo+ID4+Pj4+IEBAIC0xMzQxLDYgKzEzNDIsOSBA QCBzdGF0aWMgaW50IF9fc3VibWl0X2Rpc2NhcmRfY21kKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNi aSwKPiA+Pj4+PiAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPj4+Pj4gICAg ICAgICAgICAgICBib29sIGxhc3QgPSB0cnVlOwo+ID4+Pj4+Cj4gPj4+Pj4gKyAgICAgICAgICAg ICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKQo+ID4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICBicmVhazsKPiA+Pj4+PiArCj4gPj4+Pj4gICAgICAgICAgICAg ICBpZiAobGVuID4gbWF4X2Rpc2NhcmRfYmxvY2tzKSB7Cj4gPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IG1heF9kaXNjYXJkX2Jsb2NrczsKPiA+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAgbGFzdCA9IGZhbHNlOwo+ID4+Pj4+IEBAIC0xNjE1LDcgKzE2MTksNyBAQCBzdGF0aWMg dm9pZCBfX2lzc3VlX2Rpc2NhcmRfY21kX29yZGVybHkoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp LAo+ID4+Pj4+ICAgICAgICAgICAgICAgaWYgKGRjLT5zdGF0ZSAhPSBEX1BSRVApCj4gPj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dDsKPiA+Pj4+Pgo+ID4+Pj4+IC0gICAgICAg ICAgICAgaWYgKCppc3N1ZWQgPiAwICYmIHVubGlrZWx5KGZyZWV6aW5nKGN1cnJlbnQpKSkKPiA+ Pj4+Cj4gPj4+PiBEaXR0bywKPiA+Pj4+Cj4gPj4+Pj4gKyAgICAgICAgICAgICBpZiAoaXNfc2Jp X2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKQo+ID4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKPiA+Pj4+Pgo+ID4+Pj4+ICAgICAgICAgICAgICAgaWYgKGRwb2xpY3kt PmlvX2F3YXJlICYmICFpc19pZGxlKHNiaSwgRElTQ0FSRF9USU1FKSkgewo+ID4+Pj4+IEBAIC0x Njg4LDcgKzE2OTIsNyBAQCBzdGF0aWMgaW50IF9faXNzdWVfZGlzY2FyZF9jbWQoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLAo+ID4+Pj4+ICAgICAgICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGRjLCB0bXAsIHBlbmRfbGlzdCwgbGlzdCkgewo+ID4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICBmMmZzX2J1Z19vbihzYmksIGRjLT5zdGF0ZSAhPSBEX1BSRVApOwo+ID4+Pj4+Cj4g Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpc3N1ZWQgPiAwICYmIHVubGlrZWx5KGZy ZWV6aW5nKGN1cnJlbnQpKSkgewo+ID4+Pj4KPiA+Pj4+IERpdHRvLAo+ID4+Pj4KPiA+Pj4+IFRo YW5rcywKPiA+Pj4+Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChpc19zYmlfZmxh Z19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykpIHsKPiA+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdXNwZW5kZWQgPSB0cnVlOwo+ID4+Pj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICB9Cj4gPj4+ Pj4gQEAgLTE5NTUsNyArMTk1OSw4IEBAIHN0YXRpYyBpbnQgaXNzdWVfZGlzY2FyZF90aHJlYWQo dm9pZCAqZGF0YSkKPiA+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPj4+ Pj4gICAgICAgICAgICAgICBpZiAoa3RocmVhZF9zaG91bGRfc3RvcCgpKQo+ID4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+Pj4+PiAtICAgICAgICAgICAgIGlmIChpc19z YmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8fAo+ID4+Pj4+ICsgICAgICAgICAgICAg aWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSB8fAo+ID4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICBpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8 fAo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAhYXRvbWljX3JlYWQoJmRjYy0+ZGlzY2Fy ZF9jbWRfY250KSkgewo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICB3YWl0X21zID0gZHBv bGljeS5tYXhfaW50ZXJ2YWw7Cj4gPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Owo+ID4+Pj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3N1cGVyLmMgYi9mcy9mMmZzL3N1cGVyLmMK PiA+Pj4+PiBpbmRleCBkNWRjODNlNjEzZTIuLjUzNmYzZmZlNTM1NCAxMDA2NDQKPiA+Pj4+PiAt LS0gYS9mcy9mMmZzL3N1cGVyLmMKPiA+Pj4+PiArKysgYi9mcy9mMmZzL3N1cGVyLmMKPiA+Pj4+ PiBAQCAtMTk3OSw2ICsxOTc5LDI2IEBAIHN0YXRpYyB2b2lkIGRlc3Ryb3lfZGV2aWNlX2xpc3Qo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4+Pj4+ICAgICAgIGt2ZnJlZShzYmktPmRldnMp Owo+ID4+Pj4+ICAgfQo+ID4+Pj4+Cj4gPj4+Pj4gK3N0YXRpYyBpbnQgZjJmc19wbV9ub3RpZmll cihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKnB0cikKPiA+Pj4+PiArewo+ID4+Pj4+ ICsgICAgIHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IGNvbnRhaW5lcl9vZihuYiwgc3RydWN0 IGYyZnNfc2JfaW5mbywgcG1fbmIpOwo+ID4+Pj4+ICsKPiA+Pj4+PiArICAgICBzd2l0Y2ggKGFj dGlvbikgewo+ID4+Pj4+ICsgICAgIGNhc2UgUE1fSElCRVJOQVRJT05fUFJFUEFSRToKPiA+Pj4+ PiArICAgICBjYXNlIFBNX1NVU1BFTkRfUFJFUEFSRToKPiA+Pj4+PiArICAgICBjYXNlIFBNX1JF U1RPUkVfUFJFUEFSRToKPiA+Pj4+PiArICAgICAgICAgICAgIHNldF9zYmlfZmxhZyhzYmksIFNC SV9JU19TVVNQRU5ESU5HKTsKPiA+Pj4+PiArICAgICAgICAgICAgIGJyZWFrOwo+ID4+Pj4+ICsg ICAgIGNhc2UgUE1fUE9TVF9TVVNQRU5EOgo+ID4+Pj4+ICsgICAgIGNhc2UgUE1fUE9TVF9ISUJF Uk5BVElPTjoKPiA+Pj4+PiArICAgICBjYXNlIFBNX1BPU1RfUkVTVE9SRToKPiA+Pj4+PiArICAg ICAgICAgICAgIGNsZWFyX3NiaV9mbGFnKHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpOwo+ID4+Pj4+ ICsgICAgICAgICAgICAgYnJlYWs7Cj4gPj4+Pj4gKyAgICAgfQo+ID4+Pj4+ICsgICAgIHJldHVy biBOT1RJRllfT0s7Cj4gPj4+Pj4gK30KPiA+Pj4+PiArCj4gPj4+Pj4gICBzdGF0aWMgdm9pZCBm MmZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+ID4+Pj4+ICAgewo+ID4+Pj4+ ICAgICAgIHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfU0Ioc2IpOwo+ID4+Pj4+IEBA IC0xOTg2LDYgKzIwMDYsOCBAQCBzdGF0aWMgdm9pZCBmMmZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiKQo+ID4+Pj4+ICAgICAgIGludCBlcnIgPSAwOwo+ID4+Pj4+ICAgICAgIGJv b2wgZG9uZTsKPiA+Pj4+Pgo+ID4+Pj4+ICsgICAgIHVucmVnaXN0ZXJfcG1fbm90aWZpZXIoJnNi aS0+cG1fbmIpOwo+ID4+Pj4+ICsKPiA+Pj4+PiAgICAgICAvKiB1bnJlZ2lzdGVyIHByb2Nmcy9z eXNmcyBlbnRyaWVzIGluIGFkdmFuY2UgdG8gYXZvaWQgcmFjZSBjYXNlICovCj4gPj4+Pj4gICAg ICAgZjJmc191bnJlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4gPj4+Pj4KPiA+Pj4+PiBAQCAtNTQ3Miw2 ICs1NDk0LDkgQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2Nr ICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQo+ID4+Pj4+Cj4gPj4+Pj4gICAgICAgZjJmc19y ZXN0b3JlX2RldmljZV9hbGlhcyhzYmkpOwo+ID4+Pj4+Cj4gPj4+Pj4gKyAgICAgc2JpLT5wbV9u Yi5ub3RpZmllcl9jYWxsID0gZjJmc19wbV9ub3RpZmllcjsKPiA+Pj4+PiArICAgICByZWdpc3Rl cl9wbV9ub3RpZmllcigmc2JpLT5wbV9uYik7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICAgICAgIHNiaS0+ dW1vdW50X2xvY2tfaG9sZGVyID0gTlVMTDsKPiA+Pj4+PiAgICAgICByZXR1cm4gMDsKPiA+Pj4+ Pgo+ID4+Pj4KPiA+Pgo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1kZXZlbEBs aXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMv bGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=