From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 19/26] ARM: vITS: handle MAPTI command Date: Fri, 31 Mar 2017 19:05:18 +0100 Message-ID: <20170331180525.30038-20-andre.przywara@arm.com> References: <20170331180525.30038-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0tv-0005kO-1H for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:55 +0000 In-Reply-To: <20170331180525.30038-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: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhlIE1BUFRJIGNvbW1hbmRzIGFzc29jaWF0ZXMgYSBEZXZpY2VJRC9FdmVudElEIHBhaXIgd2l0 aCBhIExQSS9DUFUKcGFpciBhbmQgYWN0dWFsbHkgaW5zdGFudGlhdGVzIExQSSBpbnRlcnJ1cHRz LgpXZSBjb25uZWN0IHRoZSBhbHJlYWR5IGFsbG9jYXRlZCBob3N0IExQSSB0byB0aGlzIHZpcnR1 YWwgTFBJLCBzbyB0aGF0CmFueSB0cmlnZ2VyaW5nIElSUSBvbiB0aGUgaG9zdCBjYW4gYmUgcXVp Y2tseSBmb3J3YXJkZWQgdG8gYSBndWVzdC4KQmVzaWRlIGVudGVyaW5nIHRoZSBWQ1BVIGFuZCB0 aGUgdmlydHVhbCBMUEkgbnVtYmVyIGluIHRoZSByZXNwZWN0aXZlCmhvc3QgTFBJIGVudHJ5LCB3 ZSBhbHNvIGluaXRpYWxpemUgYW5kIGFkZCB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQKc3RydWN0IHBl bmRpbmdfaXJxIHRvIG91ciByYWRpeCB0cmVlLCBzbyB0aGF0IHdlIGNhbiBub3cgZWFzaWx5IGZp bmQgaXQKYnkgaXRzIHZpcnR1YWwgTFBJIG51bWJlci4KVGhpcyBleHBvcnRzIHRoZSB2Z2ljX2lu aXRfcGVuZGluZ19pcnEoKSBmdW5jdGlvbiBmb3IgdGhhdCBwdXJwb3NlLgoKU2lnbmVkLW9mZi1i eTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Ci0tLQogeGVuL2FyY2gv YXJtL2dpYy12My1pdHMuYyAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jICAgICAgICB8IDE2ICsrKysr KysrKwogeGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMgICAgICAgfCAzNiArKysrKysrKysrKysr KysrKy0tCiB4ZW4vYXJjaC9hcm0vdmdpYy5jICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5j bHVkZS9hc20tYXJtL2dpY192M19pdHMuaCB8ICA2ICsrKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0v dmdpYy5oICAgICAgIHwgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jIGIv eGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwppbmRleCA4ZGIyYTA5Li4zOWYxNmIyIDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMt aXRzLmMKQEAgLTc0Nyw2ICs3NDcsODAgQEAgcmVzdGFydDoKICAgICBzcGluX3VubG9jaygmZC0+ YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwogfQogCisvKiBNdXN0IGJlIGNhbGxlZCB3aXRo IHRoZSBpdHNfZGV2aWNlX2xvY2sgaGVsZC4gKi8KK3N0YXRpYyBzdHJ1Y3QgaXRzX2RldmljZXMg KmdldF9pdHNfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgZG9vcmJlbGwsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkZXZpZCkKK3sK KyAgICBzdHJ1Y3QgcmJfbm9kZSAqbm9kZSA9IGQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcy5yYl9u b2RlOworICAgIHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2OworCisgICAgd2hpbGUgKG5vZGUpCisg ICAgeworICAgICAgICBpbnQgY21wOworCisgICAgICAgIGRldiA9IHJiX2VudHJ5KG5vZGUsIHN0 cnVjdCBpdHNfZGV2aWNlcywgcmJub2RlKTsKKyAgICAgICAgY21wID0gY29tcGFyZV9pdHNfZ3Vl c3RfZGV2aWNlcyhkZXYsIGRvb3JiZWxsLCBkZXZpZCk7CisKKyAgICAgICAgaWYgKCAhY21wICkK KyAgICAgICAgICAgIHJldHVybiBkZXY7CisKKyAgICAgICAgaWYgKCBjbXAgPiAwICkKKyAgICAg ICAgICAgIG5vZGUgPSBub2RlLT5yYl9sZWZ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBu b2RlID0gbm9kZS0+cmJfcmlnaHQ7CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0 YXRpYyB1aW50MzJfdCBnZXRfaG9zdF9scGkoc3RydWN0IGl0c19kZXZpY2VzICpkZXYsIHVpbnQz Ml90IGV2ZW50aWQpCit7CisgICAgdWludDMyX3QgaG9zdF9scGkgPSAwOworCisgICAgaWYgKCBk ZXYgJiYgKGV2ZW50aWQgPCBkZXYtPmV2ZW50aWRzKSApCisgICAgeworICAgICAgICBob3N0X2xw aSA9IGRldi0+aG9zdF9scGlfYmxvY2tzW2V2ZW50aWQgLyBMUElfQkxPQ0tdICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudGlkICUgTFBJX0JMT0NLKTsKKyAg ICAgICAgaWYgKCAhaXNfbHBpKGhvc3RfbHBpKSApCisgICAgICAgICAgICBob3N0X2xwaSA9IDA7 CisgICAgfQorCisgICAgcmV0dXJuIGhvc3RfbHBpOworfQorCisvKgorICogQ29ubmVjdHMgdGhl IGV2ZW50IElEIGZvciBhbiBhbHJlYWR5IGFzc2lnbmVkIGRldmljZSB0byB0aGUgZ2l2ZW4gVkNQ VS92TFBJCisgKiBwYWlyLiBUaGUgY29ycmVzcG9uZGluZyBwaHlzaWNhbCBMUEkgaXMgYWxyZWFk eSBtYXBwZWQgb24gdGhlIGhvc3Qgc2lkZQorICogKHdoZW4gYXNzaWduaW5nIHRoZSBwaHlzaWNh bCBkZXZpY2UgdG8gdGhlIGd1ZXN0KSwgc28gd2UganVzdCBjb25uZWN0IHRoZQorICogdGFyZ2V0 IFZDUFUvdkxQSSBwYWlyIHRvIHRoYXQgaW50ZXJydXB0IHRvIGluamVjdCBpdCBwcm9wZXJseSBp ZiBpdCBmaXJlcy4KKyAqLworc3RydWN0IHBlbmRpbmdfaXJxICpnaWN2M19hc3NpZ25fZ3Vlc3Rf ZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhZGRyX3QgZG9vcmJlbGxfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRldmlkLCB1aW50MzJfdCBldmVu dGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHZjcHUgKnYsIHVpbnQzMl90IHZpcnRfbHBpKQoreworICAgIHN0cnVjdCBpdHNfZGV2aWNlcyAq ZGV2OworICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcGlycSA9IE5VTEw7CisgICAgdWludDMyX3Qg aG9zdF9scGkgPSAwOworCisgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNf bG9jayk7CisgICAgZGV2ID0gZ2V0X2l0c19kZXZpY2UoZCwgZG9vcmJlbGxfYWRkcmVzcywgZGV2 aWQpOworICAgIGlmICggZGV2ICkKKyAgICB7CisgICAgICAgIGhvc3RfbHBpID0gZ2V0X2hvc3Rf bHBpKGRldiwgZXZlbnRpZCk7CisgICAgICAgIHBpcnEgPSAmZGV2LT5wZW5kX2lycXNbZXZlbnRp ZF07CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9j ayk7CisKKyAgICBpZiAoICFob3N0X2xwaSB8fCAhcGlycSApCisgICAgICAgIHJldHVybiBOVUxM OworCisgICAgZ2ljdjNfbHBpX3VwZGF0ZV9ob3N0X2VudHJ5KGhvc3RfbHBpLCBkLT5kb21haW5f aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPyB2LT52Y3B1X2lkIDogLTEs IHZpcnRfbHBpKTsKKworICAgIHJldHVybiBwaXJxOworfQorCiAvKiBTY2FuIHRoZSBEVCBmb3Ig YW55IElUUyBub2RlcyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZiBpdC4g Ki8KIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpu b2RlKQogewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyBiL3hlbi9hcmNo L2FybS9naWMtdjMtbHBpLmMKaW5kZXggMjMwMWQ1My4uYTZiNzI4ZSAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL2dpYy12My1scGkuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCkBA IC0xNzgsNiArMTc4LDIyIEBAIHZvaWQgZG9fTFBJKHVuc2lnbmVkIGludCBscGkpCiAgICAgcmN1 X3VubG9ja19kb21haW4oZCk7CiB9CiAKK3ZvaWQgZ2ljdjNfbHBpX3VwZGF0ZV9ob3N0X2VudHJ5 KHVpbnQzMl90IGhvc3RfbHBpLCBpbnQgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IHZjcHVfaWQsIHVpbnQzMl90IHZpcnRfbHBpKQorewor ICAgIHVuaW9uIGhvc3RfbHBpICpobHBpcCwgaGxwaTsKKworICAgIGhvc3RfbHBpIC09IExQSV9P RkZTRVQ7CisKKyAgICBobHBpcCA9ICZscGlfZGF0YS5ob3N0X2xwaXNbaG9zdF9scGkgLyBIT1NU X0xQSVNfUEVSX1BBR0VdW2hvc3RfbHBpICUgSE9TVF9MUElTX1BFUl9QQUdFXTsKKworICAgIGhs cGkudmlydF9scGkgPSB2aXJ0X2xwaTsKKyAgICBobHBpLmRvbV9pZCA9IGRvbWFpbl9pZDsKKyAg ICBobHBpLnZjcHVfaWQgPSB2Y3B1X2lkOworCisgICAgd3JpdGVfdTY0X2F0b21pYygmaGxwaXAt PmRhdGEsIGhscGkuZGF0YSk7Cit9CisKIHN0YXRpYyBpbnQgZ2ljdjNfbHBpX2FsbG9jYXRlX3Bl bmR0YWJsZSh1aW50NjRfdCAqcmVnKQogewogICAgIHVpbnQ2NF90IHZhbDsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMK aW5kZXggMzZiNDRmMi4uZDlkY2UzZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMt aXRzLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKQEAgLTI1OCw4ICsyNTgsOCBA QCBzdGF0aWMgYm9vbCByZWFkX2l0dGUoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQzMl90IGRl dmlkLCB1aW50MzJfdCBldmlkLAogfQogCiAjZGVmaW5lIFNLSVBfTFBJX1VQREFURSAxCi1ib29s IHdyaXRlX2l0dGUoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQzMl90IGRldmlkLCB1aW50MzJf dCBldmlkLAotICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbGxpZCwgdWludDMyX3QgdmxwaSwg c3RydWN0IHZjcHUgKip2Y3B1KQorc3RhdGljIGJvb2wgd3JpdGVfaXR0ZShzdHJ1Y3QgdmlydF9p dHMgKml0cywgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2aWQsCisgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGNvbGxpZCwgdWludDMyX3QgdmxwaSwgc3RydWN0IHZjcHUgKip2Y3B1 KQogewogICAgIHN0cnVjdCB2aXRzX2l0dGUgKml0dGU7CiAKQEAgLTQyMSw2ICs0MjEsMzQgQEAg c3RhdGljIGludCBpdHNfaGFuZGxlX21hcGQoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQ2NF90 ICpjbWRwdHIpCiAgICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBpdHNfaGFuZGxlX21h cHRpKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50NjRfdCAqY21kcHRyKQoreworICAgIHVpbnQz Ml90IGRldmlkID0gaXRzX2NtZF9nZXRfZGV2aWNlaWQoY21kcHRyKTsKKyAgICB1aW50MzJfdCBl dmVudGlkID0gaXRzX2NtZF9nZXRfaWQoY21kcHRyKTsKKyAgICB1aW50MzJfdCBpbnRpZCA9IGl0 c19jbWRfZ2V0X3BoeXNpY2FsX2lkKGNtZHB0cik7CisgICAgdWludDE2X3QgY29sbGlkID0gaXRz X2NtZF9nZXRfY29sbGVjdGlvbihjbWRwdHIpOworICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcGly cTsKKyAgICBzdHJ1Y3QgdmNwdSAqdmNwdTsKKworICAgIGlmICggaXRzX2NtZF9nZXRfY29tbWFu ZChjbWRwdHIpID09IEdJVFNfQ01EX01BUEkgKQorICAgICAgICBpbnRpZCA9IGV2ZW50aWQ7CisK KyAgICBwaXJxID0gZ2ljdjNfYXNzaWduX2d1ZXN0X2V2ZW50KGl0cy0+ZCwgaXRzLT5kb29yYmVs bF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWQsIGV2 ZW50aWQsIHZjcHUsIGludGlkKTsKKyAgICBpZiAoICFwaXJxICkKKyAgICAgICAgcmV0dXJuIC0x OworCisgICAgdmdpY19pbml0X3BlbmRpbmdfaXJxKHBpcnEsIGludGlkKTsKKyAgICB3cml0ZV9s b2NrKCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2spOworICAgIHJhZGl4X3Ry ZWVfaW5zZXJ0KCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlLCBpbnRpZCwgcGlycSk7 CisgICAgd3JpdGVfdW5sb2NrKCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2sp OworCisgICAgaWYgKCAhd3JpdGVfaXR0ZShpdHMsIGRldmlkLCBldmVudGlkLCBjb2xsaWQsIGlu dGlkLCAmdmNwdSkgKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByZXR1cm4gMDsKK30KKwog I2RlZmluZSBJVFNfQ01EX0JVRkZFUl9TSVpFKGJhc2VyKSAgICAgICgoKChiYXNlcikgJiAweGZm KSArIDEpIDw8IDEyKQogCiBzdGF0aWMgaW50IHZnaWNfaXRzX2hhbmRsZV9jbWRzKHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCB2aXJ0X2l0cyAqaXRzLApAQCAtNDcwLDYgKzQ5OCwxMCBAQCBzdGF0 aWMgaW50IHZnaWNfaXRzX2hhbmRsZV9jbWRzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2aXJ0 X2l0cyAqaXRzLAogICAgICAgICBjYXNlIEdJVFNfQ01EX01BUEQ6CiAgICAgICAgICAgICByZXQg PSBpdHNfaGFuZGxlX21hcGQoaXRzLCBjbWRwdHIpOwogCSAgICBicmVhazsKKyAgICAgICAgY2Fz ZSBHSVRTX0NNRF9NQVBJOgorICAgICAgICBjYXNlIEdJVFNfQ01EX01BUFRJOgorICAgICAgICAg ICAgcmV0ID0gaXRzX2hhbmRsZV9tYXB0aShpdHMsIGNtZHB0cik7CisgICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSBHSVRTX0NNRF9TWU5DOgogICAgICAgICAgICAgLyogV2UgaGFuZGxl IElUUyBjb21tYW5kcyBzeW5jaHJvbm91c2x5LCBzbyB3ZSBpZ25vcmUgU1lOQy4gKi8KIAkgICAg YnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2FyY2gvYXJtL3Zn aWMuYwppbmRleCAyYWVlMjBmLi45NGViOWM1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdp Yy5jCisrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IHZn aWNfaXJxX3JhbmsgKnZnaWNfcmFua19pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBp cnEpCiAgICAgcmV0dXJuIHZnaWNfZ2V0X3JhbmsodiwgcmFuayk7CiB9CiAKLXN0YXRpYyB2b2lk IHZnaWNfaW5pdF9wZW5kaW5nX2lycShzdHJ1Y3QgcGVuZGluZ19pcnEgKnAsIHVuc2lnbmVkIGlu dCB2aXJxKQordm9pZCB2Z2ljX2luaXRfcGVuZGluZ19pcnEoc3RydWN0IHBlbmRpbmdfaXJxICpw LCB1bnNpZ25lZCBpbnQgdmlycSkKIHsKICAgICBJTklUX0xJU1RfSEVBRCgmcC0+aW5mbGlnaHQp OwogICAgIElOSVRfTElTVF9IRUFEKCZwLT5scl9xdWV1ZSk7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL2dpY192M19pdHMuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0 cy5oCmluZGV4IGJjOWI0MmEuLjM1YTNlMjIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljX3YzX2l0cy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCkBA IC0xNjEsNiArMTYxLDEyIEBAIHZvaWQgZ2ljdjNfaXRzX3VubWFwX2FsbF9kZXZpY2VzKHN0cnVj dCBkb21haW4gKmQpOwogaW50IGdpY3YzX2FsbG9jYXRlX2hvc3RfbHBpX2Jsb2NrKHN0cnVjdCBk b21haW4gKmQsIHVpbnQzMl90ICpmaXJzdF9scGkpOwogdm9pZCBnaWN2M19mcmVlX2hvc3RfbHBp X2Jsb2NrKHVpbnQzMl90IGZpcnN0X2xwaSk7CiAKK3N0cnVjdCBwZW5kaW5nX2lycSAqZ2ljdjNf YXNzaWduX2d1ZXN0X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgZG9vcmJlbGwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkZXZp ZCwgdWludDMyX3QgZXZlbnRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCB2aXJ0X2xwaSk7Cit2b2lkIGdpY3Yz X2xwaV91cGRhdGVfaG9zdF9lbnRyeSh1aW50MzJfdCBob3N0X2xwaSwgaW50IGRvbWFpbl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2Y3B1X2lkLCB1 aW50MzJfdCB2aXJ0X2xwaSk7CisKICNlbHNlCiAKIHN0YXRpYyBMSVNUX0hFQUQoaG9zdF9pdHNf bGlzdCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaCBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vdmdpYy5oCmluZGV4IDlmNDhlOWEuLjNmYjc0MzMgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5o CkBAIC0yOTgsNiArMjk4LDcgQEAgZXh0ZXJuIHN0cnVjdCB2Y3B1ICp2Z2ljX2dldF90YXJnZXRf dmNwdShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpOwogZXh0ZXJuIHZvaWQgdmdp Y192Y3B1X2luamVjdF9pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2aXJxKTsKIGV4 dGVybiB2b2lkIHZnaWNfdmNwdV9pbmplY3Rfc3BpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCB2aXJxKTsKIGV4dGVybiB2b2lkIHZnaWNfY2xlYXJfcGVuZGluZ19pcnFzKHN0cnVjdCB2 Y3B1ICp2KTsKK2V4dGVybiB2b2lkIHZnaWNfaW5pdF9wZW5kaW5nX2lycShzdHJ1Y3QgcGVuZGlu Z19pcnEgKnAsIHVuc2lnbmVkIGludCB2aXJxKTsKIGV4dGVybiBzdHJ1Y3QgcGVuZGluZ19pcnEg KmlycV90b19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJxKTsKIGV4dGVy biBzdHJ1Y3QgcGVuZGluZ19pcnEgKnNwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBpcnEpOwogZXh0ZXJuIHN0cnVjdCBwZW5kaW5nX2lycSAqbHBpX3RvX3BlbmRp bmcoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSk7Ci0tIAoyLjkuMAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=