From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 13/33] drm/i915: Move object->pages API to i915_gem_object.[ch] Date: Mon, 20 May 2019 09:01:07 +0100 Message-ID: <20190520080127.18255-13-chris@chris-wilson.co.uk> References: <20190520080127.18255-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 796FB89262 for ; Mon, 20 May 2019 08:03:28 +0000 (UTC) In-Reply-To: <20190520080127.18255-1-chris@chris-wilson.co.uk> 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: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHRoZSBjb2RlIGZvciBtYW5pcHVsYXRpbmcgdGhlIHBhZ2VzIG9uIGFuIG9iamVj dCBpcyBzdGlsbApyZXNpZGluZyBpbiBpOTE1X2dlbS5jLCBtb3ZlIGl0IHRvIGk5MTVfZ2VtX29i amVjdC5jCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IC4uLi9ncHUvZHJtL2k5MTUveyA9PiBnZW19L2k5MTVfZ2VtX29iamVjdC5jICB8ICAgMAogLi4u L2dwdS9kcm0vaTkxNS97ID0+IGdlbX0vaTkxNV9nZW1fb2JqZWN0LmggIHwgMTI3ICsrKysrKysr KysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8 IDEzNyArLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFs cy5jICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCAg ICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1 ZmZlci5oICAgICAgfCAgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyks IDEzNiBkZWxldGlvbnMoLSkKIHJlbmFtZSBkcml2ZXJzL2dwdS9kcm0vaTkxNS97ID0+IGdlbX0v aTkxNV9nZW1fb2JqZWN0LmMgKDEwMCUpCiByZW5hbWUgZHJpdmVycy9ncHUvZHJtL2k5MTUveyA9 PiBnZW19L2k5MTVfZ2VtX29iamVjdC5oICg1OSUpCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA5 NjM0NGM5YTA3MjYuLjFjOGJkMGE1MjEyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTg2LDcg Kzg2LDEwIEBAIGk5MTUteSArPSAkKGd0LXkpCiAKICMgR0VNIChHcmFwaGljcyBFeGVjdXRpb24g TWFuYWdlbWVudCkgY29kZQogb2JqLXkgKz0gZ2VtLworZ2VtLXkgKz0gXAorCWdlbS9pOTE1X2dl bV9vYmplY3QubwogaTkxNS15ICs9IFwKKwkgICQoZ2VtLXkpIFwKIAkgIGk5MTVfYWN0aXZlLm8g XAogCSAgaTkxNV9jbWRfcGFyc2VyLm8gXAogCSAgaTkxNV9nZW1fYmF0Y2hfcG9vbC5vIFwKQEAg LTk5LDcgKzEwMiw2IEBAIGk5MTUteSArPSBcCiAJICBpOTE1X2dlbV9ndHQubyBcCiAJICBpOTE1 X2dlbV9pbnRlcm5hbC5vIFwKIAkgIGk5MTVfZ2VtLm8gXAotCSAgaTkxNV9nZW1fb2JqZWN0Lm8g XAogCSAgaTkxNV9nZW1fcG0ubyBcCiAJICBpOTE1X2dlbV9yZW5kZXJfc3RhdGUubyBcCiAJICBp OTE1X2dlbV9zaHJpbmtlci5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9vYmplY3QuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApz aW1pbGFyaXR5IGluZGV4IDU5JQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9vYmplY3QuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X29iamVjdC5oCmluZGV4IDM2NjZiMGM1ZjZjYS4uMDYxYjIwYzNkYTViIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKQEAgLTEzLDcgKzEzLDcgQEAKIAogI2luY2x1 ZGUgPGRybS9pOTE1X2RybS5oPgogCi0jaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBl cy5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX29iamVjdF90eXBlcy5oIgogCiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fb2JqZWN0X2FsbG9jKHZvaWQpOwogdm9pZCBpOTE1X2dl bV9vYmplY3RfZnJlZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKQEAgLTE5Miw2 ICsxOTIsMTMxIEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsZV9yb3dfc2l6ZShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfdGls aW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICAgICAgdW5zaWduZWQg aW50IHRpbGluZywgdW5zaWduZWQgaW50IHN0cmlkZSk7CiAKK3N0cnVjdCBzY2F0dGVybGlzdCAq CitpOTE1X2dlbV9vYmplY3RfZ2V0X3NnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CisJCSAgICAgICB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50ICpvZmZzZXQpOworCitzdHJ1 Y3QgcGFnZSAqCitpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKKwkJCSB1bnNpZ25lZCBpbnQgbik7CisKK3N0cnVjdCBwYWdlICoKK2k5MTVf Z2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAorCQkJICAgICAgIHVuc2lnbmVkIGludCBuKTsKKworZG1hX2FkZHJfdAoraTkxNV9nZW1fb2Jq ZWN0X2dldF9kbWFfYWRkcmVzcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJ CXVuc2lnbmVkIGxvbmcgbik7CisKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJIHN0cnVjdCBzZ190YWJsZSAqcGFn ZXMsCisJCQkJIHVuc2lnbmVkIGludCBzZ19wYWdlX3NpemVzKTsKK2ludCBfX2k5MTVfZ2VtX29i amVjdF9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CisKK3N0YXRp YyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjaworaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCW1pZ2h0X2xvY2soJm9iai0+bW0ubG9j ayk7CisKKwlpZiAoYXRvbWljX2luY19ub3RfemVybygmb2JqLT5tbS5wYWdlc19waW5fY291bnQp KQorCQlyZXR1cm4gMDsKKworCXJldHVybiBfX2k5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2Jq KTsKK30KKworc3RhdGljIGlubGluZSBib29sCitpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJcmV0dXJuICFJU19FUlJfT1JfTlVM TChSRUFEX09OQ0Uob2JqLT5tbS5wYWdlcykpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19f aTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQoreworCUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKSk7CisKKwlh dG9taWNfaW5jKCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3VudCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg Ym9vbAoraTkxNV9nZW1fb2JqZWN0X2hhc19waW5uZWRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKK3sKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm9iai0+bW0ucGFnZXNfcGlu X2NvdW50KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitfX2k5MTVfZ2VtX29iamVjdF91bnBp bl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCUdFTV9CVUdfT04o IWk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKSk7CisJR0VNX0JVR19PTighaTkxNV9nZW1f b2JqZWN0X2hhc19waW5uZWRfcGFnZXMob2JqKSk7CisKKwlhdG9taWNfZGVjKCZvYmotPm1tLnBh Z2VzX3Bpbl9jb3VudCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAoraTkxNV9nZW1fb2JqZWN0 X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJX19pOTE1 X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKK30KKworZW51bSBpOTE1X21tX3N1YmNsYXNz IHsgLyogbG9ja2RlcCBzdWJjbGFzcyBmb3Igb2JqLT5tbS5sb2NrL3N0cnVjdF9tdXRleCAqLwor CUk5MTVfTU1fTk9STUFMID0gMCwKKwlJOTE1X01NX1NIUklOS0VSIC8qIGNhbGxlZCAicmVjdXJz aXZlbHkiIGZyb20gZGlyZWN0LXJlY2xhaW0tZXNxdWUgKi8KK307CisKK2ludCBfX2k5MTVfZ2Vt X29iamVjdF9wdXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQll bnVtIGk5MTVfbW1fc3ViY2xhc3Mgc3ViY2xhc3MpOwordm9pZCBfX2k5MTVfZ2VtX29iamVjdF90 cnVuY2F0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKKworZW51bSBpOTE1X21h cF90eXBlIHsKKwlJOTE1X01BUF9XQiA9IDAsCisJSTkxNV9NQVBfV0MsCisjZGVmaW5lIEk5MTVf TUFQX09WRVJSSURFIEJJVCgzMSkKKwlJOTE1X01BUF9GT1JDRV9XQiA9IEk5MTVfTUFQX1dCIHwg STkxNV9NQVBfT1ZFUlJJREUsCisJSTkxNV9NQVBfRk9SQ0VfV0MgPSBJOTE1X01BUF9XQyB8IEk5 MTVfTUFQX09WRVJSSURFLAorfTsKKworLyoqCisgKiBpOTE1X2dlbV9vYmplY3RfcGluX21hcCAt IHJldHVybiBhIGNvbnRpZ3VvdXMgbWFwcGluZyBvZiB0aGUgZW50aXJlIG9iamVjdAorICogQG9i ajogdGhlIG9iamVjdCB0byBtYXAgaW50byBrZXJuZWwgYWRkcmVzcyBzcGFjZQorICogQHR5cGU6 IHRoZSB0eXBlIG9mIG1hcHBpbmcsIHVzZWQgdG8gc2VsZWN0IHBncHJvdF90CisgKgorICogQ2Fs bHMgaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcygpIHRvIHByZXZlbnQgcmVhcGluZyBvZiB0aGUg b2JqZWN0J3MKKyAqIHBhZ2VzIGFuZCB0aGVuIHJldHVybnMgYSBjb250aWd1b3VzIG1hcHBpbmcg b2YgdGhlIGJhY2tpbmcgc3RvcmFnZSBpbnRvCisgKiB0aGUga2VybmVsIGFkZHJlc3Mgc3BhY2Uu IEJhc2VkIG9uIHRoZSBAdHlwZSBvZiBtYXBwaW5nLCB0aGUgUFRFIHdpbGwgYmUKKyAqIHNldCB0 byBlaXRoZXIgV3JpdGVCYWNrIG9yIFdyaXRlQ29tYmluZSAodmlhIHBncHJvdF90KS4KKyAqCisg KiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAoKSB3aGVuIHRoZQorICogbWFwcGluZyBpcyBubyBsb25nZXIgcmVxdWlyZWQuCisg KgorICogUmV0dXJucyB0aGUgcG9pbnRlciB0aHJvdWdoIHdoaWNoIHRvIGFjY2VzcyB0aGUgbWFw cGVkIG9iamVjdCwgb3IgYW4KKyAqIEVSUl9QVFIoKSBvbiBlcnJvci4KKyAqLwordm9pZCAqX19t dXN0X2NoZWNrIGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCisJCQkJCSAgIGVudW0gaTkxNV9tYXBfdHlwZSB0eXBlKTsKKwordm9pZCBfX2k5 MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK KwkJCQkgdW5zaWduZWQgbG9uZyBvZmZzZXQsCisJCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Citz dGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQoreworCV9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmos IDAsIG9iai0+YmFzZS5zaXplKTsKK30KKworLyoqCisgKiBpOTE1X2dlbV9vYmplY3RfdW5waW5f bWFwIC0gcmVsZWFzZXMgYW4gZWFybGllciBtYXBwaW5nCisgKiBAb2JqOiB0aGUgb2JqZWN0IHRv IHVubWFwCisgKgorICogQWZ0ZXIgcGlubmluZyB0aGUgb2JqZWN0IGFuZCBtYXBwaW5nIGl0cyBw YWdlcywgb25jZSB5b3UgYXJlIGZpbmlzaGVkCisgKiB3aXRoIHlvdXIgYWNjZXNzLCBjYWxsIGk5 MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoKSB0byByZWxlYXNlIHRoZSBwaW4KKyAqIHVwb24gdGhl IG1hcHBpbmcuIE9uY2UgdGhlIHBpbiBjb3VudCByZWFjaGVzIHplcm8sIHRoYXQgbWFwcGluZyBt YXkgYmUKKyAqIHJlbW92ZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9vYmpl Y3RfdW5waW5fbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJaTkxNV9n ZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqCiBpOTE1X2dlbV9vYmplY3RfbGFzdF93cml0ZV9lbmdpbmUoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4 IGM5OGU3YTQ1Yjg5ZS4uYjU2YzU1ODNmOTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAg LTI4MTQsMTM3ICsyODE0LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX19zZ19wYWdlX2NvdW50KGNv bnN0IHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCiAJcmV0dXJuIHNnLT5sZW5ndGggPj4gUEFHRV9T SElGVDsKIH0KIAotc3RydWN0IHNjYXR0ZXJsaXN0ICoKLWk5MTVfZ2VtX29iamVjdF9nZXRfc2co c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJICAgICAgIHVuc2lnbmVkIGludCBu LCB1bnNpZ25lZCBpbnQgKm9mZnNldCk7Ci0KLXN0cnVjdCBwYWdlICoKLWk5MTVfZ2VtX29iamVj dF9nZXRfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJIHVuc2lnbmVk IGludCBuKTsKLQotc3RydWN0IHBhZ2UgKgotaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkgICAgICAgdW5zaWduZWQgaW50 IG4pOwotCi1kbWFfYWRkcl90Ci1pOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkJdW5zaWduZWQgbG9uZyBuKTsKLQotdm9p ZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKLQkJCQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKLQkJCQkgdW5zaWduZWQgaW50IHNn X3BhZ2Vfc2l6ZXMpOwotaW50IF9faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKLQotc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNr Ci1pOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCi17Ci0JbWlnaHRfbG9jaygmb2JqLT5tbS5sb2NrKTsKLQotCWlmIChhdG9taWNfaW5jX25v dF96ZXJvKCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3VudCkpCi0JCXJldHVybiAwOwotCi0JcmV0dXJu IF9faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopOwotfQotCi1zdGF0aWMgaW5saW5lIGJv b2wKLWk5MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKLXsKLQlyZXR1cm4gIUlTX0VSUl9PUl9OVUxMKFJFQURfT05DRShvYmotPm1tLnBhZ2Vz KSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZAotX19pOTE1X2dlbV9vYmplY3RfcGluX3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JR0VNX0JVR19PTighaTkxNV9n ZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKTsKLQotCWF0b21pY19pbmMoJm9iai0+bW0ucGFnZXNf cGluX2NvdW50KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1pOTE1X2dlbV9vYmplY3RfaGFz X3Bpbm5lZF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQotewotCXJldHVy biBhdG9taWNfcmVhZCgmb2JqLT5tbS5wYWdlc19waW5fY291bnQpOwotfQotCi1zdGF0aWMgaW5s aW5lIHZvaWQKLV9faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCi17Ci0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdl cyhvYmopKTsKLQlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9wYWdlcyhv YmopKTsKLQotCWF0b21pY19kZWMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50KTsKLX0KLQotc3Rh dGljIGlubGluZSB2b2lkCi1pOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlfX2k5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhv YmopOwotfQotCi1lbnVtIGk5MTVfbW1fc3ViY2xhc3MgeyAvKiBsb2NrZGVwIHN1YmNsYXNzIGZv ciBvYmotPm1tLmxvY2svc3RydWN0X211dGV4ICovCi0JSTkxNV9NTV9OT1JNQUwgPSAwLAotCUk5 MTVfTU1fU0hSSU5LRVIgLyogY2FsbGVkICJyZWN1cnNpdmVseSIgZnJvbSBkaXJlY3QtcmVjbGFp bS1lc3F1ZSAqLwotfTsKLQotaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCWVudW0gaTkxNV9tbV9zdWJjbGFzcyBzdWJj bGFzcyk7Ci12b2lkIF9faTkxNV9nZW1fb2JqZWN0X3RydW5jYXRlKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopOwotCi1lbnVtIGk5MTVfbWFwX3R5cGUgewotCUk5MTVfTUFQX1dCID0g MCwKLQlJOTE1X01BUF9XQywKLSNkZWZpbmUgSTkxNV9NQVBfT1ZFUlJJREUgQklUKDMxKQotCUk5 MTVfTUFQX0ZPUkNFX1dCID0gSTkxNV9NQVBfV0IgfCBJOTE1X01BUF9PVkVSUklERSwKLQlJOTE1 X01BUF9GT1JDRV9XQyA9IEk5MTVfTUFQX1dDIHwgSTkxNV9NQVBfT1ZFUlJJREUsCi19OwotCi1z dGF0aWMgaW5saW5lIGVudW0gaTkxNV9tYXBfdHlwZQotaTkxNV9jb2hlcmVudF9tYXBfdHlwZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlyZXR1cm4gSEFTX0xMQyhpOTE1KSA/ IEk5MTVfTUFQX1dCIDogSTkxNV9NQVBfV0M7Ci19Ci0KLS8qKgotICogaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXAgLSByZXR1cm4gYSBjb250aWd1b3VzIG1hcHBpbmcgb2YgdGhlIGVudGlyZSBvYmpl Y3QKLSAqIEBvYmo6IHRoZSBvYmplY3QgdG8gbWFwIGludG8ga2VybmVsIGFkZHJlc3Mgc3BhY2UK LSAqIEB0eXBlOiB0aGUgdHlwZSBvZiBtYXBwaW5nLCB1c2VkIHRvIHNlbGVjdCBwZ3Byb3RfdAot ICoKLSAqIENhbGxzIGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoKSB0byBwcmV2ZW50IHJlYXBp bmcgb2YgdGhlIG9iamVjdCdzCi0gKiBwYWdlcyBhbmQgdGhlbiByZXR1cm5zIGEgY29udGlndW91 cyBtYXBwaW5nIG9mIHRoZSBiYWNraW5nIHN0b3JhZ2UgaW50bwotICogdGhlIGtlcm5lbCBhZGRy ZXNzIHNwYWNlLiBCYXNlZCBvbiB0aGUgQHR5cGUgb2YgbWFwcGluZywgdGhlIFBURSB3aWxsIGJl Ci0gKiBzZXQgdG8gZWl0aGVyIFdyaXRlQmFjayBvciBXcml0ZUNvbWJpbmUgKHZpYSBwZ3Byb3Rf dCkuCi0gKgotICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBpOTE1X2dl bV9vYmplY3RfdW5waW5fbWFwKCkgd2hlbiB0aGUKLSAqIG1hcHBpbmcgaXMgbm8gbG9uZ2VyIHJl cXVpcmVkLgotICoKLSAqIFJldHVybnMgdGhlIHBvaW50ZXIgdGhyb3VnaCB3aGljaCB0byBhY2Nl c3MgdGhlIG1hcHBlZCBvYmplY3QsIG9yIGFuCi0gKiBFUlJfUFRSKCkgb24gZXJyb3IuCi0gKi8K LXZvaWQgKl9fbXVzdF9jaGVjayBpOTE1X2dlbV9vYmplY3RfcGluX21hcChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCQkgICBlbnVtIGk5MTVfbWFwX3R5cGUgdHlwZSk7Ci0K LXZvaWQgX19pOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCi0JCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotCQkJCSB1bnNpZ25lZCBsb25n IHNpemUpOwotc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlfX2k5MTVfZ2VtX29iamVjdF9mbHVz aF9tYXAob2JqLCAwLCBvYmotPmJhc2Uuc2l6ZSk7Ci19Ci0KLS8qKgotICogaTkxNV9nZW1fb2Jq ZWN0X3VucGluX21hcCAtIHJlbGVhc2VzIGFuIGVhcmxpZXIgbWFwcGluZwotICogQG9iajogdGhl IG9iamVjdCB0byB1bm1hcAotICoKLSAqIEFmdGVyIHBpbm5pbmcgdGhlIG9iamVjdCBhbmQgbWFw cGluZyBpdHMgcGFnZXMsIG9uY2UgeW91IGFyZSBmaW5pc2hlZAotICogd2l0aCB5b3VyIGFjY2Vz cywgY2FsbCBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKCkgdG8gcmVsZWFzZSB0aGUgcGluCi0g KiB1cG9uIHRoZSBtYXBwaW5nLiBPbmNlIHRoZSBwaW4gY291bnQgcmVhY2hlcyB6ZXJvLCB0aGF0 IG1hcHBpbmcgbWF5IGJlCi0gKiByZW1vdmVkLgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaTkx NV9nZW1fb2JqZWN0X3VucGluX21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQot ewotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotfQotCiBpbnQgaTkxNV9nZW1f b2JqX3ByZXBhcmVfc2htZW1fcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog CQkJCSAgICB1bnNpZ25lZCBpbnQgKm5lZWRzX2NsZmx1c2gpOwogaW50IGk5MTVfZ2VtX29ial9w cmVwYXJlX3NobWVtX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0z MzQzLDYgKzMyMTIsMTIgQEAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9zY3JhdGNoX29mZnNldChj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gaTkxNV9nZ3R0X29m ZnNldChpOTE1LT5ndC5zY3JhdGNoKTsKIH0KIAorc3RhdGljIGlubGluZSBlbnVtIGk5MTVfbWFw X3R5cGUKK2k5MTVfY29oZXJlbnRfbWFwX3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCit7CisJcmV0dXJuIEhBU19MTEMoaTkxNSkgPyBJOTE1X01BUF9XQiA6IEk5MTVfTUFQX1dD OworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgYWRkX3RhaW50X2Zvcl9DSSh1bnNpZ25lZCBpbnQg dGFpbnQpCiB7CiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xv YmFscy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmMKaW5kZXggODFlNWMy Y2UzMzZiLi5kYjUyYTU4ZWFkY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2xvYmFscy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5jCkBA IC05LDcgKzksNyBAQAogCiAjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKICNpbmNsdWRlICJpOTE1 X2dlbV9jb250ZXh0LmgiCi0jaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAi Z2VtL2k5MTVfZ2VtX29iamVjdC5oIgogI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgogI2luY2x1 ZGUgImk5MTVfcmVxdWVzdC5oIgogI2luY2x1ZGUgImk5MTVfc2NoZWR1bGVyLmgiCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuaAppbmRleCA2ZWFiNzA5NTNhNTcuLjc5NTBmYTk2ZWU4NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJpOTE1X2dlbV9n dHQuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9mZW5jZV9yZWcuaCIKLSNpbmNsdWRlICJpOTE1X2dl bV9vYmplY3QuaCIKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fb2JqZWN0LmgiCiAKICNpbmNsdWRl ICJpOTE1X2FjdGl2ZS5oIgogI2luY2x1ZGUgImk5MTVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmgKaW5kZXggZDU4OTQ2NjZmNjU4Li41NzI3MzIwYzgw ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuaApAQCAtMjQsNyAr MjQsNyBAQAogI2lmbmRlZiBfX0lOVEVMX0ZST05UQlVGRkVSX0hfXwogI2RlZmluZSBfX0lOVEVM X0ZST05UQlVGRkVSX0hfXwogCi0jaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVk ZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5oIgogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0OwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=