From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 03/27] ARM: GICv3 ITS: allocate device and collection table Date: Thu, 16 Mar 2017 11:20:06 +0000 Message-ID: <20170316112030.20419-4-andre.przywara@arm.com> References: <20170316112030.20419-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1coTQj-0007V0-Uq for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:18:54 +0000 In-Reply-To: <20170316112030.20419-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org RWFjaCBJVFMgbWFwcyBhIHBhaXIgb2YgYSBEZXZpY2VJRCAoZm9yIGluc3RhbmNlIGRlcml2ZWQg ZnJvbSBhIFBDSQpiL2QvZiB0cmlwbGV0KSBhbmQgYW4gRXZlbnRJRCAodGhlIE1TSSBwYXlsb2Fk IG9yIGludGVycnVwdCBJRCkgdG8gYQpwYWlyIG9mIExQSSBudW1iZXIgYW5kIGNvbGxlY3Rpb24g SUQsIHdoaWNoIHBvaW50cyB0byB0aGUgdGFyZ2V0IENQVS4KVGhpcyBtYXBwaW5nIGlzIHN0b3Jl ZCBpbiB0aGUgZGV2aWNlIGFuZCBjb2xsZWN0aW9uIHRhYmxlcywgd2hpY2ggc29mdHdhcmUKaGFz IHRvIHByb3ZpZGUgZm9yIHRoZSBJVFMgdG8gdXNlLgpBbGxvY2F0ZSB0aGUgcmVxdWlyZWQgbWVt b3J5IGFuZCBoYW5kIGl0IHRvIHRoZSBJVFMuClRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXZpY2Vz IGlzIGxpbWl0ZWQgdG8gYSBjb21waWxlLXRpbWUgY29uc3RhbnQKZXhwb3NlZCBpbiBLY29uZmln LgoKU2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+ Ci0tLQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gfCAgIDggKysKIHhlbi9h cmNoL2FybS9LY29uZmlnICAgICAgICAgICAgICAgIHwgIDE0ICsrKysKIHhlbi9hcmNoL2FybS9n aWMtdjMtaXRzLmMgICAgICAgICAgIHwgMTYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogeGVuL2FyY2gvYXJtL2dpYy12My5jICAgICAgICAgICAgICAgfCAgIDMgKwogeGVu L2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmggICAgfCAgNjMgKysrKysrKysrKysrKy0KIDUg ZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCmluZGV4IDYxOTAxNmQuLjA2OGQxMTYgMTAwNjQ0Ci0tLSBh L2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0xMTU4LDYgKzExNTgsMTQgQEAgYmFzZWQgaW50ZXJy dXB0cy4gQW55IGhpZ2hlciBJUlFzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciB1c2UgdmlhIFBDSSBN U0kuCiAjIyMgbWF4Y3B1cwogPiBgPSA8aW50ZWdlcj5gCiAKKyMjIyBtYXhcX2l0c1xfZGV2aWNl XF9iaXRzCis+IGA9IDxpbnRlZ2VyPmAKKworU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBkZXZpY2VzIHVzaW5nIE1TSXMgb24gdGhlIEFSTSBHSUN2MyBJVFMKK2NvbnRyb2xsZXIgdG8g YWxsb2NhdGUgdGFibGUgZW50cmllcyBmb3IuIEVhY2ggdGFibGUgZW50cnkgdXNlcyBhIGhhcmR3 YXJlCitzcGVjaWZpYyBzaXplLCB0eXBpY2FsbHkgOCBvciAxNiBieXRlcy4KK0RlZmF1bHRzIHRv IDEwIGJpdHMgKHRvIGNvdmVyIGF0IG1vc3QgMTAyNCBkZXZpY2VzKS4KKwogIyMjIG1heFxfbHBp XF9iaXRzCiA+IGA9IDxpbnRlZ2VyPmAKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL0tjb25m aWcgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwppbmRleCA4NmY3YjUzLi4wZDUwMTU2IDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vS2NvbmZpZworKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwpAQCAt NjQsNiArNjQsMjAgQEAgY29uZmlnIE1BWF9QSFlTX0xQSV9CSVRTCiAgICAgICAgICAgVGhpcyBj YW4gYmUgb3ZlcnJpZGRlbiBvbiB0aGUgY29tbWFuZCBsaW5lIHdpdGggdGhlIG1heF9scGlfYml0 cwogICAgICAgICAgIHBhcmFtZXRlci4KIAorY29uZmlnIE1BWF9QSFlTX0lUU19ERVZJQ0VfQklU UworICAgICAgICBkZXBlbmRzIG9uIEhBU19JVFMKKyAgICAgICAgaW50ICJOdW1iZXIgb2YgZGV2 aWNlIGJpdHMgdGhlIElUUyBzdXBwb3J0cyIKKyAgICAgICAgcmFuZ2UgMSAzMgorICAgICAgICBk ZWZhdWx0ICIxMCIKKyAgICAgICAgaGVscAorICAgICAgICAgIFNwZWNpZmllcyB0aGUgbWF4aW11 bSBudW1iZXIgb2YgZGV2aWNlcyB3aGljaCB3YW50IHRvIHVzZSB0aGUgSVRTLgorICAgICAgICAg IFhlbiBuZWVkcyB0byBhbGxvY2F0ZXMgbWVtb3J5IGZvciB0aGUgd2hvbGUgcmFuZ2UgdmVyeSBl YXJseS4KKyAgICAgICAgICBUaGUgYWxsb2NhdGlvbiBzY2hlbWUgbWF5IGJlIHNwYXJzZSwgc28g YSBtdWNoIGxhcmdlciBudW1iZXIgbXVzdAorICAgICAgICAgIGJlIHN1cHBvcnRlZCB0byBjb3Zl ciBkZXZpY2VzIHdpdGggYSBoaWdoIGJ1cyBudW1iZXIgb3IgdGhvc2Ugb24KKyAgICAgICAgICBz ZXBhcmF0ZSBidXMgc2VnbWVudHMuCisgICAgICAgICAgVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiBv biB0aGUgY29tbWFuZCBsaW5lIHdpdGggdGhlCisgICAgICAgICAgbWF4X2l0c19kZXZpY2VfYml0 cyBwYXJhbWV0ZXIuCisKIGVuZG1lbnUKIAogbWVudSAiQVJNIGVycmF0YSB3b3JrYXJvdW5kIHZp YSB0aGUgYWx0ZXJuYXRpdmUgZnJhbWV3b3JrIgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dp Yy12My1pdHMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKaW5kZXggNDA1NmU1Yi4uOTk4 MmZlOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYworKysgYi94ZW4vYXJj aC9hcm0vZ2ljLXYzLWl0cy5jCkBAIC0xOSw4ICsxOSwxMCBAQAogICovCiAKICNpbmNsdWRlIDx4 ZW4vbGliLmg+CisjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8YXNtL2dpY192M19kZWZz Lmg+CiAjaW5jbHVkZSA8YXNtL2dpY192M19pdHMuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KIAog TElTVF9IRUFEKGhvc3RfaXRzX2xpc3QpOwogCkBAIC0yOSw2ICszMSwxNjcgQEAgYm9vbCBnaWN2 M19pdHNfaG9zdF9oYXNfaXRzKHZvaWQpCiAgICAgcmV0dXJuICFsaXN0X2VtcHR5KCZob3N0X2l0 c19saXN0KTsKIH0KIAorI2RlZmluZSBCQVNFUl9BVFRSX01BU0sgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoKDB4M1VMIDw8IEdJVFNfQkFTRVJf U0hBUkVBQklMSVRZX1NISUZUKSAgICAgICAgICAgICAgIHwgXAorICAgICAgICAgKDB4N1VMIDw8 IEdJVFNfQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUKSAgICAgICAgIHwgXAorICAgICAg ICAgKDB4N1VMIDw8IEdJVFNfQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX1NISUZUKSkKKyNkZWZp bmUgQkFTRVJfUk9fTUFTSyAgIChHRU5NQVNLKDU4LCA1NikgfCBHRU5NQVNLKDUyLCA0OCkpCisK Ky8qIENoZWNrIHRoYXQgdGhlIHBoeXNpY2FsIGFkZHJlc3MgY2FuIGJlIGVuY29kZWQgaW4gdGhl IFBST1BCQVNFUiByZWdpc3Rlci4gKi8KK3N0YXRpYyBib29sIGNoZWNrX3Byb3BiYXNlcl9waHlz X2FkZHIodm9pZCAqdmFkZHIsIHVuc2lnbmVkIGludCBwYWdlX2JpdHMpCit7CisgICAgcGFkZHJf dCBwYWRkciA9IHZpcnRfdG9fbWFkZHIodmFkZHIpOworCisgICAgcmV0dXJuICghKHBhZGRyICYg fkdFTk1BU0socGFnZV9iaXRzIDwgMTYgPyA0NyA6IDUxLCBwYWdlX2JpdHMpKSk7Cit9CisKK3N0 YXRpYyB1aW50NjRfdCBlbmNvZGVfcHJvcGJhc2VyX3BoeXNfYWRkcihwYWRkcl90IGFkZHIsIHVu c2lnbmVkIGludCBwYWdlX2JpdHMpCit7CisgICAgdWludDY0X3QgcmV0ID0gYWRkciAmIEdFTk1B U0soNDcsIHBhZ2VfYml0cyk7CisKKyAgICBpZiAoIHBhZ2VfYml0cyA8IDE2ICkKKyAgICAgICAg cmV0dXJuIHJldDsKKworICAgIC8qIEZvciA2NEsgcGFnZXMgYWRkcmVzcyBiaXRzIDUxLTQ4IGFy ZSBlbmNvZGVkIGluIGJpdHMgMTUtMTIuICovCisgICAgcmV0dXJuIHJldCB8ICgoYWRkciAmIEdF Tk1BU0soNTEsIDQ4KSkgPj4gKDQ4IC0gMTIpKTsKK30KKworLyogVGhlIElUUyBCQVNFIHJlZ2lz dGVycyB3b3JrIHdpdGggcGFnZSBzaXplcyBvZiA0SywgMTZLIG9yIDY0Sy4gKi8KKyNkZWZpbmUg QkFTRVJfUEFHRV9CSVRTKHN6KSAoKHN6KSAqIDIgKyAxMikKKworc3RhdGljIGludCBpdHNfbWFw X2Jhc2VyKHZvaWQgX19pb21lbSAqYmFzZXJlZywgdWludDY0X3QgcmVnYywKKyAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfaXRlbXMpCit7CisgICAgdWludDY0X3QgYXR0 ciwgcmVnOworICAgIHVuc2lnbmVkIGludCBlbnRyeV9zaXplID0gR0lUU19CQVNFUl9FTlRSWV9T SVpFKHJlZ2MpOworICAgIHVuc2lnbmVkIGludCBwYWdlc3ogPSAyLCBvcmRlciwgdGFibGVfc2l6 ZTsKKyAgICB2b2lkICpidWZmZXI7CisKKyAgICBhdHRyICA9IEdJQ19CQVNFUl9Jbm5lclNoYXJl YWJsZSA8PCBHSVRTX0JBU0VSX1NIQVJFQUJJTElUWV9TSElGVDsKKyAgICBhdHRyIHw9IEdJQ19C QVNFUl9DQUNIRV9TYW1lQXNJbm5lciA8PCBHSVRTX0JBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9T SElGVDsKKyAgICBhdHRyIHw9IEdJQ19CQVNFUl9DQUNIRV9SYVdhV2IgPDwgR0lUU19CQVNFUl9J Tk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQ7CisKKyAgICAvKgorICAgICAqIFNldHVwIHRoZSBCQVNF IHJlZ2lzdGVyIHdpdGggdGhlIGF0dHJpYnV0ZXMgdGhhdCB3ZSBsaWtlLiBUaGVuIHJlYWQKKyAg ICAgKiBpdCBiYWNrIGFuZCBzZWUgd2hhdCBzdGlja3MgKHBhZ2Ugc2l6ZSwgY2FjaGVhYmlsaXR5 IGFuZCBzaGFyZWFiaWxpdHkKKyAgICAgKiBhdHRyaWJ1dGVzKSwgcmV0cnlpbmcgaWYgbmVjZXNz YXJ5LgorICAgICAqLworcmV0cnk6CisgICAgdGFibGVfc2l6ZSA9IFJPVU5EVVAobnJfaXRlbXMg KiBlbnRyeV9zaXplLCBCSVQoQkFTRVJfUEFHRV9CSVRTKHBhZ2VzeikpKTsKKyAgICAvKiBUaGUg QkFTRSByZWdpc3RlcnMgc3VwcG9ydCBhdCBtb3N0IDI1NiBwYWdlcy4gKi8KKyAgICB0YWJsZV9z aXplID0gbWluKHRhYmxlX3NpemUsIDI1NlUgPDwgQkFTRVJfUEFHRV9CSVRTKHBhZ2VzeikpOwor ICAgIC8qIFRoZSBtZW1vcnkgYmxvY2sgbXVzdCBiZSBhbGlnbmVkIHRvIHRoZSByZXF1ZXN0ZWQg cGFnZSBzaXplLiAqLworICAgIG9yZGVyID0gbWF4KGdldF9vcmRlcl9mcm9tX2J5dGVzKHRhYmxl X3NpemUpLCBwYWdlc3ogKiAyKTsKKworICAgIGJ1ZmZlciA9IGFsbG9jX3hlbmhlYXBfcGFnZXMo b3JkZXIsIDApOworICAgIGlmICggIWJ1ZmZlciApCisgICAgICAgIHJldHVybiAtRU5PTUVNOwor CisgICAgaWYgKCAhY2hlY2tfcHJvcGJhc2VyX3BoeXNfYWRkcihidWZmZXIsIEJBU0VSX1BBR0Vf QklUUyhwYWdlc3opKSApCisgICAgeworICAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoYnVmZmVy LCAwKTsKKyAgICAgICAgcmV0dXJuIC1FUkFOR0U7CisgICAgfQorICAgIG1lbXNldChidWZmZXIs IDAsIHRhYmxlX3NpemUpOworCisgICAgcmVnICA9IGF0dHI7CisgICAgcmVnIHw9IChwYWdlc3og PDwgR0lUU19CQVNFUl9QQUdFX1NJWkVfU0hJRlQpOworICAgIHJlZyB8PSAodGFibGVfc2l6ZSA+ PiBCQVNFUl9QQUdFX0JJVFMocGFnZXN6KSkgLSAxOworICAgIHJlZyB8PSByZWdjICYgQkFTRVJf Uk9fTUFTSzsKKyAgICByZWcgfD0gR0lUU19WQUxJRF9CSVQ7CisgICAgcmVnIHw9IGVuY29kZV9w cm9wYmFzZXJfcGh5c19hZGRyKHZpcnRfdG9fbWFkZHIoYnVmZmVyKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQkFTRVJfUEFHRV9CSVRTKHBhZ2VzeikpOworCisgICAg d3JpdGVxX3JlbGF4ZWQocmVnLCBiYXNlcmVnKTsKKyAgICByZWdjID0gcmVhZHFfcmVsYXhlZChi YXNlcmVnKTsKKworICAgIC8qIFRoZSBob3N0IGRpZG4ndCBsaWtlIG91ciBhdHRyaWJ1dGVzLCBq dXN0IHVzZSB3aGF0IGl0IHJldHVybmVkLiAqLworICAgIGlmICggKHJlZ2MgJiBCQVNFUl9BVFRS X01BU0spICE9IGF0dHIgKQorICAgIHsKKyAgICAgICAgLyogSWYgd2UgY2FuJ3QgbWFwIGl0IHNo YXJlYWJsZSwgZHJvcCBjYWNoZWFiaWxpdHkgYXMgd2VsbC4gKi8KKyAgICAgICAgaWYgKCAocmVn YyAmIEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX01BU0spID09IEdJQ19CQVNFUl9Ob25TaGFyZWFi bGUgKQorICAgICAgICB7CisgICAgICAgICAgICByZWdjICY9IH5HSVRTX0JBU0VSX0lOTkVSX0NB Q0hFQUJJTElUWV9NQVNLOworICAgICAgICAgICAgd3JpdGVxX3JlbGF4ZWQocmVnYywgYmFzZXJl Zyk7CisgICAgICAgIH0KKyAgICAgICAgYXR0ciA9IHJlZ2MgJiBCQVNFUl9BVFRSX01BU0s7Cisg ICAgfQorICAgIGlmICggKHJlZ2MgJiBHSVRTX0JBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNL KSA8PSBHSUNfQkFTRVJfQ0FDSEVfbkMgKQorICAgICAgICBjbGVhbl9hbmRfaW52YWxpZGF0ZV9k Y2FjaGVfdmFfcmFuZ2UoYnVmZmVyLCB0YWJsZV9zaXplKTsKKworICAgIC8qIElmIHRoZSBob3N0 IGFjY2VwdGVkIG91ciBwYWdlIHNpemUsIHdlIGFyZSBkb25lLiAqLworICAgIGlmICggKChyZWdj ID4+IEdJVFNfQkFTRVJfUEFHRV9TSVpFX1NISUZUKSAmIDB4M1VMKSA9PSBwYWdlc3ogKQorICAg ICAgICByZXR1cm4gMDsKKworICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhidWZmZXIsIG9yZGVyKTsK KworICAgIGlmICggcGFnZXN6LS0gPiAwICkKKyAgICAgICAgZ290byByZXRyeTsKKworICAgIC8q IE5vbmUgb2YgdGhlIHBhZ2Ugc2l6ZXMgd2FzIGFjY2VwdGVkLCBnaXZlIHVwICovCisgICAgcmV0 dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbWF4X2l0c19kZXZpY2VfYml0 cyA9IENPTkZJR19NQVhfUEhZU19JVFNfREVWSUNFX0JJVFM7CitpbnRlZ2VyX3BhcmFtKCJtYXhf aXRzX2RldmljZV9iaXRzIiwgbWF4X2l0c19kZXZpY2VfYml0cyk7CisKK3N0YXRpYyBpbnQgZ2lj djNfaXRzX2luaXRfc2luZ2xlX2l0cyhzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cykKK3sKKyAgICB1 aW50NjRfdCByZWc7CisgICAgaW50IGk7CisgICAgdW5zaWduZWQgaW50IGRldmlkX2JpdHM7CisK KyAgICBod19pdHMtPml0c19iYXNlID0gaW9yZW1hcF9ub2NhY2hlKGh3X2l0cy0+YWRkciwgaHdf aXRzLT5zaXplKTsKKyAgICBpZiAoICFod19pdHMtPml0c19iYXNlICkKKyAgICAgICAgcmV0dXJu IC1FTk9NRU07CisKKyAgICByZWcgPSByZWFkcV9yZWxheGVkKGh3X2l0cy0+aXRzX2Jhc2UgKyBH SVRTX1RZUEVSKTsKKyAgICBkZXZpZF9iaXRzID0gR0lUU19UWVBFUl9ERVZJQ0VfSURfQklUUyhy ZWcpOworICAgIGRldmlkX2JpdHMgPSBtaW4oZGV2aWRfYml0cywgbWF4X2l0c19kZXZpY2VfYml0 cyk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IEdJVFNfQkFTRVJfTlJfUkVHUzsgaSsrICkKKyAg ICB7CisgICAgICAgIHZvaWQgX19pb21lbSAqYmFzZXJlZyA9IGh3X2l0cy0+aXRzX2Jhc2UgKyBH SVRTX0JBU0VSMCArIGkgKiA4OworICAgICAgICB1bnNpZ25lZCBpbnQgdHlwZTsKKworICAgICAg ICByZWcgPSByZWFkcV9yZWxheGVkKGJhc2VyZWcpOworICAgICAgICB0eXBlID0gKHJlZyAmIEdJ VFNfQkFTRVJfVFlQRV9NQVNLKSA+PiBHSVRTX0JBU0VSX1RZUEVfU0hJRlQ7CisgICAgICAgIHN3 aXRjaCAoIHR5cGUgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgR0lUU19CQVNFUl9UWVBFX05P TkU6CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBHSVRTX0JBU0VSX1RZUEVf REVWSUNFOgorICAgICAgICAgICAgaXRzX21hcF9iYXNlcihiYXNlcmVnLCByZWcsIEJJVChkZXZp ZF9iaXRzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHSVRTX0JBU0VSX1RZ UEVfQ09MTEVDVElPTjoKKyAgICAgICAgICAgIGl0c19tYXBfYmFzZXIoYmFzZXJlZywgcmVnLCBO Ul9DUFVTKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvKiBJbiBjYXNlIHRoaXMgaXMg YSBHSUN2NCwgcHJvdmlkZSBhIChkdW1teSkgdlBFIHRhYmxlIGFzIHdlbGwuICovCisgICAgICAg IGNhc2UgR0lUU19CQVNFUl9UWVBFX1ZDUFU6CisgICAgICAgICAgICBpdHNfbWFwX2Jhc2VyKGJh c2VyZWcsIHJlZywgMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9 CisKK2ludCBnaWN2M19pdHNfaW5pdCh2b2lkKQoreworICAgIHN0cnVjdCBob3N0X2l0cyAqaHdf aXRzOworICAgIGludCByZXQ7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3X2l0cywgJmhv c3RfaXRzX2xpc3QsIGVudHJ5KSB7CisgICAgICAgIHJldCA9IGdpY3YzX2l0c19pbml0X3Npbmds ZV9pdHMoaHdfaXRzKTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIHJl dDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogLyogU2NhbiB0aGUgRFQgZm9yIGFueSBJ VFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJVFNlcyBvdXQgb2YgaXQuICovCiB2 b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkK IHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMuYyBiL3hlbi9hcmNoL2FybS9naWMt djMuYwppbmRleCBlZDc4MzYzLi5jYzFlMjE5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2lj LXYzLmMKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCkBAIC0xNTkwLDYgKzE1OTAsOSBAQCBz dGF0aWMgaW50IF9faW5pdCBnaWN2M19pbml0KHZvaWQpCiAgICAgc3Bpbl9sb2NrKCZnaWN2My5s b2NrKTsKIAogICAgIGdpY3YzX2Rpc3RfaW5pdCgpOworICAgIHJlcyA9IGdpY3YzX2l0c19pbml0 KCk7CisgICAgaWYgKCByZXMgKQorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIkdJQ3Yz OiBJVFM6IGluaXRpYWxpemF0aW9uIGZhaWxlZDogJWRcbiIsIHJlcyk7CiAgICAgcmVzID0gZ2lj djNfY3B1X2luaXQoKTsKICAgICBnaWN2M19oeXBfaW5pdCgpOwogCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3Yz X2l0cy5oCmluZGV4IDIxOWQxMDkuLmE2YzBhY2MgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS1hcm0vZ2ljX3YzX2l0cy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5o CkBAIC0yMCw2ICsyMCw2MCBAQAogI2lmbmRlZiBfX0FTTV9BUk1fSVRTX0hfXwogI2RlZmluZSBf X0FTTV9BUk1fSVRTX0hfXwogCisjZGVmaW5lIEdJVFNfQ1RMUiAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAKKyNkZWZpbmUgR0lUU19JSURSICAgICAgICAgICAgICAgICAgICAgICAweDAwNAor I2RlZmluZSBHSVRTX1RZUEVSICAgICAgICAgICAgICAgICAgICAgIDB4MDA4CisjZGVmaW5lIEdJ VFNfQ0JBU0VSICAgICAgICAgICAgICAgICAgICAgMHgwODAKKyNkZWZpbmUgR0lUU19DV1JJVEVS ICAgICAgICAgICAgICAgICAgICAweDA4OAorI2RlZmluZSBHSVRTX0NSRUFEUiAgICAgICAgICAg ICAgICAgICAgIDB4MDkwCisjZGVmaW5lIEdJVFNfQkFTRVJfTlJfUkVHUyAgICAgICAgICAgICAg OAorI2RlZmluZSBHSVRTX0JBU0VSMCAgICAgICAgICAgICAgICAgICAgIDB4MTAwCisjZGVmaW5l IEdJVFNfQkFTRVIxICAgICAgICAgICAgICAgICAgICAgMHgxMDgKKyNkZWZpbmUgR0lUU19CQVNF UjIgICAgICAgICAgICAgICAgICAgICAweDExMAorI2RlZmluZSBHSVRTX0JBU0VSMyAgICAgICAg ICAgICAgICAgICAgIDB4MTE4CisjZGVmaW5lIEdJVFNfQkFTRVI0ICAgICAgICAgICAgICAgICAg ICAgMHgxMjAKKyNkZWZpbmUgR0lUU19CQVNFUjUgICAgICAgICAgICAgICAgICAgICAweDEyOAor I2RlZmluZSBHSVRTX0JBU0VSNiAgICAgICAgICAgICAgICAgICAgIDB4MTMwCisjZGVmaW5lIEdJ VFNfQkFTRVI3ICAgICAgICAgICAgICAgICAgICAgMHgxMzgKKworLyogUmVnaXN0ZXIgYml0cyAq LworI2RlZmluZSBHSVRTX1ZBTElEX0JJVCAgICAgICAgICAgICAgICAgIEJJVF9VTEwoNjMpCisK KyNkZWZpbmUgR0lUU19DVExSX1FVSUVTQ0VOVCAgICAgICAgICAgICBCSVQoMzEpCisjZGVmaW5l IEdJVFNfQ1RMUl9FTkFCTEUgICAgICAgICAgICAgICAgQklUKDApCisKKyNkZWZpbmUgR0lUU19U WVBFUl9ERVZJRFNfU0hJRlQgICAgICAgICAxMworI2RlZmluZSBHSVRTX1RZUEVSX0RFVklEU19N QVNLICAgICAgICAgICgweDFmVUwgPDwgR0lUU19UWVBFUl9ERVZJRFNfU0hJRlQpCisjZGVmaW5l IEdJVFNfVFlQRVJfREVWSUNFX0lEX0JJVFMocikgICAgKCgociAmIEdJVFNfVFlQRVJfREVWSURT X01BU0spID4+IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0lUU19UWVBFUl9ERVZJRFNfU0hJRlQpICsgMSkKKworI2RlZmluZSBHSVRTX0lJRFJfVkFM VUUgICAgICAgICAgICAgICAgIDB4MzRjCisKKyNkZWZpbmUgR0lUU19CQVNFUl9JTkRJUkVDVCAg ICAgICAgICAgICBCSVRfVUxMKDYyKQorI2RlZmluZSBHSVRTX0JBU0VSX0lOTkVSX0NBQ0hFQUJJ TElUWV9TSElGVCAgICAgICAgNTkKKyNkZWZpbmUgR0lUU19CQVNFUl9UWVBFX1NISUZUICAgICAg ICAgICA1NgorI2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfTUFTSyAgICAgICAgICAgICg3VUxMIDw8 IEdJVFNfQkFTRVJfVFlQRV9TSElGVCkKKyNkZWZpbmUgR0lUU19CQVNFUl9PVVRFUl9DQUNIRUFC SUxJVFlfU0hJRlQgICAgICAgIDUzCisjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9OT05FICAgICAg ICAgICAgMFVMCisjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9ERVZJQ0UgICAgICAgICAgMVVMCisj ZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9WQ1BVICAgICAgICAgICAgMlVMCisjZGVmaW5lIEdJVFNf QkFTRVJfVFlQRV9DUFUgICAgICAgICAgICAgM1VMCisjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9D T0xMRUNUSU9OICAgICAgNFVMCisjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9SRVNFUlZFRDUgICAg ICAgNVVMCisjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9SRVNFUlZFRDYgICAgICAgNlVMCisjZGVm aW5lIEdJVFNfQkFTRVJfVFlQRV9SRVNFUlZFRDcgICAgICAgN1VMCisjZGVmaW5lIEdJVFNfQkFT RVJfRU5UUllfU0laRV9TSElGVCAgICAgNDgKKyNkZWZpbmUgR0lUU19CQVNFUl9FTlRSWV9TSVpF KHJlZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgICAoKChyZWcgPj4gR0lUU19CQVNFUl9FTlRSWV9TSVpFX1NISUZUKSAmIDB4 MWYpICsgMSkKKyNkZWZpbmUgR0lUU19CQVNFUl9TSEFSRUFCSUxJVFlfU0hJRlQgICAxMAorI2Rl ZmluZSBHSVRTX0JBU0VSX1BBR0VfU0laRV9TSElGVCAgICAgIDgKKyNkZWZpbmUgR0lUU19CQVNF Ul9ST19NQVNLICAgICAgICAgICAgICAoR0lUU19CQVNFUl9UWVBFX01BU0sgfCBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDMxVUwgPDwgR0lUU19CQVNFUl9FTlRS WV9TSVpFX1NISUZUKSB8XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdJVFNfQkFTRVJfSU5ESVJFQ1QpCisjZGVmaW5lIEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX01B U0sgICAoMHgzVUxMIDw8IEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUKQorI2RlZmluZSBH SVRTX0JBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9NQVNLICAgKDB4N1VMTCA8PCBHSVRTX0JBU0VS X09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVCkKKyNkZWZpbmUgR0lUU19CQVNFUl9JTk5FUl9DQUNI RUFCSUxJVFlfTUFTSyAgICgweDdVTEwgPDwgR0lUU19CQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlf U0hJRlQpCisKICNpbmNsdWRlIDx4ZW4vZGV2aWNlX3RyZWUuaD4KIAogLyogZGF0YSBzdHJ1Y3R1 cmUgZm9yIGVhY2ggaGFyZHdhcmUgSVRTICovCkBAIC0yOCw2ICs4Miw3IEBAIHN0cnVjdCBob3N0 X2l0cyB7CiAgICAgY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpkdF9ub2RlOwogICAgIHBh ZGRyX3QgYWRkcjsKICAgICBwYWRkcl90IHNpemU7CisgICAgdm9pZCBfX2lvbWVtICppdHNfYmFz ZTsKIH07CiAKIApAQCAtNDIsOCArOTcsOSBAQCBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHMo dm9pZCk7CiAKIGludCBnaWN2M19scGlfaW5pdF9yZGlzdCh2b2lkIF9faW9tZW0gKiByZGlzdF9i YXNlKTsKIAotLyogSW5pdGlhbGl6ZSB0aGUgaG9zdCBzdHJ1Y3R1cmVzIGZvciBMUElzLiAqLwor LyogSW5pdGlhbGl6ZSB0aGUgaG9zdCBzdHJ1Y3R1cmVzIGZvciBMUElzIGFuZCB0aGUgaG9zdCBJ VFNlcy4gKi8KIGludCBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXModW5zaWduZWQgaW50IG5yX2xw aXMpOworaW50IGdpY3YzX2l0c19pbml0KHZvaWQpOwogCiAjZWxzZQogCkBAIC02Nyw2ICsxMjMs MTEgQEAgc3RhdGljIGlubGluZSBpbnQgZ2ljdjNfbHBpX2luaXRfaG9zdF9scGlzKHVuc2lnbmVk IGludCBucl9scGlzKQogewogICAgIHJldHVybiAwOwogfQorCitzdGF0aWMgaW5saW5lIGludCBn aWN2M19pdHNfaW5pdCh2b2lkKQoreworICAgIHJldHVybiAwOworfQogI2VuZGlmIC8qIENPTkZJ R19IQVNfSVRTICovCiAKICNlbmRpZgotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK