From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [CI v13 02/17] drm/i915/dp: Compute DSC pipe config in atomic check Date: Wed, 28 Nov 2018 12:26:13 -0800 Message-ID: <20181128202628.20238-2-manasi.d.navare@intel.com> References: <20181128202628.20238-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 524996E2EA for ; Wed, 28 Nov 2018 20:23:29 +0000 (UTC) In-Reply-To: <20181128202628.20238-1-manasi.d.navare@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 RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnYxNDoKUmVtb3ZlIGxlZnRvdmVycywgdXNlIGRzY19icGMsIHJl ZmluZSBkc2NfY29tcHV0ZV9jb25maWcgKFZpbGxlKQp2MTM6CiogQ29tcHV0ZSBEU0MgYnBjIG9u bHkgd2hlbiBEU0MgaXMgcmVxIHRvIGJlIGVuYWJsZWQgKFZpbGxlKQp2MTI6CiogT3ZlcnJpZGUg YnBwIHdpdGggZHNjIGRwY2QgY29sb3IgZGVwdGggKE1hbmFzaSkKdjExOgoqIENvbnN0IGNydGNf c3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0aG91dCBGRUMgKFZpbGxlKQoqIERvbnQgc2V0IGRz Y19zcGxpdCB0byBmYWxzZSAoVmlsbGUpCnYxMDoKKiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBz dXBwb3J0IChWaWxsZSkKKiBTZXQgcGlwZV9jb25maWcgdG8gbWF4IGJwcCwgbGluayBwYXJhbXMg Zm9yIERTQyBmb3Igbm93IChWaWxsZSkKKiBDb21wdXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9y dCBoZWxwZXIgKFZpbGxlKQp2OToKKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cg dXNlcyBmYXN0X25hcnJvdyBjb25maWcKZm9yIGVkcCAoTWFuYXNpKQp2ODoKKiBDaGVjayBmb3Ig RFNDIGJwYyBub3QgMCAobWFuYXNpKQoKdjc6CiogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVf bV9uIChNYW5hc2kpCgp2NiAoRnJvbSBHYXVyYXYpOgoqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9m IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGFuZAppbnZva2UgaW50ZWxfZHBfY29tcHV0 ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNoIHdoZXJlCml0IGlzIGRlZmluZWQgdG8gZml4IGNv bXBpbGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKCnY1OgpBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxf Y3J0Y19zdGF0ZSAoTWFuYXNpKQoKdjQ6CiogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVs X2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQoqIEFkZCBhIGNvbW1lbnQgd2h5IHdl IG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQoKdjM6CiogQ2hl Y2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQoKdjI6 CiogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGlu dGVsLmNvbT4KQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJl dmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClJl dmlld2VkLWJ5OiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K QWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMgICAgICB8IDE5MiArKysrKysrKysrKysrKysrKysrKysrKystLS0KIDMgZmls ZXMgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBlOWY0ZTIyYjJhNGUuLjY5YmIwYjc1YTgwNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjcyNCw3ICs2NzI0LDcgQEAg c3RhdGljIHZvaWQgY29tcHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAog fQogCiB2b2lkCi1pbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgaW50 IG5sYW5lcywKK2ludGVsX2xpbmtfY29tcHV0ZV9tX24odTE2IGJpdHNfcGVyX3BpeGVsLCBpbnQg bmxhbmVzLAogCQkgICAgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKIAkJICAg ICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkgICAgICAgYm9vbCBjb25zdGFudF9u KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCmluZGV4IDVmMjk1NWI5NDRkYS4uNWUy NTNmNzQxZDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCkBAIC00MjMsNyAr NDIzLDcgQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsKIAkgICAgIChfX2kpKyspIFwKIAkJZm9y X2VhY2hfaWYocGxhbmUpCiAKLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBp bnQgbmxhbmVzLAordm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHUxNiBicHAsIGludCBubGFu ZXMsCiAJCQkgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKIAkJCSAgICBzdHJ1 Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJCSAgICBib29sIGNvbnN0YW50X24pOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKaW5kZXggNzBhZTNkNTczMTZiLi5hMjc4MDczMzc2OGEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwpAQCAtNDcsNiArNDcsOCBAQAogCiAvKiBEUCBEU0Mgc21hbGwgam9p bmVyIGhhcyAyIEZJRk9zIGVhY2ggb2YgNjQwIHggNiBieXRlcyAqLwogI2RlZmluZSBEUF9EU0Nf TUFYX1NNQUxMX0pPSU5FUl9SQU1fQlVGRkVSCTYxNDQwCisjZGVmaW5lIERQX0RTQ19NSU5fU1VQ UE9SVEVEX0JQQwkJOAorI2RlZmluZSBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMJCTEwCiAKIC8q IERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGljZSBjb3VudCBjYWxjdWxhdGlv bnMgS1BpeGVscy9zICovCiAjZGVmaW5lIERQX0RTQ19QRUFLX1BJWEVMX1JBVEUJCQkyNzIwMDAw CkBAIC0xNzA4LDYgKzE3MTAsMjYgQEAgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyB7CiAJaW50 IG1pbl9icHAsIG1heF9icHA7CiB9OwogCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9zb3VyY2Vfc3Vw cG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJCSBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CisKKwkvKiBGSVhNRTogRkVDIG5l ZWRlZCBmb3IgZXh0ZXJuYWwgRFAgdW50aWwgdGhlbiByZWplY3QgRFNDIG9uIERQICovCisJaWYg KCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4g SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCAmJgorCQlwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29k ZXIgIT0gVFJBTlNDT0RFUl9BOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9zdXBwb3J0c19k c2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3sKKwlyZXR1cm4gaW50ZWxfZHBfc291cmNlX3N1cHBv cnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpICYmCisJCWRybV9kcF9zaW5rX3N1cHBvcnRz X2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpOworfQorCiBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1 dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKQogewpAQCAtMTg0MiwxNCArMTg2NCwxMTUgQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJcmV0 dXJuIGZhbHNlOwogfQogCitzdGF0aWMgaW50IGludGVsX2RwX2RzY19jb21wdXRlX2JwcChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCBkc2NfbWF4X2JwYykKK3sKKwlpbnQgaSwgbnVtX2Jw YzsKKwl1OCBkc2NfYnBjWzNdID0gezB9OworCisJbnVtX2JwYyA9IGRybV9kcF9kc2Nfc2lua19z dXBwb3J0ZWRfaW5wdXRfYnBjcyhpbnRlbF9kcC0+ZHNjX2RwY2QsCisJCQkJCQkgICAgICAgZHNj X2JwYyk7CisJZm9yIChpID0gMDsgaSA8IG51bV9icGM7IGkrKykgeworCQlpZiAoZHNjX21heF9i cGMgPj0gZHNjX2JwY1tpXSkKKwkJCXJldHVybiBkc2NfYnBjW2ldICogMzsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZywKKwkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCisJ CQkJCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKK3sKKwlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJh c2UuZGV2KTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXU4IGRzY19tYXhfYnBjOworCWludCBwaXBl X2JwcDsKKworCWlmICghaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZp ZykpCisJCXJldHVybiBmYWxzZTsKKworCWRzY19tYXhfYnBjID0gbWluX3QodTgsIERQX0RTQ19N QVhfU1VQUE9SVEVEX0JQQywKKwkJCSAgICBjb25uX3N0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyk7 CisKKwlwaXBlX2JwcCA9IGludGVsX2RwX2RzY19jb21wdXRlX2JwcChpbnRlbF9kcCwgZHNjX21h eF9icGMpOworCWlmIChwaXBlX2JwcCA8IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDMpIHsK KwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQgZm9yIGxlc3MgdGhhbiA4YnBjXG4iKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJICogRm9yIG5vdyBlbmFibGUgRFNDIGZvciBt YXggYnBwLCBtYXggbGluayByYXRlLCBtYXggbGFuZSBjb3VudC4KKwkgKiBPcHRpbWl6ZSB0aGlz IGxhdGVyIGZvciB0aGUgbWluaW11bSBwb3NzaWJsZSBsaW5rIHJhdGUvbGFuZSBjb3VudAorCSAq IHdpdGggRFNDIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KKwkgKi8KKwlwaXBlX2Nv bmZpZy0+cGlwZV9icHAgPSBwaXBlX2JwcDsKKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGlu dGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLT5tYXhfY2xvY2tdOworCXBpcGVfY29uZmlnLT5s YW5lX2NvdW50ID0gbGltaXRzLT5tYXhfbGFuZV9jb3VudDsKKworCWlmIChpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKSB7CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBw ID0KKwkJCW1pbl90KHUxNiwgZHJtX2VkcF9kc2Nfc2lua19vdXRwdXRfYnBwKGludGVsX2RwLT5k c2NfZHBjZCkgPj4gNCwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CisJCXBpcGVf Y29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID0KKwkJCWRybV9kcF9kc2Nfc2lua19tYXhf c2xpY2VfY291bnQoaW50ZWxfZHAtPmRzY19kcGNkLAorCQkJCQkJCXRydWUpOworCX0gZWxzZSB7 CisJCXUxNiBkc2NfbWF4X291dHB1dF9icHA7CisJCXU4IGRzY19kcF9zbGljZV9jb3VudDsKKwor CQlkc2NfbWF4X291dHB1dF9icHAgPQorCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50 LAorCQkJCQkJICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7CisJCWRzY19kcF9zbGljZV9jb3VudCA9CisJCQlpbnRl bF9kcF9kc2NfZ2V0X3NsaWNlX2NvdW50KGludGVsX2RwLAorCQkJCQkJICAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5 KTsKKwkJaWYgKCFkc2NfbWF4X291dHB1dF9icHAgfHwgIWRzY19kcF9zbGljZV9jb3VudCkgewor CQkJRFJNX0RFQlVHX0tNUygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBvcnRl ZFxuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMu Y29tcHJlc3NlZF9icHAgPSBtaW5fdCh1MTYsCisJCQkJCQkJICAgICAgIGRzY19tYXhfb3V0cHV0 X2JwcCA+PiA0LAorCQkJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOworCQlwaXBl X2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsKKwl9 CisJLyoKKwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywgc28g aWYgcGVhayBwaXhlbCByYXRlCisJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xv Y2sgYW5kIGlmIHNsaWNlIGNvdW50IGlzIGV2ZW4KKwkgKiB0aGVuIHdlIG5lZWQgdG8gdXNlIDIg VkRTQyBpbnN0YW5jZXMuCisJICovCisJaWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBk ZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsKKwkJaWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1z LnNsaWNlX2NvdW50ID4gMSkgeworCQkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0 ID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCURSTV9ERUJVR19LTVMoIkNhbm5vdCBzcGxpdCBzdHJl YW0gdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXNcbiIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJ fQorCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7CisJ RFJNX0RFQlVHX0tNUygiRFAgRFNDIGNvbXB1dGVkIHdpdGggSW5wdXQgQnBwID0gJWQgIgorCQkg ICAgICAiQ29tcHJlc3NlZCBCcHAgPSAlZCBTbGljZSBDb3VudCA9ICVkXG4iLAorCQkgICAgICBw aXBlX2NvbmZpZy0+cGlwZV9icHAsCisJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNv bXByZXNzZWRfYnBwLAorCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3Vu dCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGJvb2wKIGludGVsX2RwX2NvbXB1dGVf bGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKKwkJCSAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBsaW5r X2NvbmZpZ19saW1pdHMgbGltaXRzOwogCWludCBjb21tb25fbGVuOworCWJvb2wgcmV0OwogCiAJ Y29tbW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwKIAkJ CQkJCSAgICBpbnRlbF9kcC0+bWF4X2xpbmtfcmF0ZSk7CkBAIC0xODg4LDcgKzIwMTEsNyBAQCBp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkgICAgICBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy5tYXhfY2xvY2tdLAogCQkg ICAgICBsaW1pdHMubWF4X2JwcCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7CiAKLQlpZiAo aW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgeworCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxf ZHApKQogCQkvKgogCQkgKiBPcHRpbWl6ZSBmb3IgZmFzdCBhbmQgbmFycm93LiBlRFAgMS4zIHNl Y3Rpb24gMy4zIGFuZCBlRFAgMS40CiAJCSAqIHNlY3Rpb24gQS4xOiAiSXQgaXMgcmVjb21tZW5k ZWQgdGhhdCB0aGUgbWluaW11bSBudW1iZXIgb2YKQEAgLTE4OTgsMjYgKzIwMjEsNDIgQEAgaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJICogTm90ZSB0aGF0IHdlIHVzZSB0aGUgbWF4IGNsb2NrIGFuZCBsYW5lIGNvdW50IGZvciBl RFAgMS4zIGFuZAogCQkgKiBlYXJsaWVyLCBhbmQgZmFzdCB2cy4gd2lkZSBpcyBpcnJlbGV2YW50 LgogCQkgKi8KLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxf ZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJICAgICAgICZsaW1pdHMpKQotCQkJcmV0dXJuIGZhbHNl OwotCX0gZWxzZSB7CisJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChp bnRlbF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkJJmxpbWl0cyk7CisJZWxzZQogCQkvKiBPcHRp bWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4gKi8KLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtf Y29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJICAgICAgICZsaW1pdHMp KQorCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBp cGVfY29uZmlnLAorCQkJCQkJCSZsaW1pdHMpOworCisJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlm IHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLworCWlmICghcmV0KSB7CisJCWlm ICghaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKKwkJ CQkJCSBjb25uX3N0YXRlLCAmbGltaXRzKSkKIAkJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlEUk1f REVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKLQkJICAgICAg cGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAotCQkgICAg ICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOworCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2lvbl9lbmFibGUpIHsKKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBj bG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCisJCQkgICAgICBwaXBl X2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkgICAgICBw aXBlX2NvbmZpZy0+cGlwZV9icHAsCisJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCk7CiAKLQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQg JWkgYXZhaWxhYmxlICVpXG4iLAotCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2ssCi0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwK LQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywK LQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCQlEUk1fREVCVUdfS01TKCJE UCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAorCQkJICAgICAgaW50ZWxf ZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgICBw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCksCisJCQkgICAgICBpbnRlbF9k cF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgICBwaXBl X2NvbmZpZy0+bGFuZV9jb3VudCkpOworCX0gZWxzZSB7CisJCURSTV9ERUJVR19LTVMoIkRQIGxh bmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAorCQkJICAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJICAgICAgcGlwZV9jb25maWct PnBpcGVfYnBwKTsKIAorCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkg YXZhaWxhYmxlICVpXG4iLAorCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAor CQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywK KwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwl9CiAJcmV0dXJuIHRydWU7 CiB9CiAKQEAgLTE5ODMsNyArMjEyMiw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERS TV9NT0RFX0ZMQUdfREJMQ0xLKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoIWludGVsX2RwX2Nv bXB1dGVfbGlua19jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcpKQorCWlmICghaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSkpCiAJ CXJldHVybiBmYWxzZTsKIAogCWlmIChpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09 IElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTykgewpAQCAtMjAwMSwxMSArMjE0MCwyMCBAQCBpbnRl bF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWlu dGVsX2Nvbm5fc3RhdGUtPmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9MSU1J VEVEOwogCX0KIAotCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBw LCBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKLQkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrLAotCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAotCQkJICAgICAgICZw aXBlX2NvbmZpZy0+ZHBfbV9uLAotCQkJICAgICAgIGNvbnN0YW50X24pOworCWlmICghcGlwZV9j b25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKQorCQlpbnRlbF9saW5rX2NvbXB1 dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJCQkgICAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsCisJCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJICAg ICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCSAgICAgICAmcGlwZV9jb25maWctPmRw X21fbiwKKwkJCQkgICAgICAgY29uc3RhbnRfbik7CisJZWxzZQorCQlpbnRlbF9saW5rX2NvbXB1 dGVfbV9uKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSwKKwkJCQkg ICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsCisJCQkJICAgICAgIGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2ssCisJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCSAg ICAgICAmcGlwZV9jb25maWctPmRwX21fbiwKKwkJCQkgICAgICAgY29uc3RhbnRfbik7CiAKIAlp ZiAoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZSAhPSBOVUxMICYmCiAJCWRl dl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Ci0tIAoyLjE5LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=