From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 21/39] drm/i915: Move object->pages API to i915_gem_object.[ch] Date: Wed, 13 Mar 2019 14:43:43 +0000 Message-ID: <20190313144401.17735-21-chris@chris-wilson.co.uk> References: <20190313144401.17735-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 06E036E0EB for ; Wed, 13 Mar 2019 14:45:06 +0000 (UTC) In-Reply-To: <20190313144401.17735-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 CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDMgKy0K IC4uLi9ncHUvZHJtL2k5MTUveyA9PiBnZW19L2k5MTVfZ2VtX29iamVjdC5jICB8ICAgNSArLQog Li4uL2dwdS9kcm0vaTkxNS97ID0+IGdlbX0vaTkxNV9nZW1fb2JqZWN0LmggIHwgMTE5ICsrKysr KysrKysrKysrKy0KIC4uLi9nZW0vdGVzdF9pOTE1X2dlbV9vYmplY3Rfc3RhbmRhbG9uZS5jICAg ICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAg fCAxMjkgKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2Jh bHMuYyAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgg ICAgICAgICAgICAgICB8ICAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygr KSwgMTI5IGRlbGV0aW9ucygtKQogcmVuYW1lIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3sgPT4gZ2Vt fS9pOTE1X2dlbV9vYmplY3QuYyAoOTclKQogcmVuYW1lIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3sg PT4gZ2VtfS9pOTE1X2dlbV9vYmplY3QuaCAoNjAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5MTVfZ2VtX29iamVjdF9zdGFuZGFsb25lLmMKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlCmluZGV4IDJmODRmYWMwMjU3OC4uZDI3MGYwMWUxMDkxIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQpAQCAtNjAsNiArNjAsNyBAQCBpOTE1LSQoQ09ORklHX1BFUkZfRVZFTlRT KSArPSBpOTE1X3BtdS5vCiAjIFRlc3QgdGhlIGhlYWRlcnMgYXJlIGNvbXBpbGFibGUgYXMgc3Rh bmRhbG9uZSB1bml0cwogaTkxNS0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpICs9IFwKIAlnZW0v dGVzdF9pOTE1X2dlbV9pb2N0bHNfc3RhbmRhbG9uZS5vIFwKKwlnZW0vdGVzdF9pOTE1X2dlbV9v YmplY3Rfc3RhbmRhbG9uZS5vIFwKIAlnZW0vdGVzdF9pOTE1X2dlbV9vYmplY3RfdHlwZXNfc3Rh bmRhbG9uZS5vIFwKIAl0ZXN0X2k5MTVfYWN0aXZlX3R5cGVzX3N0YW5kYWxvbmUubyBcCiAJdGVz dF9pOTE1X2dlbV9jb250ZXh0X3R5cGVzX3N0YW5kYWxvbmUubyBcCkBAIC03MCw2ICs3MSw3IEBA IGk5MTUtJChDT05GSUdfRFJNX0k5MTVfV0VSUk9SKSArPSBcCiAKICMgR0VNIGNvZGUKIGk5MTUt eSArPSBcCisJICBnZW0vaTkxNV9nZW1fb2JqZWN0Lm8gXAogCSAgaTkxNV9hY3RpdmUubyBcCiAJ ICBpOTE1X2NtZF9wYXJzZXIubyBcCiAJICBpOTE1X2dlbV9iYXRjaF9wb29sLm8gXApAQCAtODIs NyArODQsNiBAQCBpOTE1LXkgKz0gXAogCSAgaTkxNV9nZW1fZ3R0Lm8gXAogCSAgaTkxNV9nZW1f aW50ZXJuYWwubyBcCiAJICBpOTE1X2dlbS5vIFwKLQkgIGk5MTVfZ2VtX29iamVjdC5vIFwKIAkg IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5vIFwKIAkgIGk5MTVfZ2VtX3Nocmlua2VyLm8gXAogCSAg aTkxNV9nZW1fc3RvbGVuLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmMKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fb2JqZWN0LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3QuYwppbmRleCBhYzZhNWFiODQ1ODYuLjgxNzkyNTJiYjM5YiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC0yMiw5ICsyMiwxMCBAQAogICoK ICAqLwogCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3Qu aCIKLSNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKKworI2luY2x1ZGUgIi4uL2k5MTVfZHJ2Lmgi CisjaW5jbHVkZSAiLi4vaTkxNV9nbG9iYWxzLmgiCiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9nbG9i YWxfb2JqZWN0IHsKIAlzdHJ1Y3QgaTkxNV9nbG9iYWwgYmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX29iamVjdC5oCnNpbWlsYXJpdHkgaW5kZXggNjAlCnJlbmFtZSBmcm9tIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCnJlbmFtZSB0byBkcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggNTA5MjEwYjE5NDViLi44MGQ4 NjZkZTM0YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVj dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApAQCAt MTMsNyArMTMsNyBAQAogCiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKLSNpbmNsdWRlICJn ZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0X3R5 cGVzLmgiCiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9vYmplY3RfYWxs b2Modm9pZCk7CiB2b2lkIGk5MTVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopOwpAQCAtMTkyLDYgKzE5MiwxMjMgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF90 aWxlX3Jvd19zaXplKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiBpbnQg aTkxNV9nZW1fb2JqZWN0X3NldF90aWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgdGlsaW5nLCB1bnNpZ25lZCBpbnQgc3RyaWRlKTsK IAorc3RydWN0IHNjYXR0ZXJsaXN0ICoKK2k5MTVfZ2VtX29iamVjdF9nZXRfc2coc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJICAgICAgIHVuc2lnbmVkIGludCBuLCB1bnNpZ25l ZCBpbnQgKm9mZnNldCk7CisKK3N0cnVjdCBwYWdlICoKK2k5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJIHVuc2lnbmVkIGludCBuKTsK Kworc3RydWN0IHBhZ2UgKgoraTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdlKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgICAgdW5zaWduZWQgaW50IG4pOworCitk bWFfYWRkcl90CitpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCisJCQkJdW5zaWduZWQgbG9uZyBuKTsKKwordm9pZCBfX2k5MTVf Z2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJ CQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKKwkJCQkgdW5zaWduZWQgaW50IHNnX3BhZ2Vfc2l6 ZXMpOworaW50IF9faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKTsKKworc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrCitpOTE1X2dl bV9vYmplY3RfcGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJ bWlnaHRfbG9jaygmb2JqLT5tbS5sb2NrKTsKKworCWlmIChhdG9taWNfaW5jX25vdF96ZXJvKCZv YmotPm1tLnBhZ2VzX3Bpbl9jb3VudCkpCisJCXJldHVybiAwOworCisJcmV0dXJuIF9faTkxNV9n ZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK2k5MTVf Z2VtX29iamVjdF9oYXNfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sK KwlyZXR1cm4gIUlTX0VSUl9PUl9OVUxMKFJFQURfT05DRShvYmotPm1tLnBhZ2VzKSk7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZAorX19pOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0 X2hhc19wYWdlcyhvYmopKTsKKworCWF0b21pY19pbmMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50 KTsKK30KKworc3RhdGljIGlubGluZSBib29sCitpOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCXJldHVybiBhdG9taWNf cmVhZCgmb2JqLT5tbS5wYWdlc19waW5fY291bnQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQK K19faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCit7CisJR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKTsK KwlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3Bpbm5lZF9wYWdlcyhvYmopKTsKKwor CWF0b21pY19kZWMoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50KTsKK30KKworc3RhdGljIGlubGlu ZSB2b2lkCitpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3sKKwlfX2k5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworfQor CitlbnVtIGk5MTVfbW1fc3ViY2xhc3MgeyAvKiBsb2NrZGVwIHN1YmNsYXNzIGZvciBvYmotPm1t LmxvY2svc3RydWN0X211dGV4ICovCisJSTkxNV9NTV9OT1JNQUwgPSAwLAorCUk5MTVfTU1fU0hS SU5LRVIgLyogY2FsbGVkICJyZWN1cnNpdmVseSIgZnJvbSBkaXJlY3QtcmVjbGFpbS1lc3F1ZSAq LworfTsKKworaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAorCQkJCWVudW0gaTkxNV9tbV9zdWJjbGFzcyBzdWJjbGFzcyk7Cit2 b2lkIF9faTkxNV9nZW1fb2JqZWN0X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaik7CisKK2VudW0gaTkxNV9tYXBfdHlwZSB7CisJSTkxNV9NQVBfV0IgPSAwLAorCUk5 MTVfTUFQX1dDLAorI2RlZmluZSBJOTE1X01BUF9PVkVSUklERSBCSVQoMzEpCisJSTkxNV9NQVBf Rk9SQ0VfV0IgPSBJOTE1X01BUF9XQiB8IEk5MTVfTUFQX09WRVJSSURFLAorCUk5MTVfTUFQX0ZP UkNFX1dDID0gSTkxNV9NQVBfV0MgfCBJOTE1X01BUF9PVkVSUklERSwKK307CisKKy8qKgorICog aTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAgLSByZXR1cm4gYSBjb250aWd1b3VzIG1hcHBpbmcgb2Yg dGhlIGVudGlyZSBvYmplY3QKKyAqIEBvYmo6IHRoZSBvYmplY3QgdG8gbWFwIGludG8ga2VybmVs IGFkZHJlc3Mgc3BhY2UKKyAqIEB0eXBlOiB0aGUgdHlwZSBvZiBtYXBwaW5nLCB1c2VkIHRvIHNl bGVjdCBwZ3Byb3RfdAorICoKKyAqIENhbGxzIGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoKSB0 byBwcmV2ZW50IHJlYXBpbmcgb2YgdGhlIG9iamVjdCdzCisgKiBwYWdlcyBhbmQgdGhlbiByZXR1 cm5zIGEgY29udGlndW91cyBtYXBwaW5nIG9mIHRoZSBiYWNraW5nIHN0b3JhZ2UgaW50bworICog dGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNlLiBCYXNlZCBvbiB0aGUgQHR5cGUgb2YgbWFwcGluZywg dGhlIFBURSB3aWxsIGJlCisgKiBzZXQgdG8gZWl0aGVyIFdyaXRlQmFjayBvciBXcml0ZUNvbWJp bmUgKHZpYSBwZ3Byb3RfdCkuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig Y2FsbGluZyBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKCkgd2hlbiB0aGUKKyAqIG1hcHBpbmcg aXMgbm8gbG9uZ2VyIHJlcXVpcmVkLgorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdGhyb3Vn aCB3aGljaCB0byBhY2Nlc3MgdGhlIG1hcHBlZCBvYmplY3QsIG9yIGFuCisgKiBFUlJfUFRSKCkg b24gZXJyb3IuCisgKi8KK3ZvaWQgKl9fbXVzdF9jaGVjayBpOTE1X2dlbV9vYmplY3RfcGluX21h cChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCQkgICBlbnVtIGk5MTVfbWFw X3R5cGUgdHlwZSk7CisKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCAtIHJlbGVh c2VzIGFuIGVhcmxpZXIgbWFwcGluZworICogQG9iajogdGhlIG9iamVjdCB0byB1bm1hcAorICoK KyAqIEFmdGVyIHBpbm5pbmcgdGhlIG9iamVjdCBhbmQgbWFwcGluZyBpdHMgcGFnZXMsIG9uY2Ug eW91IGFyZSBmaW5pc2hlZAorICogd2l0aCB5b3VyIGFjY2VzcywgY2FsbCBpOTE1X2dlbV9vYmpl Y3RfdW5waW5fbWFwKCkgdG8gcmVsZWFzZSB0aGUgcGluCisgKiB1cG9uIHRoZSBtYXBwaW5nLiBP bmNlIHRoZSBwaW4gY291bnQgcmVhY2hlcyB6ZXJvLCB0aGF0IG1hcHBpbmcgbWF5IGJlCisgKiBy ZW1vdmVkLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX21h cChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9wYWdlcyhvYmopOworfQorCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKgogaTkxNV9nZW1fb2JqZWN0X2xhc3Rfd3JpdGVfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v dGVzdF9pOTE1X2dlbV9vYmplY3Rfc3RhbmRhbG9uZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL3Rlc3RfaTkxNV9nZW1fb2JqZWN0X3N0YW5kYWxvbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjZmODg5NzU0MTE3OAotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5MTVfZ2VtX29iamVjdF9zdGFuZGFsb25lLmMK QEAgLTAsMCArMSw3IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoK KyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUg Imk5MTVfZ2VtX29iamVjdC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggODA2OTU0OWRh MTFjLi41ODhmOTZkMGY4NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjgxMSwxMjkg KzI4MTEsNiBAQCBzdGF0aWMgaW5saW5lIGludCBfX3NnX3BhZ2VfY291bnQoY29uc3Qgc3RydWN0 IHNjYXR0ZXJsaXN0ICpzZykKIAlyZXR1cm4gc2ctPmxlbmd0aCA+PiBQQUdFX1NISUZUOwogfQog Ci1zdHJ1Y3Qgc2NhdHRlcmxpc3QgKgotaTkxNV9nZW1fb2JqZWN0X2dldF9zZyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkgICAgICAgdW5zaWduZWQgaW50IG4sIHVuc2lnbmVk IGludCAqb2Zmc2V0KTsKLQotc3RydWN0IHBhZ2UgKgotaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkgdW5zaWduZWQgaW50IG4pOwot Ci1zdHJ1Y3QgcGFnZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X2RpcnR5X3BhZ2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgbik7Ci0KLWRt YV9hZGRyX3QKLWk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Moc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKLQkJCQl1bnNpZ25lZCBsb25nIG4pOwotCi12b2lkIF9faTkxNV9n ZW1fb2JqZWN0X3NldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJ CSBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAotCQkJCSB1bnNpZ25lZCBpbnQgc2dfcGFnZV9zaXpl cyk7Ci1pbnQgX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopOwotCi1zdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKLWk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlt aWdodF9sb2NrKCZvYmotPm1tLmxvY2spOwotCi0JaWYgKGF0b21pY19pbmNfbm90X3plcm8oJm9i ai0+bW0ucGFnZXNfcGluX2NvdW50KSkKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gX19pOTE1X2dl bV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbAotaTkxNV9n ZW1fb2JqZWN0X2hhc19wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQotewot CXJldHVybiAhSVNfRVJSX09SX05VTEwoUkVBRF9PTkNFKG9iai0+bW0ucGFnZXMpKTsKLX0KLQot c3RhdGljIGlubGluZSB2b2lkCi1fX2k5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3Rf aGFzX3BhZ2VzKG9iaikpOwotCi0JYXRvbWljX2luYygmb2JqLT5tbS5wYWdlc19waW5fY291bnQp OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLWk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3Bh Z2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJuIGF0b21pY19y ZWFkKCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3VudCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZAot X19pOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKLXsKLQlHRU1fQlVHX09OKCFpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpOwot CUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikpOwotCi0J YXRvbWljX2RlYygmb2JqLT5tbS5wYWdlc19waW5fY291bnQpOwotfQotCi1zdGF0aWMgaW5saW5l IHZvaWQKLWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQotewotCV9faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Ci19Ci0K LWVudW0gaTkxNV9tbV9zdWJjbGFzcyB7IC8qIGxvY2tkZXAgc3ViY2xhc3MgZm9yIG9iai0+bW0u bG9jay9zdHJ1Y3RfbXV0ZXggKi8KLQlJOTE1X01NX05PUk1BTCA9IDAsCi0JSTkxNV9NTV9TSFJJ TktFUiAvKiBjYWxsZWQgInJlY3Vyc2l2ZWx5IiBmcm9tIGRpcmVjdC1yZWNsYWltLWVzcXVlICov Ci19OwotCi1pbnQgX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCi0JCQkJZW51bSBpOTE1X21tX3N1YmNsYXNzIHN1YmNsYXNzKTsKLXZv aWQgX19pOTE1X2dlbV9vYmplY3RfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKTsKLQotZW51bSBpOTE1X21hcF90eXBlIHsKLQlJOTE1X01BUF9XQiA9IDAsCi0JSTkx NV9NQVBfV0MsCi0jZGVmaW5lIEk5MTVfTUFQX09WRVJSSURFIEJJVCgzMSkKLQlJOTE1X01BUF9G T1JDRV9XQiA9IEk5MTVfTUFQX1dCIHwgSTkxNV9NQVBfT1ZFUlJJREUsCi0JSTkxNV9NQVBfRk9S Q0VfV0MgPSBJOTE1X01BUF9XQyB8IEk5MTVfTUFQX09WRVJSSURFLAotfTsKLQotc3RhdGljIGlu bGluZSBlbnVtIGk5MTVfbWFwX3R5cGUKLWk5MTVfY29oZXJlbnRfbWFwX3R5cGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JcmV0dXJuIEhBU19MTEMoaTkxNSkgPyBJOTE1X01B UF9XQiA6IEk5MTVfTUFQX1dDOwotfQotCi0vKioKLSAqIGk5MTVfZ2VtX29iamVjdF9waW5fbWFw IC0gcmV0dXJuIGEgY29udGlndW91cyBtYXBwaW5nIG9mIHRoZSBlbnRpcmUgb2JqZWN0Ci0gKiBA b2JqOiB0aGUgb2JqZWN0IHRvIG1hcCBpbnRvIGtlcm5lbCBhZGRyZXNzIHNwYWNlCi0gKiBAdHlw ZTogdGhlIHR5cGUgb2YgbWFwcGluZywgdXNlZCB0byBzZWxlY3QgcGdwcm90X3QKLSAqCi0gKiBD YWxscyBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKCkgdG8gcHJldmVudCByZWFwaW5nIG9mIHRo ZSBvYmplY3QncwotICogcGFnZXMgYW5kIHRoZW4gcmV0dXJucyBhIGNvbnRpZ3VvdXMgbWFwcGlu ZyBvZiB0aGUgYmFja2luZyBzdG9yYWdlIGludG8KLSAqIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFj ZS4gQmFzZWQgb24gdGhlIEB0eXBlIG9mIG1hcHBpbmcsIHRoZSBQVEUgd2lsbCBiZQotICogc2V0 IHRvIGVpdGhlciBXcml0ZUJhY2sgb3IgV3JpdGVDb21iaW5lICh2aWEgcGdwcm90X3QpLgotICoK LSAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgaTkxNV9nZW1fb2JqZWN0 X3VucGluX21hcCgpIHdoZW4gdGhlCi0gKiBtYXBwaW5nIGlzIG5vIGxvbmdlciByZXF1aXJlZC4K LSAqCi0gKiBSZXR1cm5zIHRoZSBwb2ludGVyIHRocm91Z2ggd2hpY2ggdG8gYWNjZXNzIHRoZSBt YXBwZWQgb2JqZWN0LCBvciBhbgotICogRVJSX1BUUigpIG9uIGVycm9yLgotICovCi12b2lkICpf X211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKLQkJCQkJICAgZW51bSBpOTE1X21hcF90eXBlIHR5cGUpOwotCi0vKioKLSAq IGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAgLSByZWxlYXNlcyBhbiBlYXJsaWVyIG1hcHBpbmcK LSAqIEBvYmo6IHRoZSBvYmplY3QgdG8gdW5tYXAKLSAqCi0gKiBBZnRlciBwaW5uaW5nIHRoZSBv YmplY3QgYW5kIG1hcHBpbmcgaXRzIHBhZ2VzLCBvbmNlIHlvdSBhcmUgZmluaXNoZWQKLSAqIHdp dGggeW91ciBhY2Nlc3MsIGNhbGwgaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCgpIHRvIHJlbGVh c2UgdGhlIHBpbgotICogdXBvbiB0aGUgbWFwcGluZy4gT25jZSB0aGUgcGluIGNvdW50IHJlYWNo ZXMgemVybywgdGhhdCBtYXBwaW5nIG1heSBiZQotICogcmVtb3ZlZC4KLSAqLwotc3RhdGljIGlu bGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKLXsKLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKLX0KLQog aW50IGk5MTVfZ2VtX29ial9wcmVwYXJlX3NobWVtX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKIAkJCQkgICAgdW5zaWduZWQgaW50ICpuZWVkc19jbGZsdXNoKTsKIGludCBp OTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLApAQCAtMzU5Myw0ICszNDcwLDEwIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGk5MTVfc2Ny YXRjaF9vZmZzZXQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJu IGk5MTVfZ2d0dF9vZmZzZXQoaTkxNS0+Z3Quc2NyYXRjaCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg ZW51bSBpOTE1X21hcF90eXBlCitpOTE1X2NvaGVyZW50X21hcF90eXBlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQoreworCXJldHVybiBIQVNfTExDKGk5MTUpID8gSTkxNV9NQVBfV0Ig OiBJOTE1X01BUF9XQzsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dsb2JhbHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5j CmluZGV4IDJmNWM3MmUyYTlkMS4uZjM4NThkNDIxODNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dsb2JhbHMuYwpAQCAtOSw3ICs5LDcgQEAKIAogI2luY2x1ZGUgImk5MTVfYWN0aXZlLmgiCiAj aW5jbHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgotI2luY2x1ZGUgImk5MTVfZ2VtX29iamVjdC5o IgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X2dsb2Jh bHMuaCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKICNpbmNsdWRlICJpOTE1X3NjaGVkdWxl ci5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKaW5kZXggNmVhYjcwOTUzYTU3Li43OTUwZmE5NmVl ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaApAQCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVk ZSAiaTkxNV9nZW1fZ3R0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fZmVuY2VfcmVnLmgiCi0jaW5j bHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5o IgogCiAjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIK LS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4