From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 04/20] drm/i915: Allow fuzzy matching in pipe_config_compare, v2. Date: Mon, 13 Jul 2015 16:30:17 +0200 Message-ID: <1436797833-11493-5-git-send-email-maarten.lankhorst@linux.intel.com> References: <1436797833-11493-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 08D1C6E856 for ; Mon, 13 Jul 2015 07:30:53 -0700 (PDT) In-Reply-To: <1436797833-11493-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 SW5zdGVhZCBvZiBkb2luZyBhZC1ob2MgY2hlY2tzIHdlIGFscmVhZHkgaGF2ZSBhIHdheSBvZiBj aGVja2luZwppZiB0aGUgc3RhdGUgaXMgY29tcGF0aWJsZSBvciBub3QuIFVzZSB0aGlzIHRvIGZv cmNlIGEgbW9kZXNldC4KCk9ubHkgZHVyaW5nIG1vZGVzZXRzLCBvciB3aXRoIFBJUEVfQ09ORklH X1FVSVJLX0lOSEVSSVRFRF9NT0RFCndlIHNob3VsZCBjaGVjayBpZiBhIGZ1bGwgbW9kZXNldCBp cyByZWFsbHkgbmVlZGVkLgoKRmFzdGJvb3Qgd2lsbCBhbGxvdyB0aGUgYWRqdXN0IHBhcmFtZXRl ciB0byBpZ25vcmUgc29tZSBzdHVmZgp0b28sIGFuZCBpdCB3aWxsIGZpeCB1cCBkaWZmZXJlbmNl cyBpbiBzdGF0ZSB0aGF0IGFyZSBpZ25vcmVkCmJ5IHRoZSBjb21wYXJlIGZ1bmN0aW9uLgoKQ2hh bmdlcyBzaW5jZSB2MToKLSBJbmNyZWFzZSB0aGUgdmFsdWUgb2YgdGhlIGxvd2VzdCBtL24gdG8g cHJldmVudCB0cnVuY2F0aW9uLgotIER1bXAgcGlwZSBjb25maWcgd2hlbiBmYXN0Ym9vdCdzIHVz ZWQsIHdpdGhvdXQgYSBtb2Rlc2V0LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyMTggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDZlZWQ5MjVmMzMwMC4uYzNh M2QxMDg3Nzc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjI5MCwx OSArMTIyOTAsNiBAQCBlbmNvZGVyX3JldHJ5OgogCURSTV9ERUJVR19LTVMoInBsYW5lIGJwcDog JWksIHBpcGUgYnBwOiAlaSwgZGl0aGVyaW5nOiAlaVxuIiwKIAkJICAgICAgYmFzZV9icHAsIHBp cGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmRpdGhlcik7CiAKLQkvKiBDaGVjayBp ZiB3ZSBuZWVkIHRvIGZvcmNlIGEgbW9kZXNldCAqLwotCWlmIChwaXBlX2NvbmZpZy0+aGFzX2F1 ZGlvICE9Ci0JICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT5oYXNfYXVkaW8p IHsKLQkJcGlwZV9jb25maWctPmJhc2UubW9kZV9jaGFuZ2VkID0gdHJ1ZTsKLQkJcmV0ID0gZHJt X2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsKLQl9Ci0KLQkvKgotCSAq IE5vdGUgd2UgaGF2ZSBhbiBpc3N1ZSBoZXJlIHdpdGggaW5mb2ZyYW1lczogY3VycmVudCBjb2Rl Ci0JICogb25seSB1cGRhdGVzIHRoZW0gb24gdGhlIGZ1bGwgbW9kZSBzZXQgcGF0aCBwZXIgaHcK LQkgKiByZXF1aXJlbWVudHMuICBTbyBoZXJlIHdlIHNob3VsZCBiZSBjaGVja2luZyBmb3IgYW55 Ci0JICogcmVxdWlyZWQgY2hhbmdlcyBhbmQgZm9yY2luZyBhIG1vZGUgc2V0LgotCSAqLwogZmFp bDoKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTI0MDYsMjcgKzEyMzkzLDEzMyBAQCBzdGF0aWMgYm9v bCBpbnRlbF9mdXp6eV9jbG9ja19jaGVjayhpbnQgY2xvY2sxLCBpbnQgY2xvY2syKQogCQkJICAg IGJhc2UuaGVhZCkgXAogCQlpZiAobWFzayAmICgxIDw8KGludGVsX2NydGMpLT5waXBlKSkKIAor CitzdGF0aWMgYm9vbAoraW50ZWxfY29tcGFyZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVk IGludCBuLAorCQkgIHVuc2lnbmVkIGludCBtMiwgdW5zaWduZWQgaW50IG4yLAorCQkgIGJvb2wg ZXhhY3QpCit7CisJaWYgKG0gPT0gbTIgJiYgbiA9PSBuMikKKwkJcmV0dXJuIHRydWU7CisKKwlp ZiAoZXhhY3QgfHwgIW0gfHwgIW4gfHwgIW0yIHx8ICFuMikKKwkJcmV0dXJuIGZhbHNlOworCisJ QlVJTERfQlVHX09OKERBVEFfTElOS19NX05fTUFTSyA+IElOVF9NQVgpOworCisJaWYgKG0gPiBt MikgeworCQl3aGlsZSAobSA+IG0yKSB7CisJCQltMiA8PD0gMTsKKwkJCW4yIDw8PSAxOworCQl9 CisJfSBlbHNlIGlmIChtIDwgbTIpIHsKKwkJd2hpbGUgKG0gPCBtMikgeworCQkJbSA8PD0gMTsK KwkJCW4gPDw9IDE7CisJCX0KKwl9CisKKwlyZXR1cm4gbSA9PSBtMiAmJiBuID09IG4yOworfQor CitzdGF0aWMgYm9vbAoraW50ZWxfY29tcGFyZV9saW5rX21fbihjb25zdCBzdHJ1Y3QgaW50ZWxf bGlua19tX24gKm1fbiwKKwkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbTJfbjIsCisJ CSAgICAgICBib29sIGFkanVzdCkKK3sKKwlpZiAobV9uLT50dSA9PSBtMl9uMi0+dHUgJiYKKwkg ICAgaW50ZWxfY29tcGFyZV9tX24obV9uLT5nbWNoX20sIG1fbi0+Z21jaF9uLAorCQkJICAgICAg bTJfbjItPmdtY2hfbSwgbTJfbjItPmdtY2hfbiwgIWFkanVzdCkgJiYKKwkgICAgaW50ZWxfY29t cGFyZV9tX24obV9uLT5saW5rX20sIG1fbi0+bGlua19uLAorCQkJICAgICAgbTJfbjItPmxpbmtf bSwgbTJfbjItPmxpbmtfbiwgIWFkanVzdCkpIHsKKwkJaWYgKGFkanVzdCkKKwkJCSptMl9uMiA9 ICptX247CisKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0 aWMgYm9vbAogaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVudF9jb25maWcsCi0JCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKKwkJCSAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJICBib29sIGFkanVzdCkKIHsKKwlib29sIHJldCA9 IHRydWU7CisKKyNkZWZpbmUgSU5URUxfRVJSX09SX0RCR19LTVMoZm10LCAuLi4pIFwKKwlkbyB7 IFwKKwkJaWYgKCFhZGp1c3QpIFwKKwkJCURSTV9FUlJPUihmbXQsICMjX19WQV9BUkdTX18pOyBc CisJCWVsc2UgXAorCQkJRFJNX0RFQlVHX0tNUyhmbXQsICMjX19WQV9BUkdTX18pOyBcCisJfSB3 aGlsZSAoMCkKKwogI2RlZmluZSBQSVBFX0NPTkZfQ0hFQ0tfWChuYW1lKQlcCiAJaWYgKGN1cnJl bnRfY29uZmlnLT5uYW1lICE9IHBpcGVfY29uZmlnLT5uYW1lKSB7IFwKLQkJRFJNX0VSUk9SKCJt aXNtYXRjaCBpbiAiICNuYW1lICIgIiBcCisJCUlOVEVMX0VSUl9PUl9EQkdfS01TKCJtaXNtYXRj aCBpbiAiICNuYW1lICIgIiBcCiAJCQkgICIoZXhwZWN0ZWQgMHglMDh4LCBmb3VuZCAweCUwOHgp XG4iLCBcCiAJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCiAJCQkgIHBpcGVfY29uZmlnLT5u YW1lKTsgXAotCQlyZXR1cm4gZmFsc2U7IFwKKwkJcmV0ID0gZmFsc2U7IFwKIAl9CiAKICNkZWZp bmUgUElQRV9DT05GX0NIRUNLX0kobmFtZSkJXAogCWlmIChjdXJyZW50X2NvbmZpZy0+bmFtZSAh PSBwaXBlX2NvbmZpZy0+bmFtZSkgeyBcCi0JCURSTV9FUlJPUigibWlzbWF0Y2ggaW4gIiAjbmFt ZSAiICIgXAorCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIg XAogCQkJICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIFwKIAkJCSAgY3VycmVudF9jb25m aWctPm5hbWUsIFwKIAkJCSAgcGlwZV9jb25maWctPm5hbWUpOyBcCi0JCXJldHVybiBmYWxzZTsg XAorCQlyZXQgPSBmYWxzZTsgXAorCX0KKworI2RlZmluZSBQSVBFX0NPTkZfQ0hFQ0tfTV9OKG5h bWUpIFwKKwlpZiAoIWludGVsX2NvbXBhcmVfbGlua19tX24oJmN1cnJlbnRfY29uZmlnLT5uYW1l LCBcCisJCQkJICAgICZwaXBlX2NvbmZpZy0+bmFtZSxcCisJCQkJICAgIGFkanVzdCkpIHsgXAor CQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAorCQkJICAi KGV4cGVjdGVkIHR1ICVpIGdtY2ggJWkvJWkgbGluayAlaS8laSwgIiBcCisJCQkgICJmb3VuZCB0 dSAlaSwgZ21jaCAlaS8laSBsaW5rICVpLyVpKVxuIiwgXAorCQkJICBjdXJyZW50X2NvbmZpZy0+ bmFtZS50dSwgXAorCQkJICBjdXJyZW50X2NvbmZpZy0+bmFtZS5nbWNoX20sIFwKKwkJCSAgY3Vy cmVudF9jb25maWctPm5hbWUuZ21jaF9uLCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLmxp bmtfbSwgXAorCQkJICBjdXJyZW50X2NvbmZpZy0+bmFtZS5saW5rX24sIFwKKwkJCSAgcGlwZV9j b25maWctPm5hbWUudHUsIFwKKwkJCSAgcGlwZV9jb25maWctPm5hbWUuZ21jaF9tLCBcCisJCQkg IHBpcGVfY29uZmlnLT5uYW1lLmdtY2hfbiwgXAorCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5saW5r X20sIFwKKwkJCSAgcGlwZV9jb25maWctPm5hbWUubGlua19uKTsgXAorCQlyZXQgPSBmYWxzZTsg XAorCX0KKworI2RlZmluZSBQSVBFX0NPTkZfQ0hFQ0tfTV9OX0FMVChuYW1lLCBhbHRfbmFtZSkg XAorCWlmICghaW50ZWxfY29tcGFyZV9saW5rX21fbigmY3VycmVudF9jb25maWctPm5hbWUsIFwK KwkJCQkgICAgJnBpcGVfY29uZmlnLT5uYW1lLCBhZGp1c3QpICYmIFwKKwkgICAgIWludGVsX2Nv bXBhcmVfbGlua19tX24oJmN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZSwgXAorCQkJCSAgICAmcGlw ZV9jb25maWctPm5hbWUsIGFkanVzdCkpIHsgXAorCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlz bWF0Y2ggaW4gIiAjbmFtZSAiICIgXAorCQkJICAiKGV4cGVjdGVkIHR1ICVpIGdtY2ggJWkvJWkg bGluayAlaS8laSwgIiBcCisJCQkgICJvciB0dSAlaSBnbWNoICVpLyVpIGxpbmsgJWkvJWksICIg XAorCQkJICAiZm91bmQgdHUgJWksIGdtY2ggJWkvJWkgbGluayAlaS8laSlcbiIsIFwKKwkJCSAg Y3VycmVudF9jb25maWctPm5hbWUudHUsIFwKKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUuZ21j aF9tLCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLmdtY2hfbiwgXAorCQkJICBjdXJyZW50 X2NvbmZpZy0+bmFtZS5saW5rX20sIFwKKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19u LCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZS50dSwgXAorCQkJICBjdXJyZW50X2Nv bmZpZy0+YWx0X25hbWUuZ21jaF9tLCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZS5n bWNoX24sIFwKKwkJCSAgY3VycmVudF9jb25maWctPmFsdF9uYW1lLmxpbmtfbSwgXAorCQkJICBj dXJyZW50X2NvbmZpZy0+YWx0X25hbWUubGlua19uLCBcCisJCQkgIHBpcGVfY29uZmlnLT5uYW1l LnR1LCBcCisJCQkgIHBpcGVfY29uZmlnLT5uYW1lLmdtY2hfbSwgXAorCQkJICBwaXBlX2NvbmZp Zy0+bmFtZS5nbWNoX24sIFwKKwkJCSAgcGlwZV9jb25maWctPm5hbWUubGlua19tLCBcCisJCQkg IHBpcGVfY29uZmlnLT5uYW1lLmxpbmtfbik7IFwKKwkJcmV0ID0gZmFsc2U7IFwKIAl9CiAKIC8q IFRoaXMgaXMgcmVxdWlyZWQgZm9yIEJEVysgd2hlcmUgdGhlcmUgaXMgb25seSBvbmUgc2V0IG9m IHJlZ2lzdGVycyBmb3IKQEAgLTEyNDM3LDMwICsxMjUzMCwzMCBAQCBpbnRlbF9waXBlX2NvbmZp Z19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAjZGVmaW5lIFBJUEVfQ09ORl9DSEVD S19JX0FMVChuYW1lLCBhbHRfbmFtZSkgXAogCWlmICgoY3VycmVudF9jb25maWctPm5hbWUgIT0g cGlwZV9jb25maWctPm5hbWUpICYmIFwKIAkJKGN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZSAhPSBw aXBlX2NvbmZpZy0+bmFtZSkpIHsgXAotCQkJRFJNX0VSUk9SKCJtaXNtYXRjaCBpbiAiICNuYW1l ICIgIiBcCisJCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIg XAogCQkJCSAgIihleHBlY3RlZCAlaSBvciAlaSwgZm91bmQgJWkpXG4iLCBcCiAJCQkJICBjdXJy ZW50X2NvbmZpZy0+bmFtZSwgXAogCQkJCSAgY3VycmVudF9jb25maWctPmFsdF9uYW1lLCBcCiAJ CQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwKLQkJCXJldHVybiBmYWxzZTsgXAorCQkJcmV0ID0g ZmFsc2U7IFwKIAl9CiAKICNkZWZpbmUgUElQRV9DT05GX0NIRUNLX0ZMQUdTKG5hbWUsIG1hc2sp CVwKIAlpZiAoKGN1cnJlbnRfY29uZmlnLT5uYW1lIF4gcGlwZV9jb25maWctPm5hbWUpICYgKG1h c2spKSB7IFwKLQkJRFJNX0VSUk9SKCJtaXNtYXRjaCBpbiAiICNuYW1lICIoIiAjbWFzayAiKSAi CSAgIFwKKwkJSU5URUxfRVJSX09SX0RCR19LTVMoIm1pc21hdGNoIGluICIgI25hbWUgIigiICNt YXNrICIpICIgXAogCQkJICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIFwKIAkJCSAgY3Vy cmVudF9jb25maWctPm5hbWUgJiAobWFzayksIFwKIAkJCSAgcGlwZV9jb25maWctPm5hbWUgJiAo bWFzaykpOyBcCi0JCXJldHVybiBmYWxzZTsgXAorCQlyZXQgPSBmYWxzZTsgXAogCX0KIAogI2Rl ZmluZSBQSVBFX0NPTkZfQ0hFQ0tfQ0xPQ0tfRlVaWlkobmFtZSkgXAogCWlmICghaW50ZWxfZnV6 enlfY2xvY2tfY2hlY2soY3VycmVudF9jb25maWctPm5hbWUsIHBpcGVfY29uZmlnLT5uYW1lKSkg eyBcCi0JCURSTV9FUlJPUigibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAorCQlJTlRFTF9FUlJf T1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAogCQkJICAiKGV4cGVjdGVkICVp LCBmb3VuZCAlaSlcbiIsIFwKIAkJCSAgY3VycmVudF9jb25maWctPm5hbWUsIFwKIAkJCSAgcGlw ZV9jb25maWctPm5hbWUpOyBcCi0JCXJldHVybiBmYWxzZTsgXAorCQlyZXQgPSBmYWxzZTsgXAog CX0KIAogI2RlZmluZSBQSVBFX0NPTkZfUVVJUksocXVpcmspCVwKQEAgLTEyNDcwLDM1ICsxMjU2 MywxOCBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAKIAlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNfcGNoX2VuY29kZXIpOwogCVBJUEVfQ09ORl9DSEVD S19JKGZkaV9sYW5lcyk7Ci0JUElQRV9DT05GX0NIRUNLX0koZmRpX21fbi5nbWNoX20pOwotCVBJ UEVfQ09ORl9DSEVDS19JKGZkaV9tX24uZ21jaF9uKTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShmZGlf bV9uLmxpbmtfbSk7Ci0JUElQRV9DT05GX0NIRUNLX0koZmRpX21fbi5saW5rX24pOwotCVBJUEVf Q09ORl9DSEVDS19JKGZkaV9tX24udHUpOworCVBJUEVfQ09ORl9DSEVDS19NX04oZmRpX21fbik7 CiAKIAlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNfZHBfZW5jb2Rlcik7CiAKIAlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPCA4KSB7Ci0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5nbWNoX20pOwot CQlQSVBFX0NPTkZfQ0hFQ0tfSShkcF9tX24uZ21jaF9uKTsKLQkJUElQRV9DT05GX0NIRUNLX0ko ZHBfbV9uLmxpbmtfbSk7Ci0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5saW5rX24pOwotCQlQ SVBFX0NPTkZfQ0hFQ0tfSShkcF9tX24udHUpOwotCi0JCWlmIChjdXJyZW50X2NvbmZpZy0+aGFz X2RycnMpIHsKLQkJCVBJUEVfQ09ORl9DSEVDS19JKGRwX20yX24yLmdtY2hfbSk7Ci0JCQlQSVBF X0NPTkZfQ0hFQ0tfSShkcF9tMl9uMi5nbWNoX24pOwotCQkJUElQRV9DT05GX0NIRUNLX0koZHBf bTJfbjIubGlua19tKTsKLQkJCVBJUEVfQ09ORl9DSEVDS19JKGRwX20yX24yLmxpbmtfbik7Ci0J CQlQSVBFX0NPTkZfQ0hFQ0tfSShkcF9tMl9uMi50dSk7Ci0JCX0KLQl9IGVsc2UgewotCQlQSVBF X0NPTkZfQ0hFQ0tfSV9BTFQoZHBfbV9uLmdtY2hfbSwgZHBfbTJfbjIuZ21jaF9tKTsKLQkJUElQ RV9DT05GX0NIRUNLX0lfQUxUKGRwX21fbi5nbWNoX24sIGRwX20yX24yLmdtY2hfbik7Ci0JCVBJ UEVfQ09ORl9DSEVDS19JX0FMVChkcF9tX24ubGlua19tLCBkcF9tMl9uMi5saW5rX20pOwotCQlQ SVBFX0NPTkZfQ0hFQ0tfSV9BTFQoZHBfbV9uLmxpbmtfbiwgZHBfbTJfbjIubGlua19uKTsKLQkJ UElQRV9DT05GX0NIRUNLX0lfQUxUKGRwX21fbi50dSwgZHBfbTJfbjIudHUpOwotCX0KKwkJUElQ RV9DT05GX0NIRUNLX01fTihkcF9tX24pOworCisJCVBJUEVfQ09ORl9DSEVDS19JKGhhc19kcnJz KTsKKwkJaWYgKGN1cnJlbnRfY29uZmlnLT5oYXNfZHJycykKKwkJCVBJUEVfQ09ORl9DSEVDS19N X04oZHBfbTJfbjIpOworCX0gZWxzZQorCQlQSVBFX0NPTkZfQ0hFQ0tfTV9OX0FMVChkcF9tX24s IGRwX20yX24yKTsKIAogCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2hkaXNwbGF5KTsKIAlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19o dG90YWwpOwpAQCAtMTI1OTQsOCArMTI2NzAsOSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0ZMQUdTCiAj dW5kZWYgUElQRV9DT05GX0NIRUNLX0NMT0NLX0ZVWlpZCiAjdW5kZWYgUElQRV9DT05GX1FVSVJL CisjdW5kZWYgSU5URUxfRVJSX09SX0RCR19LTVMKIAotCXJldHVybiB0cnVlOworCXJldHVybiBy ZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGNoZWNrX3dtX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCkBAIC0xMjc4Nyw4ICsxMjg2NCwxMSBAQCBjaGVja19jcnRjX3N0YXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJCSAgICAgInRyYW5zaXRpb25hbCBhY3RpdmUgc3RhdGUgZG9lcyBub3Qg bWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKIAkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlc biIsIGNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSwgY3J0Yy0+YWN0aXZlKTsKIAotCQlpZiAoYWN0 aXZlICYmCi0JCSAgICAhaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShkZXYsIGNydGMtPmNvbmZp ZywgJnBpcGVfY29uZmlnKSkgeworCQlpZiAoIWFjdGl2ZSkKKwkJCWNvbnRpbnVlOworCisJCWlm ICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShkZXYsIGNydGMtPmNvbmZpZywKKwkJCQkJICAg ICAgICZwaXBlX2NvbmZpZywgZmFsc2UpKSB7CiAJCQlJOTE1X1NUQVRFX1dBUk4oMSwgInBpcGUg c3RhdGUgZG9lc24ndCBtYXRjaCFcbiIpOwogCQkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjcnRj LCAmcGlwZV9jb25maWcsCiAJCQkJCSAgICAgICAiW2h3IHN0YXRlXSIpOwpAQCAtMTMwODksMTQg KzEzMTY5LDE3IEBAIGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCQlyZXR1cm4gcmV0OwogCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0 ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcgPQorCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKKwkJ Ym9vbCBtb2Rlc2V0LCByZWNhbGM7CisKIAkJaWYgKCFjcnRjX3N0YXRlLT5lbmFibGUpIHsKIAkJ CWlmIChuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJCWFueV9tcyA9IHRydWU7CiAJCQlj b250aW51ZTsKIAkJfQogCi0JCWlmICh0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLT5x dWlya3MgJgotCQkgICAgUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVMpIHsKKwkJaWYg KHBpcGVfY29uZmlnLT5xdWlya3MgJiBQSVBFX0NPTkZJR19RVUlSS19JTklUSUFMX1BMQU5FUykg ewogCQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsK IAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKQEAgLTEzMTA5LDIzICsxMzE5MiwzNiBAQCBp bnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIAkJCSAqLwogCQl9CiAKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKSB7CisJ CW1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpOworCQlyZWNhbGMgPSBwaXBlX2Nv bmZpZy0+cXVpcmtzICYgUElQRV9DT05GSUdfUVVJUktfSU5IRVJJVEVEX01PREU7CisKKwkJaWYg KCFtb2Rlc2V0ICYmICFyZWNhbGMpCisJCQljb250aW51ZTsKKworCQlpZiAocmVjYWxjKSB7CiAJ CQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsK IAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCXJldCA9IGludGVsX21vZGVz ZXRfcGlwZV9jb25maWcoY3J0YywKLQkJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRl KSk7CisJCXJldCA9IGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoY3J0YywgcGlwZV9jb25maWcp OwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlpZiAobmVlZHNfbW9kZXNldChjcnRj X3N0YXRlKSkKLQkJCWFueV9tcyA9IHRydWU7CisJCWlmIChyZWNhbGMgJiYgIWludGVsX3BpcGVf Y29uZmlnX2NvbXBhcmUoc3RhdGUtPmRldiwKKwkJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj LT5zdGF0ZSksCisJCQkJCXBpcGVfY29uZmlnLCB0cnVlKSkgeworCQkJbW9kZXNldCA9IGNydGNf c3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisKKwkJCXJldCA9IGRybV9hdG9taWNfYWRkX2Fm ZmVjdGVkX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7 CisJCX0KIAorCQlhbnlfbXMgPSBtb2Rlc2V0OwogCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHRv X2ludGVsX2NydGMoY3J0YyksCi0JCQkJICAgICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19z dGF0ZSksCi0JCQkJICAgICAgICJbbW9kZXNldF0iKTsKKwkJCQkgICAgICAgcGlwZV9jb25maWcs CisJCQkJICAgICAgIG1vZGVzZXQgPyAiW21vZGVzZXRdIiA6ICJbZmFzdGJvb3RdIik7CiAJfQog CiAJaWYgKGFueV9tcykgewotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==