Re: [f2fs-dev] [PATCH] f2fs: quiesce background threads during system suspend using PM notifier

Daeho Jeong <[email protected]> Mon, 3 Aug 2026 11:42:15 -0700
Newsgroups net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel
Message-ID <CACOAw_zrCxT0HS_fo9kfSrMEsVbNTo=uV8uTpHCbzbrBmjZUog@mail.gmail.com>
T24gTW9uLCBBdWcgMywgMjAyNiBhdCAyOjA44oCvQU0gQ2hhbyBZdSA8Y2hhb0BrZXJuZWwub3Jn
PiB3cm90ZToKPgo+IE9uIDcvMzAvMjYgMDM6MjMsIERhZWhvIEplb25nIHdyb3RlOgo+ID4gRnJv
bTogRGFlaG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4KPiA+Cj4gPiBEdXJpbmcgc3lz
dGVtIHN1c3BlbmQsIGEgcmFjZSBjb25kaXRpb24gY2FuIGNhdXNlIGYyZnNfZ2MgYW5kIGYyZnNf
ZGlzY2FyZAo+ID4gdGhyZWFkcyB0byBjYWxsIHN1Ym1pdF9iaW8oKSB3aGlsZSB0aGUgdW5kZXJs
eWluZyBibG9jayBkZXZpY2UgKGUuZy4sIFVGUykKPiA+IGlzIGluIFJ1bnRpbWUgUE0gc3VzcGVu
ZC4gQmVjYXVzZSBSdW50aW1lIFBNIHdvcmtlciB0aHJlYWRzIGFyZSBhbHJlYWR5Cj4gPiBmcm96
ZW4gZHVyaW5nIHRhc2sgZnJlZXppbmcsIHRoZSB0aHJlYWRzIGJlY29tZSB0cmFwcGVkIGluCj4g
PiBfX2Jpb19xdWV1ZV9lbnRlcigpIHdhaXRpbmcgb24gbXFfZnJlZXplX3dxLCBsZWFkaW5nIHRv
IGEgUE0gZnJlZXplcgo+ID4gdGltZW91dC4KPiA+Cj4gPiBUbyBwcmV2ZW50IHRoaXMgZGVhZGxv
Y2ssIHJlZ2lzdGVyIGEgUE0gbm90aWZpZXIgdG8gc2V0IFNCSV9JU19TVVNQRU5ESU5HCj4gPiBk
dXJpbmcgUE1fU1VTUEVORF9QUkVQQVJFLiBCYWNrZ3JvdW5kIEdDIGFuZCBkaXNjYXJkIHRocmVh
ZHMgY2hlY2sgdGhpcwo+Cj4gU2hvdWxkIHdlIGNvdmVyIGlzc3VlX2ZsdXNoX3RocmVhZCBhbmQg
aXNzdWVfY2hlY2twb2ludF90aHJlYWQgYXMgd2VsbCBpbgo+IHdoZXJlIHdlIHdpbGwgc3VibWl0
IGJpbz8KClVubGlrZSBHQyBhbmQgZGlzY2FyZCwgd2hpY2ggYXJlIGJhY2tncm91bmQgb3B0aW1p
emF0aW9uIHRhc2tzIGFuZCBjYW4KYmUgc2FmZWx5IHBhdXNlZCwgb3RoZXIgb3BlcmF0aW9ucyBs
aWtlIGNoZWNrcG9pbnQgYXJlIGNyaXRpY2FsIGZvcgpkYXRhIGNvbnNpc3RlbmN5LgpJdCBpcyBi
ZXR0ZXIgbm90IHRvIGludGVycnVwdCB0aGVtIGluIHRoZSBtaWRkbGUgb2YgdGhlaXIgcHJvZ3Jl
c3MuIElmCnRoZXkgYXJlIHJ1bm5pbmcgYW5kIHRha2UgdG9vIGxvbmcsIGl0IGlzIHNhZmVyIHRv
IGp1c3QgbGV0IHRoZSBzeXN0ZW0Kc3VzcGVuZCB0ZW1wb3JhcmlseSBmYWlsIHJhdGhlciB0aGFu
IGZvcmNpYmx5IGJyZWFraW5nIHRoZWlyCm9wZXJhdGlvbnMuCgo+Cj4gPiBmbGFnIGFuZCBpbW1l
ZGlhdGVseSBzdG9wIGlzc3VpbmcgbmV3IGJpb3MsIGFsbG93aW5nIHRoZW0gdG8gZW50ZXIgYQo+
ID4gZnJlZXphYmxlIHNsZWVwIHN0YXRlIGNsZWFubHkgYmVmb3JlIHByb2Nlc3MgZnJlZXppbmcg
YmVnaW5zLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IERhZWhvIEplb25nIDxkYWVob2plb25nQGdv
b2dsZS5jb20+Cj4gPiAtLS0KPiA+ICAgZnMvZjJmcy9mMmZzLmggICAgfCAgMyArKysKPiA+ICAg
ZnMvZjJmcy9nYy5jICAgICAgfCAxMyArKysrKysrKy0tLS0tCj4gPiAgIGZzL2YyZnMvc2VnbWVu
dC5jIHwgMTMgKysrKysrKysrLS0tLQo+ID4gICBmcy9mMmZzL3N1cGVyLmMgICB8IDI1ICsrKysr
KysrKysrKysrKysrKysrKysrKysKPiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25z
KCspLCA5IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBi
L2ZzL2YyZnMvZjJmcy5oCj4gPiBpbmRleCBmMjRlMzBiYjVjM2QuLmM0NmJmNGRmOTQxMiAxMDA2
NDQKPiA+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4gPiArKysgYi9mcy9mMmZzL2YyZnMuaAo+ID4g
QEAgLTI1LDYgKzI1LDcgQEAKPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3F1b3Rhb3BzLmg+Cj4gPiAg
ICNpbmNsdWRlIDxsaW51eC9wYXJ0X3N0YXQuaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3J3X2hp
bnQuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgo+ID4KPiA+ICAgI2luY2x1ZGUg
PGxpbnV4L2ZzY3J5cHQuaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L2ZzdmVyaXR5Lmg+Cj4gPiBA
QCAtMTQ5NCw2ICsxNDk1LDcgQEAgZW51bSB7Cj4gPiAgICAgICBTQklfSVNfRlJFRVpJTkcsICAg
ICAgICAgICAgICAgICAgICAgICAgLyogZnJlZXplZnMgaXMgaW4gcHJvY2VzcyAqLwo+ID4gICAg
ICAgU0JJX0lTX1dSSVRBQkxFLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlbW92ZSBybyBt
b3VudG9wdGlvbiB0cmFuc2llbnRseSAqLwo+ID4gICAgICAgU0JJX0VOQUJMRV9DSEVDS1BPSU5U
LCAgICAgICAgICAgICAgICAgIC8qIGluZGljYXRlIGl0J3MgZHVyaW5nIGYyZnNfZW5hYmxlX2No
ZWNrcG9pbnQoKSAqLwo+ID4gKyAgICAgU0JJX0lTX1NVU1BFTkRJTkcsICAgICAgICAgICAgICAg
ICAgICAgIC8qIHN5c3RlbSBzdXNwZW5kIGlzIGluIHByb2dyZXNzICovCj4gPiAgICAgICBNQVhf
U0JJX0ZMQUcsCj4gPiAgIH07Cj4gPgo+ID4gQEAgLTE3NTcsNiArMTc1OSw3IEBAIHN0cnVjdCBm
MmZzX3NiX2luZm8gewo+ID4gICAgICAgc3RydWN0IGYyZnNfcndzZW0gc2JfbG9jazsgICAgICAg
ICAgICAgIC8qIGxvY2sgZm9yIHJhdyBzdXBlciBibG9jayAqLwo+ID4gICAgICAgaW50IHZhbGlk
X3N1cGVyX2Jsb2NrOyAgICAgICAgICAgICAgICAgIC8qIHZhbGlkIHN1cGVyIGJsb2NrIG5vICov
Cj4gPiAgICAgICB1bnNpZ25lZCBsb25nIHNfZmxhZzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiBmbGFncyBmb3Igc2JpICovCj4gPiArICAgICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcG1f
bmI7ICAgICAgICAgICAgLyogZm9yIFBNIG5vdGlmaWVyICovCj4gPiAgICAgICBzdHJ1Y3QgbXV0
ZXggd3JpdGVwYWdlczsgICAgICAgICAgICAgICAgLyogbXV0ZXggZm9yIHdyaXRlcGFnZXMoKSAq
Lwo+ID4KPiA+ICAgI2lmZGVmIENPTkZJR19CTEtfREVWX1pPTkVECj4gPiBkaWZmIC0tZ2l0IGEv
ZnMvZjJmcy9nYy5jIGIvZnMvZjJmcy9nYy5jCj4gPiBpbmRleCA5M2JjYjM1YTViNWQuLjg2YjJi
Mjk0MDJhNSAxMDA2NDQKPiA+IC0tLSBhL2ZzL2YyZnMvZ2MuYwo+ID4gKysrIGIvZnMvZjJmcy9n
Yy5jCj4gPiBAQCAtNzEsNyArNzEsOCBAQCBzdGF0aWMgaW50IGdjX3RocmVhZF9mdW5jKHZvaWQg
KmRhdGEpCj4gPiAgICAgICAgICAgICAgIGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4gPiAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPgo+ID4gLSAgICAgICAgICAgICBpZiAoc2Jp
LT5zYi0+c193cml0ZXJzLmZyb3plbiA+PSBTQl9GUkVFWkVfV1JJVEUpIHsKPiA+ICsgICAgICAg
ICAgICAgaWYgKHNiaS0+c2ItPnNfd3JpdGVycy5mcm96ZW4gPj0gU0JfRlJFRVpFX1dSSVRFIHx8
Cj4gPiArICAgICAgICAgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NV
U1BFTkRJTkcpKSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2Vfc2xlZXBfdGlt
ZShnY190aCwgJndhaXRfbXMpOwo+ID4gICAgICAgICAgICAgICAgICAgICAgIHN0YXRfb3RoZXJf
c2tpcF9iZ2djX2NvdW50KHNiaSk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
Cj4gPiBAQCAtMTA2NCw4ICsxMDY1LDkgQEAgc3RhdGljIGludCBnY19ub2RlX3NlZ21lbnQoc3Ry
dWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ID4gICAgICAgICAgICAgICBzdHJ1Y3Qgbm9kZV9pbmZv
IG5pOwo+ID4gICAgICAgICAgICAgICBpbnQgZXJyOwo+ID4KPiA+IC0gICAgICAgICAgICAgLyog
c3RvcCBCR19HQyBpZiB0aGVyZSBpcyBub3QgZW5vdWdoIGZyZWUgc2VjdGlvbnMuICovCj4gPiAt
ICAgICAgICAgICAgIGlmIChnY190eXBlID09IEJHX0dDICYmIGhhc19ub3RfZW5vdWdoX2ZyZWVf
c2VjcyhzYmksIDAsIDApKQo+ID4gKyAgICAgICAgICAgICAvKiBzdG9wIEJHX0dDIGlmIHRoZXJl
IGlzIG5vdCBlbm91Z2ggZnJlZSBzZWN0aW9ucyBvciBzdXNwZW5kaW5nLiAqLwo+ID4gKyAgICAg
ICAgICAgICBpZiAoZ2NfdHlwZSA9PSBCR19HQyAmJiAoaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNz
KHNiaSwgMCwgMCkgfHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKSkKPiA+ICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gc3VibWl0dGVkOwo+ID4KPiA+ICAgICAgICAgICAgICAgaWYgKGNo
ZWNrX3ZhbGlkX21hcChzYmksIHNlZ25vLCBvZmYpID09IDApCj4gPiBAQCAtMTYxMSw3ICsxNjEz
LDggQEAgc3RhdGljIGludCBnY19kYXRhX3NlZ21lbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp
LCBzdHJ1Y3QgZjJmc19zdW1tYXJ5ICpzdW0sCj4gPiAgICAgICAgICAgICAgICAqIE9yLCBzdG9w
IEdDIGlmIHRoZSBzZWdtZW50IGJlY29tZXMgZnVsbHkgdmFsaWQgY2F1c2VkIGJ5Cj4gPiAgICAg
ICAgICAgICAgICAqIHJhY2UgY29uZGl0aW9uIGFsb25nIHdpdGggU1NSIGJsb2NrIGFsbG9jYXRp
b24uCj4gPiAgICAgICAgICAgICAgICAqLwo+ID4gLSAgICAgICAgICAgICBpZiAoKGdjX3R5cGUg
PT0gQkdfR0MgJiYgaGFzX25vdF9lbm91Z2hfZnJlZV9zZWNzKHNiaSwgMCwgMCkpIHx8Cj4gPiAr
ICAgICAgICAgICAgIGlmICgoZ2NfdHlwZSA9PSBCR19HQyAmJiAoaGFzX25vdF9lbm91Z2hfZnJl
ZV9zZWNzKHNiaSwgMCwgMCkgfHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcpKSkgfHwKPiA+ICAg
ICAgICAgICAgICAgICAgICAgICAoIWZvcmNlX21pZ3JhdGUgJiYgZ2V0X3ZhbGlkX2Jsb2Nrcyhz
YmksIHNlZ25vLCB0cnVlKSA9PQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0FQX0JMS1NfUEVSX1NFQyhzYmkpKSkKPiA+ICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc3VibWl0dGVkOwo+ID4gQEAgLTIwMTUsNyArMjAxOCw3IEBA
IGludCBmMmZzX2djKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGYyZnNfZ2NfY29u
dHJvbCAqZ2NfY29udHJvbCkKPiA+ICAgICAgICAgICAgICAgZ290byBzdG9wOwo+ID4gICAgICAg
fQo+ID4gICByZXRyeToKPiA+IC0gICAgIGlmICh1bmxpa2VseShmcmVlemluZyhjdXJyZW50KSkp
IHsKPgo+IFNob3VsZG4ndCB3ZSBrZWVwIG9yaWdpbmFsIGZyZWV6aW5nIGxvZ2ljPyBpbiBjYXNl
IGZpbGVzeXN0ZW0gYXJlIGZyb3plbgo+IHdoZW4gbG93IGRldmljZSBzbmFwc2hvdCBpcyB0cmln
Z2VyZWQ/CgpTaW5jZSB0aGUgcnVudGltZSBQTSBzdXNwZW5kL3Jlc3VtZSB3b3JrZXJzIGFyZSBv
bmx5IGZyb3plbiBkdXJpbmcKc3lzdGVtLXdpZGUgUE0gdHJhbnNpdGlvbnMgKHN1c3BlbmQvaGli
ZXJuYXRpb24pLCB0aGUgUE0gbm90aWZpZXIKYXBwcm9hY2ggd2l0aCBTQklfSVNfU1VTUEVORElO
RyBzdWZmaWNpZW50bHkgcHJldmVudHMgdGhlIGRlYWRsb2NrLgoKVGhhbmtzLAoKPgo+ID4gKyAg
ICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19TVVNQRU5ESU5HKSkgewo+ID4gICAg
ICAgICAgICAgICByZXQgPSAwOwo+ID4gICAgICAgICAgICAgICBnb3RvIHN0b3A7Cj4gPiAgICAg
ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmMgYi9mcy9mMmZzL3NlZ21lbnQu
Ywo+ID4gaW5kZXggZDcwZGM1ZWYzZGU0Li5lMjcxOTc5NTMzNTYgMTAwNjQ0Cj4gPiAtLS0gYS9m
cy9mMmZzL3NlZ21lbnQuYwo+ID4gKysrIGIvZnMvZjJmcy9zZWdtZW50LmMKPiA+IEBAIC0xMzAw
LDcgKzEzMDAsOCBAQCBzdGF0aWMgaW50IF9fc3VibWl0X2Rpc2NhcmRfY21kKHN0cnVjdCBmMmZz
X3NiX2luZm8gKnNiaSwKPiA+ICAgICAgIGlmIChkYy0+c3RhdGUgIT0gRF9QUkVQKQo+ID4gICAg
ICAgICAgICAgICByZXR1cm4gMDsKPiA+Cj4gPiAtICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNi
aSwgU0JJX05FRURfRlNDSykpCj4gPiArICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ
X05FRURfRlNDSykgfHwKPiA+ICsgICAgICAgICAgICAgaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ
X0lTX1NVU1BFTkRJTkcpKQo+ID4gICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+Cj4gPiAgICNp
ZmRlZiBDT05GSUdfQkxLX0RFVl9aT05FRAo+ID4gQEAgLTEzNDEsNiArMTM0Miw5IEBAIHN0YXRp
YyBpbnQgX19zdWJtaXRfZGlzY2FyZF9jbWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ID4g
ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4gICAgICAgICAgICAgICBib29s
IGxhc3QgPSB0cnVlOwo+ID4KPiA+ICsgICAgICAgICAgICAgaWYgKGlzX3NiaV9mbGFnX3NldChz
YmksIFNCSV9JU19TVVNQRU5ESU5HKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICBicmVhazsK
PiA+ICsKPiA+ICAgICAgICAgICAgICAgaWYgKGxlbiA+IG1heF9kaXNjYXJkX2Jsb2Nrcykgewo+
ID4gICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IG1heF9kaXNjYXJkX2Jsb2NrczsKPiA+ICAg
ICAgICAgICAgICAgICAgICAgICBsYXN0ID0gZmFsc2U7Cj4gPiBAQCAtMTYxNSw3ICsxNjE5LDcg
QEAgc3RhdGljIHZvaWQgX19pc3N1ZV9kaXNjYXJkX2NtZF9vcmRlcmx5KHN0cnVjdCBmMmZzX3Ni
X2luZm8gKnNiaSwKPiA+ICAgICAgICAgICAgICAgaWYgKGRjLT5zdGF0ZSAhPSBEX1BSRVApCj4g
PiAgICAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0Owo+ID4KPiA+IC0gICAgICAgICAgICAg
aWYgKCppc3N1ZWQgPiAwICYmIHVubGlrZWx5KGZyZWV6aW5nKGN1cnJlbnQpKSkKPgo+IERpdHRv
LAo+Cj4gPiArICAgICAgICAgICAgIGlmIChpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VT
UEVORElORykpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPgo+ID4gICAgICAg
ICAgICAgICBpZiAoZHBvbGljeS0+aW9fYXdhcmUgJiYgIWlzX2lkbGUoc2JpLCBESVNDQVJEX1RJ
TUUpKSB7Cj4gPiBAQCAtMTY4OCw3ICsxNjkyLDcgQEAgc3RhdGljIGludCBfX2lzc3VlX2Rpc2Nh
cmRfY21kKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPiA+ICAgICAgICAgICAgICAgbGlzdF9m
b3JfZWFjaF9lbnRyeV9zYWZlKGRjLCB0bXAsIHBlbmRfbGlzdCwgbGlzdCkgewo+ID4gICAgICAg
ICAgICAgICAgICAgICAgIGYyZnNfYnVnX29uKHNiaSwgZGMtPnN0YXRlICE9IERfUFJFUCk7Cj4g
Pgo+ID4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpc3N1ZWQgPiAwICYmIHVubGlrZWx5KGZy
ZWV6aW5nKGN1cnJlbnQpKSkgewo+Cj4gRGl0dG8sCj4KPiBUaGFua3MsCj4KPiA+ICsgICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJX0lTX1NVU1BFTkRJTkcp
KSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXNwZW5kZWQgPSB0cnVlOwo+
ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiAgICAgICAgICAgICAg
ICAgICAgICAgfQo+ID4gQEAgLTE5NTUsNyArMTk1OSw4IEBAIHN0YXRpYyBpbnQgaXNzdWVfZGlz
Y2FyZF90aHJlYWQodm9pZCAqZGF0YSkKPiA+ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKPiA+ICAgICAgICAgICAgICAgaWYgKGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkKPiA+ICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+IC0gICAgICAgICAgICAgaWYgKGlzX3NiaV9m
bGFnX3NldChzYmksIFNCSV9ORUVEX0ZTQ0spIHx8Cj4gPiArICAgICAgICAgICAgIGlmIChpc19z
YmlfZmxhZ19zZXQoc2JpLCBTQklfSVNfU1VTUEVORElORykgfHwKPiA+ICsgICAgICAgICAgICAg
ICAgICAgICBpc19zYmlfZmxhZ19zZXQoc2JpLCBTQklfTkVFRF9GU0NLKSB8fAo+ID4gICAgICAg
ICAgICAgICAgICAgICAgICFhdG9taWNfcmVhZCgmZGNjLT5kaXNjYXJkX2NtZF9jbnQpKSB7Cj4g
PiAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9tcyA9IGRwb2xpY3kubWF4X2ludGVydmFsOwo+
ID4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gZGlmZiAtLWdpdCBhL2ZzL2Yy
ZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwo+ID4gaW5kZXggZDVkYzgzZTYxM2UyLi41MzZm
M2ZmZTUzNTQgMTAwNjQ0Cj4gPiAtLS0gYS9mcy9mMmZzL3N1cGVyLmMKPiA+ICsrKyBiL2ZzL2Yy
ZnMvc3VwZXIuYwo+ID4gQEAgLTE5NzksNiArMTk3OSwyNiBAQCBzdGF0aWMgdm9pZCBkZXN0cm95
X2RldmljZV9saXN0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPiA+ICAgICAgIGt2ZnJlZShz
YmktPmRldnMpOwo+ID4gICB9Cj4gPgo+ID4gK3N0YXRpYyBpbnQgZjJmc19wbV9ub3RpZmllcihz
dHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqcHRyKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBm
MmZzX3NiX2luZm8gKnNiaSA9IGNvbnRhaW5lcl9vZihuYiwgc3RydWN0IGYyZnNfc2JfaW5mbywg
cG1fbmIpOwo+ID4gKwo+ID4gKyAgICAgc3dpdGNoIChhY3Rpb24pIHsKPiA+ICsgICAgIGNhc2Ug
UE1fSElCRVJOQVRJT05fUFJFUEFSRToKPiA+ICsgICAgIGNhc2UgUE1fU1VTUEVORF9QUkVQQVJF
Ogo+ID4gKyAgICAgY2FzZSBQTV9SRVNUT1JFX1BSRVBBUkU6Cj4gPiArICAgICAgICAgICAgIHNl
dF9zYmlfZmxhZyhzYmksIFNCSV9JU19TVVNQRU5ESU5HKTsKPiA+ICsgICAgICAgICAgICAgYnJl
YWs7Cj4gPiArICAgICBjYXNlIFBNX1BPU1RfU1VTUEVORDoKPiA+ICsgICAgIGNhc2UgUE1fUE9T
VF9ISUJFUk5BVElPTjoKPiA+ICsgICAgIGNhc2UgUE1fUE9TVF9SRVNUT1JFOgo+ID4gKyAgICAg
ICAgICAgICBjbGVhcl9zYmlfZmxhZyhzYmksIFNCSV9JU19TVVNQRU5ESU5HKTsKPiA+ICsgICAg
ICAgICAgICAgYnJlYWs7Cj4gPiArICAgICB9Cj4gPiArICAgICByZXR1cm4gTk9USUZZX09LOwo+
ID4gK30KPiA+ICsKPiA+ICAgc3RhdGljIHZvaWQgZjJmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0g
RjJGU19TQihzYik7Cj4gPiBAQCAtMTk4Niw2ICsyMDA2LDggQEAgc3RhdGljIHZvaWQgZjJmc19w
dXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKPiA+ICAgICAgIGludCBlcnIgPSAwOwo+
ID4gICAgICAgYm9vbCBkb25lOwo+ID4KPiA+ICsgICAgIHVucmVnaXN0ZXJfcG1fbm90aWZpZXIo
JnNiaS0+cG1fbmIpOwo+ID4gKwo+ID4gICAgICAgLyogdW5yZWdpc3RlciBwcm9jZnMvc3lzZnMg
ZW50cmllcyBpbiBhZHZhbmNlIHRvIGF2b2lkIHJhY2UgY2FzZSAqLwo+ID4gICAgICAgZjJmc191
bnJlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4gPgo+ID4gQEAgLTU0NzIsNiArNTQ5NCw5IEBAIHN0YXRp
YyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19j
b250ZXh0ICpmYykKPiA+Cj4gPiAgICAgICBmMmZzX3Jlc3RvcmVfZGV2aWNlX2FsaWFzKHNiaSk7
Cj4gPgo+ID4gKyAgICAgc2JpLT5wbV9uYi5ub3RpZmllcl9jYWxsID0gZjJmc19wbV9ub3RpZmll
cjsKPiA+ICsgICAgIHJlZ2lzdGVyX3BtX25vdGlmaWVyKCZzYmktPnBtX25iKTsKPiA+ICsKPiA+
ICAgICAgIHNiaS0+dW1vdW50X2xvY2tfaG9sZGVyID0gTlVMTDsKPiA+ICAgICAgIHJldHVybiAw
Owo+ID4KPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291
cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZv
L2xpbnV4LWYyZnMtZGV2ZWwK