Re: [PATCH v5 5/6] lib: utils/irqchip/imsic: track IRQ enable state and restore EIE on warm init

Anup Patel <[email protected]> Wed, 22 Jul 2026 12:02:43 +0530
Newsgroups org.infradead.lists.opensbi
Message-ID <CABBgwmv6vYhhP_CEM7drCuWB9KYDOmB8-FZPyBcsDAnAof-cfg@mail.gmail.com>
T24gV2VkLCBKdWwgMjIsIDIwMjYgYXQgMzo0M+KAr0FNIFBhd2FuZGVlcCBPemEKPHBhd2FuZGVl
cC5vemFAb3NzLnF1YWxjb21tLmNvbT4gd3JvdGU6Cj4KPiBBZGQgYW4gaXJxX3N0YXRlIGZpZWxk
IHRvIHN0cnVjdCBzYmlfaXJxY2hpcF9od2lycV9kYXRhIHdpdGggYSBzaW5nbGUKPiBJUlFfRU5B
QkxFRCBmbGFnIChiaXQgMCkgdG8gdHJhY2sgd2hldGhlciBhIGhhcmR3YXJlIGludGVycnVwdCBo
YXMgYmVlbgo+IGVuYWJsZWQgdmlhIHRoZSBpcnFjaGlwIGZyYW1ld29yay4gU2V0IElSUV9FTkFC
TEVEIGluCj4gc2JpX2lycWNoaXBfdW5tYXNrX2h3aXJxKCkgd2hlbiB0aGUgdW5tYXNrIGNhbGxi
YWNrIGlzIGludm9rZWQuCj4KPiBBZGQgc2JpX2lycWNoaXBfZ2V0X2lycV9zdGF0ZSgpIGFzIGEg
cHJpdmF0ZSBpbmxpbmUgYWNjZXNzb3IgYW5kIGV4cG9zZQo+IHNiaV9pcnFjaGlwX2lzX2lycV9l
bmFibGVkKCkgYXMgYSBwdWJsaWMgQVBJIGZvciBkcml2ZXJzIHRvIHF1ZXJ5IHRoZQo+IGVuYWJs
ZWQgc3RhdGUgb2YgYSBoYXJkd2FyZSBpbnRlcnJ1cHQgYnkgY2hpcCBwb2ludGVyIGFuZCBod2ly
cSBudW1iZXIuCj4KPiBSZWZhY3RvciBpbXNpY19sb2NhbF9laXhfdXBkYXRlKCkgdG8gb3BlcmF0
ZSBvbiBhIHNpbmdsZSBpbnRlcnJ1cHQgSUQKPiBpbnN0ZWFkIG9mIGEgYmFzZStjb3VudCByYW5n
ZSwgc2ltcGxpZnlpbmcgdGhlIENTUiBiaXQgbWFuaXB1bGF0aW9uIHRvCj4gYSBkaXJlY3QgQklU
KGlkKSB3cml0ZSB3aXRob3V0IHRoZSBpbm5lciBsb29wLiBVcGRhdGUgYWxsIGNhbGwgc2l0ZXMK
PiBhY2NvcmRpbmdseS4KPgo+IFVzZSBzYmlfaXJxY2hpcF9pc19pcnFfZW5hYmxlZCgpIGluIGlt
c2ljX3dhcm1faXJxY2hpcF9pbml0KCkgdG8KPiByZXN0b3JlIHBlci1FSUlEIEVJRSBDU1Igc3Rh
dGUgb24gd2FybSBib290IGFuZCBIU00gcmVzdW1lIGJhc2VkIG9uCj4gdGhlIHNhdmVkIGlycV9z
dGF0ZSwgcmVwbGFjaW5nIHRoZSBwcmV2aW91cyBibGFua2V0IGRpc2FibGUgb2YgYWxsCj4gaW50
ZXJydXB0cy4gVGhpcyBlbnN1cmVzIHRoYXQgRUlJRHMgZW5hYmxlZCBkdXJpbmcgaG90cGx1Zy93
YXJtaW5pdAo+IGN5Y2xlIGFyZSBjb3JyZWN0bHkgcmUtZW5hYmxlZCBvbiB0aGUgcmVzdW1pbmcg
aGFydCB3aXRob3V0IHJlcXVpcmluZwo+IHNvZnR3YXJlIHRvIHJlLXJlZ2lzdGVyIG9yIHJlLXVu
bWFzayBlYWNoIGludGVycnVwdC4KPgo+IFNpZ25lZC1vZmYtYnk6IE96YSBQYXdhbmRlZXAgPHBh
d2FuZGVlcC5vemFAb3NzLnF1YWxjb21tLmNvbT4KCkxHVE0uCgpSZXZpZXdlZC1ieTogQW51cCBQ
YXRlbCA8YW51cEBicmFpbmZhdWx0Lm9yZz4KClRoYW5rcywKQW51cAoKPiAtLS0KPiAgaW5jbHVk
ZS9zYmkvc2JpX2lycWNoaXAuaCB8ICA0ICsrKwo+ICBsaWIvc2JpL3NiaV9pcnFjaGlwLmMgICAg
IHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWIvdXRpbHMvaXJxY2hpcC9pbXNp
Yy5jIHwgNTUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDMgZmls
ZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9zYmkvc2JpX2lycWNoaXAuaCBiL2luY2x1ZGUvc2JpL3NiaV9pcnFjaGlw
LmgKPiBpbmRleCBlYTAxMjYzNS4uZjNhZTlhMTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9zYmkv
c2JpX2lycWNoaXAuaAo+ICsrKyBiL2luY2x1ZGUvc2JpL3NiaV9pcnFjaGlwLmgKPiBAQCAtMTY4
LDQgKzE2OCw4IEBAIGludCBzYmlfaXJxY2hpcF9pbml0KHN0cnVjdCBzYmlfc2NyYXRjaCAqc2Ny
YXRjaCwgYm9vbCBjb2xkX2Jvb3QpOwo+ICAvKiogRXhpdCBpbnRlcnJ1cHQgY29udHJvbGxlcnMg
Ki8KPiAgdm9pZCBzYmlfaXJxY2hpcF9leGl0KHN0cnVjdCBzYmlfc2NyYXRjaCAqc2NyYXRjaCk7
Cj4KPiArLyoqIENoZWNrIGlmIHRoZSBpbnRlcnJ1cHQgaXMgZW5hYmxlZCAqLwo+ICtib29sIHNi
aV9pcnFjaGlwX2lzX2h3aXJxX2VuYWJsZWQoc3RydWN0IHNiaV9pcnFjaGlwX2RldmljZSAqY2hp
cCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBo
d2lycSk7Cj4gKwo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvbGliL3NiaS9zYmlfaXJxY2hpcC5j
IGIvbGliL3NiaS9zYmlfaXJxY2hpcC5jCj4gaW5kZXggMTJkNGUyNzIuLmQ1ZjQ3YTA1IDEwMDY0
NAo+IC0tLSBhL2xpYi9zYmkvc2JpX2lycWNoaXAuYwo+ICsrKyBiL2xpYi9zYmkvc2JpX2lycWNo
aXAuYwo+IEBAIC0yMCw2ICsyMCwxMSBAQCBzdHJ1Y3Qgc2JpX2lycWNoaXBfaHdpcnFfZGF0YSB7
Cj4gICAgICAgICAvKiogcmF3IGhhcmR3YXJlIGludGVycnVwdCBoYW5kbGVyICovCj4gICAgICAg
ICBpbnQgKCpyYXdfaGFuZGxlcikoc3RydWN0IHNiaV9pcnFjaGlwX2RldmljZSAqY2hpcCwgdTMy
IGh3aXJxKTsKPgo+ICsjZGVmaW5lIElSUV9FTkFCTEVEICAgIEJJVCgwKQo+ICsgICAgICAgLyoq
IGludGVycnVwdCBzdGF0ZQo+ICsgICAgICAgICogYml0IDAgLSAxOiBlbmFibGVkLCAwOiBkaXNh
YmxlZCAqLwo+ICsgICAgICAgdTMyIGlycV9zdGF0ZTsKPiArCj4gICAgICAgICAvKiogdGFyZ2V0
IGhhcnQgaW5kZXggKi8KPiAgICAgICAgIHUzMiBoYXJ0X2luZGV4Owo+Cj4gQEAgLTgwLDIzICs4
NSw1NCBAQCBpbnQgc2JpX2lycWNoaXBfcHJvY2Vzc19od2lycShzdHJ1Y3Qgc2JpX2lycWNoaXBf
ZGV2aWNlICpjaGlwLCB1MzIgaHdpcnEpCj4gICAgICAgICByZXR1cm4gZGF0YS0+cmF3X2hhbmRs
ZXIoY2hpcCwgaHdpcnEpOwo+ICB9Cj4KPiArc3RhdGljIGlubGluZSB1MzIgc2JpX2lycWNoaXBf
Z2V0X2lycV9zdGF0ZShzdHJ1Y3Qgc2JpX2lycWNoaXBfZGV2aWNlICpjaGlwLAo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBod2lycSkKPiArewo+ICsg
ICAgICAgaWYgKCFjaGlwIHx8ICFjaGlwLT5od2lycXMgfHwgaHdpcnEgPj0gY2hpcC0+bnVtX2h3
aXJxKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAgICAgICByZXR1cm4gY2hp
cC0+aHdpcnFzW2h3aXJxXS5pcnFfc3RhdGU7Cj4gK30KPiArCj4gK2Jvb2wgc2JpX2lycWNoaXBf
aXNfaHdpcnFfZW5hYmxlZChzdHJ1Y3Qgc2JpX2lycWNoaXBfZGV2aWNlICpjaGlwLAo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGh3aXJxKQo+ICt7
Cj4gKyAgICAgICByZXR1cm4gISEoc2JpX2lycWNoaXBfZ2V0X2lycV9zdGF0ZShjaGlwLCBod2ly
cSkgJiBJUlFfRU5BQkxFRCk7Cj4gK30KPiArCj4gIGludCBzYmlfaXJxY2hpcF91bm1hc2tfaHdp
cnEoc3RydWN0IHNiaV9pcnFjaGlwX2RldmljZSAqY2hpcCwgdTMyIGh3aXJxKQo+ICB7Cj4gKyAg
ICAgICBzdHJ1Y3Qgc2JpX2lycWNoaXBfaHdpcnFfZGF0YSAqZGF0YTsKPiArCj4gICAgICAgICBp
ZiAoIWNoaXAgfHwgY2hpcC0+bnVtX2h3aXJxIDw9IGh3aXJxKQo+ICAgICAgICAgICAgICAgICBy
ZXR1cm4gU0JJX0VJTlZBTDsKPgo+ICsgICAgICAgZGF0YSA9ICZjaGlwLT5od2lycXNbaHdpcnFd
Owo+ICsgICAgICAgaWYgKHNiaV9pcnFjaGlwX2lzX2h3aXJxX2VuYWJsZWQoY2hpcCwgaHdpcnEp
ID09IHRydWUpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBTQklfRUFMUkVBRFk7Cj4gKwo+ICAg
ICAgICAgaWYgKGNoaXAtPmh3aXJxX3VubWFzaykKPiAgICAgICAgICAgICAgICAgY2hpcC0+aHdp
cnFfdW5tYXNrKGNoaXAsIGh3aXJxKTsKPiArCj4gKyAgICAgICBkYXRhLT5pcnFfc3RhdGUgfD0g
SVJRX0VOQUJMRUQ7Cj4gICAgICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gIGludCBzYmlfaXJxY2hp
cF9tYXNrX2h3aXJxKHN0cnVjdCBzYmlfaXJxY2hpcF9kZXZpY2UgKmNoaXAsIHUzMiBod2lycSkK
PiAgewo+ICsgICAgICAgc3RydWN0IHNiaV9pcnFjaGlwX2h3aXJxX2RhdGEgKmRhdGE7Cj4gKwo+
ICAgICAgICAgaWYgKCFjaGlwIHx8IGNoaXAtPm51bV9od2lycSA8PSBod2lycSkKPiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFNCSV9FSU5WQUw7Cj4KPiArICAgICAgIGlmIChzYmlfaXJxY2hpcF9p
c19od2lycV9lbmFibGVkKGNoaXAsIGh3aXJxKSA9PSBmYWxzZSkKPiArICAgICAgICAgICAgICAg
cmV0dXJuIFNCSV9FQUxSRUFEWTsKPiArCj4gICAgICAgICBpZiAoY2hpcC0+aHdpcnFfbWFzaykK
PiAgICAgICAgICAgICAgICAgY2hpcC0+aHdpcnFfbWFzayhjaGlwLCBod2lycSk7Cj4gKwo+ICsg
ICAgICAgZGF0YSA9ICZjaGlwLT5od2lycXNbaHdpcnFdOwo+ICsgICAgICAgZGF0YS0+aXJxX3N0
YXRlICY9IH5JUlFfRU5BQkxFRDsKPiAgICAgICAgIHJldHVybiAwOwo+ICB9Cj4KPiBkaWZmIC0t
Z2l0IGEvbGliL3V0aWxzL2lycWNoaXAvaW1zaWMuYyBiL2xpYi91dGlscy9pcnFjaGlwL2ltc2lj
LmMKPiBpbmRleCA0MGJmZmNjMC4uODJhNzRmNDMgMTAwNjQ0Cj4gLS0tIGEvbGliL3V0aWxzL2ly
cWNoaXAvaW1zaWMuYwo+ICsrKyBiL2xpYi91dGlscy9pcnFjaGlwL2ltc2ljLmMKPiBAQCAtMjI1
LDI5ICsyMjUsMjAgQEAgc3RhdGljIHN0cnVjdCBzYmlfaXBpX2RldmljZSBpbXNpY19pcGlfZGV2
aWNlID0gewo+ICAgICAgICAgLmlwaV9zZW5kICAgICAgID0gaW1zaWNfaXBpX3NlbmQKPiAgfTsK
Pgo+IC1zdGF0aWMgdm9pZCBpbXNpY19sb2NhbF9laXhfdXBkYXRlKHVuc2lnbmVkIGxvbmcgYmFz
ZV9pZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg
bnVtX2lkLCBib29sIHBlbmQsIGJvb2wgdmFsKQo+ICtzdGF0aWMgdm9pZCBpbXNpY19sb2NhbF9l
aXhfdXBkYXRlKHVuc2lnbmVkIGxvbmcgaWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIHBlbmQsIGJvb2wgdmFsKQo+ICB7Cj4gLSAgICAgICB1bnNpZ25lZCBsb25n
IGksIGlzZWwsIGlyZWc7Cj4gLSAgICAgICB1bnNpZ25lZCBsb25nIGlkID0gYmFzZV9pZCwgbGFz
dF9pZCA9IGJhc2VfaWQgKyBudW1faWQ7Cj4gLQo+IC0gICAgICAgd2hpbGUgKGlkIDwgbGFzdF9p
ZCkgewo+IC0gICAgICAgICAgICAgICBpc2VsID0gaWQgLyBfX3Jpc2N2X3hsZW47Cj4gLSAgICAg
ICAgICAgICAgIGlzZWwgKj0gX19yaXNjdl94bGVuIC8gSU1TSUNfRUlQeF9CSVRTOwo+IC0gICAg
ICAgICAgICAgICBpc2VsICs9IChwZW5kKSA/IElNU0lDX0VJUDAgOiBJTVNJQ19FSUUwOwo+IC0K
PiAtICAgICAgICAgICAgICAgaXJlZyA9IDA7Cj4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IGlk
ICYgKF9fcmlzY3ZfeGxlbiAtIDEpOwo+IC0gICAgICAgICAgICAgICAgICAgIChpZCA8IGxhc3Rf
aWQpICYmIChpIDwgX19yaXNjdl94bGVuKTsgaSsrKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgaXJlZyB8PSBCSVQoaSk7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWQrKzsKPiAtICAg
ICAgICAgICAgICAgfQo+ICsgICAgICAgdW5zaWduZWQgbG9uZyBpc2VsLCBpcmVnID0gMDsKPgo+
IC0gICAgICAgICAgICAgICBpZiAodmFsKQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGltc2lj
X2Nzcl9zZXQoaXNlbCwgaXJlZyk7Cj4gLSAgICAgICAgICAgICAgIGVsc2UKPiAtICAgICAgICAg
ICAgICAgICAgICAgICBpbXNpY19jc3JfY2xlYXIoaXNlbCwgaXJlZyk7Cj4gLSAgICAgICB9Cj4g
KyAgICAgICBpc2VsID0gaWQgLyBfX3Jpc2N2X3hsZW47Cj4gKyAgICAgICBpc2VsICo9IF9fcmlz
Y3ZfeGxlbiAvIElNU0lDX0VJUHhfQklUUzsKPiArICAgICAgIGlzZWwgKz0gKHBlbmQpID8gSU1T
SUNfRUlQMCA6IElNU0lDX0VJRTA7Cj4gKyAgICAgICBpcmVnIHw9IEJJVChpZCk7Cj4gKwo+ICsg
ICAgICAgaWYgKHZhbCkKPiArICAgICAgICAgICAgICAgaW1zaWNfY3NyX3NldChpc2VsLCBpcmVn
KTsKPiArICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgaW1zaWNfY3NyX2NsZWFyKGlzZWws
IGlyZWcpOwo+ICB9Cj4KPiAgdm9pZCBpbXNpY19sb2NhbF9pcnFjaGlwX2luaXQodm9pZCkKPiBA
QCAtMjc1LDEzICsyNjYsMTQgQEAgdm9pZCBpbXNpY19sb2NhbF9pcnFjaGlwX2luaXQodm9pZCkK
PiAgICAgICAgIGltc2ljX2Nzcl93cml0ZShJTVNJQ19FSURFTElWRVJZLCBJTVNJQ19FTkFCTEVf
RUlERUxJVkVSWSk7Cj4KPiAgICAgICAgIC8qIEVuYWJsZSBJUEkgKi8KPiAtICAgICAgIGltc2lj
X2xvY2FsX2VpeF91cGRhdGUoSU1TSUNfSVBJX0lELCAxLCBmYWxzZSwgdHJ1ZSk7Cj4gKyAgICAg
ICBpbXNpY19sb2NhbF9laXhfdXBkYXRlKElNU0lDX0lQSV9JRCwgZmFsc2UsIHRydWUpOwo+ICB9
Cj4KPiAgc3RhdGljIGludCBpbXNpY193YXJtX2lycWNoaXBfaW5pdChzdHJ1Y3Qgc2JpX2lycWNo
aXBfZGV2aWNlICpkZXYpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBpbXNpY19kYXRhICppbXNpYzsK
PiAgICAgICAgIHN0cnVjdCBpbXNpY19kYXRhICpoYXJ0X2ltc2ljOwo+ICsgICAgICAgaW50IGk7
Cj4KPiAgICAgICAgIGltc2ljID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGltc2ljX2RhdGEs
IGlycWNoaXApOwo+ICAgICAgICAgaGFydF9pbXNpYyA9IGltc2ljX2dldF9kYXRhKGN1cnJlbnRf
aGFydGluZGV4KCkpOwo+IEBAIC0yOTEsMTEgKzI4MywxNiBAQCBzdGF0aWMgaW50IGltc2ljX3dh
cm1faXJxY2hpcF9pbml0KHN0cnVjdCBzYmlfaXJxY2hpcF9kZXZpY2UgKmRldikKPiAgICAgICAg
ICAgICAgICAgIWhhcnRfaW1zaWMtPnRhcmdldHNfbW1vZGUpCj4gICAgICAgICAgICAgICAgIHJl
dHVybiBTQklfRUlOVkFMOwo+Cj4gLSAgICAgICAvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHRzICov
Cj4gLSAgICAgICBpbXNpY19sb2NhbF9laXhfdXBkYXRlKDEsIGltc2ljLT5udW1faWRzLCBmYWxz
ZSwgZmFsc2UpOwo+ICsgICAgICAgLyogZW5hYmxlIGludGVycnV0cHMgYmFzZWQgb24gdGhlIGly
cSBzdGF0ZSAqLwo+ICsgICAgICAgZm9yIChpID0gMTsgaSA8IGltc2ljLT5udW1faWRzOyBpKysp
IHsKPiArICAgICAgICAgICAgICAgaWYgKHNiaV9pcnFjaGlwX2lzX2h3aXJxX2VuYWJsZWQoJmlt
c2ljLT5pcnFjaGlwLCBpKSA9PSB0cnVlKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGltc2lj
X2xvY2FsX2VpeF91cGRhdGUoaSwgdHJ1ZSwgdHJ1ZSk7Cj4gKyAgICAgICAgICAgICAgIGVsc2UK
PiArICAgICAgICAgICAgICAgICAgICAgICBpbXNpY19sb2NhbF9laXhfdXBkYXRlKGksIGZhbHNl
LCBmYWxzZSk7Cj4gKyAgICAgICB9Cj4KPiAgICAgICAgIC8qIENsZWFyIElQSSBwZW5kaW5nICov
Cj4gLSAgICAgICBpbXNpY19sb2NhbF9laXhfdXBkYXRlKElNU0lDX0lQSV9JRCwgMSwgdHJ1ZSwg
ZmFsc2UpOwo+ICsgICAgICAgaW1zaWNfbG9jYWxfZWl4X3VwZGF0ZShJTVNJQ19JUElfSUQsIHRy
dWUsIGZhbHNlKTsKPgo+ICAgICAgICAgLyogTG9jYWwgSU1TSUMgaW5pdGlhbGl6YXRpb24gKi8K
PiAgICAgICAgIGltc2ljX2xvY2FsX2lycWNoaXBfaW5pdCgpOwo+IEBAIC0zOTUsOCArMzkyLDgg
QEAgc3RhdGljIHZvaWQgaW1zaWNfaHdpcnFfY2xlYW51cChzdHJ1Y3Qgc2JpX2lycWNoaXBfZGV2
aWNlICpjaGlwLCB1MzIgaHdpcnEpCj4gICAgICAgICBpZiAoIWltc2ljIHx8ICFpbXNpYy0+dGFy
Z2V0c19tbW9kZSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gLSAgICAgICBpbXNpY19s
b2NhbF9laXhfdXBkYXRlKGh3aXJxLCAxLCBmYWxzZSwgZmFsc2UpOwo+IC0gICAgICAgaW1zaWNf
bG9jYWxfZWl4X3VwZGF0ZShod2lycSwgMSwgdHJ1ZSwgZmFsc2UpOwo+ICsgICAgICAgaW1zaWNf
bG9jYWxfZWl4X3VwZGF0ZShod2lycSwgZmFsc2UsIGZhbHNlKTsKPiArICAgICAgIGltc2ljX2xv
Y2FsX2VpeF91cGRhdGUoaHdpcnEsIHRydWUsIGZhbHNlKTsKPiAgfQo+Cj4gIHN0YXRpYyB2b2lk
IGltc2ljX2h3aXJxX2VvaShzdHJ1Y3Qgc2JpX2lycWNoaXBfZGV2aWNlICpjaGlwLCB1MzIgaHdp
cnEpCj4gQEAgLTUzNSw3ICs1MzIsNyBAQCBzdGF0aWMgdm9pZCBpbXNpY19od2lycV9tYXNrKHN0
cnVjdCBzYmlfaXJxY2hpcF9kZXZpY2UgKmNoaXAsIHUzMiBod2lycSkKPiAgICAgICAgIGlmICgh
aW1zaWMgfHwgIWltc2ljLT50YXJnZXRzX21tb2RlKQo+ICAgICAgICAgICAgICAgICByZXR1cm47
Cj4KPiAtICAgICAgIGltc2ljX2xvY2FsX2VpeF91cGRhdGUoaHdpcnEsIDEsIGZhbHNlLCBmYWxz
ZSk7Cj4gKyAgICAgICBpbXNpY19sb2NhbF9laXhfdXBkYXRlKGh3aXJxLCBmYWxzZSwgZmFsc2Up
Owo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgaW1zaWNfaHdpcnFfdW5tYXNrKHN0cnVjdCBzYmlfaXJx
Y2hpcF9kZXZpY2UgKmNoaXAsIHUzMiBod2lycSkKPiBAQCAtNTUyLDcgKzU0OSw3IEBAIHN0YXRp
YyB2b2lkIGltc2ljX2h3aXJxX3VubWFzayhzdHJ1Y3Qgc2JpX2lycWNoaXBfZGV2aWNlICpjaGlw
LCB1MzIgaHdpcnEpCj4gICAgICAgICBpZiAoIWh3aXJxIHx8IGh3aXJxID09IElNU0lDX0lQSV9J
RCkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gLSAgICAgICBpbXNpY19sb2NhbF9laXhf
dXBkYXRlKGh3aXJxLCAxLCBmYWxzZSwgdHJ1ZSk7Cj4gKyAgICAgICBpbXNpY19sb2NhbF9laXhf
dXBkYXRlKGh3aXJxLCBmYWxzZSwgdHJ1ZSk7Cj4gIH0KPgo+ICBzdGF0aWMgc3RydWN0IHNiaV9p
cnFjaGlwX2RldmljZSBpbXNpY19kZXZpY2UgPSB7Cj4gLS0KPiAyLjQzLjAKPgo+Cj4gLS0KPiBv
cGVuc2JpIG1haWxpbmcgbGlzdAo+IG9wZW5zYmlAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6
Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vb3BlbnNiaQoKLS0gCm9wZW5z
YmkgbWFpbGluZyBsaXN0Cm9wZW5zYmlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu
aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL29wZW5zYmkK