From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 02/11] drm/i915/gen9+: Program watermarks as a separate step during evasion, v3. Date: Tue, 8 Nov 2016 13:55:33 +0100 Message-ID: <1478609742-13603-3-git-send-email-maarten.lankhorst@linux.intel.com> References: <1478609742-13603-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C72D6E506 for ; Tue, 8 Nov 2016 12:55:50 +0000 (UTC) In-Reply-To: <1478609742-13603-1-git-send-email-maarten.lankhorst@linux.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 VGhlIHdhdGVybWFyayB1cGRhdGVzIGZvciBTS0wgc3R5bGUgd2F0ZXJtYXJrcyBhcmUgbm8gbG9u Z2VyIGRvbmUKaW4gdGhlIHBsYW5lIGNhbGxiYWNrcywgYnV0IGFyZSBub3cgY2FsbGVkIGluIGEg c2VwYXJhdGUgd2F0ZXJtYXJrCnVwZGF0ZSBmdW5jdGlvbiB0aGF0J3MgY2FsbGVkIGR1cmluZyB0 aGUgc2FtZSB2YmxhbmsgZXZhc2lvbiwKYmVmb3JlIHRoZSBwbGFuZSB1cGRhdGVzLgoKVGhpcyBh bHNvIGdldHMgcmlkIG9mIHRoZSBnbG9iYWwgc2tsX3Jlc3VsdHMsIHdoaWNoIHdhcyByZXF1aXJl ZCBmb3IKa2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCBhdG9taWMgY29tbWl0LgoKQ2hhbmdl cyBzaW5jZSB2MToKLSBNb3ZlIGxpbmUgdW53cmFwIHRvIGNvcnJlY3QgcGF0Y2guIChMeXVkZSkK LSBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVncmVzcyBJTEsgd2F0ZXJtYXJrcy4gKE1hdHQpCi0gUmVw aHJhc2UgY29tbWl0IG1lc3NhZ2UuIChNYXR0KQpDaGFuZ2VzIHNpbmNlIHYyOgotIEZpeCBkaXNh YmxlIHdhdGVybWFyayBjaGVjayB0byB1c2UgdGhlIGNvcnJlY3Qgd2F5IHRvIGRldGVybWluZSBz aW5nbGUKICBzdGVwIHdhdGVybWFyayBzdXBwb3J0LgoKUmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIg PG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBMeXVkZSA8Y3BhdWxAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgfCAgNyAtLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg fCA0MCArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA3IC0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgICAgICB8IDQwICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgMTggLS0tLS0tLS0tLS0t LS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAwMDk4OGQ3MTZkN2UuLjU0N2ExYTRmMDIyNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDU4LDEzICsyMDU4LDYgQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgewogCQkgKi8KIAkJdWludDE2X3Qgc2tsX2xhdGVuY3lbOF07CiAKLQkJ LyoKLQkJICogVGhlIHNrbF93bV92YWx1ZXMgc3RydWN0dXJlIGlzIGEgYml0IHRvbyBiaWcgZm9y IHN0YWNrCi0JCSAqIGFsbG9jYXRpb24sIHNvIHdlIGtlZXAgdGhlIHN0YWdpbmcgc3RydWN0IHdo ZXJlIHdlIHN0b3JlCi0JCSAqIGludGVybWVkaWF0ZSByZXN1bHRzIGhlcmUgaW5zdGVhZC4KLQkJ ICovCi0JCXN0cnVjdCBza2xfd21fdmFsdWVzIHNrbF9yZXN1bHRzOwotCiAJCS8qIGN1cnJlbnQg aGFyZHdhcmUgc3RhdGUgKi8KIAkJdW5pb24gewogCQkJc3RydWN0IGlsa193bV92YWx1ZXMgaHc7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjZjZjI5YWM5ZmU0Li5hYmZj YWEwN2JiZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTMzODIsOSAr MzM4Miw2IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndt ID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dt ICpwX3dtID0KLQkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1swXTsKIAlpbnQg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMyIHBsYW5lX2N0bDsKIAl1bnNpZ25lZCBpbnQg cm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKQEAgLTM0MjAsOSArMzQxNyw2 IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeCA9IHNyY194OwogCWludGVsX2Ny dGMtPmFkanVzdGVkX3kgPSBzcmNfeTsKIAotCWlmICh3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0 Y19tYXNrKCZpbnRlbF9jcnRjLT5iYXNlKSkKLQkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2Ny dGMsIHBfd20sICZ3bS0+ZGRiLCAwKTsKLQogCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIDAp LCBwbGFuZV9jdGwpOwogCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCAoc3JjX3kg PDwgMTYpIHwgc3JjX3gpOwogCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBzdHJp ZGUpOwpAQCAtMzQ1NSwxOCArMzQ0OSw4IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfZGlzYWJsZV9w cmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpw X3dtID0gJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzWzBdOwogCWludCBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKIAotCS8qCi0JICogV2Ugb25seSBwb3B1bGF0ZSBza2xfcmVzdWx0cyBv biB3YXRlcm1hcmsgdXBkYXRlcywgYW5kIGlmIHRoZQotCSAqIHBsYW5lJ3MgdmlzaWJsaXR5IGlz bid0IGFjdHVhbGx5IGNoYW5naW5nIG5laXRoZXIgaXMgaXRzIHdhdGVybWFya3MuCi0JICovCi0J aWYgKCFjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+dmlzaWJsZSkKLQkJc2tsX3dyaXRlX3BsYW5lX3dt KGludGVsX2NydGMsIHBfd20sCi0JCQkJICAgJmRldl9wcml2LT53bS5za2xfcmVzdWx0cy5kZGIs IDApOwotCiAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIDApOwogCUk5MTVfV1JJVEUo UExBTkVfU1VSRihwaXBlLCAwKSwgMCk7CiAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlwZSwg MCkpOwpAQCAtMTA4NDgsMTYgKzEwODMyLDkgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vy c29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UsCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9j cnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20g PSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwotCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20g KnBfd20gPQotCQkmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbUExBTkVfQ1VSU09SXTsK IAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdWludDMyX3QgY250bCA9IDA7CiAKLQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRj X21hc2soY3J0YykpCi0JCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxfY3J0YywgcF93bSwgJndt LT5kZGIpOwotCiAJaWYgKHBsYW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUp IHsKIAkJY250bCA9IE1DVVJTT1JfR0FNTUFfRU5BQkxFOwogCQlzd2l0Y2ggKHBsYW5lX3N0YXRl LT5iYXNlLmNydGNfdykgewpAQCAtMTQ0MDcsOCArMTQzODQsMTcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJ CWludGVsX2NoZWNrX2NwdV9maWZvX3VuZGVycnVucyhkZXZfcHJpdik7CiAJCQlpbnRlbF9jaGVj a19wY2hfZmlmb191bmRlcnJ1bnMoZGV2X3ByaXYpOwogCi0JCQlpZiAoIWNydGMtPnN0YXRlLT5h Y3RpdmUpCi0JCQkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoaW50ZWxfY3J0Yyk7CisJCQlpZiAo IWNydGMtPnN0YXRlLT5hY3RpdmUpIHsKKwkJCQkvKgorCQkJCSAqIE1ha2Ugc3VyZSB3ZSBkb24n dCBjYWxsIGluaXRpYWxfd2F0ZXJtYXJrcworCQkJCSAqIGZvciBJTEstc3R5bGUgd2F0ZXJtYXJr IHVwZGF0ZXMuCisJCQkJICovCisJCQkJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF0b21pY191cGRh dGVfd2F0ZXJtYXJrcykKKwkJCQkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtz KGludGVsX3N0YXRlLAorCQkJCQkJCQkJICAgICB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0 YXRlKSk7CisJCQkJZWxzZQorCQkJCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhpbnRlbF9jcnRj KTsKKwkJCX0KIAkJfQogCX0KIApAQCAtMTQ2MDMsNyArMTQ1ODksNiBAQCBzdGF0aWMgaW50IGlu dGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWRybV9hdG9taWNf aGVscGVyX3N3YXBfc3RhdGUoc3RhdGUsIHRydWUpOwogCWRldl9wcml2LT53bS5kaXN0cnVzdF9i aW9zX3dtID0gZmFsc2U7Ci0JZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzID0gaW50ZWxfc3RhdGUt PndtX3Jlc3VsdHM7CiAJaW50ZWxfc2hhcmVkX2RwbGxfY29tbWl0KHN0YXRlKTsKIAlpbnRlbF9h dG9taWNfdHJhY2tfZmJzKHN0YXRlKTsKIApAQCAtMTQ5MTksNyArMTQ5MDQsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaW50 ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0Yyk7CiAKIAlpZiAobW9kZXNldCkKLQkJcmV0 dXJuOworCQlnb3RvIG91dDsKIAogCWlmIChjcnRjLT5zdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2Vk IHx8IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkgewogCQlp bnRlbF9jb2xvcl9zZXRfY3NjKGNydGMtPnN0YXRlKTsKQEAgLTE0OTMxLDYgKzE0OTE2LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJc2tsX2RldGFjaF9zY2Fs ZXJzKGludGVsX2NydGMpOwogCitvdXQ6CiAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF0b21pY191 cGRhdGVfd2F0ZXJtYXJrcykKIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRl cm1hcmtzKG9sZF9pbnRlbF9zdGF0ZSwgaW50ZWxfY3N0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKaW5kZXggMzk4MTk1YmY2ZGQxLi5kMTg0NDQwOTdlMWMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCkBAIC0xNzQzLDEzICsxNzQzLDYgQEAgYm9vbCBza2xfZGRiX2FsbG9jYXRp b25fZXF1YWxzKGNvbnN0IHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm9sZCwKIAkJCSAgICAg ICBlbnVtIHBpcGUgcGlwZSk7CiBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFwcyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjKTsKLXZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKLQkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSwKLQkJCSBjb25zdCBz dHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpOwotdm9pZCBza2xfd3JpdGVfcGxhbmVfd20o c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCi0JCQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5l X3dtICp3bSwKLQkJCWNvbnN0IHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKLQkJCWlu dCBwbGFuZSk7CiB1aW50MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7CiBib29sIGlsa19kaXNhYmxlX2xwX3dtKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogaW50IHNhbml0aXplX3JjNl9vcHRpb24oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZW5hYmxlX3JjNik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCA5ZTgyNWE5NjUxYTQuLjkzZTI2MTMwMGVmMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCkBAIC00MjAzLDE5ICs0MjAzLDI5IEBAIHN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBk YXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7 CiAJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNzdGF0ZS0+d20uc2tsLm9wdGltYWw7 CisJY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiID0gJnN0YXRlLT53bV9yZXN1 bHRzLmRkYjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CisJaW50IHBsYW5lOworCisJ aWYgKCEoc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRj LT5iYXNlKSkpCisJCXJldHVybjsKIAogCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5FVElNRShwaXBl KSwgcGlwZV93bS0+bGluZXRpbWUpOworCisJZm9yX2VhY2hfdW5pdmVyc2FsX3BsYW5lKGRldl9w cml2LCBwaXBlLCBwbGFuZSkKKwkJc2tsX3dyaXRlX3BsYW5lX3dtKGNydGMsICZwaXBlX3dtLT5w bGFuZXNbcGxhbmVdLCBkZGIsIHBsYW5lKTsKKworCXNrbF93cml0ZV9jdXJzb3Jfd20oY3J0Yywg JnBpcGVfd20tPnBsYW5lc1tQTEFORV9DVVJTT1JdLCBkZGIpOwogfQogCi1zdGF0aWMgdm9pZCBz a2xfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQoteworc3RhdGljIHZv aWQgc2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQorIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IHNrbF93bV92YWx1 ZXMgKnJlc3VsdHMgPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOworCXN0cnVjdCBza2xfd21f dmFsdWVzICpyZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1bHRzOwogCXN0cnVjdCBza2xfd21fdmFs dWVzICpod192YWxzID0gJmRldl9wcml2LT53bS5za2xfaHc7Ci0Jc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0 ZSk7Ci0Jc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNzdGF0ZS0+d20uc2tsLm9wdGlt YWw7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJaWYgKChyZXN1bHRz LT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmludGVsX2NydGMtPmJhc2UpKSA9PSAwKQpA QCAtNDIyMywyMiArNDIzMyw4IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfd20oc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMpCiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0 ZXgpOwogCi0JLyoKLQkgKiBJZiB0aGlzIHBpcGUgaXNuJ3QgYWN0aXZlIGFscmVhZHksIHdlJ3Jl IGdvaW5nIHRvIGJlIGVuYWJsaW5nIGl0Ci0JICogdmVyeSBzb29uLiBTaW5jZSBpdCdzIHNhZmUg dG8gdXBkYXRlIGEgcGlwZSdzIGRkYiBhbGxvY2F0aW9uIHdoaWxlCi0JICogdGhlIHBpcGUncyBz aHV0IG9mZiwganVzdCBkbyBzbyBoZXJlLiBBbHJlYWR5IGFjdGl2ZSBwaXBlcyB3aWxsIGhhdmUK LQkgKiB0aGVpciB3YXRlcm1hcmtzIHVwZGF0ZWQgb25jZSB3ZSB1cGRhdGUgdGhlaXIgcGxhbmVz LgotCSAqLwotCWlmIChpbnRlbF9jcnRjLT5iYXNlLnN0YXRlLT5hY3RpdmVfY2hhbmdlZCkgewot CQlpbnQgcGxhbmU7Ci0KLQkJZm9yX2VhY2hfdW5pdmVyc2FsX3BsYW5lKGRldl9wcml2LCBwaXBl LCBwbGFuZSkKLQkJCXNrbF93cml0ZV9wbGFuZV93bShpbnRlbF9jcnRjLCAmcGlwZV93bS0+cGxh bmVzW3BsYW5lXSwKLQkJCQkJICAgJnJlc3VsdHMtPmRkYiwgcGxhbmUpOwotCi0JCXNrbF93cml0 ZV9jdXJzb3Jfd20oaW50ZWxfY3J0YywgJnBpcGVfd20tPnBsYW5lc1tQTEFORV9DVVJTT1JdLAot CQkJCSAgICAmcmVzdWx0cy0+ZGRiKTsKLQl9CisJaWYgKGNzdGF0ZS0+YmFzZS5hY3RpdmVfY2hh bmdlZCkKKwkJc2tsX2F0b21pY191cGRhdGVfY3J0Y193bShzdGF0ZSwgY3N0YXRlKTsKIAogCXNr bF9jb3B5X3dtX2Zvcl9waXBlKGh3X3ZhbHMsIHJlc3VsdHMsIHBpcGUpOwogCkBAIC03NzA3LDcg Kzc3MDMsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCS8qIEZvciBGSUZPIHdhdGVybWFyayB1cGRhdGVzICovCiAJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gOSkgewogCQlza2xfc2V0dXBfd21fbGF0ZW5jeShkZXZfcHJpdik7Ci0J CWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHNrbF91cGRhdGVfd207CisJCWRldl9wcml2 LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyA9IHNrbF9pbml0aWFsX3dtOwogCQlkZXZfcHJp di0+ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3MgPSBza2xfYXRvbWljX3VwZGF0ZV9j cnRjX3dtOwogCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzID0g c2tsX2NvbXB1dGVfd207CiAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCBkZjBmYmI0YjE1YTMuLjU1NTYzMzQ2 YmJhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTIwMywxMyArMjAzLDgg QEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwogCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JY29uc3Qgc3Ry dWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKLQlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCWNvbnN0IGludCBwaXBl ID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJY29uc3QgaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBs YW5lICsgMTsKLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0KLQkJJmNydGNfc3Rh dGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV07CiAJdTMyIHBsYW5lX2N0bDsKIAljb25z dCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5j a2V5OwogCXUzMiBzdXJmX2FkZHIgPSBwbGFuZV9zdGF0ZS0+bWFpbi5vZmZzZXQ7CkBAIC0yMzMs OSArMjI4LDYgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUs CiAKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9yb3RhdGlvbihyb3RhdGlvbik7CiAKLQlp ZiAod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzayhjcnRjKSkKLQkJc2tsX3dyaXRlX3Bs YW5lX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiLCBwbGFuZSk7Ci0KIAlpZiAoa2V5LT5m bGFncykgewogCQlJOTE1X1dSSVRFKFBMQU5FX0tFWVZBTChwaXBlLCBwbGFuZSksIGtleS0+bWlu X3ZhbHVlKTsKIAkJSTkxNV9XUklURShQTEFORV9LRVlNQVgocGlwZSwgcGxhbmUpLCBrZXktPm1h eF92YWx1ZSk7CkBAIC0yOTEsMTkgKzI4Myw5IEBAIHNrbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkcGxhbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKGRwbGFuZSk7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9 IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCWNvbnN0IGludCBwaXBlID0gaW50 ZWxfcGxhbmUtPnBpcGU7CiAJY29uc3QgaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lICsg MTsKIAotCS8qCi0JICogV2Ugb25seSBwb3B1bGF0ZSBza2xfcmVzdWx0cyBvbiB3YXRlcm1hcmsg dXBkYXRlcywgYW5kIGlmIHRoZQotCSAqIHBsYW5lJ3MgdmlzaWJsaXR5IGlzbid0IGFjdHVhbGx5 IGNoYW5naW5nIG5laXRoZXIgaXMgaXRzIHdhdGVybWFya3MuCi0JICovCi0JaWYgKCFkcGxhbmUt PnN0YXRlLT52aXNpYmxlKQotCQlza2xfd3JpdGVfcGxhbmVfd20odG9faW50ZWxfY3J0YyhjcnRj KSwKLQkJCQkgICAmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVdLAotCQkJCSAg ICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMuZGRiLCBwbGFuZSk7Ci0KIAlJOTE1X1dSSVRFKFBM QU5FX0NUTChwaXBlLCBwbGFuZSksIDApOwogCiAJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUs IHBsYW5lKSwgMCk7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==