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, 6 Oct 2017 15:50:25 +0100 Message-ID: <20171006145041.21673-6-matthew.auld@intel.com> References: <20171006145041.21673-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 B2F216F9BE for ; Fri, 6 Oct 2017 14:50:52 +0000 (UTC) In-Reply-To: <20171006145041.21673-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+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jICAgICAgICAgICB8IDE1ICsrKysr LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5jICAgICAgICAgfCAx NSArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmggICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jICAgICAg ICAgICB8IDE2ICsrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0 ci5jICAgICAgICAgIHwgMTIgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2h1Z2VfZ2VtX29iamVjdC5jIHwgMTQgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyAgICB8IDEyICsrKystLS0KIDggZmlsZXMgY2hhbmdlZCwg NzcgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK aW5kZXggODFkNzBkMjNhMDU3Li5jMWMwN2QwOTU3YWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YwpAQCAtMTYyLDggKzE2Miw3IEBAIGk5MTVfZ2VtX2dldF9hcGVydHVyZV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3Ry dWN0IHNnX3RhYmxlICoKLWk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzX3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqbWFwcGluZyA9IG9iai0+YmFzZS5maWxwLT5mX21hcHBpbmc7CiAJZHJtX2Rt YV9oYW5kbGVfdCAqcGh5czsKQEAgLTE3MSw5ICsxNzAsMTAgQEAgaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJc3RydWN0IHNj YXR0ZXJsaXN0ICpzZzsKIAljaGFyICp2YWRkcjsKIAlpbnQgaTsKKwlpbnQgZXJyOwogCiAJaWYg KFdBUk5fT04oaTkxNV9nZW1fb2JqZWN0X25lZWRzX2JpdDE3X3N3aXp6bGUob2JqKSkpCi0JCXJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOworCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIEFsd2F5cyBh bGlnbmluZyB0byB0aGUgb2JqZWN0IHNpemUsIGFsbG93cyBhIHNpbmdsZSBhbGxvY2F0aW9uCiAJ ICogdG8gaGFuZGxlIGFsbCBwb3NzaWJsZSBjYWxsZXJzLCBhbmQgZ2l2ZW4gdHlwaWNhbCBvYmpl Y3Qgc2l6ZXMsCkBAIC0xODMsNyArMTgzLDcgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19w aHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCQkgICAgIHJvdW5kdXBfcG93 X29mX3R3byhvYmotPmJhc2Uuc2l6ZSksCiAJCQkgICAgIHJvdW5kdXBfcG93X29mX3R3byhvYmot PmJhc2Uuc2l6ZSkpOwogCWlmICghcGh5cykKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJ CXJldHVybiAtRU5PTUVNOwogCiAJdmFkZHIgPSBwaHlzLT52YWRkcjsKIAlmb3IgKGkgPSAwOyBp IDwgb2JqLT5iYXNlLnNpemUgLyBQQUdFX1NJWkU7IGkrKykgewpAQCAtMTkyLDcgKzE5Miw3IEBA IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogCiAJCXBhZ2UgPSBzaG1lbV9yZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBpKTsK IAkJaWYgKElTX0VSUihwYWdlKSkgewotCQkJc3QgPSBFUlJfQ0FTVChwYWdlKTsKKwkJCWVyciA9 IFBUUl9FUlIocGFnZSk7CiAJCQlnb3RvIGVycl9waHlzOwogCQl9CiAKQEAgLTIwOSwxMyArMjA5 LDEzIEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQogCiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsK IAlpZiAoIXN0KSB7Ci0JCXN0ID0gRVJSX1BUUigtRU5PTUVNKTsKKwkJZXJyID0gLUVOT01FTTsK IAkJZ290byBlcnJfcGh5czsKIAl9CiAKIAlpZiAoc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9L RVJORUwpKSB7CiAJCWtmcmVlKHN0KTsKLQkJc3QgPSBFUlJfUFRSKC1FTk9NRU0pOworCQllcnIg PSAtRU5PTUVNOwogCQlnb3RvIGVycl9waHlzOwogCX0KIApAQCAtMjI3LDExICsyMjcsMTUgQEAg aTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiAJc2dfZG1hX2xlbihzZykgPSBvYmotPmJhc2Uuc2l6ZTsKIAogCW9iai0+cGh5c19o YW5kbGUgPSBwaHlzOwotCXJldHVybiBzdDsKKworCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdl cyhvYmosIHN0KTsKKworCXJldHVybiAwOwogCiBlcnJfcGh5czoKIAlkcm1fcGNpX2ZyZWUob2Jq LT5iYXNlLmRldiwgcGh5cyk7Ci0JcmV0dXJuIHN0OworCisJcmV0dXJuIGVycjsKIH0KIAogc3Rh dGljIHZvaWQgX19zdGFydF9jcHVfd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKQEAgLTIyOTIsOCArMjI5Niw3IEBAIHN0YXRpYyBib29sIGk5MTVfc2dfdHJpbShzdHJ1Y3Qg c2dfdGFibGUgKm9yaWdfc3QpCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2df dGFibGUgKgotaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwogCWNvbnN0IHVuc2lnbmVk IGxvbmcgcGFnZV9jb3VudCA9IG9iai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFOwpAQCAtMjMxNywx MiArMjMyMCwxMiBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VS TkVMKTsKIAlpZiAoc3QgPT0gTlVMTCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJl dHVybiAtRU5PTUVNOwogCiByZWJ1aWxkX3N0OgogCWlmIChzZ19hbGxvY190YWJsZShzdCwgcGFn ZV9jb3VudCwgR0ZQX0tFUk5FTCkpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9NRU07CiAJfQogCiAJLyogR2V0IHRoZSBsaXN0IG9mIHBh Z2VzIG91dCBvZiBvdXIgc3RydWN0IGZpbGUuICBUaGV5J2xsIGJlIHBpbm5lZApAQCAtMjQzMCw3 ICsyNDMzLDkgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAlpZiAoaTkxNV9nZW1fb2JqZWN0X25lZWRzX2JpdDE3X3N3aXp6 bGUob2JqKSkKIAkJaTkxNV9nZW1fb2JqZWN0X2RvX2JpdF8xN19zd2l6emxlKG9iaiwgc3QpOwog Ci0JcmV0dXJuIHN0OworCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHN0KTsKKwor CXJldHVybiAwOwogCiBlcnJfc2c6CiAJc2dfbWFya19lbmQoc2cpOwpAQCAtMjQ1MSw3ICsyNDU2 LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAlpZiAocmV0ID09IC1FTk9TUEMpCiAJCXJldCA9IC1FTk9NRU07CiAKLQly ZXR1cm4gRVJSX1BUUihyZXQpOworCXJldHVybiByZXQ7CiB9CiAKIHZvaWQgX19pOTE1X2dlbV9v YmplY3Rfc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0yNDc0 LDE5ICsyNDc5LDE3IEBAIHZvaWQgX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIHN0YXRpYyBpbnQgX19fX2k5MTVfZ2VtX29iamVj dF9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlzdHJ1Y3Qg c2dfdGFibGUgKnBhZ2VzOworCWludCBlcnI7CiAKIAlpZiAodW5saWtlbHkob2JqLT5tbS5tYWR2 ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCkpIHsKIAkJRFJNX0RFQlVHKCJBdHRlbXB0aW5nIHRvIG9i dGFpbiBhIHB1cmdlYWJsZSBvYmplY3RcbiIpOwogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQlw YWdlcyA9IG9iai0+b3BzLT5nZXRfcGFnZXMob2JqKTsKLQlpZiAodW5saWtlbHkoSVNfRVJSKHBh Z2VzKSkpCi0JCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKKwllcnIgPSBvYmotPm9wcy0+Z2V0X3Bh Z2VzKG9iaik7CisJR0VNX0JVR19PTighZXJyICYmIElTX0VSUl9PUl9OVUxMKG9iai0+bW0ucGFn ZXMpKTsKIAotCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKLQlyZXR1 cm4gMDsKKwlyZXR1cm4gZXJyOwogfQogCiAvKiBFbnN1cmUgdGhhdCB0aGUgYXNzb2NpYXRlZCBw YWdlcyBhcmUgZ2F0aGVyZWQgZnJvbSB0aGUgYmFja2luZyBzdG9yYWdlCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCmluZGV4IDYxNzZlNTg5Y2YwOS4uNGM0ZGM4NTE1OWZiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwpAQCAtMjU2LDExICsyNTYsMTgg QEAgc3RydWN0IGRtYV9idWYgKmk5MTVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCXJldHVybiBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoZGV2LCAmZXhwX2luZm8pOwog fQogCi1zdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLWk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNf ZG1hYnVmKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IGk5MTVf Z2VtX29iamVjdF9nZXRfcGFnZXNfZG1hYnVmKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiB7Ci0JcmV0dXJuIGRtYV9idWZfbWFwX2F0dGFjaG1lbnQob2JqLT5iYXNlLmltcG9ydF9h dHRhY2gsCi0JCQkJICAgICAgRE1BX0JJRElSRUNUSU9OQUwpOworCXN0cnVjdCBzZ190YWJsZSAq cGFnZXM7CisKKwlwYWdlcyA9IGRtYV9idWZfbWFwX2F0dGFjaG1lbnQob2JqLT5iYXNlLmltcG9y dF9hdHRhY2gsCisJCQkJICAgICAgIERNQV9CSURJUkVDVElPTkFMKTsKKwlpZiAoSVNfRVJSKHBh Z2VzKSkKKwkJcmV0dXJuIFBUUl9FUlIocGFnZXMpOworCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0 X3BhZ2VzKG9iaiwgcGFnZXMpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVf Z2VtX29iamVjdF9wdXRfcGFnZXNfZG1hYnVmKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYwppbmRleCBjMWY2NGRk YWY4YWEuLmY1OTc2NGRhNDI1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1faW50ZXJuYWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRl cm5hbC5jCkBAIC00NCw4ICs0NCw3IEBAIHN0YXRpYyB2b2lkIGludGVybmFsX2ZyZWVfcGFnZXMo c3RydWN0IHNnX3RhYmxlICpzdCkKIAlrZnJlZShzdCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2df dGFibGUgKgotaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Vz X2ludGVybmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwogCXN0cnVjdCBz Z190YWJsZSAqc3Q7CkBAIC03OCwxMiArNzcsMTIgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl c19pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogY3JlYXRlX3N0Ogog CXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdCkKLQkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOwogCiAJbnBhZ2VzID0gb2Jq LT5iYXNlLnNpemUgLyBQQUdFX1NJWkU7CiAJaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCBucGFnZXMs IEdGUF9LRVJORUwpKSB7CiAJCWtmcmVlKHN0KTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCXNnID0gc3QtPnNnbDsKQEAgLTEzMiwxMyArMTMx LDE3IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAkgKiBvYmplY3QgYXJlIG9ubHkgdmFsaWQgd2hpbHN0IGFjdGl2 ZSBhbmQgcGlubmVkLgogCSAqLwogCW9iai0+bW0ubWFkdiA9IEk5MTVfTUFEVl9ET05UTkVFRDsK LQlyZXR1cm4gc3Q7CisKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCk7CisK KwlyZXR1cm4gMDsKIAogZXJyOgogCXNnX3NldF9wYWdlKHNnLCBOVUxMLCAwLCAwKTsKIAlzZ19t YXJrX2VuZChzZyk7CiAJaW50ZXJuYWxfZnJlZV9wYWdlcyhzdCk7Ci0JcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CisKKwlyZXR1cm4gLUVOT01FTTsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9nZW1f b2JqZWN0X3B1dF9wYWdlc19pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAppbmRleCBjMzBkOGY4MDgxODUu LjAzNmU4NDdiMjdmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f b2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKQEAg LTY5LDcgKzY5LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIHsKIAkgKiBiZWlu ZyByZWxlYXNlZCBvciB1bmRlciBtZW1vcnkgcHJlc3N1cmUgKHdoZXJlIHdlIGF0dGVtcHQgdG8K IAkgKiByZWFwIHBhZ2VzIGZvciB0aGUgc2hyaW5rZXIpLgogCSAqLwotCXN0cnVjdCBzZ190YWJs ZSAqKCpnZXRfcGFnZXMpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICopOworCWludCAoKmdl dF9wYWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKik7CiAJdm9pZCAoKnB1dF9wYWdl cykoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKiwgc3RydWN0IHNnX3RhYmxlICopOwogCiAJ aW50ICgqcHdyaXRlKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCA1MDdjOWYwZDhkZjEuLjUzN2VjYjIyNGRiMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTUzOSwxMiArNTM5LDE4 IEBAIGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlyZXR1cm4gc3Q7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKgotaTkxNV9nZW1fb2Jq ZWN0X2dldF9wYWdlc19zdG9sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3N0 YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19zdG9sZW4oc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIHsKLQlyZXR1cm4gaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xl bihvYmotPmJhc2UuZGV2LAotCQkJCQkgICAgb2JqLT5zdG9sZW4tPnN0YXJ0LAotCQkJCQkgICAg b2JqLT5zdG9sZW4tPnNpemUpOworCXN0cnVjdCBzZ190YWJsZSAqcGFnZXMgPQorCQlpOTE1X3Bh Z2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKG9iai0+YmFzZS5kZXYsCisJCQkJCSAgICAgb2JqLT5zdG9s ZW4tPnN0YXJ0LAorCQkJCQkgICAgIG9iai0+c3RvbGVuLT5zaXplKTsKKwlpZiAoSVNfRVJSKHBh Z2VzKSkKKwkJcmV0dXJuIFBUUl9FUlIocGFnZXMpOworCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0 X3BhZ2VzKG9iaiwgcGFnZXMpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVf Z2VtX29iamVjdF9wdXRfcGFnZXNfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggMmQ0OTk2ZGU3 MzMxLi43MGFkNzQ4OTgyN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRy LmMKQEAgLTQzNCw2ICs0MzQsOCBAQCBfX2k5MTVfZ2VtX3VzZXJwdHJfYWxsb2NfcGFnZXMoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9 CiAKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCk7CisKIAlyZXR1cm4gc3Q7 CiB9CiAKQEAgLTUyMSw3ICs1MjMsNiBAQCBfX2k5MTVfZ2VtX3VzZXJwdHJfZ2V0X3BhZ2VzX3dv cmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl93b3JrKQogCQkJcGFnZXMgPSBfX2k5MTVfZ2VtX3Vz ZXJwdHJfYWxsb2NfcGFnZXMob2JqLCBwdmVjLAogCQkJCQkJCSAgICAgICBucGFnZXMpOwogCQkJ aWYgKCFJU19FUlIocGFnZXMpKSB7Ci0JCQkJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9i aiwgcGFnZXMpOwogCQkJCXBpbm5lZCA9IDA7CiAJCQkJcGFnZXMgPSBOVUxMOwogCQkJfQpAQCAt NTgyLDggKzU4Myw3IEBAIF9faTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXNfc2NoZWR1bGUoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gRVJSX1BUUigtRUFHQUlOKTsK IH0KIAotc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCi1pOTE1X2dlbV91c2VycHRyX2dldF9wYWdl cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBpOTE1X2dlbV91 c2VycHRyX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCWNv bnN0IGludCBudW1fcGFnZXMgPSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOwogCXN0cnVj dCBtbV9zdHJ1Y3QgKm1tID0gb2JqLT51c2VycHRyLm1tLT5tbTsKQEAgLTYxMiw5ICs2MTIsOSBA QCBpOTE1X2dlbV91c2VycHRyX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCWlmIChvYmotPnVzZXJwdHIud29yaykgewogCQkvKiBhY3RpdmUgZmxhZyBzaG91bGQg c3RpbGwgYmUgaGVsZCBmb3IgdGhlIHBlbmRpbmcgd29yayAqLwogCQlpZiAoSVNfRVJSKG9iai0+ dXNlcnB0ci53b3JrKSkKLQkJCXJldHVybiBFUlJfQ0FTVChvYmotPnVzZXJwdHIud29yayk7CisJ CQlyZXR1cm4gUFRSX0VSUihvYmotPnVzZXJwdHIud29yayk7CiAJCWVsc2UKLQkJCXJldHVybiBF UlJfUFRSKC1FQUdBSU4pOworCQkJcmV0dXJuIC1FQUdBSU47CiAJfQogCiAJcHZlYyA9IE5VTEw7 CkBAIC02NTAsNyArNjUwLDcgQEAgaTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJcmVsZWFzZV9wYWdlcyhwdmVjLCBwaW5uZWQsIDAp OwogCWt2ZnJlZShwdmVjKTsKIAotCXJldHVybiBwYWdlczsKKwlyZXR1cm4gUFRSX0VSUl9PUl9a RVJPKHBhZ2VzKTsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYwppbmRleCBjNWM3ZThlZmJkZDMuLjQxYzE1ZjNh YTQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfZ2Vt X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9v YmplY3QuYwpAQCAtMzcsOCArMzcsNyBAQCBzdGF0aWMgdm9pZCBodWdlX2ZyZWVfcGFnZXMoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlrZnJlZShwYWdlcyk7CiB9CiAKLXN0YXRp YyBzdHJ1Y3Qgc2dfdGFibGUgKgotaHVnZV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaHVnZV9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKIHsKICNkZWZpbmUgR0ZQIChHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJO IHwgX19HRlBfTk9SRVRSWSkKIAljb25zdCB1bnNpZ25lZCBsb25nIG5yZWFsID0gb2JqLT5zY3Jh dGNoIC8gUEFHRV9TSVpFOwpAQCAtNDksMTEgKzQ4LDExIEBAIGh1Z2VfZ2V0X3BhZ2VzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAKIAlwYWdlcyA9IGttYWxsb2Moc2l6ZW9mKCpw YWdlcyksIEdGUCk7CiAJaWYgKCFwYWdlcykKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJ CXJldHVybiAtRU5PTUVNOwogCiAJaWYgKHNnX2FsbG9jX3RhYmxlKHBhZ2VzLCBucGFnZXMsIEdG UCkpIHsKIAkJa2ZyZWUocGFnZXMpOwotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJcmV0 dXJuIC1FTk9NRU07CiAJfQogCiAJc2cgPSBwYWdlcy0+c2dsOwpAQCAtODEsMTEgKzgwLDE0IEBA IGh1Z2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKGk5 MTVfZ2VtX2d0dF9wcmVwYXJlX3BhZ2VzKG9iaiwgcGFnZXMpKQogCQlnb3RvIGVycjsKIAotCXJl dHVybiBwYWdlczsKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBwYWdlcyk7CisK KwlyZXR1cm4gMDsKIAogZXJyOgogCWh1Z2VfZnJlZV9wYWdlcyhvYmosIHBhZ2VzKTsKLQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXJldHVybiAtRU5PTUVNOwogI3VuZGVmIEdGUAogfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKaW5kZXgg NmIxMzJjYWZmYTE4Li5hYTFkYjM3NWQ1OWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKQEAgLTM5LDggKzM5LDcgQEAgc3RhdGljIHZvaWQgZmFr ZV9mcmVlX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJa2ZyZWUocGFn ZXMpOwogfQogCi1zdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLWZha2VfZ2V0X3BhZ2VzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IGZha2VfZ2V0X3BhZ2VzKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAjZGVmaW5lIEdGUCAoR0ZQX0tFUk5F TCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlkpCiAjZGVmaW5lIFBGTl9CSUFTIDB4MTAw MApAQCAtNTAsMTIgKzQ5LDEyIEBAIGZha2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCiAKIAlwYWdlcyA9IGttYWxsb2Moc2l6ZW9mKCpwYWdlcyksIEdGUCk7CiAJ aWYgKCFwYWdlcykKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVN OwogCiAJcmVtID0gcm91bmRfdXAob2JqLT5iYXNlLnNpemUsIEJJVCgzMSkpID4+IDMxOwogCWlm IChzZ19hbGxvY190YWJsZShwYWdlcywgcmVtLCBHRlApKSB7CiAJCWtmcmVlKHBhZ2VzKTsKLQkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCXJlbSA9 IG9iai0+YmFzZS5zaXplOwpAQCAtNzIsNyArNzEsMTAgQEAgZmFrZV9nZXRfcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlHRU1fQlVHX09OKHJlbSk7CiAKIAlvYmotPm1t Lm1hZHYgPSBJOTE1X01BRFZfRE9OVE5FRUQ7Ci0JcmV0dXJuIHBhZ2VzOworCisJX19pOTE1X2dl bV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgcGFnZXMpOworCisJcmV0dXJuIDA7CiAjdW5kZWYgR0ZQ CiB9CiAKLS0gCjIuMTMuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==