From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,3/4] drivers: edac: Add EDAC driver support for QCOM SoCs From: Venkata Narendra Kumar Gutta Message-Id: <1534550915-18230-4-git-send-email-vnkgutta@codeaurora.org> Date: Fri, 17 Aug 2018 17:08:34 -0700 To: robh@kernel.org, mchehab@kernel.org, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Gross , David Brown , linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, robh+dt@kernel.org, mark.rutland@arm.com, devicetree@vger.kernel.org, tsoni@codeaurora.org, ckadabi@codeaurora.org, rishabhb@codeaurora.org, bp@alien8.de, evgreen@chromium.org Cc: Venkata Narendra Kumar Gutta List-ID: RnJvbTogQ2hhbm5hZ291ZCBLYWRhYmkgPGNrYWRhYmlAY29kZWF1cm9yYS5vcmc+CgpBZGQgZXJy b3IgcmVwb3J0aW5nIGRyaXZlciBmb3IgU2luZ2xlIEJpdCBFcnJvcnMgKFNCRXMpIGFuZCBEb3Vi bGUgQml0CkVycm9ycyAoREJFcykuIEFzIG9mIG5vdywgdGhpcyBkcml2ZXIgc3VwcG9ydHMgZXJw IGZvciBMYXN0IExldmVsIENhY2hlCkNvbnRyb2xsZXIgKExMQ0MpLiBUaGlzIGRyaXZlciB0YWtl cyBjYXJlIG9mIGR1bXBpbmcgcmVnaXN0ZXJzIGFuZCBhZGRpbmcKY29uZmlnIG9wdGlvbnMgdG8g ZW5hYmxlIGFuZCBkaXNhYmxlIHBhbmljIHdoZW4gdGhlIGVycm9ycyBoYXBwZW4gaW4gY2FjaGUu CgpTaWduZWQtb2ZmLWJ5OiBDaGFubmFnb3VkIEthZGFiaSA8Y2thZGFiaUBjb2RlYXVyb3JhLm9y Zz4KU2lnbmVkLW9mZi1ieTogVmVua2F0YSBOYXJlbmRyYSBLdW1hciBHdXR0YSA8dm5rZ3V0dGFA Y29kZWF1cm9yYS5vcmc+CkNvLWRldmVsb3BlZC1ieTogVmVua2F0YSBOYXJlbmRyYSBLdW1hciBH dXR0YSA8dm5rZ3V0dGFAY29kZWF1cm9yYS5vcmc+Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL2VkYWMvS2NvbmZpZyAgICAgICAgICAgICAg IHwgIDI4ICsrKwogZHJpdmVycy9lZGFjL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArCiBk cml2ZXJzL2VkYWMvcWNvbV9lZGFjLmMgICAgICAgICAgIHwgNDQ2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvc29jL3Fjb20vbGxjYy1xY29tLmgg fCAgMjUgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDUwOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9lZGFjL3Fjb21fZWRhYy5jCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5F UlMgYi9NQUlOVEFJTkVSUwppbmRleCAwYTIzNDI3Li4wYmZmNzEzIDEwMDY0NAotLS0gYS9NQUlO VEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtNTIyNyw2ICs1MjI3LDE0IEBAIEw6CWxpbnV4 LWVkYWNAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL2VkYWMvdGlf ZWRhYy5jCiAKK0VEQUMtUVVBTENPTU0KK006CUNoYW5uYWdvdWQgS2FkYWJpIDxja2FkYWJpQGNv ZGVhdXJvcmEub3JnPgorTToJVmVua2F0YSBOYXJlbmRyYSBLdW1hciBHdXR0YSA8dm5rZ3V0dGFA Y29kZWF1cm9yYS5vcmc+CitMOglsaW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZworTDoJbGlu dXgtZWRhY0B2Z2VyLmtlcm5lbC5vcmcKK1M6CU1haW50YWluZWQKK0Y6CWRyaXZlcnMvZWRhYy9x Y29tX2VkYWMuYworCiBFRElST0wgVUEtMTAxL1VBLTEwMDAgRFJJVkVSCiBNOglDbGVtZW5zIExh ZGlzY2ggPGNsZW1lbnNAbGFkaXNjaC5kZT4KIEw6CWFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9y ZyAobW9kZXJhdGVkIGZvciBub24tc3Vic2NyaWJlcnMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Vk YWMvS2NvbmZpZyBiL2RyaXZlcnMvZWRhYy9LY29uZmlnCmluZGV4IDU3MzA0YjIuLmRhOGYxNTAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvZWRhYy9LY29u ZmlnCkBAIC00NjAsNCArNDYwLDMyIEBAIGNvbmZpZyBFREFDX1RJCiAJICBTdXBwb3J0IGZvciBl cnJvciBkZXRlY3Rpb24gYW5kIGNvcnJlY3Rpb24gb24gdGhlCiAgICAgICAgICAgVEkgU29Dcy4K IAorY29uZmlnIEVEQUNfUUNPTQorCXRyaXN0YXRlICJRQ09NIEVEQUMgQ29udHJvbGxlciIKKwlk ZXBlbmRzIG9uIEVEQUMKKwloZWxwCisJICBTdXBwb3J0IGZvciBlcnJvciBkZXRlY3Rpb24gYW5k IGNvcnJlY3Rpb24gb24gdGhlCisJICBRQ09NIFNvQ3MuCisKK2NvbmZpZyBFREFDX1FDT01fTExD QworCXRyaXN0YXRlICJRQ09NIEVEQUMgQ29udHJvbGxlciBmb3IgTExDQyBDYWNoZSIKKwlkZXBl bmRzIG9uIEVEQUNfUUNPTSAmJiBRQ09NX0xMQ0MKKwloZWxwCisJICBTdXBwb3J0IGZvciBlcnJv ciBkZXRlY3Rpb24gYW5kIGNvcnJlY3Rpb24gb24gdGhlCisJICBRQ09NIExMQ0MgY2FjaGUuIFJl cG9ydCBlcnJvcnMgY2F1Z2h0IGJ5IExMQ0MgRUNDCisJICBtZWNoYW5pc20uCisKKwkgIEZvciBk ZWJ1Z2dpbmcgaXNzdWVzIGhhdmluZyB0byBkbyB3aXRoIHN0YWJpbGl0eSBhbmQgb3ZlcmFsbCBz eXN0ZW0KKyAgICAgICAgICBoZWFsdGgsIHlvdSBzaG91bGQgcHJvYmFibHkgc2F5ICdZJyBoZXJl LgorCitjb25maWcgRURBQ19RQ09NX0xMQ0NfUEFOSUNfT05fVUUKKwlib29sICJQYW5pYyBvbiB1 bmNvcnJlY3RhYmxlIGVycm9ycyAtIHFjb20gbGxjYyIKKwlkZXBlbmRzIG9uIEVEQUNfUUNPTV9M TENDCisJaGVscAorCSAgRm9yY2libHkgY2F1c2UgYSBrZXJuZWwgcGFuaWMgaWYgYW4gdW5jb3Jy ZWN0YWJsZSBlcnJvciAoVUUpIGlzCisJICBkZXRlY3RlZC4gVGhpcyBjYW4gcmVkdWNlIGRlYnVn Z2luZyB0aW1lcyBvbiBoYXJkd2FyZSB3aGljaCBtYXkgYmUKKwkgIG9wZXJhdGluZyBhdCB2b2x0 YWdlcyBvciBmcmVxdWVuY2llcyBvdXRzaWRlIG5vcm1hbCBzcGVjaWZpY2F0aW9uLgorCisJICBG b3IgcHJvZHVjdGlvbiBidWlsZHMsIHlvdSBzaG91bGQgcHJvYmFibHkgc2F5ICdOJyBoZXJlLgor CiBlbmRpZiAjIEVEQUMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9NYWtlZmlsZSBiL2RyaXZl cnMvZWRhYy9NYWtlZmlsZQppbmRleCAwMmI0M2E3Li43MTYwOTZkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2VkYWMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9lZGFjL01ha2VmaWxlCkBAIC03NywzICs3 Nyw0IEBAIG9iai0kKENPTkZJR19FREFDX0FMVEVSQSkJCSs9IGFsdGVyYV9lZGFjLm8KIG9iai0k KENPTkZJR19FREFDX1NZTk9QU1lTKQkJKz0gc3lub3BzeXNfZWRhYy5vCiBvYmotJChDT05GSUdf RURBQ19YR0VORSkJCSs9IHhnZW5lX2VkYWMubwogb2JqLSQoQ09ORklHX0VEQUNfVEkpCQkJKz0g dGlfZWRhYy5vCitvYmotJChDT05GSUdfRURBQ19RQ09NKQkJCSs9IHFjb21fZWRhYy5vCmRpZmYg LS1naXQgYS9kcml2ZXJzL2VkYWMvcWNvbV9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvcWNvbV9lZGFj LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE4YzY3MAotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvZWRhYy9xY29tX2VkYWMuYwpAQCAtMCwwICsxLDQ0NiBAQAorLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw MTgsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNp bmNsdWRlIDxsaW51eC9lZGFjLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5j bHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+ CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisjaW5jbHVkZSA8bGludXgvc29jL3Fjb20vbGxjYy1x Y29tLmg+CisKKyNpbmNsdWRlICJlZGFjX21jLmgiCisjaW5jbHVkZSAiZWRhY19kZXZpY2UuaCIK KworI2lmZGVmIENPTkZJR19FREFDX1FDT01fTExDQ19QQU5JQ19PTl9VRQorI2RlZmluZSBMTEND X0VSUF9QQU5JQ19PTl9VRSAgICAgICAgICAgIDEKKyNlbHNlCisjZGVmaW5lIExMQ0NfRVJQX1BB TklDX09OX1VFICAgICAgICAgICAgMAorI2VuZGlmCisKKyNkZWZpbmUgRURBQ19MTENDICAgICAg ICAgICAgICAgICAgICAgICAicWNvbV9sbGNjIgorCisjZGVmaW5lIFRSUF9TWU5fUkVHX0NOVCAg ICAgICAgICAgICAgICAgNgorCisjZGVmaW5lIERSUF9TWU5fUkVHX0NOVCAgICAgICAgICAgICAg ICAgOAorCisjZGVmaW5lIExMQ0NfQ09NTU9OX1NUQVRVUzAgICAgICAgICAgICAgMHgwMDAzMDAw QworI2RlZmluZSBMTENDX0xCX0NOVF9NQVNLICAgICAgICAgICAgICAgIEdFTk1BU0soMzEsIDI4 KQorI2RlZmluZSBMTENDX0xCX0NOVF9TSElGVCAgICAgICAgICAgICAgIDI4CisKKy8qIHNpbmds ZSAmIERvdWJsZSBCaXQgc3luZHJvbWUgcmVnaXN0ZXIgb2Zmc2V0cyAqLworI2RlZmluZSBUUlBf RUNDX1NCX0VSUl9TWU4wICAgICAgICAgICAgIDB4MDAwMjMwNEMKKyNkZWZpbmUgVFJQX0VDQ19E Ql9FUlJfU1lOMCAgICAgICAgICAgICAweDAwMDIwMzcwCisjZGVmaW5lIERSUF9FQ0NfU0JfRVJS X1NZTjAgICAgICAgICAgICAgMHgwMDA0MjA0QworI2RlZmluZSBEUlBfRUNDX0RCX0VSUl9TWU4w ICAgICAgICAgICAgIDB4MDAwNDIwNzAKKworLyogRXJyb3IgcmVnaXN0ZXIgb2Zmc2V0cyAqLwor I2RlZmluZSBUUlBfRUNDX0VSUk9SX1NUQVRVUzEgICAgICAgICAgIDB4MDAwMjAzNDgKKyNkZWZp bmUgVFJQX0VDQ19FUlJPUl9TVEFUVVMwICAgICAgICAgICAweDAwMDIwMzQ0CisjZGVmaW5lIERS UF9FQ0NfRVJST1JfU1RBVFVTMSAgICAgICAgICAgMHgwMDA0MjA0OAorI2RlZmluZSBEUlBfRUND X0VSUk9SX1NUQVRVUzAgICAgICAgICAgIDB4MDAwNDIwNDQKKworLyogVFJQLCBEUlAgaW50ZXJy dXB0IHJlZ2lzdGVyIG9mZnNldHMgKi8KKyNkZWZpbmUgRFJQX0lOVEVSUlVQVF9TVEFUVVMgICAg ICAgICAgICAweDAwMDQxMDAwCisjZGVmaW5lIFRSUF9JTlRFUlJVUFRfMF9TVEFUVVMgICAgICAg ICAgMHgwMDAyMDQ4MAorI2RlZmluZSBEUlBfSU5URVJSVVBUX0NMRUFSICAgICAgICAgICAgIDB4 MDAwNDEwMDgKKyNkZWZpbmUgRFJQX0VDQ19FUlJPUl9DTlRSX0NMRUFSICAgICAgICAweDAwMDQw MDA0CisjZGVmaW5lIFRSUF9JTlRFUlJVUFRfMF9DTEVBUiAgICAgICAgICAgMHgwMDAyMDQ4NAor I2RlZmluZSBUUlBfRUNDX0VSUk9SX0NOVFJfQ0xFQVIgICAgICAgIDB4MDAwMjA0NDAKKworLyog TWFzayBhbmQgc2hpZnQgbWFjcm9zICovCisjZGVmaW5lIEVDQ19EQl9FUlJfQ09VTlRfTUFTSyAg ICAgICAgICAgR0VOTUFTSyg0LCAwKQorI2RlZmluZSBFQ0NfREJfRVJSX1dBWVNfTUFTSyAgICAg ICAgICAgIEdFTk1BU0soMzEsIDE2KQorI2RlZmluZSBFQ0NfREJfRVJSX1dBWVNfU0hJRlQgICAg ICAgICAgIEJJVCg0KQorCisjZGVmaW5lIEVDQ19TQl9FUlJfQ09VTlRfTUFTSyAgICAgICAgICAg R0VOTUFTSygyMywgMTYpCisjZGVmaW5lIEVDQ19TQl9FUlJfQ09VTlRfU0hJRlQgICAgICAgICAg QklUKDQpCisjZGVmaW5lIEVDQ19TQl9FUlJfV0FZU19NQVNLICAgICAgICAgICAgR0VOTUFTSygx NSwgMCkKKworI2RlZmluZSBTQl9FQ0NfRVJST1IgICAgICAgICAgICAgICAgICAgIEJJVCgwKQor I2RlZmluZSBEQl9FQ0NfRVJST1IgICAgICAgICAgICAgICAgICAgIEJJVCgxKQorCisjZGVmaW5l IERSUF9UUlBfSU5UX0NMRUFSICAgICAgICAgICAgICAgR0VOTUFTSygxLCAwKQorI2RlZmluZSBE UlBfVFJQX0NOVF9DTEVBUiAgICAgICAgICAgICAgIEdFTk1BU0soMSwgMCkKKworLyogQ29uZmln IHJlZ2lzdGVycyBvZmZzZXRzKi8KKyNkZWZpbmUgRFJQX0VDQ19FUlJPUl9DRkcgICAgICAgICAg ICAgICAweDAwMDQwMDAwCisKKy8qIFRSUCwgRFJQIGludGVycnVwdCByZWdpc3RlciBvZmZzZXRz ICovCisjZGVmaW5lIENNTl9JTlRFUlJVUFRfMF9FTkFCTEUgICAgICAgICAgMHgwMDAzMDAxQwor I2RlZmluZSBDTU5fSU5URVJSVVBUXzJfRU5BQkxFICAgICAgICAgIDB4MDAwMzAwM0MKKyNkZWZp bmUgVFJQX0lOVEVSUlVQVF8wX0VOQUJMRSAgICAgICAgICAweDAwMDIwNDg4CisjZGVmaW5lIERS UF9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICAgMHgwMDA0MTAwQworCisjZGVmaW5lIFNCX0VS Uk9SX1RIUkVTSE9MRCAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIFNCX0VSUk9SX1RIUkVTSE9M RF9TSElGVCAgICAgICAgMjQKKyNkZWZpbmUgU0JfREJfVFJQX0lOVEVSUlVQVF9FTkFCTEUgICAg ICAweDMKKyNkZWZpbmUgVFJQMF9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICAweDEKKyNkZWZp bmUgRFJQMF9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICBCSVQoNikKKyNkZWZpbmUgU0JfREJf RFJQX0lOVEVSUlVQVF9FTkFCTEUgICAgICAweDMKKworZW51bSB7CisJTExDQ19EUkFNX0NFID0g MCwKKwlMTENDX0RSQU1fVUUsCisJTExDQ19UUkFNX0NFLAorCUxMQ0NfVFJBTV9VRSwKKwlMTEND X0VSUl9UWVBFX01BWCA9IExMQ0NfVFJBTV9VRSArIDEsCit9OworCitzdGF0aWMgaW50IHFjb21f bGxjY19jb3JlX3NldHVwKHN0cnVjdCByZWdtYXAgKmxsY2NfYmNhc3RfcmVnbWFwKQoreworCXUz MiBzYl9lcnJfdGhyZXNob2xkOworCWludCByZXQ7CisKKwkvKiBFbmFibGUgVFJQIGluIGluc3Rh bmNlIDIgb2YgY29tbW9uIGludGVycnVwdCBlbmFibGUgcmVnaXN0ZXIgKi8KKwlyZXQgPSByZWdt YXBfdXBkYXRlX2JpdHMobGxjY19iY2FzdF9yZWdtYXAsIENNTl9JTlRFUlJVUFRfMl9FTkFCTEUs CisJCQkJIFRSUDBfSU5URVJSVVBUX0VOQUJMRSwKKwkJCQkgVFJQMF9JTlRFUlJVUFRfRU5BQkxF KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogRW5hYmxlIEVDQyBpbnRlcnJ1cHRz IG9uIFRhZyBSYW0gKi8KKwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMobGxjY19iY2FzdF9yZWdt YXAsIFRSUF9JTlRFUlJVUFRfMF9FTkFCTEUsCisJCQkJIFNCX0RCX1RSUF9JTlRFUlJVUFRfRU5B QkxFLAorCQkJCSBTQl9EQl9UUlBfSU5URVJSVVBUX0VOQUJMRSk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCS8qIEVuYWJsZSBTQiBlcnJvciBmb3IgRGF0YSBSQU0gKi8KKwlzYl9lcnJf dGhyZXNob2xkID0gKFNCX0VSUk9SX1RIUkVTSE9MRCA8PCBTQl9FUlJPUl9USFJFU0hPTERfU0hJ RlQpOworCXJldCA9IHJlZ21hcF93cml0ZShsbGNjX2JjYXN0X3JlZ21hcCwgRFJQX0VDQ19FUlJP Ul9DRkcsCisJCQkgICBzYl9lcnJfdGhyZXNob2xkKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0 OworCisJLyogRW5hYmxlIERSUCBpbiBpbnN0YW5jZSAyIG9mIGNvbW1vbiBpbnRlcnJ1cHQgZW5h YmxlIHJlZ2lzdGVyICovCisJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGxsY2NfYmNhc3RfcmVn bWFwLCBDTU5fSU5URVJSVVBUXzJfRU5BQkxFLAorCQkJCSBEUlAwX0lOVEVSUlVQVF9FTkFCTEUs CisJCQkJIERSUDBfSU5URVJSVVBUX0VOQUJMRSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCS8qIEVuYWJsZSBFQ0MgaW50ZXJydXB0cyBvbiBEYXRhIFJhbSAqLworCXJldCA9IHJlZ21h cF93cml0ZShsbGNjX2JjYXN0X3JlZ21hcCwgRFJQX0lOVEVSUlVQVF9FTkFCTEUsCisJCQkgICBT Ql9EQl9EUlBfSU5URVJSVVBUX0VOQUJMRSk7CisJcmV0dXJuIHJldDsKK30KKworLyogQ2xlYXIg dGhlIGVycm9yIGludGVycnVwdCBhbmQgY291bnRlciByZWdpc3RlcnMgKi8KK3N0YXRpYyBpbnQK K3Fjb21fbGxjY19jbGVhcl9lcnJvcnNfc3RhdHVzKGludCBlcnJfdHlwZSwgc3RydWN0IGxsY2Nf ZHJ2X2RhdGEgKmRydikKK3sKKwlpbnQgcmV0ID0gMDsKKworCXN3aXRjaCAoZXJyX3R5cGUpIHsK KwljYXNlIExMQ0NfRFJBTV9DRToKKwljYXNlIExMQ0NfRFJBTV9VRToKKwkJLyogQ2xlYXIgdGhl IGludGVycnVwdCAqLworCQlyZXQgPSByZWdtYXBfd3JpdGUoZHJ2LT5iY2FzdF9yZWdtYXAsIERS UF9JTlRFUlJVUFRfQ0xFQVIsCisJCQkJICAgRFJQX1RSUF9JTlRfQ0xFQVIpOworCQlpZiAocmV0 KQorCQkJcmV0dXJuIHJldDsKKworCQkvKiBDbGVhciB0aGUgY291bnRlcnMgKi8KKwkJcmV0ID0g cmVnbWFwX3dyaXRlKGRydi0+YmNhc3RfcmVnbWFwLCBEUlBfRUNDX0VSUk9SX0NOVFJfQ0xFQVIs CisJCQkJICAgRFJQX1RSUF9DTlRfQ0xFQVIpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK KwkJYnJlYWs7CisJY2FzZSBMTENDX1RSQU1fQ0U6CisJY2FzZSBMTENDX1RSQU1fVUU6CisJCXJl dCA9IHJlZ21hcF93cml0ZShkcnYtPmJjYXN0X3JlZ21hcCwgVFJQX0lOVEVSUlVQVF8wX0NMRUFS LAorCQkJCSAgIERSUF9UUlBfSU5UX0NMRUFSKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7 CisKKwkJcmV0ID0gcmVnbWFwX3dyaXRlKGRydi0+YmNhc3RfcmVnbWFwLCBUUlBfRUNDX0VSUk9S X0NOVFJfQ0xFQVIsCisJCQkJICAgRFJQX1RSUF9DTlRfQ0xFQVIpOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKKwkJYnJlYWs7CisJfQorCXJldHVybiByZXQ7Cit9CisKKy8qIER1bXAgU3lu ZHJvbWUgcmVnaXN0ZXJzIGRhdGEgZm9yIFRhZyBSQU0sIERhdGEgUkFNIGJpdCBlcnJvcnMqLwor c3RhdGljIGludAorZHVtcF9zeW5fcmVnX3ZhbHVlcyhzdHJ1Y3QgbGxjY19kcnZfZGF0YSAqZHJ2 LCB1MzIgYmFuaywgaW50IGVycl90eXBlKQoreworCXN0cnVjdCBsbGNjX2VkYWNfcmVnX2RhdGEg KnJlZ19kYXRhID0gJihkcnYtPmVkYWNfcmVnW2Vycl90eXBlXSk7CisJaW50IGVycl9jbnQsIGVy cl93YXlzLCByZXQsIGk7CisJdTMyIHN5bmRfcmVnLCBzeW5kX3ZhbDsKKworCWZvciAoaSA9IDA7 IGkgPCByZWdfZGF0YS0+cmVnX2NudDsgaSsrKSB7CisJCXN5bmRfcmVnID0gcmVnX2RhdGEtPnN5 bmRfcmVnICsgKGkgKiA0KTsKKwkJcmV0ID0gcmVnbWFwX3JlYWQoZHJ2LT5yZWdtYXAsIGRydi0+ b2Zmc2V0c1tiYW5rXSArIHN5bmRfcmVnLAorCQkJCSAgJnN5bmRfdmFsKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gY2xlYXI7CisJCWVkYWNfcHJpbnRrKEtFUk5fQ1JJVCwgRURBQ19MTENDLCAiJXM6 IEVDQ19TWU4lZDogMHglOHhcbiIsCisJCQkgICAgcmVnX2RhdGEtPmVycl9uYW1lLCBpLCBzeW5k X3ZhbCk7CisJfQorCisJcmV0ID0gcmVnbWFwX3JlYWQoZHJ2LT5yZWdtYXAsCisJCQkgIGRydi0+ b2Zmc2V0c1tiYW5rXSArIHJlZ19kYXRhLT5lcnJfc3RhdHVzX3JlZywKKwkJCSAgJmVycl9jbnQp OworCWlmIChyZXQpCisJCWdvdG8gY2xlYXI7CisKKwllcnJfY250ICY9IHJlZ19kYXRhLT5lcnJf Y291bnRfbWFzazsKKwllcnJfY250ID4+PSByZWdfZGF0YS0+ZXJyX2NvdW50X3NoaWZ0OworCWVk YWNfcHJpbnRrKEtFUk5fQ1JJVCwgRURBQ19MTENDLCAiJXM6IGVycm9yIGNvdW50OiAweCU0eFxu IiwKKwkJICAgIHJlZ19kYXRhLT5lcnJfbmFtZSwgZXJyX2NudCk7CisKKwlyZXQgPSByZWdtYXBf cmVhZChkcnYtPnJlZ21hcCwKKwkJCSAgZHJ2LT5vZmZzZXRzW2JhbmtdICsgcmVnX2RhdGEtPmVy cl93YXlzX3N0YXR1cywKKwkJCSAgJmVycl93YXlzKTsKKwlpZiAocmV0KQorCQlnb3RvIGNsZWFy OworCisJZXJyX3dheXMgJj0gcmVnX2RhdGEtPmVycl93YXlzX21hc2s7CisJZXJyX3dheXMgPj49 IHJlZ19kYXRhLT5lcnJfd2F5c19zaGlmdDsKKworCWVkYWNfcHJpbnRrKEtFUk5fQ1JJVCwgRURB Q19MTENDLCAiJXM6IGVycm9yIHdheXM6IDB4JTR4XG4iLAorCQkgICAgcmVnX2RhdGEtPmVycl9u YW1lLCBlcnJfd2F5cyk7CisKK2NsZWFyOgorCXJldCA9IHFjb21fbGxjY19jbGVhcl9lcnJvcnNf c3RhdHVzKGVycl90eXBlLCBkcnYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQKK2R1 bXBfc3luX3JlZyhzdHJ1Y3QgZWRhY19kZXZpY2VfY3RsX2luZm8gKmVkZXZfY3RsLCBpbnQgZXJy X3R5cGUsIHUzMiBiYW5rKQoreworCXN0cnVjdCBsbGNjX2Rydl9kYXRhICpkcnYgPSBlZGV2X2N0 bC0+cHZ0X2luZm87CisJaW50IHJldCA9IDA7CisKKwlyZXQgPSBkdW1wX3N5bl9yZWdfdmFsdWVz KGRydiwgYmFuaywgZXJyX3R5cGUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzd2l0 Y2ggKGVycl90eXBlKSB7CisJY2FzZSBMTENDX0RSQU1fQ0U6CisJCWVkYWNfZGV2aWNlX2hhbmRs ZV9jZShlZGV2X2N0bCwgMCwgYmFuaywKKwkJCQkgICAgICAiTExDQyBEYXRhIFJBTSBjb3JyZWN0 YWJsZSBFcnJvciIpOworCQlicmVhazsKKwljYXNlIExMQ0NfRFJBTV9VRToKKwkJZWRhY19kZXZp Y2VfaGFuZGxlX3VlKGVkZXZfY3RsLCAwLCBiYW5rLAorCQkJCSAgICAgICJMTENDIERhdGEgUkFN IHVuY29ycmVjdGFibGUgRXJyb3IiKTsKKwkJYnJlYWs7CisJY2FzZSBMTENDX1RSQU1fQ0U6CisJ CWVkYWNfZGV2aWNlX2hhbmRsZV9jZShlZGV2X2N0bCwgMCwgYmFuaywKKwkJCQkgICAgICAiTExD QyBUYWcgUkFNIGNvcnJlY3RhYmxlIEVycm9yIik7CisJCWJyZWFrOworCWNhc2UgTExDQ19UUkFN X1VFOgorCQllZGFjX2RldmljZV9oYW5kbGVfdWUoZWRldl9jdGwsIDAsIGJhbmssCisJCQkJICAg ICAgIkxMQ0MgVGFnIFJBTSB1bmNvcnJlY3RhYmxlIEVycm9yIik7CisJCWJyZWFrOworCX0KKwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdAorbGxjY19lY2NfaXJxX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqZWRldl9jdGwpCit7CisJc3RydWN0IGVkYWNfZGV2aWNlX2N0bF9p bmZvICplZGFjX2Rldl9jdGw7CisJaXJxcmV0dXJuX3QgaXJxX3JjID0gSVJRX05PTkU7CisJdTMy IGRycF9lcnJvciwgdHJwX2Vycm9yLCBpOworCXN0cnVjdCBsbGNjX2Rydl9kYXRhICpkcnY7CisJ aW50IHJldDsKKworCWVkYWNfZGV2X2N0bCA9IChzdHJ1Y3QgZWRhY19kZXZpY2VfY3RsX2luZm8g KillZGV2X2N0bDsKKwlkcnYgPSBlZGFjX2Rldl9jdGwtPnB2dF9pbmZvOworCisJZm9yIChpID0g MDsgaSA8IGRydi0+bnVtX2JhbmtzOyBpKyspIHsKKwkJLyogTG9vayBmb3IgRGF0YSBSQU0gZXJy b3JzICovCisJCXJldCA9IHJlZ21hcF9yZWFkKGRydi0+cmVnbWFwLAorCQkJCSAgZHJ2LT5vZmZz ZXRzW2ldICsgRFJQX0lOVEVSUlVQVF9TVEFUVVMsCisJCQkJICAmZHJwX2Vycm9yKTsKKwkJaWYg KHJldCkKKwkJCXJldHVybiBpcnFfcmM7CisKKwkJaWYgKGRycF9lcnJvciAmIFNCX0VDQ19FUlJP UikgeworCQkJZWRhY19wcmludGsoS0VSTl9DUklULCBFREFDX0xMQ0MsCisJCQkJICAgICJTaW5n bGUgQml0IEVycm9yIGRldGVjdGVkIGluIERhdGEgUmFtXG4iKTsKKwkJCXJldCA9IGR1bXBfc3lu X3JlZyhlZGV2X2N0bCwgTExDQ19EUkFNX0NFLCBpKTsKKwkJCWlmICghcmV0KQorCQkJCWlycV9y YyA9IElSUV9IQU5ETEVEOworCQl9IGVsc2UgaWYgKGRycF9lcnJvciAmIERCX0VDQ19FUlJPUikg eworCQkJZWRhY19wcmludGsoS0VSTl9DUklULCBFREFDX0xMQ0MsCisJCQkJICAgICJEb3VibGUg Qml0IEVycm9yIGRldGVjdGVkIGluIERhdGEgUmFtXG4iKTsKKwkJCXJldCA9IGR1bXBfc3luX3Jl ZyhlZGV2X2N0bCwgTExDQ19EUkFNX1VFLCBpKTsKKwkJCWlmICghcmV0KQorCQkJCWlycV9yYyA9 IElSUV9IQU5ETEVEOworCQl9CisKKwkJLyogTG9vayBmb3IgVGFnIFJBTSBlcnJvcnMgKi8KKwkJ cmV0ID0gcmVnbWFwX3JlYWQoZHJ2LT5yZWdtYXAsCisJCQkJICBkcnYtPm9mZnNldHNbaV0gKyBU UlBfSU5URVJSVVBUXzBfU1RBVFVTLAorCQkJCSAgJnRycF9lcnJvcik7CisJCWlmIChyZXQpCisJ CQlyZXR1cm4gaXJxX3JjOworCisJCWlmICh0cnBfZXJyb3IgJiBTQl9FQ0NfRVJST1IpIHsKKwkJ CWVkYWNfcHJpbnRrKEtFUk5fQ1JJVCwgRURBQ19MTENDLAorCQkJCSAgICAiU2luZ2xlIEJpdCBF cnJvciBkZXRlY3RlZCBpbiBUYWcgUmFtXG4iKTsKKwkJCXJldCA9IGR1bXBfc3luX3JlZyhlZGV2 X2N0bCwgTExDQ19UUkFNX0NFLCBpKTsKKwkJCWlmICghcmV0KQorCQkJCWlycV9yYyA9IElSUV9I QU5ETEVEOworCQl9IGVsc2UgaWYgKHRycF9lcnJvciAmIERCX0VDQ19FUlJPUikgeworCQkJZWRh Y19wcmludGsoS0VSTl9DUklULCBFREFDX0xMQ0MsCisJCQkJICAgICJEb3VibGUgQml0IEVycm9y IGRldGVjdGVkIGluIFRhZyBSYW1cbiIpOworCQkJcmV0ID0gZHVtcF9zeW5fcmVnKGVkZXZfY3Rs LCBMTENDX1RSQU1fVUUsIGkpOworCQkJaWYgKCFyZXQpCisJCQkJaXJxX3JjID0gSVJRX0hBTkRM RUQ7CisJCX0KKwl9CisKKwlyZXR1cm4gaXJxX3JjOworfQorCitzdGF0aWMgdm9pZCBsbGNjX2Vk YWNfcmVnX2RhdGFfaW5pdChzdHJ1Y3QgbGxjY19lZGFjX3JlZ19kYXRhICplZGFjX3JlZykKK3sK KworCXN0cnVjdCBsbGNjX2VkYWNfcmVnX2RhdGEgKnJlZ19kYXRhOworCisJLyogSW5pdGlhbGl6 ZSByZWdpc3RlciBpbmZvIGZvciBMTENDX0RSQU1fQ0UgKi8KKwlyZWdfZGF0YSA9ICZlZGFjX3Jl Z1tMTENDX0RSQU1fQ0VdOworCXJlZ19kYXRhLT5lcnJfbmFtZSA9ICJEUkFNIFNpbmdsZS1iaXQi OworCXJlZ19kYXRhLT5yZWdfY250ID0gRFJQX1NZTl9SRUdfQ05UOworCXJlZ19kYXRhLT5zeW5k X3JlZyA9IERSUF9FQ0NfU0JfRVJSX1NZTjA7CisJcmVnX2RhdGEtPmVycl9zdGF0dXNfcmVnID0g RFJQX0VDQ19FUlJPUl9TVEFUVVMxOworCXJlZ19kYXRhLT5lcnJfY291bnRfbWFzayA9IEVDQ19T Ql9FUlJfQ09VTlRfTUFTSzsKKwlyZWdfZGF0YS0+ZXJyX2NvdW50X3NoaWZ0ID0gRUNDX1NCX0VS Ul9DT1VOVF9TSElGVDsKKwlyZWdfZGF0YS0+ZXJyX3dheXNfc3RhdHVzID0gRFJQX0VDQ19FUlJP Ul9TVEFUVVMwOworCXJlZ19kYXRhLT5lcnJfd2F5c19tYXNrID0gRUNDX1NCX0VSUl9XQVlTX01B U0s7CisKKwkvKiBJbml0aWFsaXplIHJlZ2lzdGVyIGluZm8gZm9yIExMQ0NfRFJBTV9VRSAqLwor CXJlZ19kYXRhID0gJmVkYWNfcmVnW0xMQ0NfRFJBTV9VRV07CisJcmVnX2RhdGEtPmVycl9uYW1l ID0gIkRSQU0gRG91YmxlLWJpdCI7CisJcmVnX2RhdGEtPnJlZ19jbnQgPSBEUlBfU1lOX1JFR19D TlQ7CisJcmVnX2RhdGEtPnN5bmRfcmVnID0gRFJQX0VDQ19EQl9FUlJfU1lOMDsKKwlyZWdfZGF0 YS0+ZXJyX3N0YXR1c19yZWcgPSBEUlBfRUNDX0VSUk9SX1NUQVRVUzE7CisJcmVnX2RhdGEtPmVy cl9jb3VudF9tYXNrID0gRUNDX0RCX0VSUl9DT1VOVF9NQVNLOworCXJlZ19kYXRhLT5lcnJfd2F5 c19zdGF0dXMgPSBEUlBfRUNDX0VSUk9SX1NUQVRVUzA7CisJcmVnX2RhdGEtPmVycl93YXlzX21h c2sgPSBFQ0NfREJfRVJSX1dBWVNfTUFTSzsKKwlyZWdfZGF0YS0+ZXJyX3dheXNfc2hpZnQgPSBF Q0NfREJfRVJSX1dBWVNfU0hJRlQ7CisKKwkvKiBJbml0aWFsaXplIHJlZ2lzdGVyIGluZm8gZm9y IExMQ0NfVFJBTV9DRSAqLworCXJlZ19kYXRhID0gJmVkYWNfcmVnW0xMQ0NfVFJBTV9DRV07CisJ cmVnX2RhdGEtPmVycl9uYW1lID0gIlRSQU0gU2luZ2xlLWJpdCI7CisJcmVnX2RhdGEtPnJlZ19j bnQgPSBUUlBfU1lOX1JFR19DTlQ7CisJcmVnX2RhdGEtPnN5bmRfcmVnID0gVFJQX0VDQ19TQl9F UlJfU1lOMDsKKwlyZWdfZGF0YS0+ZXJyX3N0YXR1c19yZWcgPSBUUlBfRUNDX0VSUk9SX1NUQVRV UzE7CisJcmVnX2RhdGEtPmVycl9jb3VudF9tYXNrID0gRUNDX1NCX0VSUl9DT1VOVF9NQVNLOwor CXJlZ19kYXRhLT5lcnJfY291bnRfc2hpZnQgPSBFQ0NfU0JfRVJSX0NPVU5UX1NISUZUOworCXJl Z19kYXRhLT5lcnJfd2F5c19zdGF0dXMgPSBUUlBfRUNDX0VSUk9SX1NUQVRVUzA7CisJcmVnX2Rh dGEtPmVycl93YXlzX21hc2sgPSBFQ0NfU0JfRVJSX1dBWVNfTUFTSzsKKworCS8qIEluaXRpYWxp emUgcmVnaXN0ZXIgaW5mbyBmb3IgTExDQ19UUkFNX1VFICovCisJcmVnX2RhdGEgPSAmZWRhY19y ZWdbTExDQ19UUkFNX1VFXTsKKwlyZWdfZGF0YS0+ZXJyX25hbWUgPSAiVFJBTSBEb3VibGUtYml0 IjsKKwlyZWdfZGF0YS0+cmVnX2NudCA9IFRSUF9TWU5fUkVHX0NOVDsKKwlyZWdfZGF0YS0+c3lu ZF9yZWcgPSBUUlBfRUNDX0RCX0VSUl9TWU4wOworCXJlZ19kYXRhLT5lcnJfc3RhdHVzX3JlZyA9 IFRSUF9FQ0NfRVJST1JfU1RBVFVTMTsKKwlyZWdfZGF0YS0+ZXJyX2NvdW50X21hc2sgPSBFQ0Nf REJfRVJSX0NPVU5UX01BU0s7CisJcmVnX2RhdGEtPmVycl93YXlzX3N0YXR1cyA9IFRSUF9FQ0Nf RVJST1JfU1RBVFVTMDsKKwlyZWdfZGF0YS0+ZXJyX3dheXNfbWFzayA9IEVDQ19EQl9FUlJfV0FZ U19NQVNLOworCXJlZ19kYXRhLT5lcnJfd2F5c19zaGlmdCA9IEVDQ19EQl9FUlJfV0FZU19TSElG VDsKK30KKworc3RhdGljIGludCBxY29tX2xsY2NfZWRhY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBsbGNjX2Rydl9kYXRhICpsbGNjX2RyaXZfZGF0YSA9 IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOworCXN0cnVjdCBlZGFjX2RldmljZV9jdGxfaW5mbyAq ZWRldl9jdGw7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlpbnQgZWNjX2ly cTsKKwlpbnQgcmM7CisKKwkvKiBJbml0aWFsaXplIHJlZ2lzdGVyIHNldCBmb3IgdGhlIGVycm9y IHR5cGVzKi8KKwlsbGNjX2RyaXZfZGF0YS0+ZWRhY19yZWcgPSBkZXZtX2tjYWxsb2MoZGV2LCBM TENDX0VSUl9UWVBFX01BWCwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBsbGNjX2VkYWNfcmVnX2RhdGEp LAorCQkJCQlHRlBfS0VSTkVMKTsKKwlsbGNjX2VkYWNfcmVnX2RhdGFfaW5pdChsbGNjX2RyaXZf ZGF0YS0+ZWRhY19yZWcpOworCisJcmMgPSBxY29tX2xsY2NfY29yZV9zZXR1cChsbGNjX2RyaXZf ZGF0YS0+YmNhc3RfcmVnbWFwKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCS8qIEFsbG9j YXRlIGVkYWMgY29udHJvbCBpbmZvICovCisJZWRldl9jdGwgPSBlZGFjX2RldmljZV9hbGxvY19j dGxfaW5mbygwLCAicWNvbS1sbGNjIiwgMSwgImJhbmsiLAorCQkJCQkgICAgICBsbGNjX2RyaXZf ZGF0YS0+bnVtX2JhbmtzLCAxLAorCQkJCQkgICAgICBOVUxMLCAwLAorCQkJCQkgICAgICBlZGFj X2RldmljZV9hbGxvY19pbmRleCgpKTsKKworCWlmICghZWRldl9jdGwpCisJCXJldHVybiAtRU5P TUVNOworCisJZWRldl9jdGwtPmRldiA9IGRldjsKKwllZGV2X2N0bC0+bW9kX25hbWUgPSBkZXZf bmFtZShkZXYpOworCWVkZXZfY3RsLT5kZXZfbmFtZSA9IGRldl9uYW1lKGRldik7CisJZWRldl9j dGwtPmN0bF9uYW1lID0gImxsY2MiOworCWVkZXZfY3RsLT5wYW5pY19vbl91ZSA9IExMQ0NfRVJQ X1BBTklDX09OX1VFOworCWVkZXZfY3RsLT5wdnRfaW5mbyA9IGxsY2NfZHJpdl9kYXRhOworCisJ cmMgPSBlZGFjX2RldmljZV9hZGRfZGV2aWNlKGVkZXZfY3RsKTsKKwlpZiAocmMpCisJCWdvdG8g b3V0X21lbTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGVkZXZfY3RsKTsKKworCS8q IFJlcXVlc3QgZm9yIGVjYyBpcnEgKi8KKwllY2NfaXJxID0gbGxjY19kcml2X2RhdGEtPmVjY19p cnE7CisJaWYgKGVjY19pcnEgPCAwKSB7CisJCXJjID0gLUVOT0RFVjsKKwkJZ290byBvdXRfZGV2 OworCX0KKwlyYyA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCBlY2NfaXJxLCBsbGNjX2VjY19pcnFf aGFuZGxlciwKKwkJCSAgICAgIElSUUZfVFJJR0dFUl9ISUdILCAibGxjY19lY2MiLCBlZGV2X2N0 bCk7CisJaWYgKHJjKQorCQlnb3RvIG91dF9kZXY7CisKKwlyZXR1cm4gcmM7CisKK291dF9kZXY6 CisJZWRhY19kZXZpY2VfZGVsX2RldmljZShlZGV2X2N0bC0+ZGV2KTsKK291dF9tZW06CisJZWRh Y19kZXZpY2VfZnJlZV9jdGxfaW5mbyhlZGV2X2N0bCk7CisKKwlyZXR1cm4gcmM7Cit9CisKK3N0 YXRpYyBpbnQgcWNvbV9sbGNjX2VkYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCit7CisJc3RydWN0IGVkYWNfZGV2aWNlX2N0bF9pbmZvICplZGV2X2N0bCA9IGRldl9nZXRf ZHJ2ZGF0YSgmcGRldi0+ZGV2KTsKKworCWVkYWNfZGV2aWNlX2RlbF9kZXZpY2UoZWRldl9jdGwt PmRldik7CisJZWRhY19kZXZpY2VfZnJlZV9jdGxfaW5mbyhlZGV2X2N0bCk7CisJcGxhdGZvcm1f c2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBvZl9kZXZpY2VfaWQgcWNvbV9sbGNjX2VkYWNfbWF0Y2hfdGFibGVbXSA9IHsKKyNp ZmRlZiBFREFDX1FDT01fTExDQworCXsgLmNvbXBhdGlibGUgPSAicWNvbSxsbGNjLWVkYWMiIH0s CisjZW5kaWYKKwl7IH0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBxY29t X2xsY2NfZWRhY19kcml2ZXIgPSB7CisJLnByb2JlID0gcWNvbV9sbGNjX2VkYWNfcHJvYmUsCisJ LnJlbW92ZSA9IHFjb21fbGxjY19lZGFjX3JlbW92ZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9 ICJxY29tX2xsY2NfZWRhYyIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHFjb21fbGxjY19lZGFjX21h dGNoX3RhYmxlLAorCX0sCit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihxY29tX2xsY2NfZWRh Y19kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlFDT00gRURBQyBkcml2ZXIiKTsKK01P RFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc29jL3Fj b20vbGxjYy1xY29tLmggYi9pbmNsdWRlL2xpbnV4L3NvYy9xY29tL2xsY2MtcWNvbS5oCmluZGV4 IDJlNGIzNGQuLjI1MDk2ZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc29jL3Fjb20vbGxj Yy1xY29tLmgKKysrIGIvaW5jbHVkZS9saW51eC9zb2MvcWNvbS9sbGNjLXFjb20uaApAQCAtODQs NiArODQsNyBAQCBzdHJ1Y3QgbGxjY19kcnZfZGF0YSB7CiAJc3RydWN0IHJlZ21hcCAqcmVnbWFw OwogCXN0cnVjdCByZWdtYXAgKmJjYXN0X3JlZ21hcDsKIAljb25zdCBzdHJ1Y3QgbGxjY19zbGlj ZV9jb25maWcgKmNmZzsKKwlzdHJ1Y3QgbGxjY19lZGFjX3JlZ19kYXRhICplZGFjX3JlZzsKIAlz dHJ1Y3QgbXV0ZXggbG9jazsKIAl1MzIgY2ZnX3NpemU7CiAJdTMyIG1heF9zbGljZXM7CkBAIC05 Myw2ICs5NCwzMCBAQCBzdHJ1Y3QgbGxjY19kcnZfZGF0YSB7CiAJaW50IGVjY19pcnE7CiB9Owog CisvKioKKyAqIGxsY2NfZWRhY19yZWdfZGF0YSAtIGxsY2MgZWRhYyByZWdpc3RlcnMgZGF0YSBm b3IgZWFjaCBlcnJvciB0eXBlCisgKiBAZXJyX25hbWU6IG5hbWUgb2YgdGhlIGVycm9yCisgKiBA cmVnX2NudDogbnVtYmVyIG9mIHJlZ2lzdGVycworICogQHN5bmRfcmVnOiBzeW5kcm9tZSByZWdp c3RlciBhZGRyZXNzCisgKiBAZXJyX3N0YXR1c19yZWc6IFN0YXR1cyByZWdpc3RlciBhZGRyZXNz IHRvIHJlYWQgdGhlIGVycm9yIGNvdW50CisgKiBAZXJyX2NvdW50X21hc2s6IE1hc2sgdmFsdWUg dG8gZ2V0IHRoZSBlcnJvciBjb3VudAorICogQGVycl9jb3VudF9zaGlmdDogU2hpZnQgdmFsdWUg dG8gZ2V0IHRoZSBlcnJvciBjb3VudAorICogQGVycl93YXlzX3N0YXR1czogU3RhdHVzIHJlZ2lz dGVyIGFkZHJlc3MgdG8gcmVhZCBlcnJvciB3YXlzCisgKiBAZXJyX3dheXNfbWFzazogTWFzayB2 YWx1ZSB0byBnZXQgdGhlIGVycm9yIHdheXMKKyAqIEBlcnJfd2F5c19zaGlmdDogU2hpZnQgdmFs dWUgdG8gZ2V0IHRoZSBlcnJvciB3YXlzCisgKi8KK3N0cnVjdCBsbGNjX2VkYWNfcmVnX2RhdGEg eworCWNoYXIgKmVycl9uYW1lOworCWludCByZWdfY250OworCWludCBzeW5kX3JlZzsKKwlpbnQg ZXJyX3N0YXR1c19yZWc7CisJaW50IGVycl9jb3VudF9tYXNrOworCWludCBlcnJfY291bnRfc2hp ZnQ7CisJaW50IGVycl93YXlzX3N0YXR1czsKKwlpbnQgZXJyX3dheXNfbWFzazsKKwlpbnQgZXJy X3dheXNfc2hpZnQ7Cit9OworCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfUUNPTV9MTENDKQogLyoq CiAgKiBsbGNjX3NsaWNlX2dldGQgLSBnZXQgbGxjYyBzbGljZSBkZXNjcmlwdG9yCg==