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