From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH v3] drm/i915: Disable SAGV on pre plane update. Date: Fri, 23 Feb 2018 15:18:50 -0800 Message-ID: <20180223231850.31383-1-rodrigo.vivi@intel.com> References: <20180223230929.30573.5853@emeril.freedesktop.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F2BE6F345 for ; Fri, 23 Feb 2018 23:18:53 +0000 (UTC) In-Reply-To: <20180223230929.30573.5853@emeril.freedesktop.org> 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: Azhar Shaikh , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org QWNjb3JkaW5nIHRvIFNwZWMgIlJlcXVpcmVtZW50IGJlZm9yZSBwbGFuZSBlbmFibGluZyBvcgpj b25maWd1cmF0aW9uIGNoYW5nZTogRGlzYWJsZSBTQUdWIGlmIGFueSBlbmFibGVkIHBsYW5lIHdp bGwgbm90CmJlIGFibGUgdG8gZW5hYmxlIHdhdGVybWFya3MgZm9yIG1lbW9yeSBsYXRlbmN5ID49 IFNBR1YgYmxvY2sKdGltZSwgb3IgYW55IHRyYW5zY29kZXIgaXMgaW50ZXJsYWNlZC4gRWxzZSwg ZW5hYmxlIFNBR1YuIgoKQ3VycmVudGx5IHdlIGFyZSBvbmx5IGVuYWJsaW5nIGFuZCBkaXNhYmxp bmcgU0FHViBvbiBmdWxsCm1vZGVzZXQuIElmIHdlIGVuZCB1cCBjaGFuZ2luZyBwbGFuZSBjb25m aWd1cmF0aW9ucyBhbmQKc2FndiByZW1haW5zIGVuYWJsZWQgd2hlbiBsYXRlbmN5IGlzIGhpZ2hl ciB0aGFuIHNhZ3YgYmxvY2sKdGltZSB0aGUgbWFjaGluZSBjYW4gaGFuZy4KCkFsc28gd2UgYXJl IGNvbXB1dGluZyB0aGUgbGF0ZW5jeSB2YWx1ZXMgaW4gZGlmZmVyZW50IHBsYWNlcwphbmQgZm9s bG93aW5nIGRpZmZlcmVudCBjb25kaXRpb25zL3J1bGVzLiBTbyBsZXQncyBtb3ZlIHRoZQp0aGUg c2FndiBibG9jayB0aW1lIGxpbWl0IGNoZWNrIHRvIGJlIGluc2lkZSBza2xfY29tcHV0ZV93bQph bmQsIGlmIG5lY2Vzc2FyeSwgZGlzYWJsZSBTQUdWIG9uIHByZSBwbGFuZSB1cGRhdGVzLgoKU0FH ViBkZWZhdWx0cyB0byBlbmFibGVkIGJ5IHRoZSBCSU9TLCBzbyB3ZSBuZWVkIHRvIGJlIG1vcmUK Y2FyZWZ1bCBhbmQgZGlzYWJsZSBldmVyeXRpbWUgd2Ugc2VlIGEgbWlzbWF0Y2ggb24gaXRzCmNv bmRpdGlvbnMuCgp2MjogLSBDb25zaWRlciBvbmx5IGhpZ2hlc3QgZW5hYmxlZCB3bSBsZXZlbCBm b3IgU0FHViBibG9jawogICAgICB0aW1lIGxpbWl0YXRpb24uCiAgICAtIEhhbmRsZSBzYWd2IGJv b2wgaW4gYSB3YXkgdGhhdCB3ZSBwcm9wZXJseSBjb25zaWRlciBhbGwKICAgICAgdGhlIHBsYW5l cy4gU28gd2UgZG9uJ3QgZW5kIHVwIGFsd2F5cyBkaXNhYmxpbmcgU0FHVi4KICAgIC0gKFZpbGxl KSBEb24ndCBlbmFibGVkIG9uIHBvc3RfcGxhbmUgdXBkYXRlLCBvdGhlcndpc2Ugb25lCiAgICAg IHBpcGUgZW5kcyB1cCBlbmFibGluZyB3aXRob3V0IGNoZWNraW5nIGZvciBvdGhlcnMuIFNvIGtl ZXAKICAgICAgdGhlIG9sZCBlbmFibGUvZGlzYWJsZSBzb2x1dGlvbiBvbiBhdG9taWMgY29tbWl0 IHRhaWwKICAgICAgc28gd2UgY29udGludWUgZm9sbG93aW5nIHRoZSBzcGVjIHRvIGRpc2FibGUg b24gbXVsdGlwbGUKICAgICAgcGlwZSBvciBpbnRlcmxhY2VkIGFuZCByZS1lbmFibGUgb24gbW9k ZXNldCBvZiBhIHNpbmdsZQogICAgICBwaXBlIG5vbiBpbnRlcmxhY2VkLiBBbHdheXMgcmVzcGVj dGluZyB0aGUgbGF0ZW5jeS4KdjM6IFJlbW92ZSB1bnVzZWQgZGV2IGFuZCBkZXZfcHJpdi4gRm9y Z290IGZyb20gdjEgb24gdjIuCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTc1CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgpDYzogQXpoYXIgU2hhaWtoIDxhemhhci5zaGFpa2hA aW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyNSArKysrKysr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDEwOCArKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA1NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjVjODQ4N2Jl N2M3Li43YjNhZjQ1OTg2MGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAg LTUwOTgsMTAgKzUwOTgsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKm9sZF9wcmlfc3RhdGUgPQogCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFu ZV9zdGF0ZShvbGRfc3RhdGUsIHByaW1hcnkpOwogCisJRFJNX0VSUk9SKCJJOTE1LURFQlVHOiAl cyAlZFxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CisKIAlpbnRlbF9mcm9udGJ1ZmZlcl9m bGlwKHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpLCBwaXBlX2NvbmZpZy0+ZmJfYml0cyk7CiAKLQlp ZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2 ZSkKKwlpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBpcGVfY29uZmlnLT5iYXNl LmFjdGl2ZSkgeworCQlEUk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVkIC0gVXBkYXRlIFdNIHBv c3QgXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAkJaW50ZWxfdXBkYXRlX3dhdGVybWFy a3MoY3J0Yyk7CisJfQogCiAJaWYgKGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKG9sZF9jcnRj X3N0YXRlLCBwaXBlX2NvbmZpZykpCiAJCWhzd19lbmFibGVfaXBzKHBpcGVfY29uZmlnKTsKQEAg LTUyMDMsOCArNTIwNywxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAlpZiAoZGV2X3ByaXYtPmRp c3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCiAJCWRldl9wcml2LT5kaXNwbGF5Lmlu aXRpYWxfd2F0ZXJtYXJrcyhvbGRfaW50ZWxfc3RhdGUsCiAJCQkJCQkgICAgIHBpcGVfY29uZmln KTsKLQllbHNlIGlmIChwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3ByZSkKKwllbHNlIGlmIChwaXBl X2NvbmZpZy0+dXBkYXRlX3dtX3ByZSkgeworCQlEUk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVk IC0gVXBkYXRlIFdNIHByZT9cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCQlpbnRlbF91 cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKKwl9CisKKwlpZiAoIXBpcGVfY29uZmlnLT5zYWd2KQor CQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOworCURSTV9FUlJPUigiSTkxNS1ERUJVRzog JXMgJWRcbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogfQogCiBzdGF0aWMgdm9pZCBpbnRl bF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgcGxh bmVfbWFzaykKQEAgLTUyMTQsNiArNTIyNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlz YWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBwbGFuZV9tYXNrCiAJ c3RydWN0IGRybV9wbGFuZSAqcDsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKKwlE Uk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVkXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsK IAlpbnRlbF9jcnRjX2RwbXNfb3ZlcmxheV9kaXNhYmxlKGludGVsX2NydGMpOwogCiAJZHJtX2Zv cl9lYWNoX3BsYW5lX21hc2socCwgZGV2LCBwbGFuZV9tYXNrKQpAQCAtMTIxNTIsNiArMTIxNjMs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQoaW50ZWxfY3J0Yyk7CiAJCWRldl9wcml2LT5kaXNw bGF5LmNydGNfZW5hYmxlKHBpcGVfY29uZmlnLCBzdGF0ZSk7CiAJfSBlbHNlIHsKKwkJRFJNX0VS Uk9SKCJJOTE1LURFQlVHOiAlcyAlZFxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAJCWlu dGVsX3ByZV9wbGFuZV91cGRhdGUodG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSks CiAJCQkJICAgICAgIHBpcGVfY29uZmlnKTsKIAl9CkBAIC0xMjE3MSw2ICsxMjE4Myw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0 YXRlOwogCWludCBpOwogCisJRFJNX0VSUk9SKCJJOTE1LURFQlVHOiAlcyAlZFxuIiwgX19GVU5D VElPTl9fLCBfX0xJTkVfXyk7CisKIAlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0 ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCWlmICghbmV3 X2NydGNfc3RhdGUtPmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwpAQCAtMTIzMjYsMTAgKzEyMzQwLDEy IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJ CQljb250aW51ZTsKIAorCQlEUk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVkXG4iLCBfX0ZVTkNU SU9OX18sIF9fTElORV9fKTsKIAkJaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZSh0b19pbnRlbF9jcnRj X3N0YXRlKG9sZF9jcnRjX3N0YXRlKSwKIAkJCQkgICAgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShu ZXdfY3J0Y19zdGF0ZSkpOwogCiAJCWlmIChvbGRfY3J0Y19zdGF0ZS0+YWN0aXZlKSB7CisJCQlE Uk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVkXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsK IAkJCWludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoY3J0Yywgb2xkX2NydGNfc3RhdGUtPnBsYW5l X21hc2spOwogCQkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19kaXNhYmxlKHRvX2ludGVsX2NydGNf c3RhdGUob2xkX2NydGNfc3RhdGUpLCBzdGF0ZSk7CiAJCQlpbnRlbF9jcnRjLT5hY3RpdmUgPSBm YWxzZTsKQEAgLTEyMzcyLDcgKzEyMzg4LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2Nv bW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJICovCiAJCWlmICgh aW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKIAkJCWludGVsX2Rpc2FibGVfc2FndihkZXZf cHJpdik7Ci0KIAkJaW50ZWxfbW9kZXNldF92ZXJpZnlfZGlzYWJsZWQoZGV2LCBzdGF0ZSk7CiAJ fQogCkBAIC0xMjM5MCw2ICsxMjQwNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21t aXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCX0KIAl9CiAKKwlEUk1f RVJST1IoIkk5MTUtREVCVUc6ICVzICVkXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAkv KiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQgY29ubmVjdG9ycyB0aGF0 IHdlIHNldCB1cC4gKi8KIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfY3J0Y3Moc3RhdGUpOwog CkBAIC0xMjQyMCw2ICsxMjQzNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRf dGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJfQogCiAJZm9yX2VhY2hfb2xk bmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19z dGF0ZSwgaSkgeworCQlEUk1fRVJST1IoIkk5MTUtREVCVUc6ICVzICVkXG4iLCBfX0ZVTkNUSU9O X18sIF9fTElORV9fKTsKIAkJaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUodG9faW50ZWxfY3J0Y19z dGF0ZShvbGRfY3J0Y19zdGF0ZSkpOwogCiAJCWlmIChwdXRfZG9tYWluc1tpXSkKQEAgLTEyNDYx LDYgKzEyNDc4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF93b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPQog CQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9hdG9taWNfc3RhdGUsIGNvbW1pdF93b3Jr KTsKIAorCURSTV9FUlJPUigiSTkxNS1ERUJVRzogJXMgJWRcbiIsIF9fRlVOQ1RJT05fXywgX19M SU5FX18pOwogCWludGVsX2F0b21pY19jb21taXRfdGFpbChzdGF0ZSk7CiB9CiAKQEAgLTEyNTg2 LDYgKzEyNjA0LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJfQogCiAJZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOworCURSTV9F UlJPUigiSTkxNS1ERUJVRzogJXMgJWRcbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCUlO SVRfV09SSygmc3RhdGUtPmNvbW1pdF93b3JrLCBpbnRlbF9hdG9taWNfY29tbWl0X3dvcmspOwog CiAJaTkxNV9zd19mZW5jZV9jb21taXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAxNTM1YmZiN2VhNDAuLjBmNzMzYzVmMGZhZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTcxMiw2ICs3MTIsNyBAQCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSB7CiAJYm9vbCB1cGRhdGVfcGlwZTsgLyogY2FuIGEgZmFzdCBtb2Rlc2V0IGJl IHBlcmZvcm1lZD8gKi8KIAlib29sIGRpc2FibGVfY3hzcjsKIAlib29sIHVwZGF0ZV93bV9wcmUs IHVwZGF0ZV93bV9wb3N0OyAvKiB3YXRlcm1hcmtzIGFyZSB1cGRhdGVkICovCisJYm9vbCBzYWd2 OyAvKiBEaXNhYmxlIFNBR1Ygd2hlbiBsYXRlbmN5IGlzIGhpZ2hlciB0aGFuIGl0cyBibG9jayB0 aW1lICovCiAJYm9vbCBmYl9jaGFuZ2VkOyAvKiBmYiBvbiBhbnkgb2YgdGhlIHBsYW5lcyBpcyBj aGFuZ2VkICovCiAJYm9vbCBmaWZvX2NoYW5nZWQ7IC8qIEZJRk8gc3BsaXQgaXMgY2hhbmdlZCAq LwogCkBAIC0yMDAyLDYgKzIwMDMsNyBAQCB2b2lkIHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB2b2lkIGc0eF93bV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCB2bHZfd21fc2FuaXRpemUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cit1OCBpbnRlbF9zYWd2X2Jsb2NrX3RpbWUoY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpbnRlbF9lbmFibGVf c2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGludGVsX2Rpc2Fi bGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogYm9vbCBza2xfd21f bGV2ZWxfZXF1YWxzKGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKmwxLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKaW5kZXggMjFkYWM2ZWJjMjAyLi45MmExNGNiN2U2NzQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwpAQCAtMzY4NywyMiArMzY4NywxMiBAQCBib29sIGludGVsX2Nhbl9lbmFibGVf c2FndihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGU7CiAJZW51bSBwaXBlIHBpcGU7Ci0JaW50IGxldmVsLCBs YXRlbmN5OwotCWludCBzYWd2X2Jsb2NrX3RpbWVfdXM7CiAKIAlpZiAoIWludGVsX2hhc19zYWd2 KGRldl9wcml2KSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKElTX0dFTjkoZGV2X3ByaXYpKQot CQlzYWd2X2Jsb2NrX3RpbWVfdXMgPSAzMDsKLQllbHNlIGlmIChJU19HRU4xMChkZXZfcHJpdikp Ci0JCXNhZ3ZfYmxvY2tfdGltZV91cyA9IDIwOwotCWVsc2UKLQkJc2Fndl9ibG9ja190aW1lX3Vz ID0gMTA7Ci0KIAkvKgogCSAqIFNLTCsgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBk aXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UgaGF2ZQogCSAqIG1vcmUgdGhlbiBvbmUgcGlwZSBlbmFi bGVkCkBAIC0zNzE5LDQxICszNzA5LDI3IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAljcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9y X3BpcGUoZGV2X3ByaXYsIHBpcGUpOwogCWNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+YmFzZS5zdGF0ZSk7CiAKLQlpZiAoY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCS8qIEFsc28gY2hlY2sgZm9yIGxhdGVu Y3kgaGVyZSAqLworCWNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0 ZSk7CisJaWYgKCFjc3RhdGUtPnNhZ3YpCiAJCXJldHVybiBmYWxzZTsKIAotCWZvcl9lYWNoX2lu dGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewotCQlzdHJ1Y3Qgc2tsX3BsYW5l X3dtICp3bSA9Ci0JCQkmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmUtPmlkXTsK LQotCQkvKiBTa2lwIHRoaXMgcGxhbmUgaWYgaXQncyBub3QgZW5hYmxlZCAqLwotCQlpZiAoIXdt LT53bVswXS5wbGFuZV9lbikKLQkJCWNvbnRpbnVlOwotCi0JCS8qIEZpbmQgdGhlIGhpZ2hlc3Qg ZW5hYmxlZCB3bSBsZXZlbCBmb3IgdGhpcyBwbGFuZSAqLwotCQlmb3IgKGxldmVsID0gaWxrX3dt X21heF9sZXZlbChkZXZfcHJpdik7Ci0JCSAgICAgIXdtLT53bVtsZXZlbF0ucGxhbmVfZW47IC0t bGV2ZWwpCi0JCSAgICAgeyB9Ci0KLQkJbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5j eVtsZXZlbF07Ci0KLQkJaWYgKHNrbF9uZWVkc19tZW1vcnlfYndfd2EoaW50ZWxfc3RhdGUpICYm Ci0JCSAgICBwbGFuZS0+YmFzZS5zdGF0ZS0+ZmItPm1vZGlmaWVyID09Ci0JCSAgICBJOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCkKLQkJCWxhdGVuY3kgKz0gMTU7Ci0KLQkJLyoKLQkJICogSWYgYW55 IG9mIHRoZSBwbGFuZXMgb24gdGhpcyBwaXBlIGRvbid0IGVuYWJsZSB3bSBsZXZlbHMgdGhhdAot CQkgKiBpbmN1ciBtZW1vcnkgbGF0ZW5jaWVzIGhpZ2hlciB0aGFuIHNhZ3ZfYmxvY2tfdGltZV91 cyB3ZQotCQkgKiBjYW4ndCBlbmFibGUgdGhlIFNBR1YuCi0JCSAqLwotCQlpZiAobGF0ZW5jeSA8 IHNhZ3ZfYmxvY2tfdGltZV91cykKLQkJCXJldHVybiBmYWxzZTsKLQl9CisJaWYgKGNydGMtPmJh c2Uuc3RhdGUtPmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkK KwkJcmV0dXJuIGZhbHNlOwogCiAJcmV0dXJuIHRydWU7CiB9CiAKK3U4IGludGVsX3NhZ3ZfYmxv Y2tfdGltZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCisJCXJldHVybiAxMDsKKwllbHNlIGlmIChJU19H RU4xMChkZXZfcHJpdikpCisJCXJldHVybiAyMDsKKwllbHNlCisJCXJldHVybiAzMDsKK30KKwog c3RhdGljIHZvaWQKIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlLApAQCAtNDUwMSwxMCArNDQ3NywxMCBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5l X3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQljb25zdCBz dHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCQkJdWludDE2X3QgKm91dF9ibG9ja3MsIC8qIG91 dCAqLwogCQkJCXVpbnQ4X3QgKm91dF9saW5lcywgLyogb3V0ICovCi0JCQkJYm9vbCAqZW5hYmxl ZCAvKiBvdXQgKi8pCisJCQkJYm9vbCAqZW5hYmxlZCwgLyogb3V0ICovCisJCQkJdWludDMyX3Qg KmxhdGVuY3kgLyogb3V0ICovKQogewogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBz dGF0ZSA9ICZpbnRlbF9wc3RhdGUtPmJhc2U7Ci0JdWludDMyX3QgbGF0ZW5jeSA9IGRldl9wcml2 LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAJdWludF9maXhlZF8xNl8xNl90IG1ldGhvZDEsIG1l dGhvZDI7CiAJdWludF9maXhlZF8xNl8xNl90IHNlbGVjdGVkX3Jlc3VsdDsKIAl1aW50MzJfdCBy ZXNfYmxvY2tzLCByZXNfbGluZXM7CkBAIC00NTEzLDcgKzQ0ODksOSBAQCBzdGF0aWMgaW50IHNr bF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlib29sIGFwcGx5X21lbW9yeV9id193YSA9IHNrbF9uZWVkc19tZW1vcnlfYndfd2Eoc3Rh dGUpOwogCXVpbnQzMl90IG1pbl9kaXNwX2J1Zl9uZWVkZWQ7CiAKLQlpZiAobGF0ZW5jeSA9PSAw IHx8CisJKmxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3lbbGV2ZWxdOworCisJaWYg KCpsYXRlbmN5ID09IDAgfHwKIAkgICAgIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRlLCBp bnRlbF9wc3RhdGUpKSB7CiAJCSplbmFibGVkID0gZmFsc2U7CiAJCXJldHVybiAwOwpAQCAtNDUy MywxNiArNDUwMSwxNiBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoKElTX0tBQllMQUtFKGRldl9w cml2KSB8fCBJU19DT0ZGRUVMQUtFKGRldl9wcml2KSB8fAogCSAgICBJU19DTkxfUkVWSUQoZGV2 X3ByaXYsIENOTF9SRVZJRF9BMCwgQ05MX1JFVklEX0IwKSkgJiYKIAkgICAgZGV2X3ByaXYtPmlw Y19lbmFibGVkKQotCQlsYXRlbmN5ICs9IDQ7CisJCSpsYXRlbmN5ICs9IDQ7CiAKIAlpZiAoYXBw bHlfbWVtb3J5X2J3X3dhICYmIHdwLT54X3RpbGVkKQotCQlsYXRlbmN5ICs9IDE1OworCQkqbGF0 ZW5jeSArPSAxNTsKIAogCW1ldGhvZDEgPSBza2xfd21fbWV0aG9kMShkZXZfcHJpdiwgd3AtPnBs YW5lX3BpeGVsX3JhdGUsCi0JCQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdwLT5kYnVmX2Jsb2NrX3Np emUpOworCQkJCSB3cC0+Y3BwLCAqbGF0ZW5jeSwgd3AtPmRidWZfYmxvY2tfc2l6ZSk7CiAJbWV0 aG9kMiA9IHNrbF93bV9tZXRob2QyKHdwLT5wbGFuZV9waXhlbF9yYXRlLAogCQkJCSBjc3RhdGUt PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKLQkJCQkgbGF0ZW5jeSwKKwkJCQkgKmxh dGVuY3ksCiAJCQkJIHdwLT5wbGFuZV9ibG9ja3NfcGVyX2xpbmUpOwogCiAJaWYgKHdwLT55X3Rp bGVkKSB7CkBAIC00NTQ1LDcgKzQ1MjMsNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5l X3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZWxzZSBpZiAo ZGRiX2FsbG9jYXRpb24gPj0KIAkJCSBmaXhlZDE2X3RvX3UzMl9yb3VuZF91cCh3cC0+cGxhbmVf YmxvY2tzX3Blcl9saW5lKSkKIAkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1pbl9maXhlZDE2KG1ldGhv ZDEsIG1ldGhvZDIpOwotCQllbHNlIGlmIChsYXRlbmN5ID49IHdwLT5saW5ldGltZV91cykKKwkJ ZWxzZSBpZiAoKmxhdGVuY3kgPj0gd3AtPmxpbmV0aW1lX3VzKQogCQkJc2VsZWN0ZWRfcmVzdWx0 ID0gbWluX2ZpeGVkMTYobWV0aG9kMSwgbWV0aG9kMik7CiAJCWVsc2UKIAkJCXNlbGVjdGVkX3Jl c3VsdCA9IG1ldGhvZDE7CkBAIC00NjI5LDcgKzQ2MDcsOCBAQCBza2xfY29tcHV0ZV93bV9sZXZl bHMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSwKIAkJICAgICAgY29uc3Qgc3RydWN0IHNrbF93bV9w YXJhbXMgKndtX3BhcmFtcywKLQkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqd20pCisJCSAg ICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtLAorCQkgICAgICBib29sICpwbGFuZV9zYWd2KQog ewogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUt PmJhc2UuY3J0Yyk7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBpbnRlbF9wc3RhdGUtPmJh c2UucGxhbmU7CkBAIC00NjM4LDYgKzQ2MTcsNyBAQCBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWVudW0gcGlwZSBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2 ZWwoZGV2X3ByaXYpOwogCWludCByZXQ7CisJdTMyIGxhdGVuY3k7CiAKIAlpZiAoV0FSTl9PTigh aW50ZWxfcHN0YXRlLT5iYXNlLmZiKSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC00NjU1LDkgKzQ2 MzUsMTggQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkJCQkJICAgd21fcGFyYW1zLAogCQkJCQkgICAmcmVzdWx0LT5wbGFu ZV9yZXNfYiwKIAkJCQkJICAgJnJlc3VsdC0+cGxhbmVfcmVzX2wsCi0JCQkJCSAgICZyZXN1bHQt PnBsYW5lX2VuKTsKKwkJCQkJICAgJnJlc3VsdC0+cGxhbmVfZW4sCisJCQkJCSAgICZsYXRlbmN5 KTsKKwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKKworCQkvKgorCQkgKiBPbmx5IGNvbnNp ZGVyIHRoZSBsYXRlbmN5IG9mIGhpZ2hlc3QgZW5hYmxlZCB3bSBsZXZlbAorCQkgKiBvbiB0aGUg cGxhbmUgZm9yIFNBR1YgYmxvY2sgdGltZSBsaW1pdGF0aW9uLgorCQkgKi8KKwkJaWYgKHJlc3Vs dC0+cGxhbmVfZW4pCisJCQkqcGxhbmVfc2FndiA9IGxhdGVuY3kgPj0gaW50ZWxfc2Fndl9ibG9j a190aW1lKGRldl9wcml2KTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTQ3NDMsNyArNDczMiw4IEBA IHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSwKIAogc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkJICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9u ICpkZGIsCi0JCQkgICAgIHN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSkKKwkJCSAgICAgc3Ry dWN0IHNrbF9waXBlX3dtICpwaXBlX3dtLAorCQkJICAgICBib29sICpzYWd2KQogewogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9ICZjc3RhdGUtPmJhc2U7CkBAIC00NzUxLDYgKzQ3NDEs NyBAQCBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjc3RhdGUsCiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcHN0YXRlOwogCXN0cnVjdCBza2xfcGxhbmVfd20gKndtOworCWJvb2wgcGxh bmVfc2FndiA9IGZhbHNlOwogCWludCByZXQ7CiAKIAkvKgpAQCAtNDc3Nyw5ICs0NzY4LDEzIEBA IHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSwKIAkJCXJldHVybiByZXQ7CiAKIAkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRl dl9wcml2LCBkZGIsIGNzdGF0ZSwKLQkJCQkJICAgIGludGVsX3BzdGF0ZSwgJndtX3BhcmFtcywg d20pOworCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAmd21fcGFyYW1zLCB3bSwgJnBsYW5lX3NhZ3Yp OwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKKworCQkvKiBUYWtlIGFsbCBwbGFuZXMgaW4g Y29uc2lkZXJhdGlvbiBmb3IgU0FHViBibG9jayB0aW1lIGNoZWNrICovCisJCSpzYWd2ICY9IHBs YW5lX3NhZ3Y7CisKIAkJc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShjc3RhdGUsICZ3bV9wYXJh bXMsICZ3bS0+d21bMF0sCiAJCQkJCSAgZGRiX2Jsb2NrcywgJndtLT50cmFuc193bSk7CiAJfQpA QCAtNDgxMCw2ICs0ODA1LDcgQEAgc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX2xldmVsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdmFsIHw9IGxldmVsLT5wbGFuZV9yZXNf bCA8PCBQTEFORV9XTV9MSU5FU19TSElGVDsKIAl9CiAKKwlEUk1fRVJST1IoIkk5MTUtREVCVUc6 ICVzICVkXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAlJOTE1X1dSSVRFKHJlZywgdmFs KTsKIH0KIApAQCAtNDg5OSwxMiArNDg5NSwxMyBAQCBzdGF0aWMgaW50IHNrbF91cGRhdGVfcGlw ZV93bShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJCSAgICAgIGNvbnN0IHN0cnVj dCBza2xfcGlwZV93bSAqb2xkX3BpcGVfd20sCiAJCQkgICAgICBzdHJ1Y3Qgc2tsX3BpcGVfd20g KnBpcGVfd20sIC8qIG91dCAqLwogCQkJICAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAq ZGRiLCAvKiBvdXQgKi8KLQkJCSAgICAgIGJvb2wgKmNoYW5nZWQgLyogb3V0ICovKQorCQkJICAg ICAgYm9vbCAqY2hhbmdlZCAvKiBvdXQgKi8sCisJCQkgICAgICBib29sICpzYWd2IC8qIG91dCAq LykKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlID0gdG9faW50ZWxf Y3J0Y19zdGF0ZShjc3RhdGUpOwogCWludCByZXQ7CiAKLQlyZXQgPSBza2xfYnVpbGRfcGlwZV93 bShpbnRlbF9jc3RhdGUsIGRkYiwgcGlwZV93bSk7CisJcmV0ID0gc2tsX2J1aWxkX3BpcGVfd20o aW50ZWxfY3N0YXRlLCBkZGIsIHBpcGVfd20sIHNhZ3YpOwogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKQEAgLTUwOTksNiArNTA5Niw3IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsK IAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd207CiAJYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisJ Ym9vbCBzYWd2ID0gdHJ1ZTsKIAlpbnQgcmV0LCBpOwogCiAJLyoKQEAgLTUxNDcsMTAgKzUxNDUs MTIgQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJ CXBpcGVfd20gPSAmaW50ZWxfY3N0YXRlLT53bS5za2wub3B0aW1hbDsKIAkJcmV0ID0gc2tsX3Vw ZGF0ZV9waXBlX3dtKGNzdGF0ZSwgb2xkX3BpcGVfd20sIHBpcGVfd20sCi0JCQkJCSAmcmVzdWx0 cy0+ZGRiLCAmY2hhbmdlZCk7CisJCQkJCSAmcmVzdWx0cy0+ZGRiLCAmY2hhbmdlZCwgJnNhZ3Yp OwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAorCQlpbnRlbF9jc3RhdGUtPnNhZ3YgPSBz YWd2OworCiAJCWlmIChjaGFuZ2VkKQogCQkJcmVzdWx0cy0+ZGlydHlfcGlwZXMgfD0gZHJtX2Ny dGNfbWFzayhjcnRjKTsKIAotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK