From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [RFC PATCH 09/42] drm/i915: support creating LMEM objects Date: Thu, 14 Feb 2019 14:57:07 +0000 Message-ID: <20190214145740.14521-10-matthew.auld@intel.com> References: <20190214145740.14521-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 396EE6E915 for ; Thu, 14 Feb 2019 14:57:54 +0000 (UTC) In-Reply-To: <20190214145740.14521-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 List-Id: intel-gfx@lists.freedesktop.org V2UgY3VycmVudGx5IGRlZmluZSBMTUVNLCBvciBsb2NhbCBtZW1vcnksIGFzIGp1c3QgYW5vdGhl ciBtZW1vcnkKcmVnaW9uLCBsaWtlIHN5c3RlbSBtZW1vcnkgb3Igc3RvbGVuLCB3aGljaCB3ZSBj YW4gZXhwb3NlIHRvIHVzZXJzcGFjZQphbmQgY2FuIGJlIG1hcHBlZCB0byB0aGUgQ1BVIHZpYSBz b21lIEJBUi4KClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVs LmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMSAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgNSArKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmMgICAgICAgIHwgIDEgKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAgICAgIHwgODIgKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaCAgICAg IHwgMzUgKysrKysrKysKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0 cy5oICB8ICAxICsKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5j ICB8IDY0ICsrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxODkgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9s bWVtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdp b25fbG1lbS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA5NmJlMjY0ZmEzODIuLjY2YTM1YWU4 OTFkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTkwLDYgKzkwLDcgQEAgaTkxNS15ICs9IFwK IAkgIGludGVsX2xyYy5vIFwKIAkgIGludGVsX21lbW9yeV9yZWdpb24ubyBcCiAJICBpbnRlbF9t b2NzLm8gXAorCSAgaW50ZWxfcmVnaW9uX2xtZW0ubyBcCiAJICBpbnRlbF9yaW5nYnVmZmVyLm8g XAogCSAgaW50ZWxfdW5jb3JlLm8gXAogCSAgaW50ZWxfd29wY20ubwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKaW5kZXggMzA5M2E4ODE0ZjhlLi5hMGVkMDAwZDUyYWEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaApAQCAtODUsNiArODUsOCBAQAogI2luY2x1ZGUgImk5MTVfdGltZWxpbmUuaCIKICNp bmNsdWRlICJpOTE1X3ZtYS5oIgogCisjaW5jbHVkZSAiaW50ZWxfcmVnaW9uX2xtZW0uaCIKKwog I2luY2x1ZGUgImludGVsX2d2dC5oIgogCiAvKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246CkBAIC0x NTAyLDYgKzE1MDQsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAl2b2lkIF9faW9t ZW0gKnJlZ3M7CiAKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqcmVnaW9uc1tBUlJBWV9T SVpFKGludGVsX3JlZ2lvbl9tYXApXTsKKwogCXN0cnVjdCBpbnRlbF91bmNvcmUgdW5jb3JlOwog CiAJc3RydWN0IGk5MTVfdmlydHVhbF9ncHUgdmdwdTsKQEAgLTI1MjEsNiArMjUyNSw3IEBAIHN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVudF9zaXplKHZvaWQpCiAjZGVm aW5lIEhBU19JUEMoZGV2X3ByaXYpCQkgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5kaXNwbGF5Lmhh c19pcGMpCiAKICNkZWZpbmUgSEFTX1JFR0lPTihpOTE1LCBpKSAoSU5URUxfSU5GTyhpOTE1KS0+ bWVtb3J5X3JlZ2lvbnMgJiAoaSkpCisjZGVmaW5lIEhBU19MTUVNKGk5MTUpIEhBU19SRUdJT04o aTkxNSwgUkVHSU9OX0xNRU0pCiAKIC8qCiAgKiBGb3Igbm93LCBhbnl0aGluZyB3aXRoIGEgR3VD IHJlcXVpcmVzIHVDb2RlIGxvYWRpbmcsIGFuZCB0aGVuIHN1cHBvcnRzCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX29iamVjdC5jCmluZGV4IGFhYjhjZGQ4MGU2ZC4uODYwNDgyYTNmMDI4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuYwpAQCAtNDYsMyArNDYsNCBAQCB2 b2lkIGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCiAJb2JqLT5jYWNoZV9kaXJ0eSA9CiAJCSEob2JqLT5jYWNoZV9jb2hl cmVudCAmIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFKTsKIH0KKwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi40YTIwNTYzOWNiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CisjaW5jbHVkZSAiaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIgorI2luY2x1ZGUgImludGVsX3JlZ2lv bl9sbWVtLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMg cmVnaW9uX2xtZW1fb2JqX29wcyA9IHsKKwkuZ2V0X3BhZ2VzID0gaTkxNV9tZW1vcnlfcmVnaW9u X2dldF9wYWdlc19idWRkeSwKKwkucHV0X3BhZ2VzID0gaTkxNV9tZW1vcnlfcmVnaW9uX3B1dF9w YWdlc19idWRkeSwKKwkucmVsZWFzZSA9IGk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21lbW9yeV9y ZWdpb24sCit9OworCitzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgorcmVnaW9u X2xtZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJ ICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJCSAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbWVtLT5pOTE1OworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7CisKKwlpZiAoZmxhZ3MgJiBJOTE1X0JPX0FMTE9DX0NPTlRJR1VP VVMpCisJCXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oc2l6ZSk7CisKKwlpZiAoc2l6ZSA+IEJJ VChtZW0tPm1tLm1heF9vcmRlcikgKiBtZW0tPm1tLm1pbl9zaXplKQorCQlyZXR1cm4gRVJSX1BU UigtRTJCSUcpOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGk5MTUpOworCWlmICgh b2JqKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWRybV9nZW1fcHJpdmF0ZV9vYmpl Y3RfaW5pdCgmaTkxNS0+ZHJtLCAmb2JqLT5iYXNlLCBzaXplKTsKKwlpOTE1X2dlbV9vYmplY3Rf aW5pdChvYmosICZyZWdpb25fbG1lbV9vYmpfb3BzKTsKKworCW9iai0+cmVhZF9kb21haW5zID0g STkxNV9HRU1fRE9NQUlOX0NQVSB8IEk5MTVfR0VNX0RPTUFJTl9HVFQ7CisJb2JqLT5jYWNoZV9s ZXZlbCA9IEhBU19MTEMoaTkxNSkgPyBJOTE1X0NBQ0hFX0xMQyA6IEk5MTVfQ0FDSEVfTk9ORTsK KworCXJldHVybiBvYmo7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3Jl Z2lvbl9vcHMgcmVnaW9uX2xtZW1fb3BzID0geworCS5pbml0ID0gaTkxNV9tZW1vcnlfcmVnaW9u X2luaXRfYnVkZHksCisJLnJlbGVhc2UgPSBpOTE1X21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRk eSwKKwkub2JqZWN0X2NyZWF0ZSA9IHJlZ2lvbl9sbWVtX29iamVjdF9jcmVhdGUsCit9OworCiti b29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCit7CisJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKnJlZ2lvbiA9IG9iai0+bWVtb3J5 X3JlZ2lvbjsKKworCXJldHVybiByZWdpb24gJiYgcmVnaW9uLT50eXBlID09IElOVEVMX0xNRU07 Cit9CisKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK2k5MTVfZ2VtX29iamVjdF9jcmVh dGVfbG1lbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgICByZXNvdXJjZV9z aXplX3Qgc2l6ZSwKKwkJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKGk5MTUtPnJlZ2lvbnNbSU5URUxfTUVNT1JZX0xNRU1d LAorCQkJCQkgICAgIHNpemUsIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y ZWdpb25fbG1lbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzIw NGY2MWFhYjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmVnaW9uX2xtZW0uaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkg SW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh cmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFn cmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIK KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09G VFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgX19JTlRFTF9SRUdJT05fTE1FTV9ICisjZGVmaW5l IF9fSU5URUxfUkVHSU9OX0xNRU1fSAorCitib29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVtKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOworCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqCitpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCisJCQkgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkgICAgdW5zaWduZWQg aW50IGZsYWdzKTsKKworI2VuZGlmIC8qICFfX0lOVEVMX1JFR0lPTl9MTUVNX0ggKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3Rz LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5o CmluZGV4IDZkNzY2OTI1YWQwNC4uNWMzOGVhN2M1ZmZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmgKQEAgLTIzLDYgKzIz LDcgQEAgc2VsZnRlc3QoZ2VtLCBpOTE1X2dlbV9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGV2 aWN0LCBpOTE1X2dlbV9ldmljdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGh1Z2VwYWdlcywg aTkxNV9nZW1faHVnZV9wYWdlX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoY29udGV4dHMsIGk5 MTVfZ2VtX2NvbnRleHRfbGl2ZV9zZWxmdGVzdHMpCitzZWxmdGVzdChtZW1vcnlfcmVnaW9uLCBp bnRlbF9tZW1vcnlfcmVnaW9uX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoaGFuZ2NoZWNrLCBp bnRlbF9oYW5nY2hlY2tfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChleGVjbGlzdHMsIGludGVs X2V4ZWNsaXN0c19saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGd1YywgaW50ZWxfZ3VjX2xpdmVf c2VsZnRlc3QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X21lbW9yeV9yZWdpb24uYwppbmRleCAwZjY0MzJhMmE0YzQuLjA4ZmU2ZTA2NDM2MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lv bi5jCkBAIC0zNjIsNiArMzYyLDI4IEBAIHN0YXRpYyBpbnQgaWd0X21vY2tfdm9sYXRpbGUodm9p ZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X2xtZW1fY3JlYXRlKHZv aWQgKmFyZykKK3sKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gYXJnOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY3R4LT5pOTE1OworCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CisJaW50IGVyciA9IDA7CisKKwlvYmogPSBpOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX2xtZW0oaTkxNSwgUEFHRV9TSVpFLCAwKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJl dHVybiBQVFJfRVJSKG9iaik7CisKKwllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9i aik7CisJaWYgKGVycikKKwkJZ290byBvdXRfcHV0OworCisJaTkxNV9nZW1fb2JqZWN0X3VucGlu X3BhZ2VzKG9iaik7CitvdXRfcHV0OgorCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKworCXJl dHVybiBlcnI7Cit9CisKIGludCBpbnRlbF9tZW1vcnlfcmVnaW9uX21vY2tfc2VsZnRlc3RzKHZv aWQpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKQEAg LTM5OCwzICs0MjAsNDUgQEAgaW50IGludGVsX21lbW9yeV9yZWdpb25fbW9ja19zZWxmdGVzdHMo dm9pZCkKIAogCXJldHVybiBlcnI7CiB9CisKK2ludCBpbnRlbF9tZW1vcnlfcmVnaW9uX2xpdmVf c2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QoaWd0X2xtZW1fY3Jl YXRlKSwKKwl9OworCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CisJc3RydWN0IGRybV9m aWxlICpmaWxlOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCWludCBlcnI7CisKKwlpZiAo IUhBU19MTUVNKGk5MTUpKSB7CisJCXByX2luZm8oImRldmljZSBsYWNrcyBMTUVNIHN1cHBvcnQs IHNraXBwaW5nXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGk5MTVfdGVybWluYWxseV93 ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCisJCXJldHVybiAwOworCisJZmlsZSA9IG1vY2tfZmls ZShpOTE1KTsKKwlpZiAoSVNfRVJSKGZpbGUpKQorCQlyZXR1cm4gUFRSX0VSUihmaWxlKTsKKwor CW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXdha2VyZWYgPSBpbnRlbF9y dW50aW1lX3BtX2dldChpOTE1KTsKKworCWN0eCA9IGxpdmVfY29udGV4dChpOTE1LCBmaWxlKTsK KwlpZiAoSVNfRVJSKGN0eCkpIHsKKwkJZXJyID0gUFRSX0VSUihjdHgpOworCQlnb3RvIG91dF91 bmxvY2s7CisJfQorCisJZXJyID0gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgY3R4KTsKKworb3V0X3Vu bG9jazoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwltdXRleF91bmxv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJbW9ja19maWxlX2ZyZWUoaTkxNSwgZmls ZSk7CisKKwlyZXR1cm4gZXJyOworfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=