From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 05/21] drm/i915: push set_pages down to the callers Date: Fri, 22 Sep 2017 18:32:36 +0100 Message-ID: <20170922173252.10137-6-matthew.auld@intel.com> References: <20170922173252.10137-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 032596E03C for ; Fri, 22 Sep 2017 17:33:15 +0000 (UTC) In-Reply-To: <20170922173252.10137-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 RWFjaCBiYWNrZW5kIGlzIG5vdyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBfX2k5MTVfZ2VtX29i amVjdF9zZXRfcGFnZXMKdXBvbiBzdWNjZXNzZnVsbHkgZ2F0aGVyaW5nIGl0cyBiYWNraW5nIHN0 b3JhZ2UuIFRoaXMgZWxpbWluYXRlcyB0aGUKaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIHRoZSBhc3lu YyBhbmQgc3luYyBwYXRocywgd2hpY2ggc3RhbmRzIG91dCBldmVuCm1vcmUgd2hlbiB3ZSBzdGFy dCB0aHJvd2luZyBhcm91bmQgYW4gc2dfbWFzayBpbiBhIGxhdGVyIHBhdGNoLgoKU3VnZ2VzdGVk LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1i eTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRp bmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpv b25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKy0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyAgICAgICAgICAgfCAxNSAr KysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYyAgICAgICAg IHwgMTUgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAg ICAgICAgICAgfCAxNiArKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Vz ZXJwdHIuYyAgICAgICAgICB8IDEyICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9odWdlX2dlbV9vYmplY3QuYyB8IDE0ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgICAgfCAxMiArKysrLS0tCiA4IGZpbGVzIGNoYW5n ZWQsIDc3IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCmluZGV4IGU1NzE4YWM5MTY2ZC4uOWM0NmYxZjkxZjdkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKQEAgLTE2Miw4ICsxNjIsNyBAQCBpOTE1X2dlbV9nZXRfYXBlcnR1cmVfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IHN0cnVjdCBzZ190YWJsZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBvYmotPmJhc2UuZmlscC0+Zl9tYXBwaW5nOwogCWRy bV9kbWFfaGFuZGxlX3QgKnBoeXM7CkBAIC0xNzEsOSArMTcwLDEwIEBAIGk5MTVfZ2VtX29iamVj dF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7CiAJY2hhciAqdmFkZHI7CiAJaW50IGk7CisJaW50IGVycjsKIAog CWlmIChXQVJOX09OKGk5MTVfZ2VtX29iamVjdF9uZWVkc19iaXQxN19zd2l6emxlKG9iaikpKQot CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiBBbHdh eXMgYWxpZ25pbmcgdG8gdGhlIG9iamVjdCBzaXplLCBhbGxvd3MgYSBzaW5nbGUgYWxsb2NhdGlv bgogCSAqIHRvIGhhbmRsZSBhbGwgcG9zc2libGUgY2FsbGVycywgYW5kIGdpdmVuIHR5cGljYWwg b2JqZWN0IHNpemVzLApAQCAtMTgzLDcgKzE4Myw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkJICAgICByb3VuZHVw X3Bvd19vZl90d28ob2JqLT5iYXNlLnNpemUpLAogCQkJICAgICByb3VuZHVwX3Bvd19vZl90d28o b2JqLT5iYXNlLnNpemUpKTsKIAlpZiAoIXBoeXMpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OworCQlyZXR1cm4gLUVOT01FTTsKIAogCXZhZGRyID0gcGh5cy0+dmFkZHI7CiAJZm9yIChpID0g MDsgaSA8IG9iai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFOyBpKyspIHsKQEAgLTE5Miw3ICsxOTIs NyBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAogCQlwYWdlID0gc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2UobWFwcGluZywg aSk7CiAJCWlmIChJU19FUlIocGFnZSkpIHsKLQkJCXN0ID0gRVJSX0NBU1QocGFnZSk7CisJCQll cnIgPSBQVFJfRVJSKHBhZ2UpOwogCQkJZ290byBlcnJfcGh5czsKIAkJfQogCkBAIC0yMDksMTMg KzIwOSwxMyBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAogCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5F TCk7CiAJaWYgKCFzdCkgewotCQlzdCA9IEVSUl9QVFIoLUVOT01FTSk7CisJCWVyciA9IC1FTk9N RU07CiAJCWdvdG8gZXJyX3BoeXM7CiAJfQogCiAJaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCAxLCBH RlBfS0VSTkVMKSkgewogCQlrZnJlZShzdCk7Ci0JCXN0ID0gRVJSX1BUUigtRU5PTUVNKTsKKwkJ ZXJyID0gLUVOT01FTTsKIAkJZ290byBlcnJfcGh5czsKIAl9CiAKQEAgLTIyNywxMSArMjI3LDE1 IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQogCXNnX2RtYV9sZW4oc2cpID0gb2JqLT5iYXNlLnNpemU7CiAKIAlvYmotPnBo eXNfaGFuZGxlID0gcGh5czsKLQlyZXR1cm4gc3Q7CisKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRf cGFnZXMob2JqLCBzdCk7CisKKwlyZXR1cm4gMDsKIAogZXJyX3BoeXM6CiAJZHJtX3BjaV9mcmVl KG9iai0+YmFzZS5kZXYsIHBoeXMpOwotCXJldHVybiBzdDsKKworCXJldHVybiBlcnI7CiB9CiAK IHN0YXRpYyB2b2lkIF9fc3RhcnRfY3B1X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCkBAIC0yMjkyLDggKzIyOTYsNyBAQCBzdGF0aWMgYm9vbCBpOTE1X3NnX3RyaW0oc3Ry dWN0IHNnX3RhYmxlICpvcmlnX3N0KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc3RydWN0 IHNnX3RhYmxlICoKLWk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNf Z3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAljb25zdCB1bnNp Z25lZCBsb25nIHBhZ2VfY291bnQgPSBvYmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0laRTsKQEAgLTIz MTcsMTIgKzIzMjAsMTIgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKHN0ID09IE5VTEwpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwor CQlyZXR1cm4gLUVOT01FTTsKIAogcmVidWlsZF9zdDoKIAlpZiAoc2dfYWxsb2NfdGFibGUoc3Qs IHBhZ2VfY291bnQsIEdGUF9LRVJORUwpKSB7CiAJCWtmcmVlKHN0KTsKLQkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCS8qIEdldCB0aGUgbGlzdCBv ZiBwYWdlcyBvdXQgb2Ygb3VyIHN0cnVjdCBmaWxlLiAgVGhleSdsbCBiZSBwaW5uZWQKQEAgLTI0 MzAsNyArMjQzMyw5IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKGk5MTVfZ2VtX29iamVjdF9uZWVkc19iaXQxN19z d2l6emxlKG9iaikpCiAJCWk5MTVfZ2VtX29iamVjdF9kb19iaXRfMTdfc3dpenpsZShvYmosIHN0 KTsKIAotCXJldHVybiBzdDsKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCk7 CisKKwlyZXR1cm4gMDsKIAogZXJyX3NnOgogCXNnX21hcmtfZW5kKHNnKTsKQEAgLTI0NTEsNyAr MjQ1Niw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiAJaWYgKHJldCA9PSAtRU5PU1BDKQogCQlyZXQgPSAtRU5PTUVNOwog Ci0JcmV0dXJuIEVSUl9QVFIocmV0KTsKKwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIF9faTkxNV9n ZW1fb2JqZWN0X3NldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAt MjQ3NCwxOSArMjQ3OSwxNyBAQCB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiBzdGF0aWMgaW50IF9fX19pOTE1X2dlbV9v YmplY3RfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3Ry dWN0IHNnX3RhYmxlICpwYWdlczsKKwlpbnQgZXJyOwogCiAJaWYgKHVubGlrZWx5KG9iai0+bW0u bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQpKSB7CiAJCURSTV9ERUJVRygiQXR0ZW1wdGluZyB0 byBvYnRhaW4gYSBwdXJnZWFibGUgb2JqZWN0XG4iKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQog Ci0JcGFnZXMgPSBvYmotPm9wcy0+Z2V0X3BhZ2VzKG9iaik7Ci0JaWYgKHVubGlrZWx5KElTX0VS UihwYWdlcykpKQotCQlyZXR1cm4gUFRSX0VSUihwYWdlcyk7CisJZXJyID0gb2JqLT5vcHMtPmdl dF9wYWdlcyhvYmopOworCUdFTV9CVUdfT04oIWVyciAmJiBJU19FUlJfT1JfTlVMTChvYmotPm1t LnBhZ2VzKSk7CiAKLQlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBwYWdlcyk7Ci0J cmV0dXJuIDA7CisJcmV0dXJuIGVycjsKIH0KIAogLyogRW5zdXJlIHRoYXQgdGhlIGFzc29jaWF0 ZWQgcGFnZXMgYXJlIGdhdGhlcmVkIGZyb20gdGhlIGJhY2tpbmcgc3RvcmFnZQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwppbmRleCA2MTc2ZTU4OWNmMDkuLjRjNGRjODUxNTlm YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKQEAgLTI1NiwxMSArMjU2 LDE4IEBAIHN0cnVjdCBkbWFfYnVmICppOTE1X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlyZXR1cm4gZHJtX2dlbV9kbWFidWZfZXhwb3J0KGRldiwgJmV4cF9pbmZv KTsKIH0KIAotc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzX2RtYWJ1ZihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2RtYWJ1ZihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogewotCXJldHVybiBkbWFfYnVmX21hcF9hdHRhY2htZW50KG9iai0+YmFzZS5pbXBv cnRfYXR0YWNoLAotCQkJCSAgICAgIERNQV9CSURJUkVDVElPTkFMKTsKKwlzdHJ1Y3Qgc2dfdGFi bGUgKnBhZ2VzOworCisJcGFnZXMgPSBkbWFfYnVmX21hcF9hdHRhY2htZW50KG9iai0+YmFzZS5p bXBvcnRfYXR0YWNoLAorCQkJCSAgICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJaWYgKElTX0VS UihwYWdlcykpCisJCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKKworCV9faTkxNV9nZW1fb2JqZWN0 X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBp OTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2RtYWJ1ZihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJu YWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ludGVybmFsLmMKaW5kZXggYzFm NjRkZGFmOGFhLi5mNTk3NjRkYTQyNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2ludGVybmFsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f aW50ZXJuYWwuYwpAQCAtNDQsOCArNDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlcm5hbF9mcmVlX3Bh Z2VzKHN0cnVjdCBzZ190YWJsZSAqc3QpCiAJa2ZyZWUoc3QpOwogfQogCi1zdGF0aWMgc3RydWN0 IHNnX3RhYmxlICoKLWk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9w YWdlc19pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlzdHJ1 Y3Qgc2dfdGFibGUgKnN0OwpAQCAtNzgsMTIgKzc3LDEyIEBAIGk5MTVfZ2VtX29iamVjdF9nZXRf cGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIGNyZWF0ZV9z dDoKIAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwogCWlmICghc3QpCi0J CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAogCW5wYWdlcyA9 IG9iai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFOwogCWlmIChzZ19hbGxvY190YWJsZShzdCwgbnBh Z2VzLCBHRlBfS0VSTkVMKSkgewogCQlrZnJlZShzdCk7Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9N RU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC0xMzIsMTMg KzEzMSwxNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2ludGVybmFsKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJICogb2JqZWN0IGFyZSBvbmx5IHZhbGlkIHdoaWxzdCBh Y3RpdmUgYW5kIHBpbm5lZC4KIAkgKi8KIAlvYmotPm1tLm1hZHYgPSBJOTE1X01BRFZfRE9OVE5F RUQ7Ci0JcmV0dXJuIHN0OworCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3Qp OworCisJcmV0dXJuIDA7CiAKIGVycjoKIAlzZ19zZXRfcGFnZShzZywgTlVMTCwgMCwgMCk7CiAJ c2dfbWFya19lbmQoc2cpOwogCWludGVybmFsX2ZyZWVfcGFnZXMoc3QpOwotCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOworCisJcmV0dXJuIC1FTk9NRU07CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVf Z2VtX29iamVjdF9wdXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggYzMwZDhmODA4 MTg1Li4wMzZlODQ3YjI3ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5o CkBAIC02OSw3ICs2OSw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyB7CiAJICog YmVpbmcgcmVsZWFzZWQgb3IgdW5kZXIgbWVtb3J5IHByZXNzdXJlICh3aGVyZSB3ZSBhdHRlbXB0 IHRvCiAJICogcmVhcCBwYWdlcyBmb3IgdGhlIHNocmlua2VyKS4KIAkgKi8KLQlzdHJ1Y3Qgc2df dGFibGUgKigqZ2V0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKTsKKwlpbnQg KCpnZXRfcGFnZXMpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICopOwogCXZvaWQgKCpwdXRf cGFnZXMpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICosIHN0cnVjdCBzZ190YWJsZSAqKTsK IAogCWludCAoKnB3cml0ZSkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKiwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggNTA3YzlmMGQ4ZGYxLi41MzdlY2IyMjRk YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC01MzksMTIgKzUz OSwxOCBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJcmV0dXJuIHN0OwogfQogCi1zdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLWk5MTVfZ2Vt X29iamVjdF9nZXRfcGFnZXNfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop CitzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfc3RvbGVuKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmV0dXJuIGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9z dG9sZW4ob2JqLT5iYXNlLmRldiwKLQkJCQkJICAgIG9iai0+c3RvbGVuLT5zdGFydCwKLQkJCQkJ ICAgIG9iai0+c3RvbGVuLT5zaXplKTsKKwlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzID0KKwkJaTkx NV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihvYmotPmJhc2UuZGV2LAorCQkJCQkgICAgIG9iai0+ c3RvbGVuLT5zdGFydCwKKwkJCQkJICAgICBvYmotPnN0b2xlbi0+c2l6ZSk7CisJaWYgKElTX0VS UihwYWdlcykpCisJCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKKworCV9faTkxNV9nZW1fb2JqZWN0 X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBp OTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0 ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCmluZGV4IDJkNDk5 NmRlNzMzMS4uNzBhZDc0ODk4MjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV91c2VycHRyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNl cnB0ci5jCkBAIC00MzQsNiArNDM0LDggQEAgX19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCXJldHVybiBFUlJfUFRSKHJldCk7 CiAJfQogCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QpOworCiAJcmV0dXJu IHN0OwogfQogCkBAIC01MjEsNyArNTIzLDYgQEAgX19pOTE1X2dlbV91c2VycHRyX2dldF9wYWdl c193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICpfd29yaykKIAkJCXBhZ2VzID0gX19pOTE1X2dl bV91c2VycHRyX2FsbG9jX3BhZ2VzKG9iaiwgcHZlYywKIAkJCQkJCQkgICAgICAgbnBhZ2VzKTsK IAkJCWlmICghSVNfRVJSKHBhZ2VzKSkgewotCQkJCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdl cyhvYmosIHBhZ2VzKTsKIAkJCQlwaW5uZWQgPSAwOwogCQkJCXBhZ2VzID0gTlVMTDsKIAkJCX0K QEAgLTU4Miw4ICs1ODMsNyBAQCBfX2k5MTVfZ2VtX3VzZXJwdHJfZ2V0X3BhZ2VzX3NjaGVkdWxl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0dXJuIEVSUl9QVFIoLUVBR0FJ Tik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKgotaTkxNV9nZW1fdXNlcnB0cl9nZXRf cGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9n ZW1fdXNlcnB0cl9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsK IAljb25zdCBpbnQgbnVtX3BhZ2VzID0gb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsKIAlz dHJ1Y3QgbW1fc3RydWN0ICptbSA9IG9iai0+dXNlcnB0ci5tbS0+bW07CkBAIC02MTIsOSArNjEy LDkgQEAgaTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKIAlpZiAob2JqLT51c2VycHRyLndvcmspIHsKIAkJLyogYWN0aXZlIGZsYWcgc2hv dWxkIHN0aWxsIGJlIGhlbGQgZm9yIHRoZSBwZW5kaW5nIHdvcmsgKi8KIAkJaWYgKElTX0VSUihv YmotPnVzZXJwdHIud29yaykpCi0JCQlyZXR1cm4gRVJSX0NBU1Qob2JqLT51c2VycHRyLndvcmsp OworCQkJcmV0dXJuIFBUUl9FUlIob2JqLT51c2VycHRyLndvcmspOwogCQllbHNlCi0JCQlyZXR1 cm4gRVJSX1BUUigtRUFHQUlOKTsKKwkJCXJldHVybiAtRUFHQUlOOwogCX0KIAogCXB2ZWMgPSBO VUxMOwpAQCAtNjUwLDcgKzY1MCw3IEBAIGk5MTVfZ2VtX3VzZXJwdHJfZ2V0X3BhZ2VzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXJlbGVhc2VfcGFnZXMocHZlYywgcGlubmVk LCAwKTsKIAlrdmZyZWUocHZlYyk7CiAKLQlyZXR1cm4gcGFnZXM7CisJcmV0dXJuIFBUUl9FUlJf T1JfWkVSTyhwYWdlcyk7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMKaW5kZXggYzVjN2U4ZWZiZGQzLi40MWMx NWYzYWE0NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdl X2dlbV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9n ZW1fb2JqZWN0LmMKQEAgLTM3LDggKzM3LDcgQEAgc3RhdGljIHZvaWQgaHVnZV9mcmVlX3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJa2ZyZWUocGFnZXMpOwogfQogCi1z dGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLWh1Z2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IGh1Z2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopCiB7CiAjZGVmaW5lIEdGUCAoR0ZQX0tFUk5FTCB8IF9fR0ZQX05P V0FSTiB8IF9fR0ZQX05PUkVUUlkpCiAJY29uc3QgdW5zaWduZWQgbG9uZyBucmVhbCA9IG9iai0+ c2NyYXRjaCAvIFBBR0VfU0laRTsKQEAgLTQ5LDExICs0OCwxMSBAQCBodWdlX2dldF9wYWdlcyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJcGFnZXMgPSBrbWFsbG9jKHNpemVv ZigqcGFnZXMpLCBHRlApOwogCWlmICghcGFnZXMpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OworCQlyZXR1cm4gLUVOT01FTTsKIAogCWlmIChzZ19hbGxvY190YWJsZShwYWdlcywgbnBhZ2Vz LCBHRlApKSB7CiAJCWtmcmVlKHBhZ2VzKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJ CXJldHVybiAtRU5PTUVNOwogCX0KIAogCXNnID0gcGFnZXMtPnNnbDsKQEAgLTgxLDExICs4MCwx NCBAQCBodWdlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWlm IChpOTE1X2dlbV9ndHRfcHJlcGFyZV9wYWdlcyhvYmosIHBhZ2VzKSkKIAkJZ290byBlcnI7CiAK LQlyZXR1cm4gcGFnZXM7CisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgcGFnZXMp OworCisJcmV0dXJuIDA7CiAKIGVycjoKIAlodWdlX2ZyZWVfcGFnZXMob2JqLCBwYWdlcyk7Ci0J cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlyZXR1cm4gLUVOT01FTTsKICN1bmRlZiBHRlAK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt X2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCmlu ZGV4IDZiMTMyY2FmZmExOC4uYWExZGIzNzVkNTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCkBAIC0zOSw4ICszOSw3IEBAIHN0YXRpYyB2b2lk IGZha2VfZnJlZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWtmcmVl KHBhZ2VzKTsKIH0KIAotc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCi1mYWtlX2dldF9wYWdlcyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBmYWtlX2dldF9wYWdl cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogI2RlZmluZSBHRlAgKEdGUF9L RVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9OT1JFVFJZKQogI2RlZmluZSBQRk5fQklBUyAw eDEwMDAKQEAgLTUwLDEyICs0OSwxMiBAQCBmYWtlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQogCiAJcGFnZXMgPSBrbWFsbG9jKHNpemVvZigqcGFnZXMpLCBHRlAp OwogCWlmICghcGFnZXMpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVO T01FTTsKIAogCXJlbSA9IHJvdW5kX3VwKG9iai0+YmFzZS5zaXplLCBCSVQoMzEpKSA+PiAzMTsK IAlpZiAoc2dfYWxsb2NfdGFibGUocGFnZXMsIHJlbSwgR0ZQKSkgewogCQlrZnJlZShwYWdlcyk7 Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKIAly ZW0gPSBvYmotPmJhc2Uuc2l6ZTsKQEAgLTcyLDcgKzcxLDEwIEBAIGZha2VfZ2V0X3BhZ2VzKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJR0VNX0JVR19PTihyZW0pOwogCiAJb2Jq LT5tbS5tYWR2ID0gSTkxNV9NQURWX0RPTlRORUVEOwotCXJldHVybiBwYWdlczsKKworCV9faTkx NV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKKworCXJldHVybiAwOwogI3VuZGVm IEdGUAogfQogCi0tIAoyLjEzLjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=