From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 03/15] drm/i915: Move object->pages API to i915_gem_object.[ch] Date: Wed, 22 May 2019 16:48:37 +0100 Message-ID: <20190522154849.7960-3-chris@chris-wilson.co.uk> References: <20190522154849.7960-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 A249D89C0D for ; Wed, 22 May 2019 15:48:58 +0000 (UTC) Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 16643209-1500050 for ; Wed, 22 May 2019 16:48:49 +0100 In-Reply-To: <20190522154849.7960-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 List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHRoZSBjb2RlIGZvciBtYW5pcHVsYXRpbmcgdGhlIHBhZ2VzIG9uIGFuIG9iamVj dCBpcyBzdGlsbApyZXNpZGluZyBpbiBpOTE1X2dlbS5jLCBtb3ZlIGl0IHRvIGk5MTVfZ2VtX29i amVjdC5jCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IC4uLi9ncHUvZHJtL2k5MTUveyA9PiBnZW19L2k5MTVfZ2VtX29iamVjdC5jICB8ICAgMAogLi4u L2dwdS9kcm0vaTkxNS97ID0+IGdlbX0vaTkxNV9nZW1fb2JqZWN0LmggIHwgMTMyICsrKysrKysr KysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8 IDE0MSArLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFs cy5jICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCAg ICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1 ZmZlci5oICAgICAgfCAgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyks IDE0MCBkZWxldGlvbnMoLSkKIHJlbmFtZSBkcml2ZXJzL2dwdS9kcm0vaTkxNS97ID0+IGdlbX0v aTkxNV9nZW1fb2JqZWN0LmMgKDEwMCUpCiByZW5hbWUgZHJpdmVycy9ncHUvZHJtL2k5MTUveyA9 PiBnZW19L2k5MTVfZ2VtX29iamVjdC5oICg1OCUpCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA5 NjM0NGM5YTA3MjYuLjFjOGJkMGE1MjEyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTg2LDcg Kzg2LDEwIEBAIGk5MTUteSArPSAkKGd0LXkpCiAKICMgR0VNIChHcmFwaGljcyBFeGVjdXRpb24g TWFuYWdlbWVudCkgY29kZQogb2JqLXkgKz0gZ2VtLworZ2VtLXkgKz0gXAorCWdlbS9pOTE1X2dl bV9vYmplY3QubwogaTkxNS15ICs9IFwKKwkgICQoZ2VtLXkpIFwKIAkgIGk5MTVfYWN0aXZlLm8g XAogCSAgaTkxNV9jbWRfcGFyc2VyLm8gXAogCSAgaTkxNV9nZW1fYmF0Y2hfcG9vbC5vIFwKQEAg LTk5LDcgKzEwMiw2IEBAIGk5MTUteSArPSBcCiAJICBpOTE1X2dlbV9ndHQubyBcCiAJICBpOTE1 X2dlbV9pbnRlcm5hbC5vIFwKIAkgIGk5MTVfZ2VtLm8gXAotCSAgaTkxNV9nZW1fb2JqZWN0Lm8g XAogCSAgaTkxNV9nZW1fcG0ubyBcCiAJICBpOTE1X2dlbV9yZW5kZXJfc3RhdGUubyBcCiAJICBp OTE1X2dlbV9zaHJpbmtlci5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9vYmplY3QuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApz aW1pbGFyaXR5IGluZGV4IDU4JQpyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9vYmplY3QuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X29iamVjdC5oCmluZGV4IDM2NjZiMGM1ZjZjYS4uOWRmZDhiMGRiNzI1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKQEAgLTEzLDcgKzEzLDcgQEAKIAogI2luY2x1 ZGUgPGRybS9pOTE1X2RybS5oPgogCi0jaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBl cy5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX29iamVjdF90eXBlcy5oIgogCiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fb2JqZWN0X2FsbG9jKHZvaWQpOwogdm9pZCBpOTE1X2dl bV9vYmplY3RfZnJlZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKQEAgLTE5Miw2 ICsxOTIsMTM2IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsZV9yb3dfc2l6ZShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfdGls aW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICAgICAgdW5zaWduZWQg aW50IHRpbGluZywgdW5zaWduZWQgaW50IHN0cmlkZSk7CiAKK3N0cnVjdCBzY2F0dGVybGlzdCAq CitpOTE1X2dlbV9vYmplY3RfZ2V0X3NnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CisJCSAgICAgICB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50ICpvZmZzZXQpOworCitzdHJ1 Y3QgcGFnZSAqCitpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKKwkJCSB1bnNpZ25lZCBpbnQgbik7CisKK3N0cnVjdCBwYWdlICoKK2k5MTVf Z2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAorCQkJICAgICAgIHVuc2lnbmVkIGludCBuKTsKKworZG1hX2FkZHJfdAoraTkxNV9nZW1fb2Jq ZWN0X2dldF9kbWFfYWRkcmVzc19sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK KwkJCQkgICAgdW5zaWduZWQgbG9uZyBuLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgKmxlbik7CisK K2RtYV9hZGRyX3QKK2k5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Moc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQl1bnNpZ25lZCBsb25nIG4pOworCit2b2lkIF9faTkx NV9nZW1fb2JqZWN0X3NldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAor CQkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAorCQkJCSB1bnNpZ25lZCBpbnQgc2dfcGFnZV9z aXplcyk7CitpbnQgX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopOworCitzdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKK2k5MTVf Z2VtX29iamVjdF9waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sK KwltaWdodF9sb2NrKCZvYmotPm1tLmxvY2spOworCisJaWYgKGF0b21pY19pbmNfbm90X3plcm8o Jm9iai0+bW0ucGFnZXNfcGluX2NvdW50KSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gX19pOTE1 X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAoraTkx NV9nZW1fb2JqZWN0X2hhc19wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQor eworCXJldHVybiAhSVNfRVJSX09SX05VTEwoUkVBRF9PTkNFKG9iai0+bW0ucGFnZXMpKTsKK30K Kworc3RhdGljIGlubGluZSB2b2lkCitfX2k5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmpl Y3RfaGFzX3BhZ2VzKG9iaikpOworCisJYXRvbWljX2luYygmb2JqLT5tbS5wYWdlc19waW5fY291 bnQpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK2k5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVk X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJcmV0dXJuIGF0b21p Y19yZWFkKCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3VudCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p ZAorX19pOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKK3sKKwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikp OworCUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikpOwor CisJYXRvbWljX2RlYygmb2JqLT5tbS5wYWdlc19waW5fY291bnQpOworfQorCitzdGF0aWMgaW5s aW5lIHZvaWQKK2k5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQoreworCV9faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Cit9 CisKK2VudW0gaTkxNV9tbV9zdWJjbGFzcyB7IC8qIGxvY2tkZXAgc3ViY2xhc3MgZm9yIG9iai0+ bW0ubG9jay9zdHJ1Y3RfbXV0ZXggKi8KKwlJOTE1X01NX05PUk1BTCA9IDAsCisJSTkxNV9NTV9T SFJJTktFUiAvKiBjYWxsZWQgInJlY3Vyc2l2ZWx5IiBmcm9tIGRpcmVjdC1yZWNsYWltLWVzcXVl ICovCit9OworCitpbnQgX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCisJCQkJZW51bSBpOTE1X21tX3N1YmNsYXNzIHN1YmNsYXNzKTsK K3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfdHJ1bmNhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaik7CisKK2VudW0gaTkxNV9tYXBfdHlwZSB7CisJSTkxNV9NQVBfV0IgPSAwLAorCUk5 MTVfTUFQX1dDLAorI2RlZmluZSBJOTE1X01BUF9PVkVSUklERSBCSVQoMzEpCisJSTkxNV9NQVBf Rk9SQ0VfV0IgPSBJOTE1X01BUF9XQiB8IEk5MTVfTUFQX09WRVJSSURFLAorCUk5MTVfTUFQX0ZP UkNFX1dDID0gSTkxNV9NQVBfV0MgfCBJOTE1X01BUF9PVkVSUklERSwKK307CisKKy8qKgorICog aTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAgLSByZXR1cm4gYSBjb250aWd1b3VzIG1hcHBpbmcgb2Yg dGhlIGVudGlyZSBvYmplY3QKKyAqIEBvYmo6IHRoZSBvYmplY3QgdG8gbWFwIGludG8ga2VybmVs IGFkZHJlc3Mgc3BhY2UKKyAqIEB0eXBlOiB0aGUgdHlwZSBvZiBtYXBwaW5nLCB1c2VkIHRvIHNl bGVjdCBwZ3Byb3RfdAorICoKKyAqIENhbGxzIGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoKSB0 byBwcmV2ZW50IHJlYXBpbmcgb2YgdGhlIG9iamVjdCdzCisgKiBwYWdlcyBhbmQgdGhlbiByZXR1 cm5zIGEgY29udGlndW91cyBtYXBwaW5nIG9mIHRoZSBiYWNraW5nIHN0b3JhZ2UgaW50bworICog dGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNlLiBCYXNlZCBvbiB0aGUgQHR5cGUgb2YgbWFwcGluZywg dGhlIFBURSB3aWxsIGJlCisgKiBzZXQgdG8gZWl0aGVyIFdyaXRlQmFjayBvciBXcml0ZUNvbWJp bmUgKHZpYSBwZ3Byb3RfdCkuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig Y2FsbGluZyBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKCkgd2hlbiB0aGUKKyAqIG1hcHBpbmcg aXMgbm8gbG9uZ2VyIHJlcXVpcmVkLgorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdGhyb3Vn aCB3aGljaCB0byBhY2Nlc3MgdGhlIG1hcHBlZCBvYmplY3QsIG9yIGFuCisgKiBFUlJfUFRSKCkg b24gZXJyb3IuCisgKi8KK3ZvaWQgKl9fbXVzdF9jaGVjayBpOTE1X2dlbV9vYmplY3RfcGluX21h cChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCQkgICBlbnVtIGk5MTVfbWFw X3R5cGUgdHlwZSk7CisKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorCQkJ CSB1bnNpZ25lZCBsb25nIHNpemUpOworc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVj dF9mbHVzaF9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlfX2k5MTVf Z2VtX29iamVjdF9mbHVzaF9tYXAob2JqLCAwLCBvYmotPmJhc2Uuc2l6ZSk7Cit9CisKKy8qKgor ICogaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCAtIHJlbGVhc2VzIGFuIGVhcmxpZXIgbWFwcGlu ZworICogQG9iajogdGhlIG9iamVjdCB0byB1bm1hcAorICoKKyAqIEFmdGVyIHBpbm5pbmcgdGhl IG9iamVjdCBhbmQgbWFwcGluZyBpdHMgcGFnZXMsIG9uY2UgeW91IGFyZSBmaW5pc2hlZAorICog d2l0aCB5b3VyIGFjY2VzcywgY2FsbCBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKCkgdG8gcmVs ZWFzZSB0aGUgcGluCisgKiB1cG9uIHRoZSBtYXBwaW5nLiBPbmNlIHRoZSBwaW4gY291bnQgcmVh Y2hlcyB6ZXJvLCB0aGF0IG1hcHBpbmcgbWF5IGJlCisgKiByZW1vdmVkLgorICovCitzdGF0aWMg aW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQoreworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworfQor CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgogaTkxNV9nZW1fb2JqZWN0 X2xhc3Rfd3JpdGVfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA3NTMzNjVlMDhlMmYuLmI1NmM1NTgzZjkzMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yODE0LDE0MSArMjgxNCw2IEBAIHN0YXRpYyBpbmxp bmUgaW50IF9fc2dfcGFnZV9jb3VudChjb25zdCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnKQogCXJl dHVybiBzZy0+bGVuZ3RoID4+IFBBR0VfU0hJRlQ7CiB9CiAKLXN0cnVjdCBzY2F0dGVybGlzdCAq Ci1pOTE1X2dlbV9vYmplY3RfZ2V0X3NnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Ci0JCSAgICAgICB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50ICpvZmZzZXQpOwotCi1zdHJ1 Y3QgcGFnZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKLQkJCSB1bnNpZ25lZCBpbnQgbik7Ci0KLXN0cnVjdCBwYWdlICoKLWk5MTVf Z2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAotCQkJICAgICAgIHVuc2lnbmVkIGludCBuKTsKLQotZG1hX2FkZHJfdAotaTkxNV9nZW1fb2Jq ZWN0X2dldF9kbWFfYWRkcmVzc19sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK LQkJCQkgICAgdW5zaWduZWQgbG9uZyBuLAotCQkJCSAgICB1bnNpZ25lZCBpbnQgKmxlbik7Ci1k bWFfYWRkcl90Ci1pOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCi0JCQkJdW5zaWduZWQgbG9uZyBuKTsKLQotdm9pZCBfX2k5MTVf Z2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJ CQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKLQkJCQkgdW5zaWduZWQgaW50IHNnX3BhZ2Vfc2l6 ZXMpOwotaW50IF9faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKTsKLQotc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrCi1pOTE1X2dl bV9vYmplY3RfcGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0J bWlnaHRfbG9jaygmb2JqLT5tbS5sb2NrKTsKLQotCWlmIChhdG9taWNfaW5jX25vdF96ZXJvKCZv YmotPm1tLnBhZ2VzX3Bpbl9jb3VudCkpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIF9faTkxNV9n ZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLWk5MTVf Z2VtX29iamVjdF9oYXNfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsK LQlyZXR1cm4gIUlTX0VSUl9PUl9OVUxMKFJFQURfT05DRShvYmotPm1tLnBhZ2VzKSk7Ci19Ci0K LXN0YXRpYyBpbmxpbmUgdm9pZAotX19pOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0 X2hhc19wYWdlcyhvYmopKTsKLQotCWF0b21pY19pbmMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50 KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1pOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQotewotCXJldHVybiBhdG9taWNf cmVhZCgmb2JqLT5tbS5wYWdlc19waW5fY291bnQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQK LV9faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCi17Ci0JR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKTsK LQlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9wYWdlcyhvYmopKTsKLQot CWF0b21pY19kZWMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50KTsKLX0KLQotc3RhdGljIGlubGlu ZSB2b2lkCi1pOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKLXsKLQlfX2k5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotfQot Ci1lbnVtIGk5MTVfbW1fc3ViY2xhc3MgeyAvKiBsb2NrZGVwIHN1YmNsYXNzIGZvciBvYmotPm1t LmxvY2svc3RydWN0X211dGV4ICovCi0JSTkxNV9NTV9OT1JNQUwgPSAwLAotCUk5MTVfTU1fU0hS SU5LRVIgLyogY2FsbGVkICJyZWN1cnNpdmVseSIgZnJvbSBkaXJlY3QtcmVjbGFpbS1lc3F1ZSAq LwotfTsKLQotaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAotCQkJCWVudW0gaTkxNV9tbV9zdWJjbGFzcyBzdWJjbGFzcyk7Ci12 b2lkIF9faTkxNV9nZW1fb2JqZWN0X3RydW5jYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopOwotCi1lbnVtIGk5MTVfbWFwX3R5cGUgewotCUk5MTVfTUFQX1dCID0gMCwKLQlJOTE1 X01BUF9XQywKLSNkZWZpbmUgSTkxNV9NQVBfT1ZFUlJJREUgQklUKDMxKQotCUk5MTVfTUFQX0ZP UkNFX1dCID0gSTkxNV9NQVBfV0IgfCBJOTE1X01BUF9PVkVSUklERSwKLQlJOTE1X01BUF9GT1JD RV9XQyA9IEk5MTVfTUFQX1dDIHwgSTkxNV9NQVBfT1ZFUlJJREUsCi19OwotCi1zdGF0aWMgaW5s aW5lIGVudW0gaTkxNV9tYXBfdHlwZQotaTkxNV9jb2hlcmVudF9tYXBfdHlwZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsKLQlyZXR1cm4gSEFTX0xMQyhpOTE1KSA/IEk5MTVfTUFQ X1dCIDogSTkxNV9NQVBfV0M7Ci19Ci0KLS8qKgotICogaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAg LSByZXR1cm4gYSBjb250aWd1b3VzIG1hcHBpbmcgb2YgdGhlIGVudGlyZSBvYmplY3QKLSAqIEBv Ymo6IHRoZSBvYmplY3QgdG8gbWFwIGludG8ga2VybmVsIGFkZHJlc3Mgc3BhY2UKLSAqIEB0eXBl OiB0aGUgdHlwZSBvZiBtYXBwaW5nLCB1c2VkIHRvIHNlbGVjdCBwZ3Byb3RfdAotICoKLSAqIENh bGxzIGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoKSB0byBwcmV2ZW50IHJlYXBpbmcgb2YgdGhl IG9iamVjdCdzCi0gKiBwYWdlcyBhbmQgdGhlbiByZXR1cm5zIGEgY29udGlndW91cyBtYXBwaW5n IG9mIHRoZSBiYWNraW5nIHN0b3JhZ2UgaW50bwotICogdGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNl LiBCYXNlZCBvbiB0aGUgQHR5cGUgb2YgbWFwcGluZywgdGhlIFBURSB3aWxsIGJlCi0gKiBzZXQg dG8gZWl0aGVyIFdyaXRlQmFjayBvciBXcml0ZUNvbWJpbmUgKHZpYSBwZ3Byb3RfdCkuCi0gKgot ICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBpOTE1X2dlbV9vYmplY3Rf dW5waW5fbWFwKCkgd2hlbiB0aGUKLSAqIG1hcHBpbmcgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLgot ICoKLSAqIFJldHVybnMgdGhlIHBvaW50ZXIgdGhyb3VnaCB3aGljaCB0byBhY2Nlc3MgdGhlIG1h cHBlZCBvYmplY3QsIG9yIGFuCi0gKiBFUlJfUFRSKCkgb24gZXJyb3IuCi0gKi8KLXZvaWQgKl9f bXVzdF9jaGVjayBpOTE1X2dlbV9vYmplY3RfcGluX21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAotCQkJCQkgICBlbnVtIGk5MTVfbWFwX3R5cGUgdHlwZSk7Ci0KLXZvaWQgX19p OTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Ci0JCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotCQkJCSB1bnNpZ25lZCBsb25nIHNpemUpOwot c3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlfX2k5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAob2Jq LCAwLCBvYmotPmJhc2Uuc2l6ZSk7Ci19Ci0KLS8qKgotICogaTkxNV9nZW1fb2JqZWN0X3VucGlu X21hcCAtIHJlbGVhc2VzIGFuIGVhcmxpZXIgbWFwcGluZwotICogQG9iajogdGhlIG9iamVjdCB0 byB1bm1hcAotICoKLSAqIEFmdGVyIHBpbm5pbmcgdGhlIG9iamVjdCBhbmQgbWFwcGluZyBpdHMg cGFnZXMsIG9uY2UgeW91IGFyZSBmaW5pc2hlZAotICogd2l0aCB5b3VyIGFjY2VzcywgY2FsbCBp OTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKCkgdG8gcmVsZWFzZSB0aGUgcGluCi0gKiB1cG9uIHRo ZSBtYXBwaW5nLiBPbmNlIHRoZSBwaW4gY291bnQgcmVhY2hlcyB6ZXJvLCB0aGF0IG1hcHBpbmcg bWF5IGJlCi0gKiByZW1vdmVkLgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X3VucGluX21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQotewotCWk5MTVf Z2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotfQotCiBpbnQgaTkxNV9nZW1fb2JqX3ByZXBh cmVfc2htZW1fcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAgICB1 bnNpZ25lZCBpbnQgKm5lZWRzX2NsZmx1c2gpOwogaW50IGk5MTVfZ2VtX29ial9wcmVwYXJlX3No bWVtX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0zMzQ3LDYgKzMy MTIsMTIgQEAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9zY3JhdGNoX29mZnNldChjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gaTkxNV9nZ3R0X29mZnNldChpOTE1 LT5ndC5zY3JhdGNoKTsKIH0KIAorc3RhdGljIGlubGluZSBlbnVtIGk5MTVfbWFwX3R5cGUKK2k5 MTVfY29oZXJlbnRfbWFwX3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJ cmV0dXJuIEhBU19MTEMoaTkxNSkgPyBJOTE1X01BUF9XQiA6IEk5MTVfTUFQX1dDOworfQorCiBz dGF0aWMgaW5saW5lIHZvaWQgYWRkX3RhaW50X2Zvcl9DSSh1bnNpZ25lZCBpbnQgdGFpbnQpCiB7 CiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmMKaW5kZXggODFlNWMyY2UzMzZiLi5k YjUyYTU4ZWFkY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFs cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5jCkBAIC05LDcgKzks NyBAQAogCiAjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jb250 ZXh0LmgiCi0jaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVf Z2VtX29iamVjdC5oIgogI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgogI2luY2x1ZGUgImk5MTVf cmVxdWVzdC5oIgogI2luY2x1ZGUgImk5MTVfc2NoZWR1bGVyLmgiCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuaAppbmRleCA4NTQzZDI5NTNjZDEuLjc1NGE3NjJkOTBiNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJpOTE1X2dlbV9ndHQuaCIKICNp bmNsdWRlICJpOTE1X2dlbV9mZW5jZV9yZWcuaCIKLSNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3Qu aCIKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fb2JqZWN0LmgiCiAKICNpbmNsdWRlICJpOTE1X2Fj dGl2ZS5oIgogI2luY2x1ZGUgImk5MTVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Zyb250YnVmZmVyLmgKaW5kZXggZDU4OTQ2NjZmNjU4Li41NzI3MzIwYzgwODQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuaApAQCAtMjQsNyArMjQsNyBAQAog I2lmbmRlZiBfX0lOVEVMX0ZST05UQlVGRkVSX0hfXwogI2RlZmluZSBfX0lOVEVMX0ZST05UQlVG RkVSX0hfXwogCi0jaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX29iamVjdC5oIgogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0OwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=