Re: [PATCH RFC v4 01/15] ACPI: Only enumerate enabled (or functional) processor devices

"Rafael J. Wysocki" <[email protected]> Wed, 21 Feb 2024 14:01:25 +0100
Newsgroups gmane.linux.ports.riscv,gmane.linux.power-management.general,gmane.linux.acpi.devel,gmane.linux.kernel.cross-arch,gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.documentation,gmane.linux.ports.ia64,gmane.linux.ports.parisc
Message-ID <CAJZ5v0gJHq41HzGadwSu7yxJF_tidiX09ZMMV3j4L3bhmPwhaQ@mail.gmail.com>
T24gV2VkLCBKYW4gMzEsIDIwMjQgYXQgNTo0OeKAr1BNIFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5l
bEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+Cj4gRnJvbTogSmFtZXMgTW9yc2UgPGphbWVzLm1v
cnNlQGFybS5jb20+Cj4KPiBUb2RheSB0aGUgQUNQSSBlbnVtZXJhdGlvbiBjb2RlICd2aXNpdHMn
IGFsbCBkZXZpY2VzIHRoYXQgYXJlIHByZXNlbnQuCj4KPiBUaGlzIGlzIGEgcHJvYmxlbSBmb3Ig
YXJtNjQsIHdoZXJlIENQVXMgYXJlIGFsd2F5cyBwcmVzZW50LCBidXQgbm90Cj4gYWx3YXlzIGVu
YWJsZWQuIFdoZW4gYSBkZXZpY2UtY2hlY2sgb2NjdXJzIGJlY2F1c2UgdGhlIGZpcm13YXJlLXBv
bGljeQo+IGhhcyBjaGFuZ2VkIGFuZCBhIENQVSBpcyBub3cgZW5hYmxlZCwgdGhlIGZvbGxvd2lu
ZyBlcnJvciBvY2N1cnM6Cj4gfCBhY3BpIEFDUEkwMDA3OjQ4OiBFbnVtZXJhdGlvbiBmYWlsdXJl
Cj4KPiBUaGlzIGlzIHVsdGltYXRlbHkgYmVjYXVzZSBhY3BpX2Rldl9yZWFkeV9mb3JfZW51bWVy
YXRpb24oKSByZXR1cm5zCj4gdHJ1ZSBmb3IgYSBkZXZpY2UgdGhhdCBpcyBub3QgZW5hYmxlZC4g
VGhlIEFDUEkgUHJvY2Vzc29yIGRyaXZlcgo+IHdpbGwgbm90IHJlZ2lzdGVyIHN1Y2ggQ1BVcyBh
cyB0aGV5IGFyZSBub3QgJ2RlY29kaW5nIHRoZWlyIHJlc291cmNlcycuCj4KPiBBQ1BJIGFsbG93
cyBhIGRldmljZSB0byBiZSBmdW5jdGlvbmFsIGluc3RlYWQgb2YgbWFpbnRhaW5pbmcgdGhlCj4g
cHJlc2VudCBhbmQgZW5hYmxlZCBiaXQsIGJ1dCB3ZSBjYW4ndCBzaW1wbHkgY2hlY2sgdGhlIGVu
YWJsZWQgYml0Cj4gZm9yIGFsbCBkZXZpY2VzIHNpbmNlIGZpcm13YXJlIGNhbiBiZSBidWdneS4K
Pgo+IElmIEFDUEkgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBwcmVzZW50IGFuZCBlbmFi
bGVkLCB0aGVuIGFsbCB3ZWxsCj4gYW5kIGdvb2QsIHdlIGNhbiBlbnVtYXRlIGl0LiBIb3dldmVy
LCBpZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQgYW5kIG5vdAo+IGVuYWJsZWQsIHRoZW4gd2UgYWxz
byBjaGVjayB3aGV0aGVyIHRoZSBkZXZpY2UgaXMgYSBwcm9jZXNzb3IgZGV2aWNlCj4gdG8gbGlt
aXQgdGhlIGltcGFjdCBvZiB0aGlzIG5ldyBjaGVjayB0byBqdXN0IHByb2Nlc3NvciBkZXZpY2Vz
Lgo+Cj4gVGhpcyBhdm9pZHMgZW51bWVyYXRpbmcgcHJlc2VudCAmJiBmdW5jdGlvbmFsIHByb2Nl
c3NvciBkZXZpY2VzIHRoYXQKPiBhcmUgbm90IGVuYWJsZWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBK
YW1lcyBNb3JzZSA8amFtZXMubW9yc2VAYXJtLmNvbT4KPiBDby1kZXZlbG9wZWQtYnk6IFJhZmFl
bCBKLiBXeXNvY2tpIDxyandAcmp3eXNvY2tpLm5ldD4KPiBUZXN0ZWQtYnk6IEpvbmF0aGFuIENh
bWVyb24gPEpvbmF0aGFuLkNhbWVyb25AaHVhd2VpLmNvbT4KPiBSZXZpZXdlZC1ieTogSm9uYXRo
YW4gQ2FtZXJvbiA8Sm9uYXRoYW4uQ2FtZXJvbkBodWF3ZWkuY29tPgo+IFNpZ25lZC1vZmYtYnk6
IFJ1c3NlbGwgS2luZyAoT3JhY2xlKSA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+Cj4gLS0t
Cj4gQ2hhbmdlcyBzaW5jZSBSRkMgdjI6Cj4gICogSW5jb3Jwb3JhdGUgY29tbWVudCBzdWdnZXN0
aW9uIGJ5IEdhdmluIFNoYW4uCj4gQ2hhbmdlcyBzaW5jZSBSRkMgdjM6Cj4gICogRml4ZWQgInNl
cnQiIHR5cG8uCj4gQ2hhbmdlcyBzaW5jZSBSRkMgdjMgKHNtYWxsZXIgc2VyaWVzKToKPiAgKiBS
ZXN0cmljdCBjaGVja2luZyB0aGUgZW5hYmxlZCBiaXQgdG8gcHJvY2Vzc29yIGRldmljZXMsIHVw
ZGF0ZQo+ICAgIGNvbW1pdCBjb21tZW50cy4KPiAgKiBVc2UgUmFmYWVsJ3Mgc3VnZ2VzdGlvbiBp
bgo+ICAgIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvNTc2MDU2OS5EdnVZaE14TG9UQGtyZWFj
aGVyCj4gICogVXBkYXRlZCB3aXRoIGEgZml4IC0gc2VlOgo+ICAgIGh0dHBzOi8vbG9yZS5rZXJu
ZWwub3JnL2FsbC9aYmU4V1FSQVN4NkQ2UmFHQHNoZWxsLmFybWxpbnV4Lm9yZy51ay8KPiAtLS0K
PiAgZHJpdmVycy9hY3BpL2FjcGlfcHJvY2Vzc29yLmMgfCAxMSArKysrKysrKysKPiAgZHJpdmVy
cy9hY3BpL2RldmljZV9wbS5jICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2FjcGkvZGV2aWNlX3N5
c2ZzLmMgICB8ICAyICstCj4gIGRyaXZlcnMvYWNwaS9pbnRlcm5hbC5oICAgICAgIHwgIDQgKyst
Cj4gIGRyaXZlcnMvYWNwaS9wcm9wZXJ0eS5jICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9hY3Bp
L3NjYW4uYyAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LQo+ICA2IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+
Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpX3Byb2Nlc3Nvci5jIGIvZHJpdmVycy9h
Y3BpL2FjcGlfcHJvY2Vzc29yLmMKPiBpbmRleCA0ZmUyZWY1NDA4OGMuLmNmN2MxY2NhNjlkZCAx
MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ICsrKyBiL2RyaXZl
cnMvYWNwaS9hY3BpX3Byb2Nlc3Nvci5jCj4gQEAgLTYyNiw2ICs2MjYsMTcgQEAgc3RhdGljIHN0
cnVjdCBhY3BpX3NjYW5faGFuZGxlciBwcm9jZXNzb3JfaGFuZGxlciA9IHsKPiAgICAgICAgIH0s
Cj4gIH07Cj4KPiArYm9vbCBhY3BpX2RldmljZV9pc19wcm9jZXNzb3IoY29uc3Qgc3RydWN0IGFj
cGlfZGV2aWNlICphZGV2KQo+ICt7Cj4gKyAgICAgICBpZiAoYWRldi0+ZGV2aWNlX3R5cGUgPT0g
QUNQSV9CVVNfVFlQRV9QUk9DRVNTT1IpCj4gKyAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+
ICsKPiArICAgICAgIGlmIChhZGV2LT5kZXZpY2VfdHlwZSAhPSBBQ1BJX0JVU19UWVBFX0RFVklD
RSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICsKPiArICAgICAgIHJldHVybiBh
Y3BpX3NjYW5fY2hlY2tfaGFuZGxlcihhZGV2LCAmcHJvY2Vzc29yX2hhbmRsZXIpOwo+ICt9Cj4g
Kwo+ICBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX2NvbnRhaW5lcl9hdHRhY2goc3RydWN0IGFj
cGlfZGV2aWNlICpkZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqaWQpCj4gIHsKPiBkaWZmIC0tZ2l0IGEv
ZHJpdmVycy9hY3BpL2RldmljZV9wbS5jIGIvZHJpdmVycy9hY3BpL2RldmljZV9wbS5jCj4gaW5k
ZXggM2I0ZDA0OGM0OTQxLi5lM2M4MGYzYjNiNTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9hY3Bp
L2RldmljZV9wbS5jCj4gKysrIGIvZHJpdmVycy9hY3BpL2RldmljZV9wbS5jCj4gQEAgLTMxMyw3
ICszMTMsNyBAQCBpbnQgYWNwaV9idXNfaW5pdF9wb3dlcihzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRl
dmljZSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4KPiAgICAgICAgIGRldmlj
ZS0+cG93ZXIuc3RhdGUgPSBBQ1BJX1NUQVRFX1VOS05PV047Cj4gLSAgICAgICBpZiAoIWFjcGlf
ZGV2aWNlX2lzX3ByZXNlbnQoZGV2aWNlKSkgewo+ICsgICAgICAgaWYgKCFhY3BpX2Rldl9yZWFk
eV9mb3JfZW51bWVyYXRpb24oZGV2aWNlKSkgewoKU29ycnkgZm9yIGZhaWxpbmcgdG8gY2F0Y2gg
dGhpcyBlYXJsaWVyLCBidXQgdGhpcyBjaGFuZ2UgYWZmZWN0cwpub24tcHJvY2Vzc29yIGRldmlj
ZXMgcG9zc2libHkgYWR2ZXJzZWx5LgoKTmFtZWx5LCBvbmUgb2YgdGhlIGRpZmZlcmVuY2VzIGJl
dHdlZW4gYWNwaV9kZXZpY2VfaXNfcHJlc2VudCgpIGFuZAphY3BpX2Rldl9yZWFkeV9mb3JfZW51
bWVyYXRpb24oKSBpcyB0aGUgKGRldmljZS0+ZmxhZ3MuaG9ub3JfZGVwcyAmJgpkZXZpY2UtPmRl
cF91bm1ldCkgY2hlY2sgaW4gdGhlIGxhdHRlciB3aGljaCBpcyBub3QgcHJlc2VudCBpbiB0aGUK
Zm9ybWVyIHdoaWNoIG1heSBjYXVzZSB0aGUgcG93ZXJfbWFuYWdlYWJsZSBmbGFnIHRvIGJlIHVu
c2V0IGZvcgpkZXZpY2VzIHdpdGggZGVwZW5kZW5jaWVzLCBhbHRob3VnaCB0aGV5IGFyZSBpbiBm
YWN0IHBvd2VyLW1hbmFnZWFibGUuCgpUaGUgcmVwbGFjZW1lbnQgaGVyZSBjYW5ub3QgYmUgbWFk
ZS4KCj4gICAgICAgICAgICAgICAgIGRldmljZS0+ZmxhZ3MuaW5pdGlhbGl6ZWQgPSBmYWxzZTsK
PiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTlhJTzsKPiAgICAgICAgIH0KPiBkaWZmIC0tZ2l0
IGEvZHJpdmVycy9hY3BpL2RldmljZV9zeXNmcy5jIGIvZHJpdmVycy9hY3BpL2RldmljZV9zeXNm
cy5jCj4gaW5kZXggMjMzNzNmYWEzNWVjLi5hMDI1NmQyNDkzYTcgMTAwNjQ0Cj4gLS0tIGEvZHJp
dmVycy9hY3BpL2RldmljZV9zeXNmcy5jCj4gKysrIGIvZHJpdmVycy9hY3BpL2RldmljZV9zeXNm
cy5jCj4gQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9wbnBfbW9kYWxpYXMo
Y29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphY3BpX2RldiwgY2hhciAqbW9kYWxpYQo+ICAgICAg
ICAgc3RydWN0IGFjcGlfaGFyZHdhcmVfaWQgKmlkOwo+Cj4gICAgICAgICAvKiBBdm9pZCB1bm5l
Y2Vzc2FyaWx5IGxvYWRpbmcgbW9kdWxlcyBmb3Igbm9uIHByZXNlbnQgZGV2aWNlcy4gKi8KPiAt
ICAgICAgIGlmICghYWNwaV9kZXZpY2VfaXNfcHJlc2VudChhY3BpX2RldikpCj4gKyAgICAgICBp
ZiAoIWFjcGlfZGV2X3JlYWR5X2Zvcl9lbnVtZXJhdGlvbihhY3BpX2RldikpCgpUaGUgcmVwbGFj
ZW1lbnQgaGVyZSBpcyBpbmNvcnJlY3QgZm9yIGFuIGFuYWxvZ291cyByZWFzb24gYXMgYWJvdmU6
IGl0Cm1heSBjYXVzZSBtb2RhbGlhcyBjcmVhdGlvbiB0byBiZSBza2lwcGVkIGZvciBkZXZpY2Vz
IHdpdGggdW5tZXQKZGVwZW5kZW5jaWVzIHRoYXQgYXJlIG5vdCBwcm9jZXNzb3JzIGFuZCBtYXRj
aGluZyBtb2R1bGVzIGZvciB0aGVtCnNob3VsZCBiZSBsb2FkZWQuCgpJbiBmYWN0LCB0aGlzIHJl
cGxhY2VtZW50IGRvZXNuJ3QgZXZlbiBoYXZlIGEgZnVuY3Rpb25hbCBlZmZlY3Qgb24KcHJvY2Vz
c29ycywgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbW9kdWxlcyBtYXRjaGluZyB0aGUgcHJvY2Vzc29y
IGRldmljZQpJRCBBRkFJQ1MuCgo+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPgo+ICAgICAg
ICAgLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2ludGVybmFsLmggYi9kcml2ZXJzL2Fj
cGkvaW50ZXJuYWwuaAo+IGluZGV4IDY1ODg1MjVjNDVlZi4uMWJjOGI2ZGI2MGM1IDEwMDY0NAo+
IC0tLSBhL2RyaXZlcnMvYWNwaS9pbnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9hY3BpL2ludGVy
bmFsLmgKPiBAQCAtNjIsNiArNjIsOCBAQCB2b2lkIGFjcGlfc3lzZnNfYWRkX2hvdHBsdWdfcHJv
ZmlsZShzdHJ1Y3QgYWNwaV9ob3RwbHVnX3Byb2ZpbGUgKmhvdHBsdWcsCj4gIGludCBhY3BpX3Nj
YW5fYWRkX2hhbmRsZXJfd2l0aF9ob3RwbHVnKHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqaGFu
ZGxlciwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpob3RwbHVnX3Byb2ZpbGVfbmFtZSk7Cj4gIHZvaWQgYWNwaV9zY2FuX2hvdHBsdWdfZW5hYmxl
ZChzdHJ1Y3QgYWNwaV9ob3RwbHVnX3Byb2ZpbGUgKmhvdHBsdWcsIGJvb2wgdmFsKTsKPiArYm9v
bCBhY3BpX3NjYW5fY2hlY2tfaGFuZGxlcihjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYs
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWNwaV9zY2FuX2hhbmRsZXIg
KmhhbmRsZXIpOwo+Cj4gICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiAgZXh0ZXJuIHN0cnVjdCBk
ZW50cnkgKmFjcGlfZGVidWdmc19kaXI7Cj4gQEAgLTEyMSw3ICsxMjMsNiBAQCBpbnQgYWNwaV9k
ZXZpY2Vfc2V0dXBfZmlsZXMoc3RydWN0IGFjcGlfZGV2aWNlICpkZXYpOwo+ICB2b2lkIGFjcGlf
ZGV2aWNlX3JlbW92ZV9maWxlcyhzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgYWNw
aV9kZXZpY2VfYWRkX2ZpbmFsaXplKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKTsKPiAgdm9p
ZCBhY3BpX2ZyZWVfcG5wX2lkcyhzdHJ1Y3QgYWNwaV9kZXZpY2VfcG5wICpwbnApOwo+IC1ib29s
IGFjcGlfZGV2aWNlX2lzX3ByZXNlbnQoY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KTsK
PiAgYm9vbCBhY3BpX2RldmljZV9pc19iYXR0ZXJ5KHN0cnVjdCBhY3BpX2RldmljZSAqYWRldik7
Cj4gIGJvb2wgYWNwaV9kZXZpY2VfaXNfZmlyc3RfcGh5c2ljYWxfbm9kZShzdHJ1Y3QgYWNwaV9k
ZXZpY2UgKmFkZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gQEAgLTEzMyw2ICsxMzQsNyBAQCBpbnQgYWNwaV9i
dXNfcmVnaXN0ZXJfZWFybHlfZGV2aWNlKGludCB0eXBlKTsKPiAgY29uc3Qgc3RydWN0IGFjcGlf
ZGV2aWNlICphY3BpX2NvbXBhbmlvbl9tYXRjaChjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+
ICBpbnQgX19hY3BpX2RldmljZV91ZXZlbnRfbW9kYWxpYXMoY29uc3Qgc3RydWN0IGFjcGlfZGV2
aWNlICphZGV2LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga29i
al91ZXZlbnRfZW52ICplbnYpOwo+ICtib29sIGFjcGlfZGV2aWNlX2lzX3Byb2Nlc3Nvcihjb25z
dCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYpOwo+Cj4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBSZXNvdXJjZQo+IGRpZmYg
LS1naXQgYS9kcml2ZXJzL2FjcGkvcHJvcGVydHkuYyBiL2RyaXZlcnMvYWNwaS9wcm9wZXJ0eS5j
Cj4gaW5kZXggYTZlYWQ1MjA0MDQ2Li45ZjhkNTQwMzg3NzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy
cy9hY3BpL3Byb3BlcnR5LmMKPiArKysgYi9kcml2ZXJzL2FjcGkvcHJvcGVydHkuYwo+IEBAIC0x
NDg2LDcgKzE0ODYsNyBAQCBzdGF0aWMgYm9vbCBhY3BpX2Z3bm9kZV9kZXZpY2VfaXNfYXZhaWxh
YmxlKGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCj4gICAgICAgICBpZiAoIWlz
X2FjcGlfZGV2aWNlX25vZGUoZndub2RlKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
Owo+Cj4gLSAgICAgICByZXR1cm4gYWNwaV9kZXZpY2VfaXNfcHJlc2VudCh0b19hY3BpX2Rldmlj
ZV9ub2RlKGZ3bm9kZSkpOwo+ICsgICAgICAgcmV0dXJuIGFjcGlfZGV2X3JlYWR5X2Zvcl9lbnVt
ZXJhdGlvbih0b19hY3BpX2RldmljZV9ub2RlKGZ3bm9kZSkpOwoKVGhpcywgYWdhaW4sIG1heSBi
cmVhayBub24tcHJvY2Vzc29yIGRldmljZXMgd2l0aCBkZXBlbmRlbmNpZXMgaW4Kc3VidGxlIHdh
eXMgYW5kIGl0IGRvZXNuJ3QgaGF2ZSBhIGZ1bmN0aW9uYWwgZWZmZWN0IG9uIHByb2Nlc3NvcnMK
QUZBSUNTLgoKPiAgfQo+Cj4gIHN0YXRpYyBjb25zdCB2b2lkICoKPiBkaWZmIC0tZ2l0IGEvZHJp
dmVycy9hY3BpL3NjYW4uYyBiL2RyaXZlcnMvYWNwaS9zY2FuLmMKPiBpbmRleCBlNmVkMWJhOTFl
NWMuLmZkMmU4YjNhNTc0OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjcGkvc2Nhbi5jCj4gKysr
IGIvZHJpdmVycy9hY3BpL3NjYW4uYwo+IEBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIGludCBh
Y3BpX3NjYW5fZGV2aWNlX2NoZWNrKHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKPiAgICAgICAg
IGludCBlcnJvcjsKPgo+ICAgICAgICAgYWNwaV9idXNfZ2V0X3N0YXR1cyhhZGV2KTsKPiAtICAg
ICAgIGlmIChhY3BpX2RldmljZV9pc19wcmVzZW50KGFkZXYpKSB7Cj4gKyAgICAgICBpZiAoYWNw
aV9kZXZfcmVhZHlfZm9yX2VudW1lcmF0aW9uKGFkZXYpKSB7CgpJdCBsb29rcyB0byBtZSBsaWtl
IHRoZXJlIGFyZSB0d28gcHVycG9zZXMgb2YgdGhpcyByZXBsYWNlbWVudC4gIE9uZQppcyB0byBo
YW5kbGUgdGhlIHJlbW92YWwgY2FzZSB3aGljaCBpcyBhbmFsb2dvdXMgdG8gdGhlCmFjcGlfc2Nh
bl9idXNfY2hlY2soKSBjYXNlIGJlbG93LgoKVGhlIG90aGVyIHB1cnBvc2Ugc2VlbXMgdG8gYmUg
dG8gYXZvaWQgdGhlIGRldl93YXJuKCkgbWVzc2FnZSBwcmludGVkCndoZW4gYWNwaV9wcm9jZXNz
b3JfYWRkKCkgZG9lcyBub3QgcmV0dXJuIDEgZm9yIGEgcHJvY2Vzc29yIGRldmljZQp0aGF0IGlz
IG5vdCBlbmFibGVkLgoKSG93ZXZlciwgdGhpcyBtZXNzYWdlIGFyZ3VhYmx5IHNob3VsZCBub3Qg
YmUgcHJpbnRlZCBhdCBhbGwgc28gbG9uZyBhcwphY3BpX2J1c19zY2FuKCkgc3VjY2VlZHMsIGJl
Y2F1c2UgaG90LWFkZGluZyBhIGRldmljZSB3aXRob3V0IGEKbWF0Y2hpbmcgc2NhbiBoYW5kbGVy
IGlzIGVudGlyZWx5IHZhbGlkLgoKSSdsbCBzZW5kIGEgcGF0Y2ggdG8gZml4IHRoaXMgc2hvcnRs
eS4KCkluIGFkZGl0aW9uIHRvIHRoYXQsIGl0IHdvdWxkIHN1ZmZpY2UgdG8gbWFrZSBhY3BpX3By
b2Nlc3Nvcl9hZGQoKQpjaGVjayB0aGUgZW5hYmxlZCBiaXQgYW5kIHJldHVybiAwIGVhcmx5IHdo
ZW4gaXQgaXMgY2xlYXIuICBJJ2xsIHNlbmQKYSBwYXRjaCBmb3IgdGhpcyBlaXRoZXIuCgo+ICAg
ICAgICAgICAgICAgICAvKgo+ICAgICAgICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIG9u
bHkgY2FsbGVkIGZvciBkZXZpY2Ugb2JqZWN0cyBmb3Igd2hpY2gKPiAgICAgICAgICAgICAgICAg
ICogbWF0Y2hpbmcgc2NhbiBoYW5kbGVycyBleGlzdC4gIFRoZSBvbmx5IHNpdHVhdGlvbiBpbiB3
aGljaAo+IEBAIC0zMzgsNyArMzM4LDcgQEAgc3RhdGljIGludCBhY3BpX3NjYW5fYnVzX2NoZWNr
KHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwgdm9pZCAqbm90X3VzZWQpCj4gICAgICAgICBpbnQg
ZXJyb3I7Cj4KPiAgICAgICAgIGFjcGlfYnVzX2dldF9zdGF0dXMoYWRldik7Cj4gLSAgICAgICBp
ZiAoIWFjcGlfZGV2aWNlX2lzX3ByZXNlbnQoYWRldikpIHsKPiArICAgICAgIGlmICghYWNwaV9k
ZXZfcmVhZHlfZm9yX2VudW1lcmF0aW9uKGFkZXYpKSB7CgpJbmRlZWQsIHRoZSBlbmFibGVkIGJp
dCBzaG91bGQgYmUgY2hlY2tlZCBoZXJlLCBhbG9uZyB3aXRoIHRoZSBwcmVzZW50CmFuZCBmdW5j
dGlvbmFsIGJpdHMsIGJ1dCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGF0IGNoZWNrIHRv
CmFjcGlfYnVzX3RyaW1fb25lKCkgb3IgZXZlbiBhY3BpX3Byb2Nlc3Nvcl9yZW1vdmUoKSwgc28g
dGhlCm5vdC1wcmVzZW50LWJ1dC1mdW5jdGlvbmFsIGNhc2UgaXMgaGFuZGxlZCBjb3JyZWN0bHku
ICBBbmQgdGhlCmFjcGlfc2Nhbl9kZXZpY2VfY2hlY2soKSBjYXNlIGNvdWxkIHRoZW4gYmUgaGFu
ZGxlZCBhbmFsb2dvdXNseS4KQW5vdGhlciBwYXRjaCB0byBiZSBzZW50LgoKPiAgICAgICAgICAg
ICAgICAgYWNwaV9zY2FuX2RldmljZV9ub3RfZW51bWVyYXRlZChhZGV2KTsKPiAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7Cj4gICAgICAgICB9Cj4gQEAgLTE5MTcsMTEgKzE5MTcsNiBAQCBzdGF0
aWMgYm9vbCBhY3BpX2RldmljZV9zaG91bGRfYmVfaGlkZGVuKGFjcGlfaGFuZGxlIGhhbmRsZSkK
PiAgICAgICAgIHJldHVybiB0cnVlOwo+ICB9Cj4KPiAtYm9vbCBhY3BpX2RldmljZV9pc19wcmVz
ZW50KGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKPiAtewo+IC0gICAgICAgcmV0dXJu
IGFkZXYtPnN0YXR1cy5wcmVzZW50IHx8IGFkZXYtPnN0YXR1cy5mdW5jdGlvbmFsOwo+IC19Cj4g
LQo+ICBzdGF0aWMgYm9vbCBhY3BpX3NjYW5faGFuZGxlcl9tYXRjaGluZyhzdHJ1Y3QgYWNwaV9z
Y2FuX2hhbmRsZXIgKmhhbmRsZXIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqaWRzdHIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICoqbWF0Y2hpZCkKPiBAQCAtMTk0
Miw2ICsxOTM3LDE4IEBAIHN0YXRpYyBib29sIGFjcGlfc2Nhbl9oYW5kbGVyX21hdGNoaW5nKHN0
cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqaGFuZGxlciwKPiAgICAgICAgIHJldHVybiBmYWxzZTsK
PiAgfQo+Cj4gK2Jvb2wgYWNwaV9zY2FuX2NoZWNrX2hhbmRsZXIoY29uc3Qgc3RydWN0IGFjcGlf
ZGV2aWNlICphZGV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFjcGlf
c2Nhbl9oYW5kbGVyICpoYW5kbGVyKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgYWNwaV9oYXJkd2Fy
ZV9pZCAqaHdpZDsKPiArCj4gKyAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3aWQsICZhZGV2
LT5wbnAuaWRzLCBsaXN0KQo+ICsgICAgICAgICAgICAgICBpZiAoYWNwaV9zY2FuX2hhbmRsZXJf
bWF0Y2hpbmcoaGFuZGxlciwgaHdpZC0+aWQsIE5VTEwpKQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwo+ICsKPiArICAgICAgIHJldHVybiBmYWxzZTsKPiArfQo+ICsKPiAg
c3RhdGljIHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqYWNwaV9zY2FuX21hdGNoX2hhbmRsZXIo
Y29uc3QgY2hhciAqaWRzdHIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqKm1hdGNoaWQpCj4gIHsKPiBAQCAtMjQw
NSwxNiArMjQxMiwzNSBAQCBFWFBPUlRfU1lNQk9MX0dQTChhY3BpX2Rldl9jbGVhcl9kZXBlbmRl
bmNpZXMpOwo+ICAgKiBhY3BpX2Rldl9yZWFkeV9mb3JfZW51bWVyYXRpb24gLSBDaGVjayBpZiB0
aGUgQUNQSSBkZXZpY2UgaXMgcmVhZHkgZm9yIGVudW1lcmF0aW9uCj4gICAqIEBkZXZpY2U6IFBv
aW50ZXIgdG8gdGhlICZzdHJ1Y3QgYWNwaV9kZXZpY2UgdG8gY2hlY2sKPiAgICoKPiAtICogQ2hl
Y2sgaWYgdGhlIGRldmljZSBpcyBwcmVzZW50IGFuZCBoYXMgbm8gdW5tZXQgZGVwZW5kZW5jaWVz
Lgo+ICsgKiBDaGVjayBpZiB0aGUgZGV2aWNlIGlzIGZ1bmN0aW9uYWwgb3IgZW5hYmxlZCBhbmQg
aGFzIG5vIHVubWV0IGRlcGVuZGVuY2llcy4KPiAgICoKPiAtICogUmV0dXJuIHRydWUgaWYgdGhl
IGRldmljZSBpcyByZWFkeSBmb3IgZW51bWVyYXRpbm8uIE90aGVyd2lzZSwgcmV0dXJuIGZhbHNl
Lgo+ICsgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZGV2aWNlIGlzIHJlYWR5IGZvciBlbnVtZXJhdGlv
bi4gT3RoZXJ3aXNlLCByZXR1cm4gZmFsc2UuCj4gICAqLwo+ICBib29sIGFjcGlfZGV2X3JlYWR5
X2Zvcl9lbnVtZXJhdGlvbihjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkKPiAgewo+
ICAgICAgICAgaWYgKGRldmljZS0+ZmxhZ3MuaG9ub3JfZGVwcyAmJiBkZXZpY2UtPmRlcF91bm1l
dCkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+Cj4gLSAgICAgICByZXR1cm4gYWNw
aV9kZXZpY2VfaXNfcHJlc2VudChkZXZpY2UpOwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIEFD
UEkgNi41J3MgNi4zLjcgIl9TVEEgKERldmljZSBTdGF0dXMpIiBhbGxvd3MgZmlybXdhcmUgdG8g
cmV0dXJuCj4gKyAgICAgICAgKiAoIXByZXNlbnQgJiYgZnVuY3Rpb25hbCkgZm9yIGNlcnRhaW4g
dHlwZXMgb2YgZGV2aWNlcyB0aGF0IHNob3VsZCBiZQo+ICsgICAgICAgICogZW51bWVyYXRlZC4g
Tm90ZSB0aGF0IHRoZSBlbmFibGVkIGJpdCBzaG91bGQgbm90IGJlIHNldCB1bmxlc3MgdGhlCj4g
KyAgICAgICAgKiBwcmVzZW50IGJpdCBpcyBzZXQuCj4gKyAgICAgICAgKgo+ICsgICAgICAgICog
SG93ZXZlciwgbGltaXQgdGhpcyBvbmx5IHRvIHByb2Nlc3NvciBkZXZpY2VzIHRvIHJlZHVjZSBw
b3NzaWJsZQo+ICsgICAgICAgICogcmVncmVzc2lvbnMgd2l0aCBmaXJtd2FyZS4KPiArICAgICAg
ICAqLwo+ICsgICAgICAgaWYgKCFkZXZpY2UtPnN0YXR1cy5wcmVzZW50KQo+ICsgICAgICAgICAg
ICAgICByZXR1cm4gZGV2aWNlLT5zdGF0dXMuZnVuY3Rpb25hbDsKPiArCj4gKyAgICAgICAvKgo+
ICsgICAgICAgICogRmFzdCBwYXRoIC0gaWYgZW5hYmxlZCBpcyBzZXQsIGF2b2lkIHRoZSBtb3Jl
IGV4cGVuc2l2ZSB0ZXN0IHRvCj4gKyAgICAgICAgKiBjaGVjayB3aGV0aGVyIHRoaXMgZGV2aWNl
IGlzIGEgcHJvY2Vzc29yLgo+ICsgICAgICAgICovCj4gKyAgICAgICBpZiAoZGV2aWNlLT5zdGF0
dXMuZW5hYmxlZCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4gKwo+ICsgICAgICAg
cmV0dXJuICFhY3BpX2RldmljZV9pc19wcm9jZXNzb3IoZGV2aWNlKTsKPiAgfQo+ICBFWFBPUlRf
U1lNQk9MX0dQTChhY3BpX2Rldl9yZWFkeV9mb3JfZW51bWVyYXRpb24pOwo+Cj4gLS0KCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1h
aWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p
bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK