From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 09/22] drm/i915/lmem: support kernel mapping Date: Fri, 27 Sep 2019 18:33:56 +0100 Message-ID: <20190927173409.31175-10-matthew.auld@intel.com> References: <20190927173409.31175-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id D58A36E174 for ; Fri, 27 Sep 2019 17:34:26 +0000 (UTC) In-Reply-To: <20190927173409.31175-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgoK V2UgY2FuIGNyZWF0ZSBMTUVNIG9iamVjdHMsIGJ1dCB3ZSBhbHNvIG5lZWQgdG8gc3VwcG9ydCBt YXBwaW5nIHRoZW0KaW50byBrZXJuZWwgc3BhY2UgZm9yIGludGVybmFsIHVzZS4KClNpZ25lZC1v ZmYtYnk6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBTdGV2ZSBIYW1wc29uIDxzdGV2ZW4udC5oYW1wc29uQGludGVsLmNvbT4KQ2M6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1faW50ZXJuYWwuYyAgfCAgNCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYyAgICAgIHwgMzYgKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oICAgICAgfCAgOCArKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oICAgIHwgIDYgKysKIC4u Li9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8ICAzICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYyAgICAgfCAyMCArKysrLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3NobWVtLmMgICAgIHwgIDMgKy0KIC4uLi9k cm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfZ2VtX29iamVjdC5jICB8ICA0ICstCiAuLi4vZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyAgfCA3NiArKysrKysrKysrKysr KysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9pbnRlcm5h bC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2ludGVybmFsLmMKaW5kZXgg NWU3MmNiMWNjMmQzLi5jMmUyMzc3MDJlOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9pbnRlcm5hbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9pbnRlcm5hbC5jCkBAIC0xNDAsNyArMTQwLDkgQEAgc3RhdGljIHZvaWQgaTkx NV9nZW1fb2JqZWN0X3B1dF9wYWdlc19pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIGk5 MTVfZ2VtX29iamVjdF9pbnRlcm5hbF9vcHMgPSB7CiAJLmZsYWdzID0gSTkxNV9HRU1fT0JKRUNU X0hBU19TVFJVQ1RfUEFHRSB8Ci0JCSBJOTE1X0dFTV9PQkpFQ1RfSVNfU0hSSU5LQUJMRSwKKwkJ IEk5MTVfR0VNX09CSkVDVF9JU19TSFJJTktBQkxFIHwKKwkJIEk5MTVfR0VNX09CSkVDVF9JU19N QVBQQUJMRSwKKwogCS5nZXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2ludGVy bmFsLAogCS5wdXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2ludGVybmFsLAog fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jCmluZGV4IDI2YTIzMzA0 ZGYzMi4uZDdlYzc0ZWQ1Yjg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fbG1lbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9s bWVtLmMKQEAgLTksMTEgKzksNDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogCiBjb25zdCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fbG1lbV9vYmpfb3BzID0gewor CS5mbGFncyA9IEk5MTVfR0VNX09CSkVDVF9JU19NQVBQQUJMRSwKKwogCS5nZXRfcGFnZXMgPSBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2J1ZGR5LAogCS5wdXRfcGFnZXMgPSBpOTE1X2dlbV9v YmplY3RfcHV0X3BhZ2VzX2J1ZGR5LAogCS5yZWxlYXNlID0gaTkxNV9nZW1fb2JqZWN0X3JlbGVh c2VfbWVtb3J5X3JlZ2lvbiwKIH07CiAKKy8qIFhYWDogVGltZSB0byB2ZnVuYyB5b3VyIGxpZmUg dXA/ICovCit2b2lkIF9faW9tZW0gKmk5MTVfZ2VtX29iamVjdF9sbWVtX2lvX21hcF9wYWdlKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCSAgICAgICB1bnNpZ25lZCBsb25n IG4pCit7CisJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldDsKKworCW9mZnNldCA9IGk5MTVfZ2VtX29i amVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBuKTsKKworCXJldHVybiBpb19tYXBwaW5nX21hcF93 Yygmb2JqLT5tbS5yZWdpb24tPmlvbWFwLCBvZmZzZXQsIFBBR0VfU0laRSk7Cit9CisKK3ZvaWQg X19pb21lbSAqaTkxNV9nZW1fb2JqZWN0X2xtZW1faW9fbWFwX3BhZ2VfYXRvbWljKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIG4pCit7 CisJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldDsKKworCW9mZnNldCA9IGk5MTVfZ2VtX29iamVjdF9n ZXRfZG1hX2FkZHJlc3Mob2JqLCBuKTsKKworCXJldHVybiBpb19tYXBwaW5nX21hcF9hdG9taWNf d2MoJm9iai0+bW0ucmVnaW9uLT5pb21hcCwgb2Zmc2V0KTsKK30KKwordm9pZCBfX2lvbWVtICpp OTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKKwkJCQkJICB1bnNpZ25lZCBsb25nIG4sCisJCQkJCSAgdW5zaWduZWQgbG9uZyBzaXplKQor eworCXJlc291cmNlX3NpemVfdCBvZmZzZXQ7CisKKwlHRU1fQlVHX09OKCEob2JqLT5mbGFncyAm IEk5MTVfQk9fQUxMT0NfQ09OVElHVU9VUykpOworCisJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqZWN0 X2dldF9kbWFfYWRkcmVzcyhvYmosIG4pOworCisJcmV0dXJuIGlvX21hcHBpbmdfbWFwX3djKCZv YmotPm1tLnJlZ2lvbi0+aW9tYXAsIG9mZnNldCwgc2l6ZSk7Cit9CisKIGJvb2wgaTkxNV9nZW1f b2JqZWN0X2lzX2xtZW0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1 Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqcmVnaW9uID0gb2JqLT5tbS5yZWdpb247CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uaAppbmRleCBlYmMxNWZlMjRmNTguLjMxYTY0 NjJiZGJiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xt ZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oCkBAIC0x Myw2ICsxMywxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIAogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9sbWVtX29ial9vcHM7CiAK K3ZvaWQgX19pb21lbSAqaTkxNV9nZW1fb2JqZWN0X2xtZW1faW9fbWFwKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCSAgdW5zaWduZWQgbG9uZyBuLCB1bnNpZ25lZCBsb25n IHNpemUpOwordm9pZCBfX2lvbWVtICppOTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXBfcGFnZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCQkgICAgICAgdW5zaWduZWQgbG9u ZyBuKTsKK3ZvaWQgX19pb21lbSAqCitpOTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXBfcGFnZV9h dG9taWMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkJdW5zaWduZWQgbG9u ZyBuKTsKKwogYm9vbCBpOTE1X2dlbV9vYmplY3RfaXNfbG1lbShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKTsKIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCmluZGV4IGQ1ODM5Y2JkODJjMC4uZThj Yzc3NjU4MWQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5o CkBAIC0xNTgsNiArMTU4LDEyIEBAIGk5MTVfZ2VtX29iamVjdF9pc19wcm94eShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBvYmotPm9wcy0+ZmxhZ3MgJiBJ OTE1X0dFTV9PQkpFQ1RfSVNfUFJPWFk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbAoraTkxNV9n ZW1fb2JqZWN0X2lzX21hcHBhYmxlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCit7CisJcmV0dXJuIG9iai0+b3BzLT5mbGFncyAmIEk5MTVfR0VNX09CSkVDVF9JU19NQVBQ QUJMRTsKK30KKwogc3RhdGljIGlubGluZSBib29sCiBpOTE1X2dlbV9vYmplY3RfbmVlZHNfYXN5 bmNfY2FuY2VsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKaW5kZXgg MGQ5MzRiNjdlNTQ3Li43NDM4OTg5NDQ3NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTMyLDcgKzMyLDggQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Rfb3BzIHsKICNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJV Q1RfUEFHRQlCSVQoMCkKICNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0lTX1NIUklOS0FCTEUJQklU KDEpCiAjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9JU19QUk9YWQlCSVQoMikKLSNkZWZpbmUgSTkx NV9HRU1fT0JKRUNUX0FTWU5DX0NBTkNFTAlCSVQoMykKKyNkZWZpbmUgSTkxNV9HRU1fT0JKRUNU X0lTX01BUFBBQkxFCUJJVCgzKQorI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfQVNZTkNfQ0FOQ0VM CUJJVCg0KQogCiAJLyogSW50ZXJmYWNlIGJldHdlZW4gdGhlIEdFTSBvYmplY3QgYW5kIGl0cyBi YWNraW5nIHN0b3JhZ2UuCiAJICogZ2V0X3BhZ2VzKCkgaXMgY2FsbGVkIG9uY2UgcHJpb3IgdG8g dGhlIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBzZXQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3BhZ2VzLmMKaW5kZXggYjBlYzA5NTljMTNmLi5mYzRhZDI5Y2U4ODEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jCkBAIC03LDYgKzcsNyBAQAogI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5jbHVk ZSAiaTkxNV9zY2F0dGVybGlzdC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKIAogdm9p ZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKIAkJCQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKQEAgLTE3Miw3ICsxNzMsOSBAQCBf X2k5MTVfZ2VtX29iamVjdF91bnNldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCQl2b2lkICpwdHI7CiAKIAkJcHRyID0gcGFnZV9tYXNrX2JpdHMob2JqLT5tbS5tYXBw aW5nKTsKLQkJaWYgKGlzX3ZtYWxsb2NfYWRkcihwdHIpKQorCQlpZiAoaTkxNV9nZW1fb2JqZWN0 X2lzX2xtZW0ob2JqKSkKKwkJCWlvX21hcHBpbmdfdW5tYXAocHRyKTsKKwkJZWxzZSBpZiAoaXNf dm1hbGxvY19hZGRyKHB0cikpCiAJCQl2dW5tYXAocHRyKTsKIAkJZWxzZQogCQkJa3VubWFwKGtt YXBfdG9fcGFnZShwdHIpKTsKQEAgLTIzMSw3ICsyMzQsNyBAQCBpbnQgX19pOTE1X2dlbV9vYmpl Y3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiB9CiAKIC8qIFRo ZSAnbWFwcGluZycgcGFydCBvZiBpOTE1X2dlbV9vYmplY3RfcGluX21hcCgpIGJlbG93ICovCi1z dGF0aWMgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X21hcChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAorc3RhdGljIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9tYXAoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgZW51bSBpOTE1X21hcF90eXBlIHR5cGUpCiB7 CiAJdW5zaWduZWQgbG9uZyBuX3BhZ2VzID0gb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsK QEAgLTI0NCw2ICsyNDcsMTMgQEAgc3RhdGljIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9tYXAoY29u c3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlwZ3Byb3RfdCBwZ3Byb3Q7CiAJ dm9pZCAqYWRkcjsKIAorCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfbG1lbShvYmopKSB7CisJCWlm ICh0eXBlICE9IEk5MTVfTUFQX1dDKQorCQkJcmV0dXJuIE5VTEw7CisKKwkJcmV0dXJuIGk5MTVf Z2VtX29iamVjdF9sbWVtX2lvX21hcChvYmosIDAsIG9iai0+YmFzZS5zaXplKTsKKwl9CisKIAkv KiBBIHNpbmdsZSBwYWdlIGNhbiBhbHdheXMgYmUga21hcHBlZCAqLwogCWlmIChuX3BhZ2VzID09 IDEgJiYgdHlwZSA9PSBJOTE1X01BUF9XQikKIAkJcmV0dXJuIGttYXAoc2dfcGFnZShzZ3QtPnNn bCkpOwpAQCAtMjg5LDcgKzI5OSw3IEBAIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJdm9pZCAqcHRyOwogCWludCBlcnI7CiAK LQlpZiAodW5saWtlbHkoIWk5MTVfZ2VtX29iamVjdF9oYXNfc3RydWN0X3BhZ2Uob2JqKSkpCisJ aWYgKHVubGlrZWx5KCFpOTE1X2dlbV9vYmplY3RfaXNfbWFwcGFibGUob2JqKSkpCiAJCXJldHVy biBFUlJfUFRSKC1FTlhJTyk7CiAKIAllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm9i ai0+bW0ubG9jayk7CkBAIC0zMjEsNyArMzMxLDkgQEAgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X3Bp bl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCWdvdG8gZXJyX3VucGlu OwogCQl9CiAKLQkJaWYgKGlzX3ZtYWxsb2NfYWRkcihwdHIpKQorCQlpZiAoaTkxNV9nZW1fb2Jq ZWN0X2lzX2xtZW0ob2JqKSkKKwkJCWlvX21hcHBpbmdfdW5tYXAocHRyKTsKKwkJZWxzZSBpZiAo aXNfdm1hbGxvY19hZGRyKHB0cikpCiAJCQl2dW5tYXAocHRyKTsKIAkJZWxzZQogCQkJa3VubWFw KGttYXBfdG9fcGFnZShwdHIpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zaG1lbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3No bWVtLmMKaW5kZXggNGM0OTU0ZThjZTBhLi45ZjVkOTAzZjc3OTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jCkBAIC00MjIsNyArNDIyLDggQEAgc3RhdGljIHZv aWQgc2htZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiBjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fc2htZW1fb3BzID0gewog CS5mbGFncyA9IEk5MTVfR0VNX09CSkVDVF9IQVNfU1RSVUNUX1BBR0UgfAotCQkgSTkxNV9HRU1f T0JKRUNUX0lTX1NIUklOS0FCTEUsCisJCSBJOTE1X0dFTV9PQkpFQ1RfSVNfU0hSSU5LQUJMRSB8 CisJCSBJOTE1X0dFTV9PQkpFQ1RfSVNfTUFQUEFCTEUsCiAKIAkuZ2V0X3BhZ2VzID0gc2htZW1f Z2V0X3BhZ2VzLAogCS5wdXRfcGFnZXMgPSBzaG1lbV9wdXRfcGFnZXMsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfZ2VtX29iamVjdC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYwppbmRleCAz YzVkMTdiMmI2NzAuLjY4NmUwZTkwOTI4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfZ2VtX29iamVjdC5jCkBAIC04Niw3ICs4Niw5IEBAIHN0 YXRpYyB2b2lkIGh1Z2VfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaHVnZV9vcHMg PSB7CiAJLmZsYWdzID0gSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJVQ1RfUEFHRSB8Ci0JCSBJOTE1 X0dFTV9PQkpFQ1RfSVNfU0hSSU5LQUJMRSwKKwkJIEk5MTVfR0VNX09CSkVDVF9JU19TSFJJTktB QkxFIHwKKwkJIEk5MTVfR0VNX09CSkVDVF9JU19NQVBQQUJMRSwKKwogCS5nZXRfcGFnZXMgPSBo dWdlX2dldF9wYWdlcywKIAkucHV0X3BhZ2VzID0gaHVnZV9wdXRfcGFnZXMsCiB9OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMK aW5kZXggMWU5YTBlZWYxN2ZjLi5iYTk4ZTgyNTRiODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtMTMsOCArMTMs MTAgQEAKIAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9sbWVtLmgiCiAjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmgiCiAj aW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKICNpbmNsdWRlICJndC9pbnRl bF9ndC5oIgorI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5oIgogI2luY2x1ZGUg InNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgogCiBzdGF0aWMgdm9pZCBjbG9zZV9vYmplY3RzKHN0 cnVjdCBsaXN0X2hlYWQgKm9iamVjdHMpCkBAIC0yNzQsNiArMjc2LDc5IEBAIHN0YXRpYyBpbnQg aWd0X2xtZW1fY3JlYXRlKHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50 IGlndF9sbWVtX3dyaXRlX2NwdSh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gaTkxNS0+ZW5naW5l W0JDUzBdLT5rZXJuZWxfY29udGV4dDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq OworCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsKKwl1MzIgKnZhZGRyOworCXUzMiBkd29yZDsKKwl1 MzIgdmFsOworCXUzMiBzejsKKwlpbnQgZXJyOworCisJaWYgKCFIQVNfRU5HSU5FKGk5MTUsIEJD UzApKQorCQlyZXR1cm4gMDsKKworCXN6ID0gcm91bmRfdXAocHJhbmRvbV91MzJfc3RhdGUoJnBy bmcpICUgU1pfMzJNLCBQQUdFX1NJWkUpOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9sbWVtKGk5MTUsIHN6LCBJOTE1X0JPX0FMTE9DX0NPTlRJR1VPVVMpOworCWlmIChJU19FUlIo b2JqKSkKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKKworCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQyk7CisJaWYgKElTX0VSUih2YWRkcikpIHsKKwkJcHJf ZXJyKCJGYWlsZWQgdG8gaW9tYXAgbG1lbWJhcjsgZXJyPSVkXG4iLCAoaW50KVBUUl9FUlIodmFk ZHIpKTsKKwkJZXJyID0gUFRSX0VSUih2YWRkcik7CisJCWdvdG8gb3V0X3B1dDsKKwl9CisKKwl2 YWwgPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7CisKKwkvKiBXcml0ZSBmcm9tIGdwdSBhbmQg dGhlbiByZWFkIGZyb20gY3B1ICovCisJZXJyID0gaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0KG9i aiwgY2UsIHZhbCk7CisJaWYgKGVycikKKwkJZ290byBvdXRfdW5waW47CisKKwlpOTE1X2dlbV9v YmplY3RfbG9jayhvYmopOworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fd2NfZG9tYWlu KG9iaiwgdHJ1ZSk7CisJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOworCWlmIChlcnIpCisJ CWdvdG8gb3V0X3VucGluOworCisJZm9yIChkd29yZCA9IDA7IGR3b3JkIDwgc3ogLyBzaXplb2Yo dTMyKTsgKytkd29yZCkgeworCQlpZiAodmFkZHJbZHdvcmRdICE9IHZhbCkgeworCQkJcHJfZXJy KCJ2YWRkclsldV09JXUsIHZhbD0ldVxuIiwgZHdvcmQsIHZhZGRyW2R3b3JkXSwKKwkJCSAgICAg ICAgdmFsKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIFdy aXRlIGZyb20gdGhlIGNwdSBhbmQgcmVhZCBhZ2FpbiBmcm9tIHRoZSBjcHUgKi8KKwltZW1zZXQz Mih2YWRkciwgdmFsIF4gMHhkZWFkYmVhZiwgc3ogLyBzaXplb2YodTMyKSk7CisKKwlmb3IgKGR3 b3JkID0gMDsgZHdvcmQgPCBzeiAvIHNpemVvZih1MzIpOyArK2R3b3JkKSB7CisJCWlmICh2YWRk cltkd29yZF0gIT0gKHZhbCBeIDB4ZGVhZGJlYWYpKSB7CisJCQlwcl9lcnIoInZhZGRyWyV1XT0l dSwgdmFsPSV1XG4iLCBkd29yZCwgdmFkZHJbZHdvcmRdLAorCQkJICAgICAgICB2YWwgXiAweGRl YWRiZWFmKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCX0KKworb3V0X3Vu cGluOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKK291dF9wdXQ6CisJaTkxNV9n ZW1fb2JqZWN0X3B1dChvYmopOworCisJaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJ VF9MT0NLRUQpKQorCQllcnIgPSAtRUlPOworCisJcmV0dXJuIGVycjsKK30KKwogaW50IGludGVs X21lbW9yeV9yZWdpb25fbW9ja19zZWxmdGVzdHModm9pZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewpAQCAtMzEzLDYgKzM4OCw3IEBAIGludCBpbnRl bF9tZW1vcnlfcmVnaW9uX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJ CVNVQlRFU1QoaWd0X2xtZW1fY3JlYXRlKSwKKwkJU1VCVEVTVChpZ3RfbG1lbV93cml0ZV9jcHUp LAogCX07CiAJaW50IGVycjsKIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=