Re: [PATCH 4/5] lib: sbi: Extend hart protection abstraction to allow ID configuration

Rahul Pathak <[email protected]> Wed, 22 Jul 2026 16:52:28 +0530
Newsgroups org.infradead.lists.opensbi
Message-ID <CAFR3w34cG3ioCnc=giqf+8Jt4WNviFr6UzLZL1sN_coQW0og-w@mail.gmail.com>
T24gRnJpLCBKdWwgMTcsIDIwMjYgYXQgMToxNeKAr1BNIEFudXAgUGF0ZWwgPGFudXAucGF0ZWxA
b3NzLnF1YWxjb21tLmNvbT4gd3JvdGU6Cj4KPiBUaGVyZSBhcmUgdmFyaW91cyBJRCBjb25maWd1
cmF0aW9uIElTQSBleHRlbnNpb25zIHN1Y2ggYXMgUklTQy1WIFdvcmxkcywKPiBTdXBlcnZpc29y
IGRvbWFpbiBJRCwgUW9TIElELCBldGMgd2hpY2ggbmVlZCB0byBiZSByZS1jb25maWd1cmVkIHVw
b24KPiBkb21haW4gY29udGV4dCBzd2l0Y2ggb24gYSBoYXJ0LiBFeHRlbmQgaGFydCBwcm90ZWN0
aW9uIGFic3RyYWN0aW9uIHRvCj4gc3VwcG9ydCBib3RoIG1lbW9yeSBwcm90ZWN0aW9uIGFuZCBJ
RCBjb25maWd1cmF0aW9uIElTQSBleHRlbnNpb25zLgo+Cj4gU2lnbmVkLW9mZi1ieTogQW51cCBQ
YXRlbCA8YW51cC5wYXRlbEBvc3MucXVhbGNvbW0uY29tPgo+IC0tLQo+ICBpbmNsdWRlL3NiaS9z
YmlfaGFydF9wcm90ZWN0aW9uLmggfCAxNiArKysrKy0KPiAgbGliL3NiaS9zYmlfaGFydF9wbXAu
YyAgICAgICAgICAgIHwgIDIgKwo+ICBsaWIvc2JpL3NiaV9oYXJ0X3Byb3RlY3Rpb24uYyAgICAg
fCA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIGxpYi9zYmkvc2JpX2luaXQu
YyAgICAgICAgICAgICAgICB8ICAyICstCj4gIHBsYXRmb3JtL2dlbmVyaWMvZXN3aW4vZWljNzcw
eC5jICB8ICAxICsKPiAgNSBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxNyBkZWxl
dGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3NiaS9zYmlfaGFydF9wcm90ZWN0aW9u
LmggYi9pbmNsdWRlL3NiaS9zYmlfaGFydF9wcm90ZWN0aW9uLmgKPiBpbmRleCA1ZTE3MGYwNS4u
MTM1OGI1YmUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9zYmkvc2JpX2hhcnRfcHJvdGVjdGlvbi5o
Cj4gKysrIGIvaW5jbHVkZS9zYmkvc2JpX2hhcnRfcHJvdGVjdGlvbi5oCj4gQEAgLTEzLDYgKzEz
LDEzIEBACj4gIHN0cnVjdCBzYmlfc2NyYXRjaDsKPiAgc3RydWN0IHNiaV9kb21haW47Cj4KPiAr
LyoqIERpZmZlcmVudCB0eXBlcyBvZiBoYXJ0IHByb3RlY3Rpb24gbWVjaGFuaXNtcyAqLwo+ICtl
bnVtIHNiaV9oYXJ0X3Byb3RlY3Rpb25fdHlwZSB7Cj4gKyAgICAgICBTQklfSEFSVF9QUk9URUNU
SU9OX1RZUEVfTUVNT1JZID0gMCwKPiArICAgICAgIFNCSV9IQVJUX1BST1RFQ1RJT05fVFlQRV9J
RCwKPiArICAgICAgIFNCSV9IQVJUX1BST1RFQ1RJT25fVFlQRV9NQVgKVHlwbyBoZXJlICJuIgoK
PiArfTsKPiArCj4gIC8qKiBSZXByZXNlbnRhdGlvbiBvZiBoYXJ0IHByb3RlY3Rpb24gbWVjaGFu
aXNtICovCj4gIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uIHsKPiAgICAgICAgIC8qKiBMaXN0
IGhlYWQgKi8KPiBAQCAtMjEsNiArMjgsOSBAQCBzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiB7
Cj4gICAgICAgICAvKiogTmFtZSBvZiB0aGUgaGFydCBwcm90ZWN0aW9uIG1lY2hhbmlzbSAqLwo+
ICAgICAgICAgY2hhciBuYW1lWzMyXTsKPgo+ICsgICAgICAgLyoqIFR5cGUgb2YgdGhlIGhhcnQg
cHJvdGVjdGlvbiBtZWNoYW5pc20gKi8KPiArICAgICAgIGVudW0gc2JpX2hhcnRfcHJvdGVjdGlv
bl90eXBlIHR5cGU7Cj4gKwo+ICAgICAgICAgLyoqIFJhdGluZ3Mgb2YgdGhlIGhhcnQgcHJvdGVj
dGlvbiBtZWNoYW5pc20gKGhpZ2hlciBpcyBiZXR0ZXIpICovCj4gICAgICAgICB1bnNpZ25lZCBs
b25nIHJhdGluZzsKPgo+IEBAIC00MCwxMSArNTAsMTEgQEAgc3RydWN0IHNiaV9oYXJ0X3Byb3Rl
Y3Rpb24gewo+ICB9Owo+Cj4gIC8qKgo+IC0gKiBHZXQgdGhlIGJlc3QgaGFydCBwcm90ZWN0aW9u
IG1lY2hhbmlzbQo+ICsgKiBHZXQgdGhlIGJlc3QgaGFydCBtZW1vcnkgcHJvdGVjdGlvbiBtZWNo
YW5pc20KPiAgICoKPiAtICogQHJldHVybiBwb2ludGVyIHRvIGJlc3QgaGFydCBwcm90ZWN0aW9u
IG1lY2hhbmlzbQo+ICsgKiBAcmV0dXJuIHBvaW50ZXIgdG8gYmVzdCBoYXJ0IG1lbW9yeSBwcm90
ZWN0aW9uIG1lY2hhbmlzbQo+ICAgKi8KPiAtc3RydWN0IHNiaV9oYXJ0X3Byb3RlY3Rpb24gKnNi
aV9oYXJ0X3Byb3RlY3Rpb25fYmVzdCh2b2lkKTsKPiArc3RydWN0IHNiaV9oYXJ0X3Byb3RlY3Rp
b24gKnNiaV9oYXJ0X21lbW9yeV9wcm90ZWN0aW9uX2Jlc3Qodm9pZCk7Cj4KPiAgLyoqCj4gICAq
IFJlZ2lzdGVyIGEgaGFydCBwcm90ZWN0aW9uIG1lY2hhbmlzbQo+IGRpZmYgLS1naXQgYS9saWIv
c2JpL3NiaV9oYXJ0X3BtcC5jIGIvbGliL3NiaS9zYmlfaGFydF9wbXAuYwo+IGluZGV4IDVlZGUz
Y2MxLi5jMGE0Y2UxYiAxMDA2NDQKPiAtLS0gYS9saWIvc2JpL3NiaV9oYXJ0X3BtcC5jCj4gKysr
IGIvbGliL3NiaS9zYmlfaGFydF9wbXAuYwo+IEBAIC00MjUsNiArNDI1LDcgQEAgc3RhdGljIHZv
aWQgc2JpX2hhcnRfcG1wX3VuY29uZmlndXJlKHN0cnVjdCBzYmlfc2NyYXRjaCAqc2NyYXRjaCwK
PiAgc3RhdGljIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uIHBtcF9wcm90ZWN0aW9uID0gewo+
ICAgICAgICAgLm5hbWUgPSAicG1wIiwKPiAgICAgICAgIC5yYXRpbmcgPSAxMDAsCj4gKyAgICAg
ICAudHlwZSA9IFNCSV9IQVJUX1BST1RFQ1RJT05fVFlQRV9NRU1PUlksCj4gICAgICAgICAuY29u
ZmlndXJlID0gc2JpX2hhcnRfb2xkcG1wX2NvbmZpZ3VyZSwKPiAgICAgICAgIC51bmNvbmZpZ3Vy
ZSA9IHNiaV9oYXJ0X3BtcF91bmNvbmZpZ3VyZSwKPiAgfTsKPiBAQCAtNDMyLDYgKzQzMyw3IEBA
IHN0YXRpYyBzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiBwbXBfcHJvdGVjdGlvbiA9IHsKPiAg
c3RhdGljIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uIGVwbXBfcHJvdGVjdGlvbiA9IHsKPiAg
ICAgICAgIC5uYW1lID0gImVwbXAiLAo+ICAgICAgICAgLnJhdGluZyA9IDIwMCwKPiArICAgICAg
IC50eXBlID0gU0JJX0hBUlRfUFJPVEVDVElPTl9UWVBFX01FTU9SWSwKPiAgICAgICAgIC5jb25m
aWd1cmUgPSBzYmlfaGFydF9zbWVwbXBfY29uZmlndXJlLAo+ICAgICAgICAgLnVuY29uZmlndXJl
ID0gc2JpX2hhcnRfcG1wX3VuY29uZmlndXJlLAo+ICAgICAgICAgLm1hcF9yYW5nZSA9IHNiaV9o
YXJ0X3NtZXBtcF9tYXBfcmFuZ2UsCj4gZGlmZiAtLWdpdCBhL2xpYi9zYmkvc2JpX2hhcnRfcHJv
dGVjdGlvbi5jIGIvbGliL3NiaS9zYmlfaGFydF9wcm90ZWN0aW9uLmMKPiBpbmRleCBmZWNlZmRl
OC4uZDMxZTk5MzggMTAwNjQ0Cj4gLS0tIGEvbGliL3NiaS9zYmlfaGFydF9wcm90ZWN0aW9uLmMK
PiArKysgYi9saWIvc2JpL3NiaV9oYXJ0X3Byb3RlY3Rpb24uYwo+IEBAIC0xMCwxMiArMTAsMTYg
QEAKPgo+ICBzdGF0aWMgU0JJX0xJU1RfSEVBRChoYXJ0X3Byb3RlY3Rpb25fbGlzdCk7Cj4KPiAt
c3RydWN0IHNiaV9oYXJ0X3Byb3RlY3Rpb24gKnNiaV9oYXJ0X3Byb3RlY3Rpb25fYmVzdCh2b2lk
KQo+ICtzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiAqc2JpX2hhcnRfbWVtb3J5X3Byb3RlY3Rp
b25fYmVzdCh2b2lkKQo+ICB7Cj4gLSAgICAgICBpZiAoc2JpX2xpc3RfZW1wdHkoJmhhcnRfcHJv
dGVjdGlvbl9saXN0KSkKPiAtICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKyAgICAgICBz
dHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiAqcG9zOwo+Cj4gLSAgICAgICByZXR1cm4gc2JpX2xp
c3RfZmlyc3RfZW50cnkoJmhhcnRfcHJvdGVjdGlvbl9saXN0LCBzdHJ1Y3Qgc2JpX2hhcnRfcHJv
dGVjdGlvbiwgaGVhZCk7Cj4gKyAgICAgICBzYmlfbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsICZo
YXJ0X3Byb3RlY3Rpb25fbGlzdCwgaGVhZCkgewo+ICsgICAgICAgICAgICAgICBpZiAocG9zLT50
eXBlID09IFNCSV9IQVJUX1BST1RFQ1RJT05fVFlQRV9NRU1PUlkpCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHBvczsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICByZXR1cm4gTlVM
TDsKPiAgfQo+Cj4gIGludCBzYmlfaGFydF9wcm90ZWN0aW9uX3JlZ2lzdGVyKHN0cnVjdCBzYmlf
aGFydF9wcm90ZWN0aW9uICpocHJvdCkKPiBAQCAtNzQsMzMgKzc4LDk3IEBAIHN0YXRpYyB2b2lk
IF9faGFydF9wcm90ZWN0aW9uX3VuY29uZmlndXJlKHN0cnVjdCBzYmlfc2NyYXRjaCAqc2NyYXRj
aCwKPiAgaW50IHNiaV9oYXJ0X3Byb3RlY3Rpb25fY29uZmlndXJlKHN0cnVjdCBzYmlfc2NyYXRj
aCAqc2NyYXRjaCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNi
aV9kb21haW4gKmRvbSkKPiAgewo+IC0gICAgICAgcmV0dXJuIF9faGFydF9wcm90ZWN0aW9uX2Nv
bmZpZ3VyZShzY3JhdGNoLCBzYmlfaGFydF9wcm90ZWN0aW9uX2Jlc3QoKSwgZG9tKTsKPiArICAg
ICAgIGJvb2wgZG9fY29uZmlndXJlLCBtZW1vcnlfcHJvdGVjdF9kb25lID0gZmFsc2U7Cj4gKyAg
ICAgICBzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiAqaHByb3Q7Cj4gKyAgICAgICBpbnQgcmV0
Owo+ICsKPiArICAgICAgIHNiaV9saXN0X2Zvcl9lYWNoX2VudHJ5KGhwcm90LCAmaGFydF9wcm90
ZWN0aW9uX2xpc3QsIGhlYWQpIHsKPiArICAgICAgICAgICAgICAgZG9fY29uZmlndXJlID0gZmFs
c2U7Cj4gKyAgICAgICAgICAgICAgIHN3aXRjaCAoaHByb3QtPnR5cGUpIHsKV2hpbGUgcmVhZGlu
ZyB0aGUgY29kZSBmb3VuZCB0aGF0IGhwcm90LT50eXBlIGNoZWNraW5nIGlzIG5vdCBkb25lCmlu
IHRoZSBlYXJseSBzdGFnZSBpbiBzYmlfaGFydF9wcm90ZWN0aW9uX3JlZ2lzdGVyIGl0c2VsZi4g
SWYgZmlybXdhcmUKaGFzIHRvIGV4cGxpY2l0bHkgY2hlY2sgYW5kIGZhaWwgdXBvbiBpbnZhbGlk
IHR5cGUgdGhlbiB3aHkgbm90IGZhaWwKd2hpbGUgcmVnaXN0ZXJpbmcgdGhlIHByb3RlY3Rpb24g
bWVjaGFuaXNtIGl0c2VsZi4KCgo+ICsgICAgICAgICAgICAgICBjYXNlIFNCSV9IQVJUX1BST1RF
Q1RJT05fVFlQRV9NRU1PUlk6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZG9fY29uZmlndXJl
ID0gIW1lbW9yeV9wcm90ZWN0X2RvbmU7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5
X3Byb3RlY3RfZG9uZSA9IHRydWU7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4g
KyAgICAgICAgICAgICAgIGNhc2UgU0JJX0hBUlRfUFJPVEVDVElPTl9UWVBFX0lEOgo+ICsgICAg
ICAgICAgICAgICAgICAgICAgIGRvX2NvbmZpZ3VyZSA9IHRydWU7Cj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAg
aWYgKCFkb19jb25maWd1cmUpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4g
Kwo+ICsgICAgICAgICAgICAgICByZXQgPSBfX2hhcnRfcHJvdGVjdGlvbl9jb25maWd1cmUoc2Ny
YXRjaCwgaHByb3QsIGRvbSk7Cj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICByZXR1
cm4gMDsKPiAgfQo+Cj4gIHZvaWQgc2JpX2hhcnRfcHJvdGVjdGlvbl91bmNvbmZpZ3VyZShzdHJ1
Y3Qgc2JpX3NjcmF0Y2ggKnNjcmF0Y2gsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBzYmlfZG9tYWluICpkb20pCj4gIHsKPiAtICAgICAgIF9faGFydF9wcm90
ZWN0aW9uX3VuY29uZmlndXJlKHNjcmF0Y2gsIHNiaV9oYXJ0X3Byb3RlY3Rpb25fYmVzdCgpLCBk
b20pOwo+ICsKPiArICAgICAgIGJvb2wgZG9fdW5jb25maWd1cmUsIG1lbW9yeV9wcm90ZWN0X2Rv
bmUgPSBmYWxzZTsKPiArICAgICAgIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uICpocHJvdDsK
PiArCj4gKyAgICAgICBzYmlfbGlzdF9mb3JfZWFjaF9lbnRyeShocHJvdCwgJmhhcnRfcHJvdGVj
dGlvbl9saXN0LCBoZWFkKSB7Cj4gKyAgICAgICAgICAgICAgIGRvX3VuY29uZmlndXJlID0gZmFs
c2U7Cj4gKyAgICAgICAgICAgICAgIHN3aXRjaCAoaHByb3QtPnR5cGUpIHsKPiArICAgICAgICAg
ICAgICAgY2FzZSBTQklfSEFSVF9QUk9URUNUSU9OX1RZUEVfTUVNT1JZOgo+ICsgICAgICAgICAg
ICAgICAgICAgICAgIGRvX3VuY29uZmlndXJlID0gIW1lbW9yeV9wcm90ZWN0X2RvbmU7Cj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgbWVtb3J5X3Byb3RlY3RfZG9uZSA9IHRydWU7Cj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgU0JJX0hBUlRf
UFJPVEVDVElPTl9UWVBFX0lEOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRvX3VuY29uZmln
dXJlID0gdHJ1ZTsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAg
ICAgICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg
ICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICBpZiAoIWRvX3VuY29uZmlndXJlKQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsKPiArICAgICAgICAgICAgICAgX19oYXJ0
X3Byb3RlY3Rpb25fdW5jb25maWd1cmUoc2NyYXRjaCwgaHByb3QsIGRvbSk7Cj4gKyAgICAgICB9
Cj4gIH0KPgo+ICBpbnQgc2JpX2hhcnRfcHJvdGVjdGlvbl9yZWNvbmZpZ3VyZShzdHJ1Y3Qgc2Jp
X3NjcmF0Y2ggKnNjcmF0Y2gsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IHNiaV9kb21haW4gKmN1cnJlbnRfZG9tLAo+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCBzYmlfZG9tYWluICpuZXh0X2RvbSkKPiAgewo+IC0gICAgICAg
c3RydWN0IHNiaV9oYXJ0X3Byb3RlY3Rpb24gKmhwcm90ID0gc2JpX2hhcnRfcHJvdGVjdGlvbl9i
ZXN0KCk7Cj4gKyAgICAgICBib29sIGRvX3JlY29uZmlndXJlLCBtZW1vcnlfcHJvdGVjdF9kb25l
ID0gZmFsc2U7Cj4gKyAgICAgICBzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiAqaHByb3Q7Cj4g
ICAgICAgICBpbnQgcmV0Owo+Cj4gLSAgICAgICBfX2hhcnRfcHJvdGVjdGlvbl91bmNvbmZpZ3Vy
ZShzY3JhdGNoLCBocHJvdCwgY3VycmVudF9kb20pOwo+IC0gICAgICAgcmV0ID0gX19oYXJ0X3By
b3RlY3Rpb25fY29uZmlndXJlKHNjcmF0Y2gsIGhwcm90LCBuZXh0X2RvbSk7Cj4gLSAgICAgICBp
ZiAocmV0KQo+IC0gICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgc2JpX2xpc3Rf
Zm9yX2VhY2hfZW50cnkoaHByb3QsICZoYXJ0X3Byb3RlY3Rpb25fbGlzdCwgaGVhZCkgewo+ICsg
ICAgICAgICAgICAgICBkb19yZWNvbmZpZ3VyZSA9IGZhbHNlOwo+ICsgICAgICAgICAgICAgICBz
d2l0Y2ggKGhwcm90LT50eXBlKSB7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgU0JJX0hBUlRfUFJP
VEVDVElPTl9UWVBFX01FTU9SWToKPiArICAgICAgICAgICAgICAgICAgICAgICBkb19yZWNvbmZp
Z3VyZSA9ICFtZW1vcnlfcHJvdGVjdF9kb25lOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1l
bW9yeV9wcm90ZWN0X2RvbmUgPSB0cnVlOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
Owo+ICsgICAgICAgICAgICAgICBjYXNlIFNCSV9IQVJUX1BST1RFQ1RJT05fVFlQRV9JRDoKPiAr
ICAgICAgICAgICAgICAgICAgICAgICBkb19yZWNvbmZpZ3VyZSA9IHRydWU7Cj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgICAg
ICAgICAgaWYgKCFkb19yZWNvbmZpZ3VyZSkKPiArICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKPiArCj4gKyAgICAgICAgICAgICAgIF9faGFydF9wcm90ZWN0aW9uX3VuY29uZmlndXJl
KHNjcmF0Y2gsIGhwcm90LCBjdXJyZW50X2RvbSk7Cj4gKyAgICAgICAgICAgICAgIHJldCA9IF9f
aGFydF9wcm90ZWN0aW9uX2NvbmZpZ3VyZShzY3JhdGNoLCBocHJvdCwgbmV4dF9kb20pOwo+ICsg
ICAgICAgICAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXQ7Cj4gKyAgICAgICB9Cj4KPiAgICAgICAgIHJldHVybiAwOwo+ICB9Cj4KPiAgaW50IHNiaV9o
YXJ0X3Byb3RlY3Rpb25fbWFwX3JhbmdlKHVuc2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9u
ZyBzaXplKQo+ICB7Cj4gLSAgICAgICBzdHJ1Y3Qgc2JpX2hhcnRfcHJvdGVjdGlvbiAqaHByb3Qg
PSBzYmlfaGFydF9wcm90ZWN0aW9uX2Jlc3QoKTsKPiArICAgICAgIHN0cnVjdCBzYmlfaGFydF9w
cm90ZWN0aW9uICpocHJvdCA9IHNiaV9oYXJ0X21lbW9yeV9wcm90ZWN0aW9uX2Jlc3QoKTsKPgo+
ICAgICAgICAgaWYgKCFocHJvdCB8fCAhaHByb3QtPm1hcF9yYW5nZSkKPiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7Cj4gQEAgLTExMCw3ICsxNzgsNyBAQCBpbnQgc2JpX2hhcnRfcHJvdGVjdGlv
bl9tYXBfcmFuZ2UodW5zaWduZWQgbG9uZyBiYXNlLCB1bnNpZ25lZCBsb25nIHNpemUpCj4KPiAg
aW50IHNiaV9oYXJ0X3Byb3RlY3Rpb25fdW5tYXBfcmFuZ2UodW5zaWduZWQgbG9uZyBiYXNlLCB1
bnNpZ25lZCBsb25nIHNpemUpCj4gIHsKPiAtICAgICAgIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0
aW9uICpocHJvdCA9IHNiaV9oYXJ0X3Byb3RlY3Rpb25fYmVzdCgpOwo+ICsgICAgICAgc3RydWN0
IHNiaV9oYXJ0X3Byb3RlY3Rpb24gKmhwcm90ID0gc2JpX2hhcnRfbWVtb3J5X3Byb3RlY3Rpb25f
YmVzdCgpOwo+Cj4gICAgICAgICBpZiAoIWhwcm90IHx8ICFocHJvdC0+dW5tYXBfcmFuZ2UpCj4g
ICAgICAgICAgICAgICAgIHJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9saWIvc2JpL3NiaV9pbml0
LmMgYi9saWIvc2JpL3NiaV9pbml0LmMKPiBpbmRleCBkNzRkYzY3Yy4uM2YxZjEzNmEgMTAwNjQ0
Cj4gLS0tIGEvbGliL3NiaS9zYmlfaW5pdC5jCj4gKysrIGIvbGliL3NiaS9zYmlfaW5pdC5jCj4g
QEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIHZvaWQgc2JpX2Jvb3RfcHJpbnRfZ2VuZXJhbChzdHJ1
Y3Qgc2JpX3NjcmF0Y2ggKnNjcmF0Y2gpCj4gICAgICAgICBzYmlfcHJpbnRmKCJQbGF0Zm9ybSBG
ZWF0dXJlcyAgICAgICAgICAgOiAlc1xuIiwgc3RyKTsKPiAgICAgICAgIHNiaV9wcmludGYoIlBs
YXRmb3JtIEhBUlQgQ291bnQgICAgICAgICA6ICV1XG4iLAo+ICAgICAgICAgICAgICAgICAgICBz
YmlfcGxhdGZvcm1faGFydF9jb3VudChwbGF0KSk7Cj4gLSAgICAgICBocHJvdCA9IHNiaV9oYXJ0
X3Byb3RlY3Rpb25fYmVzdCgpOwo+ICsgICAgICAgaHByb3QgPSBzYmlfaGFydF9tZW1vcnlfcHJv
dGVjdGlvbl9iZXN0KCk7Cj4gICAgICAgICBzYmlfcHJpbnRmKCJQbGF0Zm9ybSBIQVJUIFByb3Rl
Y3Rpb24gICAgOiAlc1xuIiwKPiAgICAgICAgICAgICAgICAgICAgKGhwcm90KSA/IGhwcm90LT5u
YW1lIDogIi0tLSIpOwo+ICAgICAgICAgaWRldiA9IHNiaV9pcGlfZ2V0X2RldmljZSgpOwo+IGRp
ZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL2VpYzc3MHguYyBiL3BsYXRmb3JtL2dl
bmVyaWMvZXN3aW4vZWljNzcweC5jCj4gaW5kZXggZGE0ZDBlMzQuLmM3MTE5OGE4IDEwMDY0NAo+
IC0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vZWljNzcweC5jCj4gKysrIGIvcGxhdGZvcm0v
Z2VuZXJpYy9lc3dpbi9laWM3NzB4LmMKPiBAQCAtNDcwLDYgKzQ3MCw3IEBAIHN0YXRpYyB2b2lk
IGVzd2luX2VpYzc3MDBfcG1wX3VuY29uZmlndXJlKHN0cnVjdCBzYmlfc2NyYXRjaCAqc2NyYXRj
aCwKPiAgc3RhdGljIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uIGVzd2luX2VpYzc3MDBfcG1w
X3Byb3RlY3Rpb24gPSB7Cj4gICAgICAgICAubmFtZSA9ICJlaWM3NzAwX3BtcCIsCj4gICAgICAg
ICAucmF0aW5nID0gLTFVTCwKPiArICAgICAgIC50eXBlID0gU0JJX0hBUlRfUFJPVEVDVElPTl9U
WVBFX01FTU9SWSwKPiAgICAgICAgIC5jb25maWd1cmUgPSBlc3dpbl9laWM3NzAwX3BtcF9jb25m
aWd1cmUsCj4gICAgICAgICAudW5jb25maWd1cmUgPSBlc3dpbl9laWM3NzAwX3BtcF91bmNvbmZp
Z3VyZSwKPiAgfTsKPiAtLQo+IDIuNDMuMAo+Cj4KPiAtLQo+IG9wZW5zYmkgbWFpbGluZyBsaXN0
Cj4gb3BlbnNiaUBsaXN0cy5pbmZyYWRlYWQub3JnCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v
cmcvbWFpbG1hbi9saXN0aW5mby9vcGVuc2JpCgotLSAKb3BlbnNiaSBtYWlsaW5nIGxpc3QKb3Bl
bnNiaUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt
YW4vbGlzdGluZm8vb3BlbnNiaQo=