From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 01/11] drm/i915: Add a atomic evasion step to watermark programming, v3. Date: Tue, 8 Nov 2016 13:55:32 +0100 Message-ID: <1478609742-13603-2-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 791EA6E07F 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 Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org QWxsb3cgdGhlIGRyaXZlciB0byB3cml0ZSB3YXRlcm1hcmtzIGR1cmluZyBhdG9taWMgZXZhc2lv bi4KVGhpcyB3aWxsIG1ha2UgaXQgcG9zc2libGUgdG8gd3JpdGUgdGhlIHdhdGVybWFya3MgaW4g YSBjbGVhbmVyCndheSBvbiBnZW45Ky4KCmludGVsX2F0b21pY19zdGF0ZSBpcyBub3QgdXNlZCBo ZXJlIHlldCwgYnV0IHdpbGwgYmUgdXNlZCB3aGVuCndlIHByb2dyYW0gYWxsIHdhdGVybWFya3Mg YXMgYSBzZXBhcmF0ZSBzdGVwIGR1cmluZyBldmFzaW9uLgoKVGhpcyBhbHNvIHdyaXRlcyBsaW5l dGltZSBhbGwgdGhlIHRpbWUsIHdoaWxlIGJlZm9yZSBpdCB3YXMgb25seQpkb25lIGR1cmluZyBw bGFuZSB1cGRhdGVzLiBUaGlzIGxvb2tzIGxpa2UgdGhpcyBjb3VsZCBiZSBhIGJ1Z2ZpeCwKYnV0 IEknbSBub3Qgc3VyZSB3aGF0IGl0IGFmZmVjdHMuCgpDaGFuZ2VzIHNpbmNlIHYxOgotIEFkZCBj b21tZW50IGFib3V0IGF0b21pYyBldmFzaW9uIHRvIGNvbW1pdCBtZXNzYWdlLgotIFVud3JhcCBJ OTE1X1dSSVRFIGNhbGwuIChMeXVkZSkKQ2hhbmdlcyBzaW5jZSB2MjoKLSBSZW5hbWUgYXRvbWlj X2V2YWRlX3dhdGVybWFya3MgdG8gYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtzLiAoVmlsbGUpCi0g QWRkIGxpbmUgd3JhcHMgd2hlcmUgYXBwcm9wcmlhdGUsIGZpeCBncmFtbWFyIGluIGNvbW1pdCBt ZXNzYWdlLiAoTWF0dCkKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0 aGV3LmQucm9wZXJAaW50ZWwuY29tPgpDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDkg KysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNiArKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAg ICAgIHwgMTggKysrKysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlv bnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDQ3MzVi NDE3NzEwMC4uMDA5ODhkNzE2ZDdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTQ4Nyw2 ICs0ODcsNyBAQCBzdHJ1Y3Qgc2R2b19kZXZpY2VfbWFwcGluZyB7CiAKIHN0cnVjdCBpbnRlbF9j b25uZWN0b3I7CiBzdHJ1Y3QgaW50ZWxfZW5jb2RlcjsKK3N0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGU7CiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5l X2NvbmZpZzsKIHN0cnVjdCBpbnRlbF9jcnRjOwpAQCAtNTAwLDggKzUwMSwxMiBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7CiAJaW50ICgqY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20p KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjLAogCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUp OwotCXZvaWQgKCppbml0aWFsX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUpOwotCXZvaWQgKCpvcHRpbWl6ZV93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlKTsKKwl2b2lkICgqaW5pdGlhbF93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlKTsKKwl2b2lkICgqYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKKwkJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUp OworCXZvaWQgKCpvcHRpbWl6ZV93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7CiAJaW50 ICgqY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKIAl2b2lkICgqdXBkYXRlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiAJaW50 ICgqbW9kZXNldF9jYWxjX2NkY2xrKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDkyYWIwMWYzMzIwOC4uNjZjZjI5 YWM5ZmU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC01MTY5LDcgKzUx NjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIAkgKiB1cyB0by4KIAkgKi8KIAlpZiAoZGV2X3By aXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCi0JCWRldl9wcml2LT5kaXNw bGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhwaXBlX2NvbmZpZyk7CisJCWRldl9wcml2LT5kaXNwbGF5 LmluaXRpYWxfd2F0ZXJtYXJrcyh0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKSwgcGlw ZV9jb25maWcpOwogCWVsc2UgaWYgKHBpcGVfY29uZmlnLT51cGRhdGVfd21fcHJlKQogCQlpbnRl bF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKIH0KQEAgLTUzODMsNyArNTM4Myw3IEBAIHN0YXRp YyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZywKIAlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoJnBpcGVfY29uZmlnLT5iYXNlKTsKIAog CWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgIT0gTlVMTCkKLQkJZGV2 X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKGludGVsX2NydGMtPmNvbmZpZyk7CisJ CWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyh0b19pbnRlbF9hdG9taWNfc3Rh dGUob2xkX3N0YXRlKSwgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKIAlpbnRlbF9lbmFibGVfcGlwZShp bnRlbF9jcnRjKTsKIAogCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5jb2RlcikK QEAgLTU0ODksNyArNTQ4OSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQlpbnRlbF9kZGlfZW5hYmxlX3Ry YW5zY29kZXJfZnVuYyhjcnRjKTsKIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dh dGVybWFya3MgIT0gTlVMTCkKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtz KHBpcGVfY29uZmlnKTsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHRv X2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLCBwaXBlX2NvbmZpZyk7CiAJZWxzZQogCQlp bnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhpbnRlbF9jcnRjKTsKIApAQCAtMTQ0NzQsNyArMTQ0NzQs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCQlpbnRlbF9jc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKTsKIAogCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJr cykKLQkJCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MoaW50ZWxfY3N0YXRl KTsKKwkJCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MoaW50ZWxfc3RhdGUs IGludGVsX2NzdGF0ZSk7CiAJfQogCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0 Yywgb2xkX2NydGNfc3RhdGUsIGkpIHsKQEAgLTE0OTA5LDEwICsxNDkwOSwxMSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUgPQogCQl0b19pbnRlbF9jcnRjX3N0YXRl KGNydGMtPnN0YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2ludGVsX3N0YXRl ID0KKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2ludGVsX2NzdGF0ZSA9CiAJCXRvX2lu dGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKm9sZF9pbnRlbF9zdGF0ZSA9CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfY3J0Y19z dGF0ZS0+c3RhdGUpOwogCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUp OwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCS8qIFBlcmZvcm0gdmJs YW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KIAlpbnRlbF9waXBlX3VwZGF0 ZV9zdGFydChpbnRlbF9jcnRjKTsKQEAgLTE0OTI1LDE0ICsxNDkyNiwxMyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWludGVs X2NvbG9yX2xvYWRfbHV0cyhjcnRjLT5zdGF0ZSk7CiAJfQogCi0JaWYgKGludGVsX2NzdGF0ZS0+ dXBkYXRlX3BpcGUpIHsKLQkJaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKGludGVsX2NydGMsIG9s ZF9pbnRlbF9zdGF0ZSk7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsK KwlpZiAoaW50ZWxfY3N0YXRlLT51cGRhdGVfcGlwZSkKKwkJaW50ZWxfdXBkYXRlX3BpcGVfY29u ZmlnKGludGVsX2NydGMsIG9sZF9pbnRlbF9jc3RhdGUpOworCWVsc2UgaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSkKIAkJc2tsX2RldGFjaF9zY2FsZXJzKGludGVsX2NydGMpOwogCi0JCUk5 MTVfV1JJVEUoUElQRV9XTV9MSU5FVElNRShwaXBlKSwKLQkJCSAgIGludGVsX2NzdGF0ZS0+d20u c2tsLm9wdGltYWwubGluZXRpbWUpOwotCX0KKwlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWlj X3VwZGF0ZV93YXRlcm1hcmtzKQorCQlkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dh dGVybWFya3Mob2xkX2ludGVsX3N0YXRlLCBpbnRlbF9jc3RhdGUpOwogfQogCiBzdGF0aWMgdm9p ZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLApAQCAtMTY0 MTEsNyArMTY0MTEsNyBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV93YXRlcm1hcmtzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcyA9IHRvX2ludGVs X2NydGNfc3RhdGUoY3N0YXRlKTsKIAogCQljcy0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSA9IHRy dWU7Ci0JCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MoY3MpOworCQlkZXZf cHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSksIGNzKTsKIAl9CiAKIHB1dF9zdGF0ZToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4 IDg4ZTI4Yzk4OWI5Yy4uOWU4MjVhOTY1MWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAg LTQxOTcsNiArNDE5NywxNyBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRl X2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3Qgc2ts X3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53bS5za2wub3B0aW1hbDsKKwllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7CisKKwlJOTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSks IHBpcGVfd20tPmxpbmV0aW1lKTsKK30KKwogc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfY3J0Yy0+YmFzZS5kZXY7CkBAIC00Mjg3LDcgKzQyOTgsOCBAQCBzdGF0aWMgdm9pZCBp bGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlpbGtfd3JpdGVfd21fdmFsdWVzKGRldl9wcml2LCAmcmVzdWx0cyk7CiB9CiAKLXN0YXRpYyB2 b2lkIGlsa19pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0 ZSkKK3N0YXRpYyB2b2lkIGlsa19pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCisJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7CkBAIC00Mjk4LDcgKzQzMTAsOCBAQCBzdGF0aWMg dm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUpCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogfQogCi1zdGF0aWMg dm9pZCBpbGtfb3B0aW1pemVfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlKQorc3RhdGljIHZvaWQgaWxrX29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwpAQCAtNzY5NSw2ICs3NzA4LDcgQEAgdm9p ZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCXNrbF9zZXR1cF93bV9sYXRlbmN5KGRldl9w cml2KTsKIAkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gc2tsX3VwZGF0ZV93bTsKKwkJ ZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtzID0gc2tsX2F0b21pY191 cGRhdGVfY3J0Y193bTsKIAkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJt YXJrcyA9IHNrbF9jb21wdXRlX3dtOwogCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJp dikpIHsKIAkJaWxrX3NldHVwX3dtX2xhdGVuY3koZGV2X3ByaXYpOwotLSAKMi43LjQKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=