From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 09/37] drm/i915/lmem: support kernel mapping Date: Fri, 9 Aug 2019 23:26:15 +0100 Message-ID: <20190809222643.23142-10-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-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: dri-devel@lists.freedesktop.org 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 Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jCmluZGV4IGFjNWExNWRi MWQyNy4uOGQ5NTcxMzVhZmE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v 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 cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCmluZGV4IDFhZjgzODA1MGQ2Yy4uMWNi YzYzNDcwMjEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5o CkBAIC0xNTgsNiArMTU4LDEyIEBAIGk5MTVfZ2VtX29iamVjdF9pc19wcm94eShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBvYmotPm9wcy0+ZmxhZ3MgJiBJ OTE1X0dFTV9PQkpFQ1RfSVNfUFJPWFk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbAoraTkxNV9n ZW1fb2JqZWN0X2lzX21hcHBhYmxlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCit7CisJcmV0dXJuIG9iai0+b3BzLT5mbGFncyAmIEk5MTVfR0VNX09CSkVDVF9JU19NQVBQ QUJMRTsKK30KKwogc3RhdGljIGlubGluZSBib29sCiBpOTE1X2dlbV9vYmplY3RfbmVlZHNfYXN5 bmNfY2FuY2VsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKaW5kZXgg MjE0MmQ3NGE1N2VhLi4xOWMzZjk4MDRiNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTMxLDcgKzMxLDggQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Rfb3BzIHsKICNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJV Q1RfUEFHRQlCSVQoMCkKICNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0lTX1NIUklOS0FCTEUJQklU KDEpCiAjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9JU19QUk9YWQlCSVQoMikKLSNkZWZpbmUgSTkx NV9HRU1fT0JKRUNUX0FTWU5DX0NBTkNFTAlCSVQoMykKKyNkZWZpbmUgSTkxNV9HRU1fT0JKRUNU X0lTX01BUFBBQkxFCUJJVCgzKQorI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfQVNZTkNfQ0FOQ0VM CUJJVCg0KQogCiAJLyogSW50ZXJmYWNlIGJldHdlZW4gdGhlIEdFTSBvYmplY3QgYW5kIGl0cyBi YWNraW5nIHN0b3JhZ2UuCiAJICogZ2V0X3BhZ2VzKCkgaXMgY2FsbGVkIG9uY2UgcHJpb3IgdG8g dGhlIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBzZXQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3BhZ2VzLmMKaW5kZXggZDNmMGRlYmRiODc1Li4wYjczODYwZGVhZjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jCkBAIC03LDYgKzcsNyBAQAogI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5jbHVk ZSAiaTkxNV9zY2F0dGVybGlzdC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKIAogdm9p ZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKIAkJCQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKQEAgLTE3MSw3ICsxNzIsOSBAQCBf X2k5MTVfZ2VtX29iamVjdF91bnNldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCQl2b2lkICpwdHI7CiAKIAkJcHRyID0gcGFnZV9tYXNrX2JpdHMob2JqLT5tbS5tYXBw aW5nKTsKLQkJaWYgKGlzX3ZtYWxsb2NfYWRkcihwdHIpKQorCQlpZiAoaTkxNV9nZW1fb2JqZWN0 X2lzX2xtZW0ob2JqKSkKKwkJCWlvX21hcHBpbmdfdW5tYXAocHRyKTsKKwkJZWxzZSBpZiAoaXNf dm1hbGxvY19hZGRyKHB0cikpCiAJCQl2dW5tYXAocHRyKTsKIAkJZWxzZQogCQkJa3VubWFwKGtt YXBfdG9fcGFnZShwdHIpKTsKQEAgLTIzMCw3ICsyMzMsNyBAQCBpbnQgX19pOTE1X2dlbV9vYmpl Y3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiB9CiAKIC8qIFRo ZSAnbWFwcGluZycgcGFydCBvZiBpOTE1X2dlbV9vYmplY3RfcGluX21hcCgpIGJlbG93ICovCi1z dGF0aWMgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X21hcChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAorc3RhdGljIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9tYXAoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgZW51bSBpOTE1X21hcF90eXBlIHR5cGUpCiB7 CiAJdW5zaWduZWQgbG9uZyBuX3BhZ2VzID0gb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsK QEAgLTI0Myw2ICsyNDYsMTMgQEAgc3RhdGljIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9tYXAoY29u c3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlwZ3Byb3RfdCBwZ3Byb3Q7CiAJ dm9pZCAqYWRkcjsKIAorCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfbG1lbShvYmopKSB7CisJCWlm ICh0eXBlICE9IEk5MTVfTUFQX1dDKQorCQkJcmV0dXJuIE5VTEw7CisKKwkJcmV0dXJuIGk5MTVf Z2VtX29iamVjdF9sbWVtX2lvX21hcChvYmosIDAsIG9iai0+YmFzZS5zaXplKTsKKwl9CisKIAkv KiBBIHNpbmdsZSBwYWdlIGNhbiBhbHdheXMgYmUga21hcHBlZCAqLwogCWlmIChuX3BhZ2VzID09 IDEgJiYgdHlwZSA9PSBJOTE1X01BUF9XQikKIAkJcmV0dXJuIGttYXAoc2dfcGFnZShzZ3QtPnNn bCkpOwpAQCAtMjg4LDcgKzI5OCw3IEBAIHZvaWQgKmk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJdm9pZCAqcHRyOwogCWludCBlcnI7CiAK LQlpZiAodW5saWtlbHkoIWk5MTVfZ2VtX29iamVjdF9oYXNfc3RydWN0X3BhZ2Uob2JqKSkpCisJ aWYgKHVubGlrZWx5KCFpOTE1X2dlbV9vYmplY3RfaXNfbWFwcGFibGUob2JqKSkpCiAJCXJldHVy biBFUlJfUFRSKC1FTlhJTyk7CiAKIAllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm9i ai0+bW0ubG9jayk7CkBAIC0zMjAsNyArMzMwLDkgQEAgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X3Bp 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 aW5kZXggNDIyNDE2ZjcxNjQzLi4yNTcwZmE5M2UyODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtMTMsOCArMTMs MTAgQEAKIAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9sbWVtLmgiCiAjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmgiCiAj aW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKICNpbmNsdWRlICJndC9pbnRl bF9ndC5oIgorI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5oIgogCiBzdGF0aWMg dm9pZCBjbG9zZV9vYmplY3RzKHN0cnVjdCBsaXN0X2hlYWQgKm9iamVjdHMpCiB7CkBAIC0zNzMs NiArMzc1LDc5IEBAIHN0YXRpYyBpbnQgaWd0X2xtZW1fY3JlYXRlKHZvaWQgKmFyZykKIAlyZXR1 cm4gZXJyOwogfQogCitzdGF0aWMgaW50IGlndF9sbWVtX3dyaXRlX2NwdSh2b2lkICphcmcpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2Nv bnRleHQgKmNlID0gaTkxNS0+ZW5naW5lW0JDUzBdLT5rZXJuZWxfY29udGV4dDsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsKKwl1MzIg KnZhZGRyOworCXUzMiBkd29yZDsKKwl1MzIgdmFsOworCXUzMiBzejsKKwlpbnQgZXJyOworCisJ aWYgKCFIQVNfRU5HSU5FKGk5MTUsIEJDUzApKQorCQlyZXR1cm4gMDsKKworCXN6ID0gcm91bmRf dXAocHJhbmRvbV91MzJfc3RhdGUoJnBybmcpICUgU1pfMzJNLCBQQUdFX1NJWkUpOworCisJb2Jq ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9sbWVtKGk5MTUsIHN6LCBJOTE1X0JPX0FMTE9DX0NP TlRJR1VPVVMpOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKKwor CXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQyk7CisJaWYg KElTX0VSUih2YWRkcikpIHsKKwkJcHJfZXJyKCJGYWlsZWQgdG8gaW9tYXAgbG1lbWJhcjsgZXJy PSVkXG4iLCAoaW50KVBUUl9FUlIodmFkZHIpKTsKKwkJZXJyID0gUFRSX0VSUih2YWRkcik7CisJ CWdvdG8gb3V0X3B1dDsKKwl9CisKKwl2YWwgPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7CisK KwkvKiBXcml0ZSBmcm9tIGdwdSBhbmQgdGhlbiByZWFkIGZyb20gY3B1ICovCisJZXJyID0gaTkx NV9nZW1fb2JqZWN0X2ZpbGxfYmx0KG9iaiwgY2UsIHZhbCk7CisJaWYgKGVycikKKwkJZ290byBv dXRfdW5waW47CisKKwlpOTE1X2dlbV9vYmplY3RfbG9jayhvYmopOworCWVyciA9IGk5MTVfZ2Vt X29iamVjdF9zZXRfdG9fd2NfZG9tYWluKG9iaiwgdHJ1ZSk7CisJaTkxNV9nZW1fb2JqZWN0X3Vu bG9jayhvYmopOworCWlmIChlcnIpCisJCWdvdG8gb3V0X3VucGluOworCisJZm9yIChkd29yZCA9 IDA7IGR3b3JkIDwgc3ogLyBzaXplb2YodTMyKTsgKytkd29yZCkgeworCQlpZiAodmFkZHJbZHdv cmRdICE9IHZhbCkgeworCQkJcHJfZXJyKCJ2YWRkclsldV09JXUsIHZhbD0ldVxuIiwgZHdvcmQs IHZhZGRyW2R3b3JkXSwKKwkJCSAgICAgICAgdmFsKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQli cmVhazsKKwkJfQorCX0KKworCS8qIFdyaXRlIGZyb20gdGhlIGNwdSBhbmQgcmVhZCBhZ2FpbiBm cm9tIHRoZSBjcHUgKi8KKwltZW1zZXQzMih2YWRkciwgdmFsIF4gMHhkZWFkYmVhZiwgc3ogLyBz aXplb2YodTMyKSk7CisKKwlmb3IgKGR3b3JkID0gMDsgZHdvcmQgPCBzeiAvIHNpemVvZih1MzIp OyArK2R3b3JkKSB7CisJCWlmICh2YWRkcltkd29yZF0gIT0gKHZhbCBeIDB4ZGVhZGJlYWYpKSB7 CisJCQlwcl9lcnIoInZhZGRyWyV1XT0ldSwgdmFsPSV1XG4iLCBkd29yZCwgdmFkZHJbZHdvcmRd LAorCQkJICAgICAgICB2YWwgXiAweGRlYWRiZWFmKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQli cmVhazsKKwkJfQorCX0KKworb3V0X3VucGluOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo b2JqKTsKK291dF9wdXQ6CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworCisJaWYgKGlndF9m bHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQorCQllcnIgPSAtRUlPOworCisJcmV0 dXJuIGVycjsKK30KKwogaW50IGludGVsX21lbW9yeV9yZWdpb25fbW9ja19zZWxmdGVzdHModm9p ZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewpAQCAt NDE0LDYgKzQ4OSw3IEBAIGludCBpbnRlbF9tZW1vcnlfcmVnaW9uX2xpdmVfc2VsZnRlc3RzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X2xtZW1fY3JlYXRlKSwKKwkJU1VC VEVTVChpZ3RfbG1lbV93cml0ZV9jcHUpLAogCX07CiAJaW50IGVycjsKIAotLSAKMi4yMC4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=