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: [3/3] ghes_edac: add platform check to enable ghes_edac From: Borislav Petkov Message-Id: <20170718060007.GB8736@nazgul.tnic> Date: Tue, 18 Jul 2017 08:00:07 +0200 To: Toshi Kani , Tony Luck Cc: rjw@rjwysocki.net, mchehab@kernel.org, tglx@linutronix.de, srinivas.pandruvada@linux.intel.com, lenb@kernel.org, linux-acpi@vger.kernel.org, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gTW9uLCBKdWwgMTcsIDIwMTcgYXQgMDM6NTk6MTJQTSAtMDYwMCwgVG9zaGkgS2FuaSB3cm90 ZToKPiBUaGUgZ2hlc19lZGFjIGRyaXZlciB3YXMgaW50cm9kdWNlZCBpbiAyMDEzIFsxXSwgYnV0 IGl0IGhhcyBub3QKPiBiZWVuIGVuYWJsZWQgYnkgYW55IGRpc3RybyB5ZXQuICBUaGlzIGRyaXZl ciBvYnRhaW5zIGVycm9yIGluZm8KPiBmcm9tIGZpcm13YXJlIGludGVyZmFjZXMsIHdoaWNoIGFy ZSBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgb24KPiBtYW55IHBsYXRmb3JtcywgYXMgdGhlIGRy aXZlciBhbHdheXMgZW1pdHMgdGhlIG1lc3NhZ2VzIGJlbG93Ogo+IAo+ICBUaGlzIEVEQUMgZHJp dmVyIHJlbGllcyBvbiBCSU9TIHRvIGVudW1lcmF0ZSBtZW1vcnkgYW5kIGdldCBlcnJvciByZXBv cnRzLgo+ICBVbmZvcnR1bmF0ZWx5LCBub3QgYWxsIEJJT1NlcyByZWZsZWN0IHRoZSBtZW1vcnkg bGF5b3V0IGNvcnJlY3RseQo+ICBTbywgdGhlIGVuZCByZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2 ZXIgdmFyaWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvcgo+ICBJZiB5b3UgZmluZCBpbmNvcnJlY3Qg cmVwb3J0cywgcGxlYXNlIGNvbnRhY3QgeW91ciBoYXJkd2FyZSB2ZW5kb3IKPiAgdG8gY29ycmVj dCBpdHMgQklPUy4KPiAKPiBUbyBnZXQgb3V0IGZyb20gdGhpcyBzaXR1YXRpb24sIGFkZCBhIHBs YXRmb3JtIHR5cGUgY2hlY2sgdG8KPiBzZWxlY3RpdmVseSBlbmFibGUgdGhlIGRyaXZlciBvbiB0 aGUgcGxhdGZvcm1zIHRoYXQgYXJlIGtub3duIHRvCj4gaGF2ZSBwcm9wZXIgZmlybXdhcmUgaW1w bGVtZW50YXRpb24uICBQbGF0Zm9ybSB2ZW5kb3JzIGNhbiBhZGQKPiB0aGVpciBwbGF0Zm9ybXMg dG8gdGhlIGxpc3Qgd2hlbiB0aGV5IHN1cHBvcnQgZ2hlc19lZGFjLgoKU28gbWFpbnRhaW5pbmcg d2hpdGVsaXN0cyBmb3IgdGhpbmdzIGhhcyBhbHdheXMgYmVlbiBhIFBJVEEgYW5kIHdlCnNob3Vs ZCB0cnkgdG8gYXZvaWQgaXQsIGlmIHBvc3NpYmxlLiAoV2UgY2FuIGFsd2F5cyBkbyBpdCBpZiBu b3RoaW5nCnNhbmVyIGNvbWVzIGFsb25nLikKCk5vdywgYmVsb3cgaXMgYSBkaXJ0eSBwYXRjaCBj b252ZXJ0aW5nIGdoZXNfZWRhYyB0byBhIG5vcm1hbCBtb2R1bGUuCk9uIHN5c3RlbXMgd2hlcmUg d2UgaGF2ZSBHSEVTLCB0aGUgZmlybXdhcmUgZ2VuZXJhbGx5IGRpc2FibGVzIHRoZQpkZXRlY3Rp b24gb2YgdGhlIHByZXNlbmNlIG9mIEVDQyBoYXJkd2FyZSwgdGh1cyBwcmV2ZW50aW5nIHRoZSBw bGF0Zm9ybQpFREFDIGRyaXZlciBmcm9tIGxvYWRpbmcuCgpMZXQgbWUgY2xhcmlmeTogSSBoYXZl IGFuIEFNRCBIUCBib3ggd2hpY2gsIHdoZW4gR0hFUyBpcyBlbmFibGVkIGluCnRoZSBCSU9TLCBz YXlzIHRoYXQgRUNDIGlzIGRpc2FibGVkIGluIHRoZSBtZW1vcnkgY29udHJvbGxlciBhbmQgdGhl CmFtZDY0X2VkYWMgZHJpdmVyIGRvZXNuJ3QgbG9hZCBmb3IgdGhhdCBtZW1vcnkgY29udHJvbGxl ci4KCkFuZCBJIHRoaW5rIHdlIHNob3VsZCB0cnkgdGhpcyBmaXJzdDogaGF2ZSB0aGUgZmlybXdh cmUgZGlzYWJsZQpkZXRlY3Rpb24gbWV0aG9kcyBzbyB0aGF0IHRoZSBwbGF0Zm9ybSBkcml2ZXJz IGRvbid0IGxvYWQuCgpUaGVuLCBnaGVzX2VkYWMgY2FuIGJlIGEgc2ltcGxlIG1vZHVsZSBhbmQg bm8gb3RoZXIgZHJpdmVyIHdvdWxkIGF0dGVtcHQKbG9hZGluZy4KClRoZSBxdWVzdGlvbiBpczog ZG9lcyB0aGUgcGxhdGZvcm0gZG8gdGhpcyBkaXNhYmxpbmcgbm93PwoKVG9ueSwgSSdtIGxvb2tp bmcgYXQgc2JfZWRhYyBhbmQgdGhlcmUgd2UgZG9uJ3QgZG8gc29tZXRoaW5nIGxpa2UgdGhhdApv ciBtYXliZSBJJ20gbWlzc2luZyBpdC4KCkhtbW0uCi0tLQpGcm9tOiBCb3Jpc2xhdiBQZXRrb3Yg PGJwQHN1c2UuZGU+CkRhdGU6IFRodSwgMjkgSnVuIDIwMTcgMTA6Mjg6MzIgKzAyMDAKU3ViamVj dDogW1BBVENIXSBXSVAKCk5vdC1TaWduZWQtb2ZmLWJ5OiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1 c2UuZGU+Ci0tLQogZHJpdmVycy9hY3BpL2FwZWkvZ2hlcy5jIHwgIDMyICsrKysrKy0tLS0tCiBk cml2ZXJzL2VkYWMvS2NvbmZpZyAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZWRhYy9lZGFjX21jLmgg ICB8ICAgMyArKwogZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jIHwgMTM3ICsrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2FjcGkvZ2hlcy5oICAg ICAgfCAgMjcgKy0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAx MDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FwZWkvZ2hlcy5jIGIv ZHJpdmVycy9hY3BpL2FwZWkvZ2hlcy5jCmluZGV4IGQ2NjFkNDUyYjIzOC4uMzdjZDY5OGNhY2Qy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYXBlaS9naGVzLmMKKysrIGIvZHJpdmVycy9hY3Bp L2FwZWkvZ2hlcy5jCkBAIC0xNDAsNiArMTQwLDIwIEBAIHN0YXRpYyBhdG9taWNfdCBnaGVzX2Vz dGF0dXNfY2FjaGVfYWxsb2NlZDsKIAogc3RhdGljIGludCBnaGVzX3BhbmljX3RpbWVvdXQgX19y ZWFkX21vc3RseSA9IDMwOwogCitzdGF0aWMgQVRPTUlDX05PVElGSUVSX0hFQUQoZ2hlc19lZGFj X2NoYWluKTsKKwordm9pZCBnaGVzX3JlZ2lzdGVyX2VkYWNfY2hhaW4oc3RydWN0IG5vdGlmaWVy X2Jsb2NrICpuYikKK3sKKwlhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoJmdoZXNfZWRh Y19jaGFpbiwgbmIpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19yZWdpc3Rlcl9lZGFjX2No YWluKTsKKwordm9pZCBnaGVzX3VucmVnaXN0ZXJfZWRhY19jaGFpbihzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKm5iKQoreworCWF0b21pY19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCZnaGVzX2Vk YWNfY2hhaW4sIG5iKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdoZXNfdW5yZWdpc3Rlcl9lZGFj X2NoYWluKTsKKwogc3RhdGljIGludCBnaGVzX2lvcmVtYXBfaW5pdCh2b2lkKQogewogCWdoZXNf aW9yZW1hcF9hcmVhID0gX19nZXRfdm1fYXJlYShQQUdFX1NJWkUgKiBHSEVTX0lPUkVNQVBfUEFH RVMsCkBAIC00NjEsMTEgKzQ3NSwxMSBAQCBzdGF0aWMgdm9pZCBnaGVzX2hhbmRsZV9tZW1vcnlf ZmFpbHVyZShzdHJ1Y3QgYWNwaV9oZXN0X2dlbmVyaWNfZGF0YSAqZ2RhdGEsIGludAogc3RhdGlj IHZvaWQgZ2hlc19kb19wcm9jKHN0cnVjdCBnaGVzICpnaGVzLAogCQkJIGNvbnN0IHN0cnVjdCBh Y3BpX2hlc3RfZ2VuZXJpY19zdGF0dXMgKmVzdGF0dXMpCiB7Ci0JaW50IHNldiwgc2VjX3NldjsK IAlzdHJ1Y3QgYWNwaV9oZXN0X2dlbmVyaWNfZGF0YSAqZ2RhdGE7CiAJZ3VpZF90ICpzZWNfdHlw ZTsKIAlndWlkX3QgKmZydV9pZCA9ICZOVUxMX1VVSURfTEU7CiAJY2hhciAqZnJ1X3RleHQgPSAi IjsKKwlpbnQgc2V2LCBzZWNfc2V2OwogCiAJc2V2ID0gZ2hlc19zZXZlcml0eShlc3RhdHVzLT5l cnJvcl9zZXZlcml0eSk7CiAJYXBlaV9lc3RhdHVzX2Zvcl9lYWNoX3NlY3Rpb24oZXN0YXR1cywg Z2RhdGEpIHsKQEAgLTQ4MCw3ICs0OTQsOCBAQCBzdGF0aWMgdm9pZCBnaGVzX2RvX3Byb2Moc3Ry dWN0IGdoZXMgKmdoZXMsCiAJCWlmIChndWlkX2VxdWFsKHNlY190eXBlLCAmQ1BFUl9TRUNfUExB VEZPUk1fTUVNKSkgewogCQkJc3RydWN0IGNwZXJfc2VjX21lbV9lcnIgKm1lbV9lcnIgPSBhY3Bp X2hlc3RfZ2V0X3BheWxvYWQoZ2RhdGEpOwogCi0JCQlnaGVzX2VkYWNfcmVwb3J0X21lbV9lcnJv cihnaGVzLCBzZXYsIG1lbV9lcnIpOworCisJCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigm Z2hlc19lZGFjX2NoYWluLCBzZXYsICZtZW1fZXJyKTsKIAogCQkJYXJjaF9hcGVpX3JlcG9ydF9t ZW1fZXJyb3Ioc2V2LCBtZW1fZXJyKTsKIAkJCWdoZXNfaGFuZGxlX21lbW9yeV9mYWlsdXJlKGdk YXRhLCBzZXYpOwpAQCAtMTEzOSwxMCArMTE1NCw2IEBAIHN0YXRpYyBpbnQgZ2hlc19wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpnaGVzX2RldikKIAkJZ290byBlcnI7CiAJfQogCi0JcmMg PSBnaGVzX2VkYWNfcmVnaXN0ZXIoZ2hlcywgJmdoZXNfZGV2LT5kZXYpOwotCWlmIChyYyA8IDAp Ci0JCWdvdG8gZXJyOwotCiAJc3dpdGNoIChnZW5lcmljLT5ub3RpZnkudHlwZSkgewogCWNhc2Ug QUNQSV9IRVNUX05PVElGWV9QT0xMRUQ6CiAJCXNldHVwX2RlZmVycmFibGVfdGltZXIoJmdoZXMt PnRpbWVyLCBnaGVzX3BvbGxfZnVuYywKQEAgLTExNTUsMTMgKzExNjYsMTMgQEAgc3RhdGljIGlu dCBnaGVzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmdoZXNfZGV2KQogCQlpZiAocmMp IHsKIAkJCXByX2VycihHSEVTX1BGWCAiRmFpbGVkIHRvIG1hcCBHU0kgdG8gSVJRIGZvciBnZW5l cmljIGhhcmR3YXJlIGVycm9yIHNvdXJjZTogJWRcbiIsCiAJCQkgICAgICAgZ2VuZXJpYy0+aGVh ZGVyLnNvdXJjZV9pZCk7Ci0JCQlnb3RvIGVycl9lZGFjX3VucmVnOworCQkJZ290byBlcnI7CiAJ CX0KIAkJcmMgPSByZXF1ZXN0X2lycShnaGVzLT5pcnEsIGdoZXNfaXJxX2Z1bmMsIDAsICJHSEVT IElSUSIsIGdoZXMpOwogCQlpZiAocmMpIHsKIAkJCXByX2VycihHSEVTX1BGWCAiRmFpbGVkIHRv IHJlZ2lzdGVyIElSUSBmb3IgZ2VuZXJpYyBoYXJkd2FyZSBlcnJvciBzb3VyY2U6ICVkXG4iLAog CQkJICAgICAgIGdlbmVyaWMtPmhlYWRlci5zb3VyY2VfaWQpOwotCQkJZ290byBlcnJfZWRhY191 bnJlZzsKKwkJCWdvdG8gZXJyOwogCQl9CiAJCWJyZWFrOwogCkBAIC0xMTkwLDggKzEyMDEsNyBA QCBzdGF0aWMgaW50IGdoZXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZ2hlc19kZXYp CiAJZ2hlc19wcm9jKGdoZXMpOwogCiAJcmV0dXJuIDA7Ci1lcnJfZWRhY191bnJlZzoKLQlnaGVz X2VkYWNfdW5yZWdpc3RlcihnaGVzKTsKKwogZXJyOgogCWlmIChnaGVzKSB7CiAJCWdoZXNfZmlu aShnaGVzKTsKQEAgLTEyNDEsOCArMTI1MSw2IEBAIHN0YXRpYyBpbnQgZ2hlc19yZW1vdmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqZ2hlc19kZXYpCiAKIAlnaGVzX2ZpbmkoZ2hlcyk7CiAKLQln aGVzX2VkYWNfdW5yZWdpc3RlcihnaGVzKTsKLQogCWtmcmVlKGdoZXMpOwogCiAJcGxhdGZvcm1f c2V0X2RydmRhdGEoZ2hlc19kZXYsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL0tj b25maWcgYi9kcml2ZXJzL2VkYWMvS2NvbmZpZwppbmRleCA5NmFmYjJhZWVkMTguLmZkZDgyNzhj YTg5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL0tjb25maWcKKysrIGIvZHJpdmVycy9lZGFj L0tjb25maWcKQEAgLTUzLDggKzUzLDggQEAgY29uZmlnIEVEQUNfREVDT0RFX01DRQogCSAgaGFz IGJlZW4gaW5pdGlhbGl6ZWQuCiAKIGNvbmZpZyBFREFDX0dIRVMKLQlib29sICJPdXRwdXQgQUNQ SSBBUEVJL0dIRVMgQklPUyBkZXRlY3RlZCBlcnJvcnMgdmlhIEVEQUMiCi0JZGVwZW5kcyBvbiBB Q1BJX0FQRUlfR0hFUyAmJiAoRURBQz15KQorCXRyaXN0YXRlICJPdXRwdXQgQUNQSSBBUEVJL0dI RVMgQklPUyBkZXRlY3RlZCBlcnJvcnMgdmlhIEVEQUMiCisJZGVwZW5kcyBvbiBBQ1BJX0FQRUlf R0hFUwogCWhlbHAKIAkgIE5vdCBhbGwgbWFjaGluZXMgc3VwcG9ydCBoYXJkd2FyZS1kcml2ZW4g ZXJyb3IgcmVwb3J0LiBTb21lIG9mIHRob3NlCiAJICBwcm92aWRlIGEgQklPUy1kcml2ZW4gZXJy b3IgcmVwb3J0IG1lY2hhbmlzbSB2aWEgQUNQSSwgdXNpbmcgdGhlCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2VkYWMvZWRhY19tYy5oIGIvZHJpdmVycy9lZGFjL2VkYWNfbWMuaAppbmRleCA1MzU3ODAw ZTQxOGQuLjZkNDZmMzBkYzY1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL2VkYWNfbWMuaAor KysgYi9kcml2ZXJzL2VkYWMvZWRhY19tYy5oCkBAIC02MCw2ICs2MCw5IEBACiAjZGVmaW5lIGVk YWNfcGNpX3ByaW50ayhjdGwsIGxldmVsLCBmbXQsIGFyZy4uLikgXAogCXByaW50ayhsZXZlbCAi RURBQyBQQ0klZDogIiBmbXQsIGN0bC0+cGNpX2lkeCwgIyNhcmcpCiAKKyNkZWZpbmUgZWRhY19w cl9lcnIoZm10LCBhcmcuLi4pCWVkYWNfcHJpbnRrKEtFUk5fRVJSLCAiIiwgZm10LCAjI2FyZykK KyNkZWZpbmUgZWRhY19wcl9pbmZvKGZtdCwgYXJnLi4uKQllZGFjX3ByaW50ayhLRVJOX0lORk8s ICIiLCBmbXQsICMjYXJnKQorCiAvKiBwcmVmaXhlcyBmb3IgZWRhY19wcmludGsoKSBhbmQgZWRh Y19tY19wcmludGsoKSAqLwogI2RlZmluZSBFREFDX01DICJNQyIKICNkZWZpbmUgRURBQ19QQ0kg IlBDSSIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMuYyBiL2RyaXZlcnMvZWRh Yy9naGVzX2VkYWMuYwppbmRleCA0ZTYxYTYyMjlkZDIuLjIwZmFmYzU1ZWIyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jCisrKyBiL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMu YwpAQCAtNSw2ICs1LDkgQEAKICAqIExpY2Vuc2UgdmVyc2lvbiAyLgogICoKICAqIENvcHlyaWdo dCAoYykgMjAxMyBieSBNYXVybyBDYXJ2YWxobyBDaGVoYWIKKyAqCSAgICAgKGMpIDIwMTcgQm9y aXNsYXYgUGV0a292CisgKgorICogQm9yaXNsYXYgUGV0a292OiB0dXJuIGl0IGludG8gYSBwcm9w ZXIgbW9kdWxlLgogICoKICAqIFJlZCBIYXQgSW5jLiBodHRwOi8vd3d3LnJlZGhhdC5jb20KICAq LwpAQCAtMTcsNyArMjAsMTQgQEAKICNpbmNsdWRlICJlZGFjX21vZHVsZS5oIgogI2luY2x1ZGUg PHJhcy9yYXNfZXZlbnQuaD4KIAotI2RlZmluZSBHSEVTX0VEQUNfUkVWSVNJT04gIiBWZXI6IDEu MC4wIgorI2RlZmluZSBHSEVTX0VEQUNfUkVWSVNJT04gIiBWZXI6IDIuMC4wIgorCisvKgorICog SGFuZCBpdCBpbnRvIEVEQUMncyBjb3JlIHNvIHRoYXQgd2UgaGF2ZSBhIGRldmljZSB0byBvcGVy YXRlIG9uLgorICovCitzdGF0aWMgc3RydWN0IGRldmljZSBkdW1teV9kZXY7CisKK3N0cnVjdCBn aGVzX2VkYWNfcHZ0ICpnaGVzX3B2dDsKIAogc3RydWN0IGdoZXNfZWRhY19wdnQgewogCXN0cnVj dCBsaXN0X2hlYWQgbGlzdDsKQEAgLTMwLDExICs0MCw2IEBAIHN0cnVjdCBnaGVzX2VkYWNfcHZ0 IHsKIAljaGFyIG1zZ1s4MF07CiB9OwogCi1zdGF0aWMgTElTVF9IRUFEKGdoZXNfcmVnbGlzdCk7 Ci1zdGF0aWMgREVGSU5FX01VVEVYKGdoZXNfZWRhY19sb2NrKTsKLXN0YXRpYyBpbnQgZ2hlc19l ZGFjX21jX251bTsKLQotCiAvKiBNZW1vcnkgRGV2aWNlIC0gVHlwZSAxNyBvZiBTTUJJT1Mgc3Bl YyAqLwogc3RydWN0IG1lbWRldl9kbWlfZW50cnkgewogCXU4IHR5cGU7CkBAIC0xNjUsMjQgKzE3 MCwyMSBAQCBzdGF0aWMgdm9pZCBnaGVzX2VkYWNfZG1pZGVjb2RlKGNvbnN0IHN0cnVjdCBkbWlf aGVhZGVyICpkaCwgdm9pZCAqYXJnKQogCX0KIH0KIAotdm9pZCBnaGVzX2VkYWNfcmVwb3J0X21l bV9lcnJvcihzdHJ1Y3QgZ2hlcyAqZ2hlcywgaW50IHNldiwKLQkJCQlzdHJ1Y3QgY3Blcl9zZWNf bWVtX2VyciAqbWVtX2VycikKK3N0YXRpYyBpbnQgcmVwb3J0X21lbV9lcnJvcihzdHJ1Y3Qgbm90 aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHNldiwgdm9pZCAqZGF0YSkKIHsKKwlzdHJ1 Y3QgY3Blcl9zZWNfbWVtX2VyciAqbWVtX2VyciA9IGRhdGE7CiAJZW51bSBod19ldmVudF9tY19l cnJfdHlwZSB0eXBlOwogCXN0cnVjdCBlZGFjX3Jhd19lcnJvcl9kZXNjICplOwogCXN0cnVjdCBt ZW1fY3RsX2luZm8gKm1jaTsKLQlzdHJ1Y3QgZ2hlc19lZGFjX3B2dCAqcHZ0ID0gTlVMTDsKLQlj aGFyICpwOworCXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQgPSBnaGVzX3B2dDsKIAl1OCBncmFp bl9iaXRzOworCWNoYXIgKnA7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHB2dCwgJmdoZXNfcmVn bGlzdCwgbGlzdCkgewotCQlpZiAoZ2hlcyA9PSBwdnQtPmdoZXMpCi0JCQlicmVhazsKLQl9CiAJ aWYgKCFwdnQpIHsKLQkJcHJfZXJyKCJJbnRlcm5hbCBlcnJvcjogQ2FuJ3QgZmluZCBFREFDIHN0 cnVjdHVyZVxuIik7Ci0JCXJldHVybjsKKwkJZWRhY19wcl9lcnIoIkludGVybmFsIGVycm9yOiBD YW4ndCBmaW5kIEVEQUMgc3RydWN0dXJlXG4iKTsKKwkJcmV0dXJuIE5PVElGWV9ET05FOwogCX0K KwogCW1jaSA9IHB2dC0+bWNpOwogCWUgPSAmbWNpLT5lcnJvcl9kZXNjOwogCkBAIC00MDIsMjMg KzQwNCw0MCBAQCB2b2lkIGdoZXNfZWRhY19yZXBvcnRfbWVtX2Vycm9yKHN0cnVjdCBnaGVzICpn aGVzLCBpbnQgc2V2LAogCiAJLyogUmVwb3J0IHRoZSBlcnJvciB2aWEgRURBQyBBUEkgKi8KIAll ZGFjX3Jhd19tY19oYW5kbGVfZXJyb3IodHlwZSwgbWNpLCBlKTsKKworCXJldHVybiBOT1RJRllf RE9ORTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKGdoZXNfZWRhY19yZXBvcnRfbWVtX2Vycm9yKTsK IAotaW50IGdoZXNfZWRhY19yZWdpc3RlcihzdHJ1Y3QgZ2hlcyAqZ2hlcywgc3RydWN0IGRldmlj ZSAqZGV2KQorc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBnaGVzX25iID0geworCS5ub3Rp Zmllcl9jYWxsICA9IHJlcG9ydF9tZW1fZXJyb3IsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGZha2VfbXNnID0KKyJUaGlzIEVEQUMgZHJpdmVyIHJlbGllcyBvbiBCSU9TIHRvIGVu dW1lcmF0ZSBtZW1vcnkgYW5kIGdldCBlcnJvciByZXBvcnRzLlxuIgorIlVuZm9ydHVuYXRlbHks IG5vdCBhbGwgQklPU2VzIHJlZmxlY3QgdGhlIG1lbW9yeSBsYXlvdXQgY29ycmVjdGx5LlxuIgor IlNvLCB0aGUgZW5kIHJlc3VsdCBvZiB1c2luZyB0aGlzIGRyaXZlciB2YXJpZXMgZnJvbSB2ZW5k b3IgdG8gdmVuZG9yLlxuIgorIklmIHlvdSBmaW5kIGluY29ycmVjdCByZXBvcnRzLCBwbGVhc2Ug Y29udGFjdCB5b3VyIGhhcmR3YXJlIHZlbmRvclxuIgorInRvIGNvcnJlY3QgaXRzIEJJT1MuIjsK Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzdXBlcl9jcmFwX21zZyA9CisiVGhpcyBzeXN0 ZW0gaGFzIGEgdmVyeSBjcmFwcHkgQklPUzogSXQgZG9lc24ndCBldmVuIGxpc3QgdGhlIERJTU1T LlxuIgorIkl0cyBTTUJJT1MgaW5mbyBpcyB3cm9uZy4gSXQgaXMgZG91YnRmdWwgdGhhdCB0aGUg ZXJyb3IgcmVwb3J0IHdvdWxkXG4iCisid29yayBvbiBzdWNoIHN5c3RlbS4gVXNlIHRoaXMgZHJp dmVyIHdpdGggY2F1dGlvbi4iOworCitzdGF0aWMgaW50IF9faW5pdCBnaGVzX2VkYWNfcmVnaXN0 ZXIodm9pZCkKIHsKKwlzdHJ1Y3QgZ2hlc19lZGFjX3B2dCAqcHZ0ID0gZ2hlc19wdnQ7CiAJYm9v bCBmYWtlID0gZmFsc2U7CiAJaW50IHJjLCBudW1fZGltbSA9IDA7CiAJc3RydWN0IG1lbV9jdGxf aW5mbyAqbWNpOwogCXN0cnVjdCBlZGFjX21jX2xheWVyIGxheWVyc1sxXTsKLQlzdHJ1Y3QgZ2hl c19lZGFjX3B2dCAqcHZ0OwogCXN0cnVjdCBnaGVzX2VkYWNfZGltbV9maWxsIGRpbW1fZmlsbDsK IAogCS8qIEdldCB0aGUgbnVtYmVyIG9mIERJTU1zICovCiAJZG1pX3dhbGsoZ2hlc19lZGFjX2Nv dW50X2RpbW1zLCAmbnVtX2RpbW0pOwogCiAJLyogQ2hlY2sgaWYgd2UndmUgZ290IGEgYm9ndXMg QklPUyAqLwotCWlmIChudW1fZGltbSA9PSAwKSB7CisJaWYgKCFudW1fZGltbSkgewogCQlmYWtl ID0gdHJ1ZTsKIAkJbnVtX2RpbW0gPSAxOwogCX0KQEAgLTQzMSwyMSArNDUwLDE3IEBAIGludCBn aGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikK IAkgKiBXZSBuZWVkIHRvIHNlcmlhbGl6ZSBlZGFjX21jX2FsbG9jKCkgYW5kIGVkYWNfbWNfYWRk X21jKCksCiAJICogdG8gYXZvaWQgZHVwbGljYXRlZCBtZW1vcnkgY29udHJvbGxlciBudW1iZXJz CiAJICovCi0JbXV0ZXhfbG9jaygmZ2hlc19lZGFjX2xvY2spOwotCW1jaSA9IGVkYWNfbWNfYWxs b2MoZ2hlc19lZGFjX21jX251bSwgQVJSQVlfU0laRShsYXllcnMpLCBsYXllcnMsCi0JCQkgICAg c2l6ZW9mKCpwdnQpKTsKKwltY2kgPSBlZGFjX21jX2FsbG9jKDEsIEFSUkFZX1NJWkUobGF5ZXJz KSwgbGF5ZXJzLCBzaXplb2YoKnB2dCkpOwogCWlmICghbWNpKSB7Ci0JCXByX2luZm8oIkNhbid0 IGFsbG9jYXRlIG1lbW9yeSBmb3IgRURBQyBkYXRhXG4iKTsKLQkJbXV0ZXhfdW5sb2NrKCZnaGVz X2VkYWNfbG9jayk7CisJCWVkYWNfcHJfZXJyKCJDYW4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIEVE QUMgZGF0YVxuIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCXB2dCA9IG1jaS0+cHZ0X2lu Zm87CiAJbWVtc2V0KHB2dCwgMCwgc2l6ZW9mKCpwdnQpKTsKLQlsaXN0X2FkZF90YWlsKCZwdnQt Pmxpc3QsICZnaGVzX3JlZ2xpc3QpOwotCXB2dC0+Z2hlcyA9IGdoZXM7CiAJcHZ0LT5tY2kgID0g bWNpOwotCW1jaS0+cGRldiA9IGRldjsKKworCW1jaS0+cGRldiA9ICZkdW1teV9kZXY7CiAKIAlt Y2ktPm10eXBlX2NhcCA9IE1FTV9GTEFHX0VNUFRZOwogCW1jaS0+ZWRhY19jdGxfY2FwID0gRURB Q19GTEFHX05PTkU7CkBAIC00NTUsMjEgKzQ3MCwxMiBAQCBpbnQgZ2hlc19lZGFjX3JlZ2lzdGVy KHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJbWNpLT5jdGxfbmFtZSA9 ICJnaGVzX2VkYWMiOwogCW1jaS0+ZGV2X25hbWUgPSAiZ2hlcyI7CiAKLQlpZiAoIWdoZXNfZWRh Y19tY19udW0pIHsKLQkJaWYgKCFmYWtlKSB7Ci0JCQlwcl9pbmZvKCJUaGlzIEVEQUMgZHJpdmVy IHJlbGllcyBvbiBCSU9TIHRvIGVudW1lcmF0ZSBtZW1vcnkgYW5kIGdldCBlcnJvciByZXBvcnRz LlxuIik7Ci0JCQlwcl9pbmZvKCJVbmZvcnR1bmF0ZWx5LCBub3QgYWxsIEJJT1NlcyByZWZsZWN0 IHRoZSBtZW1vcnkgbGF5b3V0IGNvcnJlY3RseS5cbiIpOwotCQkJcHJfaW5mbygiU28sIHRoZSBl bmQgcmVzdWx0IG9mIHVzaW5nIHRoaXMgZHJpdmVyIHZhcmllcyBmcm9tIHZlbmRvciB0byB2ZW5k b3IuXG4iKTsKLQkJCXByX2luZm8oIklmIHlvdSBmaW5kIGluY29ycmVjdCByZXBvcnRzLCBwbGVh c2UgY29udGFjdCB5b3VyIGhhcmR3YXJlIHZlbmRvclxuIik7Ci0JCQlwcl9pbmZvKCJ0byBjb3Jy ZWN0IGl0cyBCSU9TLlxuIik7Ci0JCQlwcl9pbmZvKCJUaGlzIHN5c3RlbSBoYXMgJWQgRElNTSBz b2NrZXRzLlxuIiwKLQkJCQludW1fZGltbSk7Ci0JCX0gZWxzZSB7Ci0JCQlwcl9pbmZvKCJUaGlz IHN5c3RlbSBoYXMgYSB2ZXJ5IGNyYXBweSBCSU9TOiBJdCBkb2Vzbid0IGV2ZW4gbGlzdCB0aGUg RElNTVMuXG4iKTsKLQkJCXByX2luZm8oIkl0cyBTTUJJT1MgaW5mbyBpcyB3cm9uZy4gSXQgaXMg ZG91YnRmdWwgdGhhdCB0aGUgZXJyb3IgcmVwb3J0IHdvdWxkXG4iKTsKLQkJCXByX2luZm8oIndv cmsgb24gc3VjaCBzeXN0ZW0uIFVzZSB0aGlzIGRyaXZlciB3aXRoIGNhdXRpb25cbiIpOwotCQl9 Ci0JfQorCWlmICghZmFrZSkKKwkJZWRhY19wcl9pbmZvKCIlc1xuIiwgZmFrZV9tc2cpOworCWVs c2UKKwkJZWRhY19wcl9pbmZvKCIlc1xuIiwgc3VwZXJfY3JhcF9tc2cpOworCisJZWRhY19wcl9p bmZvKCJUaGlzIHN5c3RlbSBoYXMgJWQgRElNTSBzb2NrZXRzLlxuIiwgbnVtX2RpbW0pOwogCiAJ aWYgKCFmYWtlKSB7CiAJCS8qCkBAIC00NzgsMTMgKzQ4NCwxMSBAQCBpbnQgZ2hlc19lZGFjX3Jl Z2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCSAqIEtlZXAg aXQgaW4gYmxhbmsgZm9yIHRoZSBvdGhlciBtZW1vcnkgY29udHJvbGxlcnMsIGFzCiAJCSAqIHRo ZXJlJ3Mgbm8gcmVsaWFibGUgd2F5IHRvIHByb3Blcmx5IGNyZWRpdCBlYWNoIERJTU0gdG8KIAkJ ICogdGhlIG1lbW9yeSBjb250cm9sbGVyLCBhcyBkaWZmZXJlbnQgQklPU2VzIGZpbGwgdGhlCi0J CSAqIERNSSBiYW5rIGxvY2F0aW9uIGZpZWxkcyBvbiBkaWZmZXJlbnQgd2F5cworCQkgKiBETUkg YmFuayBsb2NhdGlvbiBmaWVsZHMgaW4gZGlmZmVyZW50IHdheXMuCiAJCSAqLwotCQlpZiAoIWdo ZXNfZWRhY19tY19udW0pIHsKLQkJCWRpbW1fZmlsbC5jb3VudCA9IDA7Ci0JCQlkaW1tX2ZpbGwu bWNpID0gbWNpOwotCQkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmlsbCk7 Ci0JCX0KKwkJZGltbV9maWxsLmNvdW50ID0gMDsKKwkJZGltbV9maWxsLm1jaSA9IG1jaTsKKwkJ ZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmlsbCk7CiAJfSBlbHNlIHsKIAkJ c3RydWN0IGRpbW1faW5mbyAqZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ ZGltbXMsCiAJCQkJCQkgICAgICAgbWNpLT5uX2xheWVycywgMCwgMCwgMCk7CkBAIC00OTgsMzAg KzUwMiwzMSBAQCBpbnQgZ2hlc19lZGFjX3JlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1 Y3QgZGV2aWNlICpkZXYpCiAKIAlyYyA9IGVkYWNfbWNfYWRkX21jKG1jaSk7CiAJaWYgKHJjIDwg MCkgewotCQlwcl9pbmZvKCJDYW4ndCByZWdpc3RlciBhdCBFREFDIGNvcmVcbiIpOworCQllZGFj X3ByX2VycigiQ2FuJ3QgcmVnaXN0ZXIgd2l0aCBFREFDIGNvcmVcbiIpOwogCQllZGFjX21jX2Zy ZWUobWNpKTsKLQkJbXV0ZXhfdW5sb2NrKCZnaGVzX2VkYWNfbG9jayk7CiAJCXJldHVybiAtRU5P REVWOwogCX0KIAotCWdoZXNfZWRhY19tY19udW0rKzsKLQltdXRleF91bmxvY2soJmdoZXNfZWRh Y19sb2NrKTsKKwlnaGVzX3JlZ2lzdGVyX2VkYWNfY2hhaW4oJmdoZXNfbmIpOworCiAJcmV0dXJu IDA7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChnaGVzX2VkYWNfcmVnaXN0ZXIpOworbW9kdWxlX2lu aXQoZ2hlc19lZGFjX3JlZ2lzdGVyKTsKIAotdm9pZCBnaGVzX2VkYWNfdW5yZWdpc3RlcihzdHJ1 Y3QgZ2hlcyAqZ2hlcykKK3N0YXRpYyB2b2lkIF9fZXhpdCBnaGVzX2VkYWNfdW5yZWdpc3Rlcih2 b2lkKQogewogCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaTsKLQlzdHJ1Y3QgZ2hlc19lZGFjX3B2 dCAqcHZ0LCAqdG1wOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB2dCwgdG1wLCAmZ2hl c19yZWdsaXN0LCBsaXN0KSB7Ci0JCWlmIChnaGVzID09IHB2dC0+Z2hlcykgewotCQkJbWNpID0g cHZ0LT5tY2k7Ci0JCQllZGFjX21jX2RlbF9tYyhtY2ktPnBkZXYpOwotCQkJZWRhY19tY19mcmVl KG1jaSk7Ci0JCQlsaXN0X2RlbCgmcHZ0LT5saXN0KTsKLQkJfQotCX0KKworCWdoZXNfdW5yZWdp c3Rlcl9lZGFjX2NoYWluKCZnaGVzX25iKTsKKworCW1jaSA9IGZpbmRfbWNpX2J5X2RldigmZHVt bXlfZGV2KTsKKwlXQVJOX09OKCFtY2kpOworCisJZWRhY19tY19kZWxfbWMobWNpLT5wZGV2KTsK KwllZGFjX21jX2ZyZWUobWNpKTsKKwogfQotRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3Vu cmVnaXN0ZXIpOworbW9kdWxlX2V4aXQoZ2hlc19lZGFjX3VucmVnaXN0ZXIpOworCitNT0RVTEVf TElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkdIRVMgZXJyb3IgZGVjb2Rpbmcg bW9kdWxlIC0gIiBHSEVTX0VEQUNfUkVWSVNJT04pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hY3Bp L2doZXMuaCBiL2luY2x1ZGUvYWNwaS9naGVzLmgKaW5kZXggOWYyNmUwMTE4NmFlLi5jMDJiOGVi OTFiZDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYWNwaS9naGVzLmgKKysrIGIvaW5jbHVkZS9hY3Bp L2doZXMuaApAQCAtNTEsMzEgKzUxLDggQEAgZW51bSB7CiAJR0hFU19TRVZfUEFOSUMgPSAweDMs CiB9OwogCi0vKiBGcm9tIGRyaXZlcnMvZWRhYy9naGVzX2VkYWMuYyAqLwotCi0jaWZkZWYgQ09O RklHX0VEQUNfR0hFUwotdm9pZCBnaGVzX2VkYWNfcmVwb3J0X21lbV9lcnJvcihzdHJ1Y3QgZ2hl cyAqZ2hlcywgaW50IHNldiwKLQkJCQlzdHJ1Y3QgY3Blcl9zZWNfbWVtX2VyciAqbWVtX2Vycik7 Ci0KLWludCBnaGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZp Y2UgKmRldik7Ci0KLXZvaWQgZ2hlc19lZGFjX3VucmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMp OwotCi0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGdoZXNfZWRhY19yZXBvcnRfbWVtX2Vycm9y KHN0cnVjdCBnaGVzICpnaGVzLCBpbnQgc2V2LAotCQkJCSAgICAgICBzdHJ1Y3QgY3Blcl9zZWNf bWVtX2VyciAqbWVtX2VycikKLXsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZ2hlc19lZGFjX3Jl Z2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JcmV0dXJu IDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBnaGVzX2VkYWNfdW5yZWdpc3RlcihzdHJ1Y3Qg Z2hlcyAqZ2hlcykKLXsKLX0KLSNlbmRpZgordm9pZCBnaGVzX3JlZ2lzdGVyX2VkYWNfY2hhaW4o c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7Cit2b2lkIGdoZXNfdW5yZWdpc3Rlcl9lZGFjX2No YWluKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwogCiBzdGF0aWMgaW5saW5lIGludCBhY3Bp X2hlc3RfZ2V0X3ZlcnNpb24oc3RydWN0IGFjcGlfaGVzdF9nZW5lcmljX2RhdGEgKmdkYXRhKQog ewo=