From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 2/2] drm/i915/display: Be explicit in handling the preallocated vma Date: Tue, 12 Nov 2019 14:36:43 +0000 Message-ID: <20191112143643.21821-2-chris@chris-wilson.co.uk> References: <20191112143643.21821-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 3B2A9890F4 for ; Tue, 12 Nov 2019 14:36:50 +0000 (UTC) In-Reply-To: <20191112143643.21821-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 QXMgb25seSB0aGUgZGlzcGxheSBjb2RlcyB0cmllcyB0byBwaW4gaXRzIHByZWFsbG9jYXRlZCBm cmFtZWJ1ZmZlciBpbnRvCmFuIGV4YWN0IGxvY2F0aW9uIGluIHRoZSBHR1RULCByZW1vdmUgdGhl IGNvbnZlbmllbmNlIGZ1bmN0aW9uIGFuZCBtYWtlCnRoZSBwaW4gbWFuYWdlbWVudCBleHBsaWNp dCBpbiB0aGUgZGlzcGxheSBjb2RlLiBUaGVuIHRocm91Z2hvdXQgdGhlCmRpc3BsYXkgbWFuYWdl bWVudCwgd2UgdHJhY2sgdGhlIGZyYW1lYnVmZmVyIGFuZCBpdHMgcGxhbmUtPnZtYTsgd2l0aAps ZXNzIHNpbmdsZSBwdXJwb3NlIGNvZGUgYW5kIHJlYWR5IGZvciBmaXJzdCBjbGFzcyBpOTE1X3Zt YS4KCkluIGRvaW5nIHNvLCB0aGlzIHNob3VsZCBmaXggdGhlIEJVR19PTih2bWEtPnBhZ2VzKSBv biBmaS1rYmwtc29yYWthLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMgIHwgMTQxICsrKysrKysrKysrLS0tLS0tLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zdG9sZW4uYyAgICB8ICA4MCArKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmggICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfcmM2LmMgICAgICAgICAgIHwgICAxIC0KIDUgZmlsZXMgY2hhbmdlZCwgMTAy IGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGY1NzFjNjU3NWM2Mi4uZmM4MjNiYmZlNDgx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAt MzA4Myw2ICszMDgzLDY5IEBAIGludCBza2xfZm9ybWF0X3RvX2ZvdXJjYyhpbnQgZm9ybWF0LCBi b29sIHJnYl9vcmRlciwgYm9vbCBhbHBoYSkKIAl9CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaTkxNV92 bWEgKgoraW5pdGlhbF9wbGFuZV92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CSAgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcpCit7CisJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK Kwl1MzIgYmFzZSwgc2l6ZTsKKwlpbnQgZXJyOworCisJaWYgKHBsYW5lX2NvbmZpZy0+c2l6ZSA9 PSAwKQorCQlyZXR1cm4gTlVMTDsKKworCWJhc2UgPSByb3VuZF9kb3duKHBsYW5lX2NvbmZpZy0+ YmFzZSwgUEFHRV9TSVpFKTsKKwlzaXplID0gcm91bmRfdXAocGxhbmVfY29uZmlnLT5iYXNlICsg cGxhbmVfY29uZmlnLT5zaXplLCBQQUdFX1NJWkUpOworCXNpemUgLT0gYmFzZTsKKworCS8qCisJ ICogSWYgdGhlIEZCIGlzIHRvbyBiaWcsIGp1c3QgZG9uJ3QgdXNlIGl0IHNpbmNlIGZiZGV2IGlz IG5vdCB2ZXJ5CisJICogaW1wb3J0YW50IGFuZCB3ZSBzaG91bGQgcHJvYmFibHkgdXNlIHRoYXQg c3BhY2Ugd2l0aCBGQkMgb3Igb3RoZXIKKwkgKiBmZWF0dXJlcy4KKwkgKi8KKwlpZiAoc2l6ZSAq IDIgPiBpOTE1LT5zdG9sZW5fdXNhYmxlX3NpemUpCisJCXJldHVybiBOVUxMOworCisJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChpOTE1LCBiYXNl LCBzaXplKTsKKwlpZiAoIW9iaikKKwkJcmV0dXJuIE5VTEw7CisKKwlzd2l0Y2ggKHBsYW5lX2Nv bmZpZy0+dGlsaW5nKSB7CisJY2FzZSBJOTE1X1RJTElOR19OT05FOgorCQlicmVhazsKKwljYXNl IEk5MTVfVElMSU5HX1g6CisJY2FzZSBJOTE1X1RJTElOR19ZOgorCQlvYmotPnRpbGluZ19hbmRf c3RyaWRlID0KKwkJCXBsYW5lX2NvbmZpZy0+ZmItPmJhc2UucGl0Y2hlc1swXSB8CisJCQlwbGFu ZV9jb25maWctPnRpbGluZzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKHBs YW5lX2NvbmZpZy0+dGlsaW5nKTsKKwkJZ290byBlcnJfb2JqOworCX0KKworCXZtYSA9IGk5MTVf dm1hX2luc3RhbmNlKG9iaiwgJmk5MTUtPmdndHQudm0sIE5VTEwpOworCWlmIChJU19FUlIodm1h KSkKKwkJZ290byBlcnJfb2JqOworCisJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwKKwkJ CSAgIFBJTl9HTE9CQUwgfCBQSU5fTUFQUEFCTEUgfAorCQkJICAgYmFzZSB8IFBJTl9PRkZTRVRf RklYRUQpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX29iajsKKworCWlmIChpOTE1X2dlbV9vYmpl Y3RfaXNfdGlsZWQob2JqKSAmJgorCSAgICAhaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUo dm1hKSkKKwkJZ290byBlcnJfb2JqOworCisJcmV0dXJuIHZtYTsKKworZXJyX29iajoKKwlpOTE1 X2dlbV9vYmplY3RfcHV0KG9iaik7CisJcmV0dXJuIE5VTEw7Cit9CisKIHN0YXRpYyBib29sCiBp bnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJ CSAgICAgIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyAqcGxhbmVfY29uZmlnKQpA QCAtMzA5MSwyMiArMzE1NCw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHsgMCB9 OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gJnBsYW5lX2NvbmZpZy0+ZmItPmJhc2U7 Ci0JdTMyIGJhc2VfYWxpZ25lZCA9IHJvdW5kX2Rvd24ocGxhbmVfY29uZmlnLT5iYXNlLCBQQUdF X1NJWkUpOwotCXUzMiBzaXplX2FsaWduZWQgPSByb3VuZF91cChwbGFuZV9jb25maWctPmJhc2Ug KyBwbGFuZV9jb25maWctPnNpemUsCi0JCQkJICAgIFBBR0VfU0laRSk7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKLQlib29sIHJldCA9IGZhbHNlOwotCi0Jc2l6ZV9hbGlnbmVk IC09IGJhc2VfYWxpZ25lZDsKLQotCWlmIChwbGFuZV9jb25maWctPnNpemUgPT0gMCkKLQkJcmV0 dXJuIGZhbHNlOwotCi0JLyogSWYgdGhlIEZCIGlzIHRvbyBiaWcsIGp1c3QgZG9uJ3QgdXNlIGl0 IHNpbmNlIGZiZGV2IGlzIG5vdCB2ZXJ5Ci0JICogaW1wb3J0YW50IGFuZCB3ZSBzaG91bGQgcHJv YmFibHkgdXNlIHRoYXQgc3BhY2Ugd2l0aCBGQkMgb3Igb3RoZXIKLQkgKiBmZWF0dXJlcy4gKi8K LQlpZiAoc2l6ZV9hbGlnbmVkICogMiA+IGRldl9wcml2LT5zdG9sZW5fdXNhYmxlX3NpemUpCi0J CXJldHVybiBmYWxzZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCXN3aXRjaCAoZmItPm1v ZGlmaWVyKSB7CiAJY2FzZSBEUk1fRk9STUFUX01PRF9MSU5FQVI6CkBAIC0zMTE5LDI1ICszMTY3 LDEwIEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChkZXZfcHJpdiwKLQkJCQkJCQkgICAgIGJhc2VfYWxp Z25lZCwKLQkJCQkJCQkgICAgIGJhc2VfYWxpZ25lZCwKLQkJCQkJCQkgICAgIHNpemVfYWxpZ25l ZCk7Ci0JaWYgKElTX0VSUihvYmopKQorCXZtYSA9IGluaXRpYWxfcGxhbmVfdm1hKGRldl9wcml2 LCBwbGFuZV9jb25maWcpOworCWlmICghdm1hKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlzd2l0Y2gg KHBsYW5lX2NvbmZpZy0+dGlsaW5nKSB7Ci0JY2FzZSBJOTE1X1RJTElOR19OT05FOgotCQlicmVh azsKLQljYXNlIEk5MTVfVElMSU5HX1g6Ci0JY2FzZSBJOTE1X1RJTElOR19ZOgotCQlvYmotPnRp bGluZ19hbmRfc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gfCBwbGFuZV9jb25maWctPnRpbGluZzsK LQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBsYW5lX2NvbmZpZy0+dGlsaW5n KTsKLQkJZ290byBvdXQ7Ci0JfQotCiAJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZmItPmZvcm1h dC0+Zm9ybWF0OwogCW1vZGVfY21kLndpZHRoID0gZmItPndpZHRoOwogCW1vZGVfY21kLmhlaWdo dCA9IGZiLT5oZWlnaHQ7CkBAIC0zMTQ1LDE3ICszMTc4LDE4IEBAIGludGVsX2FsbG9jX2luaXRp YWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCW1vZGVfY21kLm1vZGlmaWVy WzBdID0gZmItPm1vZGlmaWVyOwogCW1vZGVfY21kLmZsYWdzID0gRFJNX01PREVfRkJfTU9ESUZJ RVJTOwogCi0JaWYgKGludGVsX2ZyYW1lYnVmZmVyX2luaXQodG9faW50ZWxfZnJhbWVidWZmZXIo ZmIpLCBvYmosICZtb2RlX2NtZCkpIHsKKwlpZiAoaW50ZWxfZnJhbWVidWZmZXJfaW5pdCh0b19p bnRlbF9mcmFtZWJ1ZmZlcihmYiksCisJCQkJICAgdm1hLT5vYmosICZtb2RlX2NtZCkpIHsKIAkJ RFJNX0RFQlVHX0tNUygiaW50ZWwgZmIgaW5pdCBmYWlsZWRcbiIpOwotCQlnb3RvIG91dDsKKwkJ Z290byBlcnJfdm1hOwogCX0KIAorCXBsYW5lX2NvbmZpZy0+dm1hID0gdm1hOworCXJldHVybiB0 cnVlOwogCi0JRFJNX0RFQlVHX0tNUygiaW5pdGlhbCBwbGFuZSBmYiBvYmogJXBcbiIsIG9iaik7 Ci0JcmV0ID0gdHJ1ZTsKLW91dDoKLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci0JcmV0dXJu IHJldDsKK2Vycl92bWE6CisJaTkxNV92bWFfcHV0KHZtYSk7CisJcmV0dXJuIGZhbHNlOwogfQog CiBzdGF0aWMgdm9pZApAQCAtMzIzMiwxMiArMzI2NiwxNCBAQCBpbnRlbF9maW5kX2luaXRpYWxf cGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUgPQogCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9z dGF0ZSk7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CisJc3RydWN0IGk5MTVfdm1hICp2 bWE7CiAKIAlpZiAoIXBsYW5lX2NvbmZpZy0+ZmIpCiAJCXJldHVybjsKIAogCWlmIChpbnRlbF9h bGxvY19pbml0aWFsX3BsYW5lX29iaihpbnRlbF9jcnRjLCBwbGFuZV9jb25maWcpKSB7CiAJCWZi ID0gJnBsYW5lX2NvbmZpZy0+ZmItPmJhc2U7CisJCXZtYSA9IHBsYW5lX2NvbmZpZy0+dm1hOwog CQlnb3RvIHZhbGlkX2ZiOwogCX0KIApAQCAtMzI2MCw2ICszMjk2LDcgQEAgaW50ZWxfZmluZF9p bml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAogCQlpZiAo aW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQoc3RhdGUpID09IHBsYW5lX2NvbmZpZy0+YmFzZSkgewog CQkJZmIgPSBzdGF0ZS0+aHcuZmI7CisJCQl2bWEgPSBzdGF0ZS0+dm1hOwogCQkJZ290byB2YWxp ZF9mYjsKIAkJfQogCX0KQEAgLTMyODIsMjAgKzMzMTksMTEgQEAgaW50ZWxfZmluZF9pbml0aWFs X3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAlpbnRlbF9zdGF0ZS0+ Y29sb3JfcGxhbmVbMF0uc3RyaWRlID0KIAkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0 YXRlLT5ody5yb3RhdGlvbik7CiAKLQlpbnRlbF9zdGF0ZS0+dm1hID0KLQkJaW50ZWxfcGluX2Fu ZF9mZW5jZV9mYl9vYmooZmIsCi0JCQkJCSAgICZpbnRlbF9zdGF0ZS0+dmlldywKLQkJCQkJICAg aW50ZWxfcGxhbmVfdXNlc19mZW5jZShpbnRlbF9zdGF0ZSksCi0JCQkJCSAgICZpbnRlbF9zdGF0 ZS0+ZmxhZ3MpOwotCWlmIChJU19FUlIoaW50ZWxfc3RhdGUtPnZtYSkpIHsKLQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gcGluIGJvb3QgZmIgb24gcGlwZSAlZDogJWxpXG4iLAotCQkJICBpbnRlbF9j cnRjLT5waXBlLCBQVFJfRVJSKGludGVsX3N0YXRlLT52bWEpKTsKLQotCQlpbnRlbF9zdGF0ZS0+ dm1hID0gTlVMTDsKLQkJcmV0dXJuOwotCX0KLQotCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRv X2ludGVsX2Zyb250YnVmZmVyKGZiKSwgT1JJR0lOX0RJUlRZRkIpOworCWludGVsX3N0YXRlLT52 bWEgPSBpOTE1X3ZtYV9nZXQocGxhbmVfY29uZmlnLT52bWEpOworCV9faTkxNV92bWFfcGluKGlu dGVsX3N0YXRlLT52bWEpOworCWlmIChpbnRlbF9wbGFuZV91c2VzX2ZlbmNlKGludGVsX3N0YXRl KSAmJgorCSAgICBpOTE1X3ZtYV9waW5fZmVuY2UoaW50ZWxfc3RhdGUtPnZtYSkgPT0gMCkKKwkJ aW50ZWxfc3RhdGUtPmZsYWdzIHw9IFBMQU5FX0hBU19GRU5DRTsKIAogCXBsYW5lX3N0YXRlLT5z cmNfeCA9IDA7CiAJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKQEAgLTMzMTYsNiArMzM0NCw4IEBA IGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCiAJcGxhbmVfc3RhdGUtPmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKIAlpbnRlbF9wbGFu ZV9jb3B5X3VhcGlfdG9faHdfc3RhdGUoaW50ZWxfc3RhdGUsIGludGVsX3N0YXRlKTsKIAorCWlu dGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRvX2ludGVsX2Zyb250YnVmZmVyKGZiKSwgT1JJR0lOX0RJ UlRZRkIpOworCiAJYXRvbWljX29yKHRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZl cl9iaXQsCiAJCSAgJnRvX2ludGVsX2Zyb250YnVmZmVyKGZiKS0+Yml0cyk7CiB9CkBAIC0xNjk1 OCw2ICsxNjk4OCw5IEBAIHN0YXRpYyB2b2lkIHBsYW5lX2NvbmZpZ19maW5pKHN0cnVjdCBpbnRl bF9pbml0aWFsX3BsYW5lX2NvbmZpZyAqcGxhbmVfY29uZmlnKQogCQllbHNlCiAJCQlrZnJlZShm Yik7CiAJfQorCisJaWYgKHBsYW5lX2NvbmZpZy0+dm1hKQorCQlpOTE1X3ZtYV9wdXQocGxhbmVf Y29uZmlnLT52bWEpOwogfQogCiBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA4M2VhMDQxNDliNzcuLmZmOTY2ZmRhNzY0MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmgKQEAgLTYxMSw2ICs2MTEsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewogCiBzdHJ1 Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgewogCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZl ciAqZmI7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQgaW50IHRpbGluZzsKIAlp bnQgc2l6ZTsKIAl1MzIgYmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9z dG9sZW4uYwppbmRleCBhZmIwOGExNzA0YTIuLjMyYWJlNjU4ZTNiMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uYwpAQCAtNjc1LDI2ICs2NzUsMjMgQEAgc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKmk5MTVfZ2VtX3N0b2xlbl9zZXR1cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKIGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCiAJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RvbGVuX29mZnNl dCwKLQkJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBndHRfb2Zmc2V0LAogCQkJCQkgICAgICAg cmVzb3VyY2Vfc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1l bSA9IGk5MTUtPm1tLnJlZ2lvbnNbSU5URUxfUkVHSU9OX1NUT0xFTl07Ci0Jc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7CiAJc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW47Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7 CiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZpOTE1LT5tbS5zdG9sZW4p KQogCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAotCURSTV9ERUJVR19EUklWRVIoImNyZWF0 aW5nIHByZWFsbG9jYXRlZCBzdG9sZW4gb2JqZWN0OiBzdG9sZW5fb2Zmc2V0PSVwYSwgZ3R0X29m ZnNldD0lcGEsIHNpemU9JXBhXG4iLAotCQkJICZzdG9sZW5fb2Zmc2V0LCAmZ3R0X29mZnNldCwg JnNpemUpOworCURSTV9ERUJVR19EUklWRVIoImNyZWF0aW5nIHByZWFsbG9jYXRlZCBzdG9sZW4g b2JqZWN0OiBzdG9sZW5fb2Zmc2V0PSVwYSwgc2l6ZT0lcGFcbiIsCisJCQkgJnN0b2xlbl9vZmZz ZXQsICZzaXplKTsKIAogCS8qIEtJU1MgYW5kIGV4cGVjdCBldmVyeXRoaW5nIHRvIGJlIHBhZ2Ut YWxpZ25lZCAqLwotCWlmIChXQVJOX09OKHNpemUgPT0gMCkgfHwKLQkgICAgV0FSTl9PTighSVNf QUxJR05FRChzaXplLCBJOTE1X0dUVF9QQUdFX1NJWkUpKSB8fAotCSAgICBXQVJOX09OKCFJU19B TElHTkVEKHN0b2xlbl9vZmZzZXQsIEk5MTVfR1RUX01JTl9BTElHTk1FTlQpKSkKKwlpZiAoR0VN X1dBUk5fT04oc2l6ZSA9PSAwKSB8fAorCSAgICBHRU1fV0FSTl9PTighSVNfQUxJR05FRChzaXpl LCBJOTE1X0dUVF9QQUdFX1NJWkUpKSB8fAorCSAgICBHRU1fV0FSTl9PTighSVNfQUxJR05FRChz dG9sZW5fb2Zmc2V0LCBJOTE1X0dUVF9NSU5fQUxJR05NRU5UKSkpCiAJCXJldHVybiBFUlJfUFRS KC1FSU5WQUwpOwogCiAJc3RvbGVuID0ga3phbGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJO RUwpOwpAQCAtNzA3LDY4ICs3MDQsMTkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5f Zm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXQgPSBk cm1fbW1fcmVzZXJ2ZV9ub2RlKCZpOTE1LT5tbS5zdG9sZW4sIHN0b2xlbik7CiAJbXV0ZXhfdW5s b2NrKCZpOTE1LT5tbS5zdG9sZW5fbG9jayk7CiAJaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJ VkVSKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4iKTsKLQkJa2ZyZWUoc3RvbGVu KTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwkJb2JqID0gRVJSX1BUUihyZXQpOworCQlnb3Rv IGVycl9mcmVlOwogCX0KIAogCW9iaiA9IF9faTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4o bWVtLCBzdG9sZW4pOwotCWlmIChJU19FUlIob2JqKSkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJm YWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIG9iamVjdFxuIik7Ci0JCWk5MTVfZ2VtX3N0b2xlbl9y ZW1vdmVfbm9kZShpOTE1LCBzdG9sZW4pOwotCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gb2Jq OwotCX0KLQotCS8qIFNvbWUgb2JqZWN0cyBqdXN0IG5lZWQgcGh5c2ljYWwgbWVtIGZyb20gc3Rv bGVuIHNwYWNlICovCi0JaWYgKGd0dF9vZmZzZXQgPT0gSTkxNV9HVFRfT0ZGU0VUX05PTkUpCi0J CXJldHVybiBvYmo7Ci0KLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7Ci0J aWYgKHJldCkKLQkJZ290byBlcnI7Ci0KLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZn Z3R0LT52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1h KTsKLQkJZ290byBlcnJfcGFnZXM7Ci0JfQotCi0JLyogVG8gc2ltcGxpZnkgdGhlIGluaXRpYWxp c2F0aW9uIHNlcXVlbmNlIGJldHdlZW4gS01TIGFuZCBHVFQsCi0JICogd2UgYWxsb3cgY29uc3Ry dWN0aW9uIG9mIHRoZSBzdG9sZW4gb2JqZWN0IHByaW9yIHRvCi0JICogc2V0dGluZyB1cCB0aGUg R1RUIHNwYWNlLiBUaGUgYWN0dWFsIHJlc2VydmF0aW9uIHdpbGwgb2NjdXIKLQkgKiBsYXRlci4K LQkgKi8KLQltdXRleF9sb2NrKCZnZ3R0LT52bS5tdXRleCk7Ci0JcmV0ID0gaTkxNV9nZW1fZ3R0 X3Jlc2VydmUoJmdndHQtPnZtLCAmdm1hLT5ub2RlLAotCQkJCSAgIHNpemUsIGd0dF9vZmZzZXQs IG9iai0+Y2FjaGVfbGV2ZWwsCi0JCQkJICAgMCk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdf RFJJVkVSKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIEdUVCBzcGFjZVxuIik7Ci0JCW11dGV4 X3VubG9jaygmZ2d0dC0+dm0ubXV0ZXgpOwotCQlnb3RvIGVycl9wYWdlczsKLQl9Ci0KLQlHRU1f QlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwotCi0JR0VNX0JVR19P Tih2bWEtPnBhZ2VzKTsKLQl2bWEtPnBhZ2VzID0gb2JqLT5tbS5wYWdlczsKLQlhdG9taWNfc2V0 KCZ2bWEtPnBhZ2VzX2NvdW50LCBJOTE1X1ZNQV9QQUdFU19BQ1RJVkUpOwotCi0Jc2V0X2JpdChJ OTE1X1ZNQV9HTE9CQUxfQklORF9CSVQsIF9faTkxNV92bWFfZmxhZ3Modm1hKSk7Ci0JX19pOTE1 X3ZtYV9zZXRfbWFwX2FuZF9mZW5jZWFibGUodm1hKTsKLQotCWxpc3RfYWRkX3RhaWwoJnZtYS0+ dm1fbGluaywgJmdndHQtPnZtLmJvdW5kX2xpc3QpOwotCW11dGV4X3VubG9jaygmZ2d0dC0+dm0u bXV0ZXgpOwotCi0JR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfc2hyaW5rYWJsZShvYmop KTsKLQlhdG9taWNfaW5jKCZvYmotPmJpbmRfY291bnQpOworCWlmIChJU19FUlIob2JqKSkKKwkJ Z290byBlcnJfc3RvbGVuOwogCiAJcmV0dXJuIG9iajsKIAotZXJyX3BhZ2VzOgotCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotZXJyOgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKLQlyZXR1cm4gRVJSX1BUUihyZXQpOworZXJyX3N0b2xlbjoKKwlpOTE1X2dlbV9zdG9sZW5f cmVtb3ZlX25vZGUoaTkxNSwgc3RvbGVuKTsKK2Vycl9mcmVlOgorCWtmcmVlKHN0b2xlbik7CisJ cmV0dXJuIG9iajsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9zdG9sZW4uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4u aAppbmRleCBjMTA0MDYyN2ZiZjMuLmUxNWMwYWRhZDhhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uaApAQCAtMjgsNyArMjgsNiBAQCBpOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9m b3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJ ICAgICAgIHJlc291cmNlX3NpemVfdCBzdG9sZW5fb2Zmc2V0LAotCQkJCQkgICAgICAgcmVzb3Vy Y2Vfc2l6ZV90IGd0dF9vZmZzZXQsCiAJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7 CiAKICNlbmRpZiAvKiBfX0k5MTVfR0VNX1NUT0xFTl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JjNi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmM2LmMKaW5kZXggNWUzYmEwMzRiZDQ2Li4wZDU1MzVmN2Q5YzQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JjNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3JjNi5jCkBAIC0yOTQsNyArMjk0LDYgQEAgc3RhdGljIGludCB2bHZf cmM2X2luaXQoc3RydWN0IGludGVsX3JjNiAqcmM2KQogCQlwY2JyX29mZnNldCA9IChwY2JyICYg fjQwOTUpIC0gaTkxNS0+ZHNtLnN0YXJ0OwogCQlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChpOTE1LAogCQkJCQkJCQkgICAgICBwY2JyX29mZnNl dCwKLQkJCQkJCQkJICAgICAgSTkxNV9HVFRfT0ZGU0VUX05PTkUsCiAJCQkJCQkJCSAgICAgIHBj dHhfc2l6ZSk7CiAJCWlmIChJU19FUlIocGN0eCkpCiAJCQlyZXR1cm4gUFRSX0VSUihwY3R4KTsK LS0gCjIuMjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 198D2C43331 for ; Tue, 12 Nov 2019 14:36:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E84F520674 for ; Tue, 12 Nov 2019 14:36:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E84F520674 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D333890F4; Tue, 12 Nov 2019 14:36:52 +0000 (UTC) Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3B2A9890F4 for ; Tue, 12 Nov 2019 14:36:50 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 19174642-1500050 for multiple; Tue, 12 Nov 2019 14:36:45 +0000 From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Tue, 12 Nov 2019 14:36:43 +0000 Message-Id: <20191112143643.21821-2-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191112143643.21821-1-chris@chris-wilson.co.uk> References: <20191112143643.21821-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 2/2] drm/i915/display: Be explicit in handling the preallocated vma X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191112143643.URmjXMVy7SC0WlSfgJKW2yYKsbk0PelPfvXxRg8KSfk@z> QXMgb25seSB0aGUgZGlzcGxheSBjb2RlcyB0cmllcyB0byBwaW4gaXRzIHByZWFsbG9jYXRlZCBm cmFtZWJ1ZmZlciBpbnRvCmFuIGV4YWN0IGxvY2F0aW9uIGluIHRoZSBHR1RULCByZW1vdmUgdGhl IGNvbnZlbmllbmNlIGZ1bmN0aW9uIGFuZCBtYWtlCnRoZSBwaW4gbWFuYWdlbWVudCBleHBsaWNp dCBpbiB0aGUgZGlzcGxheSBjb2RlLiBUaGVuIHRocm91Z2hvdXQgdGhlCmRpc3BsYXkgbWFuYWdl bWVudCwgd2UgdHJhY2sgdGhlIGZyYW1lYnVmZmVyIGFuZCBpdHMgcGxhbmUtPnZtYTsgd2l0aAps ZXNzIHNpbmdsZSBwdXJwb3NlIGNvZGUgYW5kIHJlYWR5IGZvciBmaXJzdCBjbGFzcyBpOTE1X3Zt YS4KCkluIGRvaW5nIHNvLCB0aGlzIHNob3VsZCBmaXggdGhlIEJVR19PTih2bWEtPnBhZ2VzKSBv biBmaS1rYmwtc29yYWthLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMgIHwgMTQxICsrKysrKysrKysrLS0tLS0tLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zdG9sZW4uYyAgICB8ICA4MCArKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmggICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfcmM2LmMgICAgICAgICAgIHwgICAxIC0KIDUgZmlsZXMgY2hhbmdlZCwgMTAy IGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGY1NzFjNjU3NWM2Mi4uZmM4MjNiYmZlNDgx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAt MzA4Myw2ICszMDgzLDY5IEBAIGludCBza2xfZm9ybWF0X3RvX2ZvdXJjYyhpbnQgZm9ybWF0LCBi b29sIHJnYl9vcmRlciwgYm9vbCBhbHBoYSkKIAl9CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaTkxNV92 bWEgKgoraW5pdGlhbF9wbGFuZV92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CSAgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcpCit7CisJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK Kwl1MzIgYmFzZSwgc2l6ZTsKKwlpbnQgZXJyOworCisJaWYgKHBsYW5lX2NvbmZpZy0+c2l6ZSA9 PSAwKQorCQlyZXR1cm4gTlVMTDsKKworCWJhc2UgPSByb3VuZF9kb3duKHBsYW5lX2NvbmZpZy0+ YmFzZSwgUEFHRV9TSVpFKTsKKwlzaXplID0gcm91bmRfdXAocGxhbmVfY29uZmlnLT5iYXNlICsg cGxhbmVfY29uZmlnLT5zaXplLCBQQUdFX1NJWkUpOworCXNpemUgLT0gYmFzZTsKKworCS8qCisJ ICogSWYgdGhlIEZCIGlzIHRvbyBiaWcsIGp1c3QgZG9uJ3QgdXNlIGl0IHNpbmNlIGZiZGV2IGlz IG5vdCB2ZXJ5CisJICogaW1wb3J0YW50IGFuZCB3ZSBzaG91bGQgcHJvYmFibHkgdXNlIHRoYXQg c3BhY2Ugd2l0aCBGQkMgb3Igb3RoZXIKKwkgKiBmZWF0dXJlcy4KKwkgKi8KKwlpZiAoc2l6ZSAq IDIgPiBpOTE1LT5zdG9sZW5fdXNhYmxlX3NpemUpCisJCXJldHVybiBOVUxMOworCisJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChpOTE1LCBiYXNl LCBzaXplKTsKKwlpZiAoIW9iaikKKwkJcmV0dXJuIE5VTEw7CisKKwlzd2l0Y2ggKHBsYW5lX2Nv bmZpZy0+dGlsaW5nKSB7CisJY2FzZSBJOTE1X1RJTElOR19OT05FOgorCQlicmVhazsKKwljYXNl IEk5MTVfVElMSU5HX1g6CisJY2FzZSBJOTE1X1RJTElOR19ZOgorCQlvYmotPnRpbGluZ19hbmRf c3RyaWRlID0KKwkJCXBsYW5lX2NvbmZpZy0+ZmItPmJhc2UucGl0Y2hlc1swXSB8CisJCQlwbGFu ZV9jb25maWctPnRpbGluZzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKHBs YW5lX2NvbmZpZy0+dGlsaW5nKTsKKwkJZ290byBlcnJfb2JqOworCX0KKworCXZtYSA9IGk5MTVf dm1hX2luc3RhbmNlKG9iaiwgJmk5MTUtPmdndHQudm0sIE5VTEwpOworCWlmIChJU19FUlIodm1h KSkKKwkJZ290byBlcnJfb2JqOworCisJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwKKwkJ CSAgIFBJTl9HTE9CQUwgfCBQSU5fTUFQUEFCTEUgfAorCQkJICAgYmFzZSB8IFBJTl9PRkZTRVRf RklYRUQpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX29iajsKKworCWlmIChpOTE1X2dlbV9vYmpl Y3RfaXNfdGlsZWQob2JqKSAmJgorCSAgICAhaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUo dm1hKSkKKwkJZ290byBlcnJfb2JqOworCisJcmV0dXJuIHZtYTsKKworZXJyX29iajoKKwlpOTE1 X2dlbV9vYmplY3RfcHV0KG9iaik7CisJcmV0dXJuIE5VTEw7Cit9CisKIHN0YXRpYyBib29sCiBp bnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJ CSAgICAgIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyAqcGxhbmVfY29uZmlnKQpA QCAtMzA5MSwyMiArMzE1NCw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHsgMCB9 OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gJnBsYW5lX2NvbmZpZy0+ZmItPmJhc2U7 Ci0JdTMyIGJhc2VfYWxpZ25lZCA9IHJvdW5kX2Rvd24ocGxhbmVfY29uZmlnLT5iYXNlLCBQQUdF X1NJWkUpOwotCXUzMiBzaXplX2FsaWduZWQgPSByb3VuZF91cChwbGFuZV9jb25maWctPmJhc2Ug KyBwbGFuZV9jb25maWctPnNpemUsCi0JCQkJICAgIFBBR0VfU0laRSk7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKLQlib29sIHJldCA9IGZhbHNlOwotCi0Jc2l6ZV9hbGlnbmVk IC09IGJhc2VfYWxpZ25lZDsKLQotCWlmIChwbGFuZV9jb25maWctPnNpemUgPT0gMCkKLQkJcmV0 dXJuIGZhbHNlOwotCi0JLyogSWYgdGhlIEZCIGlzIHRvbyBiaWcsIGp1c3QgZG9uJ3QgdXNlIGl0 IHNpbmNlIGZiZGV2IGlzIG5vdCB2ZXJ5Ci0JICogaW1wb3J0YW50IGFuZCB3ZSBzaG91bGQgcHJv YmFibHkgdXNlIHRoYXQgc3BhY2Ugd2l0aCBGQkMgb3Igb3RoZXIKLQkgKiBmZWF0dXJlcy4gKi8K LQlpZiAoc2l6ZV9hbGlnbmVkICogMiA+IGRldl9wcml2LT5zdG9sZW5fdXNhYmxlX3NpemUpCi0J CXJldHVybiBmYWxzZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCXN3aXRjaCAoZmItPm1v ZGlmaWVyKSB7CiAJY2FzZSBEUk1fRk9STUFUX01PRF9MSU5FQVI6CkBAIC0zMTE5LDI1ICszMTY3 LDEwIEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChkZXZfcHJpdiwKLQkJCQkJCQkgICAgIGJhc2VfYWxp Z25lZCwKLQkJCQkJCQkgICAgIGJhc2VfYWxpZ25lZCwKLQkJCQkJCQkgICAgIHNpemVfYWxpZ25l ZCk7Ci0JaWYgKElTX0VSUihvYmopKQorCXZtYSA9IGluaXRpYWxfcGxhbmVfdm1hKGRldl9wcml2 LCBwbGFuZV9jb25maWcpOworCWlmICghdm1hKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlzd2l0Y2gg KHBsYW5lX2NvbmZpZy0+dGlsaW5nKSB7Ci0JY2FzZSBJOTE1X1RJTElOR19OT05FOgotCQlicmVh azsKLQljYXNlIEk5MTVfVElMSU5HX1g6Ci0JY2FzZSBJOTE1X1RJTElOR19ZOgotCQlvYmotPnRp bGluZ19hbmRfc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gfCBwbGFuZV9jb25maWctPnRpbGluZzsK LQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBsYW5lX2NvbmZpZy0+dGlsaW5n KTsKLQkJZ290byBvdXQ7Ci0JfQotCiAJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZmItPmZvcm1h dC0+Zm9ybWF0OwogCW1vZGVfY21kLndpZHRoID0gZmItPndpZHRoOwogCW1vZGVfY21kLmhlaWdo dCA9IGZiLT5oZWlnaHQ7CkBAIC0zMTQ1LDE3ICszMTc4LDE4IEBAIGludGVsX2FsbG9jX2luaXRp YWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCW1vZGVfY21kLm1vZGlmaWVy WzBdID0gZmItPm1vZGlmaWVyOwogCW1vZGVfY21kLmZsYWdzID0gRFJNX01PREVfRkJfTU9ESUZJ RVJTOwogCi0JaWYgKGludGVsX2ZyYW1lYnVmZmVyX2luaXQodG9faW50ZWxfZnJhbWVidWZmZXIo ZmIpLCBvYmosICZtb2RlX2NtZCkpIHsKKwlpZiAoaW50ZWxfZnJhbWVidWZmZXJfaW5pdCh0b19p bnRlbF9mcmFtZWJ1ZmZlcihmYiksCisJCQkJICAgdm1hLT5vYmosICZtb2RlX2NtZCkpIHsKIAkJ RFJNX0RFQlVHX0tNUygiaW50ZWwgZmIgaW5pdCBmYWlsZWRcbiIpOwotCQlnb3RvIG91dDsKKwkJ Z290byBlcnJfdm1hOwogCX0KIAorCXBsYW5lX2NvbmZpZy0+dm1hID0gdm1hOworCXJldHVybiB0 cnVlOwogCi0JRFJNX0RFQlVHX0tNUygiaW5pdGlhbCBwbGFuZSBmYiBvYmogJXBcbiIsIG9iaik7 Ci0JcmV0ID0gdHJ1ZTsKLW91dDoKLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci0JcmV0dXJu IHJldDsKK2Vycl92bWE6CisJaTkxNV92bWFfcHV0KHZtYSk7CisJcmV0dXJuIGZhbHNlOwogfQog CiBzdGF0aWMgdm9pZApAQCAtMzIzMiwxMiArMzI2NiwxNCBAQCBpbnRlbF9maW5kX2luaXRpYWxf cGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUgPQogCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9z dGF0ZSk7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CisJc3RydWN0IGk5MTVfdm1hICp2 bWE7CiAKIAlpZiAoIXBsYW5lX2NvbmZpZy0+ZmIpCiAJCXJldHVybjsKIAogCWlmIChpbnRlbF9h bGxvY19pbml0aWFsX3BsYW5lX29iaihpbnRlbF9jcnRjLCBwbGFuZV9jb25maWcpKSB7CiAJCWZi ID0gJnBsYW5lX2NvbmZpZy0+ZmItPmJhc2U7CisJCXZtYSA9IHBsYW5lX2NvbmZpZy0+dm1hOwog CQlnb3RvIHZhbGlkX2ZiOwogCX0KIApAQCAtMzI2MCw2ICszMjk2LDcgQEAgaW50ZWxfZmluZF9p bml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAogCQlpZiAo aW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQoc3RhdGUpID09IHBsYW5lX2NvbmZpZy0+YmFzZSkgewog CQkJZmIgPSBzdGF0ZS0+aHcuZmI7CisJCQl2bWEgPSBzdGF0ZS0+dm1hOwogCQkJZ290byB2YWxp ZF9mYjsKIAkJfQogCX0KQEAgLTMyODIsMjAgKzMzMTksMTEgQEAgaW50ZWxfZmluZF9pbml0aWFs X3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAlpbnRlbF9zdGF0ZS0+ Y29sb3JfcGxhbmVbMF0uc3RyaWRlID0KIAkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0 YXRlLT5ody5yb3RhdGlvbik7CiAKLQlpbnRlbF9zdGF0ZS0+dm1hID0KLQkJaW50ZWxfcGluX2Fu ZF9mZW5jZV9mYl9vYmooZmIsCi0JCQkJCSAgICZpbnRlbF9zdGF0ZS0+dmlldywKLQkJCQkJICAg aW50ZWxfcGxhbmVfdXNlc19mZW5jZShpbnRlbF9zdGF0ZSksCi0JCQkJCSAgICZpbnRlbF9zdGF0 ZS0+ZmxhZ3MpOwotCWlmIChJU19FUlIoaW50ZWxfc3RhdGUtPnZtYSkpIHsKLQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gcGluIGJvb3QgZmIgb24gcGlwZSAlZDogJWxpXG4iLAotCQkJICBpbnRlbF9j cnRjLT5waXBlLCBQVFJfRVJSKGludGVsX3N0YXRlLT52bWEpKTsKLQotCQlpbnRlbF9zdGF0ZS0+ dm1hID0gTlVMTDsKLQkJcmV0dXJuOwotCX0KLQotCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRv X2ludGVsX2Zyb250YnVmZmVyKGZiKSwgT1JJR0lOX0RJUlRZRkIpOworCWludGVsX3N0YXRlLT52 bWEgPSBpOTE1X3ZtYV9nZXQocGxhbmVfY29uZmlnLT52bWEpOworCV9faTkxNV92bWFfcGluKGlu dGVsX3N0YXRlLT52bWEpOworCWlmIChpbnRlbF9wbGFuZV91c2VzX2ZlbmNlKGludGVsX3N0YXRl KSAmJgorCSAgICBpOTE1X3ZtYV9waW5fZmVuY2UoaW50ZWxfc3RhdGUtPnZtYSkgPT0gMCkKKwkJ aW50ZWxfc3RhdGUtPmZsYWdzIHw9IFBMQU5FX0hBU19GRU5DRTsKIAogCXBsYW5lX3N0YXRlLT5z cmNfeCA9IDA7CiAJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKQEAgLTMzMTYsNiArMzM0NCw4IEBA IGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCiAJcGxhbmVfc3RhdGUtPmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKIAlpbnRlbF9wbGFu ZV9jb3B5X3VhcGlfdG9faHdfc3RhdGUoaW50ZWxfc3RhdGUsIGludGVsX3N0YXRlKTsKIAorCWlu dGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRvX2ludGVsX2Zyb250YnVmZmVyKGZiKSwgT1JJR0lOX0RJ UlRZRkIpOworCiAJYXRvbWljX29yKHRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZl cl9iaXQsCiAJCSAgJnRvX2ludGVsX2Zyb250YnVmZmVyKGZiKS0+Yml0cyk7CiB9CkBAIC0xNjk1 OCw2ICsxNjk4OCw5IEBAIHN0YXRpYyB2b2lkIHBsYW5lX2NvbmZpZ19maW5pKHN0cnVjdCBpbnRl bF9pbml0aWFsX3BsYW5lX2NvbmZpZyAqcGxhbmVfY29uZmlnKQogCQllbHNlCiAJCQlrZnJlZShm Yik7CiAJfQorCisJaWYgKHBsYW5lX2NvbmZpZy0+dm1hKQorCQlpOTE1X3ZtYV9wdXQocGxhbmVf Y29uZmlnLT52bWEpOwogfQogCiBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA4M2VhMDQxNDliNzcuLmZmOTY2ZmRhNzY0MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmgKQEAgLTYxMSw2ICs2MTEsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewogCiBzdHJ1 Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgewogCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZl ciAqZmI7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQgaW50IHRpbGluZzsKIAlp bnQgc2l6ZTsKIAl1MzIgYmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9z dG9sZW4uYwppbmRleCBhZmIwOGExNzA0YTIuLjMyYWJlNjU4ZTNiMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uYwpAQCAtNjc1LDI2ICs2NzUsMjMgQEAgc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKmk5MTVfZ2VtX3N0b2xlbl9zZXR1cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKIGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCiAJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RvbGVuX29mZnNl dCwKLQkJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBndHRfb2Zmc2V0LAogCQkJCQkgICAgICAg cmVzb3VyY2Vfc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1l bSA9IGk5MTUtPm1tLnJlZ2lvbnNbSU5URUxfUkVHSU9OX1NUT0xFTl07Ci0Jc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7CiAJc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW47Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7 CiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZpOTE1LT5tbS5zdG9sZW4p KQogCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAotCURSTV9ERUJVR19EUklWRVIoImNyZWF0 aW5nIHByZWFsbG9jYXRlZCBzdG9sZW4gb2JqZWN0OiBzdG9sZW5fb2Zmc2V0PSVwYSwgZ3R0X29m ZnNldD0lcGEsIHNpemU9JXBhXG4iLAotCQkJICZzdG9sZW5fb2Zmc2V0LCAmZ3R0X29mZnNldCwg JnNpemUpOworCURSTV9ERUJVR19EUklWRVIoImNyZWF0aW5nIHByZWFsbG9jYXRlZCBzdG9sZW4g b2JqZWN0OiBzdG9sZW5fb2Zmc2V0PSVwYSwgc2l6ZT0lcGFcbiIsCisJCQkgJnN0b2xlbl9vZmZz ZXQsICZzaXplKTsKIAogCS8qIEtJU1MgYW5kIGV4cGVjdCBldmVyeXRoaW5nIHRvIGJlIHBhZ2Ut YWxpZ25lZCAqLwotCWlmIChXQVJOX09OKHNpemUgPT0gMCkgfHwKLQkgICAgV0FSTl9PTighSVNf QUxJR05FRChzaXplLCBJOTE1X0dUVF9QQUdFX1NJWkUpKSB8fAotCSAgICBXQVJOX09OKCFJU19B TElHTkVEKHN0b2xlbl9vZmZzZXQsIEk5MTVfR1RUX01JTl9BTElHTk1FTlQpKSkKKwlpZiAoR0VN X1dBUk5fT04oc2l6ZSA9PSAwKSB8fAorCSAgICBHRU1fV0FSTl9PTighSVNfQUxJR05FRChzaXpl LCBJOTE1X0dUVF9QQUdFX1NJWkUpKSB8fAorCSAgICBHRU1fV0FSTl9PTighSVNfQUxJR05FRChz dG9sZW5fb2Zmc2V0LCBJOTE1X0dUVF9NSU5fQUxJR05NRU5UKSkpCiAJCXJldHVybiBFUlJfUFRS KC1FSU5WQUwpOwogCiAJc3RvbGVuID0ga3phbGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJO RUwpOwpAQCAtNzA3LDY4ICs3MDQsMTkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5f Zm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXQgPSBk cm1fbW1fcmVzZXJ2ZV9ub2RlKCZpOTE1LT5tbS5zdG9sZW4sIHN0b2xlbik7CiAJbXV0ZXhfdW5s b2NrKCZpOTE1LT5tbS5zdG9sZW5fbG9jayk7CiAJaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJ VkVSKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4iKTsKLQkJa2ZyZWUoc3RvbGVu KTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwkJb2JqID0gRVJSX1BUUihyZXQpOworCQlnb3Rv IGVycl9mcmVlOwogCX0KIAogCW9iaiA9IF9faTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4o bWVtLCBzdG9sZW4pOwotCWlmIChJU19FUlIob2JqKSkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJm YWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIG9iamVjdFxuIik7Ci0JCWk5MTVfZ2VtX3N0b2xlbl9y ZW1vdmVfbm9kZShpOTE1LCBzdG9sZW4pOwotCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gb2Jq OwotCX0KLQotCS8qIFNvbWUgb2JqZWN0cyBqdXN0IG5lZWQgcGh5c2ljYWwgbWVtIGZyb20gc3Rv bGVuIHNwYWNlICovCi0JaWYgKGd0dF9vZmZzZXQgPT0gSTkxNV9HVFRfT0ZGU0VUX05PTkUpCi0J CXJldHVybiBvYmo7Ci0KLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7Ci0J aWYgKHJldCkKLQkJZ290byBlcnI7Ci0KLQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZn Z3R0LT52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1h KTsKLQkJZ290byBlcnJfcGFnZXM7Ci0JfQotCi0JLyogVG8gc2ltcGxpZnkgdGhlIGluaXRpYWxp c2F0aW9uIHNlcXVlbmNlIGJldHdlZW4gS01TIGFuZCBHVFQsCi0JICogd2UgYWxsb3cgY29uc3Ry dWN0aW9uIG9mIHRoZSBzdG9sZW4gb2JqZWN0IHByaW9yIHRvCi0JICogc2V0dGluZyB1cCB0aGUg R1RUIHNwYWNlLiBUaGUgYWN0dWFsIHJlc2VydmF0aW9uIHdpbGwgb2NjdXIKLQkgKiBsYXRlci4K LQkgKi8KLQltdXRleF9sb2NrKCZnZ3R0LT52bS5tdXRleCk7Ci0JcmV0ID0gaTkxNV9nZW1fZ3R0 X3Jlc2VydmUoJmdndHQtPnZtLCAmdm1hLT5ub2RlLAotCQkJCSAgIHNpemUsIGd0dF9vZmZzZXQs IG9iai0+Y2FjaGVfbGV2ZWwsCi0JCQkJICAgMCk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdf RFJJVkVSKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIEdUVCBzcGFjZVxuIik7Ci0JCW11dGV4 X3VubG9jaygmZ2d0dC0+dm0ubXV0ZXgpOwotCQlnb3RvIGVycl9wYWdlczsKLQl9Ci0KLQlHRU1f QlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwotCi0JR0VNX0JVR19P Tih2bWEtPnBhZ2VzKTsKLQl2bWEtPnBhZ2VzID0gb2JqLT5tbS5wYWdlczsKLQlhdG9taWNfc2V0 KCZ2bWEtPnBhZ2VzX2NvdW50LCBJOTE1X1ZNQV9QQUdFU19BQ1RJVkUpOwotCi0Jc2V0X2JpdChJ OTE1X1ZNQV9HTE9CQUxfQklORF9CSVQsIF9faTkxNV92bWFfZmxhZ3Modm1hKSk7Ci0JX19pOTE1 X3ZtYV9zZXRfbWFwX2FuZF9mZW5jZWFibGUodm1hKTsKLQotCWxpc3RfYWRkX3RhaWwoJnZtYS0+ dm1fbGluaywgJmdndHQtPnZtLmJvdW5kX2xpc3QpOwotCW11dGV4X3VubG9jaygmZ2d0dC0+dm0u bXV0ZXgpOwotCi0JR0VNX0JVR19PTihpOTE1X2dlbV9vYmplY3RfaXNfc2hyaW5rYWJsZShvYmop KTsKLQlhdG9taWNfaW5jKCZvYmotPmJpbmRfY291bnQpOworCWlmIChJU19FUlIob2JqKSkKKwkJ Z290byBlcnJfc3RvbGVuOwogCiAJcmV0dXJuIG9iajsKIAotZXJyX3BhZ2VzOgotCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotZXJyOgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKLQlyZXR1cm4gRVJSX1BUUihyZXQpOworZXJyX3N0b2xlbjoKKwlpOTE1X2dlbV9zdG9sZW5f cmVtb3ZlX25vZGUoaTkxNSwgc3RvbGVuKTsKK2Vycl9mcmVlOgorCWtmcmVlKHN0b2xlbik7CisJ cmV0dXJuIG9iajsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9zdG9sZW4uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4u aAppbmRleCBjMTA0MDYyN2ZiZjMuLmUxNWMwYWRhZDhhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uaApAQCAtMjgsNyArMjgsNiBAQCBpOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9m b3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJ ICAgICAgIHJlc291cmNlX3NpemVfdCBzdG9sZW5fb2Zmc2V0LAotCQkJCQkgICAgICAgcmVzb3Vy Y2Vfc2l6ZV90IGd0dF9vZmZzZXQsCiAJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7 CiAKICNlbmRpZiAvKiBfX0k5MTVfR0VNX1NUT0xFTl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JjNi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmM2LmMKaW5kZXggNWUzYmEwMzRiZDQ2Li4wZDU1MzVmN2Q5YzQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JjNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3JjNi5jCkBAIC0yOTQsNyArMjk0LDYgQEAgc3RhdGljIGludCB2bHZf cmM2X2luaXQoc3RydWN0IGludGVsX3JjNiAqcmM2KQogCQlwY2JyX29mZnNldCA9IChwY2JyICYg fjQwOTUpIC0gaTkxNS0+ZHNtLnN0YXJ0OwogCQlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChpOTE1LAogCQkJCQkJCQkgICAgICBwY2JyX29mZnNl dCwKLQkJCQkJCQkJICAgICAgSTkxNV9HVFRfT0ZGU0VUX05PTkUsCiAJCQkJCQkJCSAgICAgIHBj dHhfc2l6ZSk7CiAJCWlmIChJU19FUlIocGN0eCkpCiAJCQlyZXR1cm4gUFRSX0VSUihwY3R4KTsK LS0gCjIuMjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4