From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stanislav Lisovskiy Subject: [PATCH v6 1/2] drm/i915: Refactor intel_can_enable_sagv Date: Wed, 23 Oct 2019 12:08:03 +0300 Message-ID: <20191023090804.26607-2-stanislav.lisovskiy@intel.com> References: <20191023090804.26607-1-stanislav.lisovskiy@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 CCCD46E9FE for ; Wed, 23 Oct 2019 09:10:34 +0000 (UTC) In-Reply-To: <20191023090804.26607-1-stanislav.lisovskiy@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: martin.peres@intel.com List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IGludGVsX2Nhbl9lbmFibGVfc2FndiBmdW5jdGlvbiBjb250YWlucwphIG1peCBv ZiB3b3JrYXJvdW5kcyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcwpzb21lIG9mIHRoZW0gYXJlIG5v dCB2YWxpZCBmb3IgZ2VucyA+PSAxMSBhbHJlYWR5LApzbyBsZXRzIHNwbGl0IGl0IGludG8gc2Vw YXJhdGUgZnVuY3Rpb25zLgoKdjI6CiAgICAtIFJld29yayB3YXRlcm1hcmsgY2FsY3VsYXRpb24g YWxnb3JpdGhtIHRvCiAgICAgIGF0dGVtcHQgdG8gY2FsY3VsYXRlIExldmVsIDAgd2F0ZXJtYXJr CiAgICAgIHdpdGggYWRkZWQgc2FndiBibG9jayB0aW1lIGxhdGVuY3kgYW5kCiAgICAgIGNoZWNr IGlmIGl0IGZpdHMgaW4gREJ1ZiBpbiBvcmRlciB0bwogICAgICBkZXRlcm1pbmUgaWYgU0FHViBj YW4gYmUgZW5hYmxlZCBhbHJlYWR5CiAgICAgIGF0IHRoaXMgc3RhZ2UsIGp1c3QgYXMgQlNwZWMg NDkzMjUgc3RhdGVzLgogICAgICBpZiB0aGF0IGZhaWxzIHJvbGxiYWNrIHRvIHVzdWFsIExldmVs IDAKICAgICAgbGF0ZW5jeSBhbmQgZGlzYWJsZSBTQUdWLgogICAgLSBSZW1vdmUgdW5uZWVkZWQg dGFicyhKYW1lcyBBdXNtdXMpCgp2MzogUmViYXNlZCB0aGUgcGF0Y2gKClNpZ25lZC1vZmYtYnk6 IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgpDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT4KQ2M6IEphbWVzIEF1c211 cyA8amFtZXMuYXVzbXVzQGludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDggKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgICAgICAgICAgIHwgMjI4ICsrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFu Z2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IDgzNTgxNTJl NDAzZS4uZjA5YzgwYzk2NDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaApAQCAtNDkwLDYgKzQ5MCwxMyBAQCBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlIHsKIAkgKi8KIAl1OCBhY3RpdmVfcGlwZV9jaGFuZ2VzOwogCisJLyoK KwkgKiBGb3IgR2VuMTIgb25seSBhZnRlciBjYWxjdWxhdGluZyB3YXRlcm1hcmtzIHdpdGgKKwkg KiBhZGRpdGlvbmFsIGxhdGVuY3ksIHdlIGNhbiBkZXRlcm1pbmUgaWYgU0FHViBjYW4gYmUgZW5h YmxlZAorCSAqIG9yIG5vdCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24uCisJICov CisJYm9vbCBnZW4xMl9jYW5fc2FndjsKKwogCXU4IGFjdGl2ZV9waXBlczsKIAkvKiBtaW5pbXVt IGFjY2VwdGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLwogCWludCBtaW5fY2RjbGtbSTkxNV9N QVhfUElQRVNdOwpAQCAtNjQyLDYgKzY0OSw3IEBAIHN0cnVjdCBza2xfcGxhbmVfd20gewogCXN0 cnVjdCBza2xfd21fbGV2ZWwgd21bOF07CiAJc3RydWN0IHNrbF93bV9sZXZlbCB1dl93bVs4XTsK IAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHRyYW5zX3dtOworCXN0cnVjdCBza2xfd21fbGV2ZWwgc2Fn dl93bV9sMDsKIAlib29sIGlzX3BsYW5hcjsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmlu ZGV4IDM2MjIzNDQ0OTA4Ny4uYzA0MTllNGQ4M2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK QEAgLTM3NTEsNyArMzc1MSw3IEBAIGludGVsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiB9CiAKLWJvb2wgaW50ZWxfY2FuX2VuYWJs ZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQorYm9vbCBza2xfY2FuX2Vu YWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwpAQCAtMzgxNyw2ICszODE3LDc1IEBAIGJvb2wg aW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CXJldHVybiB0cnVlOwogfQogCitib29sIGljbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm5ld19jcnRjX3N0YXRlOworCWludCBsZXZlbCwgbGF0ZW5jeTsKKwlpbnQgaTsKKwlpbnQg cGxhbmVfaWQ7CisKKwlpZiAoIWludGVsX2hhc19zYWd2KGRldl9wcml2KSkKKwkJcmV0dXJuIGZh bHNlOworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgbm8gYWN0aXZlIENSVENzLCBubyBhZGRpdGlv bmFsIGNoZWNrcyBuZWVkIGJlIHBlcmZvcm1lZAorCSAqLworCWlmIChod2VpZ2h0OChzdGF0ZS0+ YWN0aXZlX3BpcGVzKSA9PSAwKQorCQlyZXR1cm4gdHJ1ZTsKKworCWZvcl9lYWNoX25ld19pbnRl bF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgIG5ld19jcnRjX3N0YXRlLCBp KSB7CisKKwkJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCXJldHVybiBmYWxzZTsKKworCQlpZiAoIW5ld19jcnRj X3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJCWNvbnRpbnVlOworCisJCWZvcl9lYWNoX3BsYW5lX2lk X29uX2NydGMoY3J0YywgcGxhbmVfaWQpIHsKKwkJCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0K KwkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisK KwkJCS8qIFNraXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFibGVkICovCisJCQlpZiAoIXdt LT53bVswXS5wbGFuZV9lbikKKwkJCQljb250aW51ZTsKKworCQkJLyogRmluZCB0aGUgaGlnaGVz dCBlbmFibGVkIHdtIGxldmVsIGZvciB0aGlzIHBsYW5lICovCisJCQlmb3IgKGxldmVsID0gaWxr X3dtX21heF9sZXZlbChkZXZfcHJpdik7CisJCQkgICAgICF3bS0+d21bbGV2ZWxdLnBsYW5lX2Vu OyAtLWxldmVsKQorCQkJICAgICB7IH0KKworCQkJbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xf bGF0ZW5jeVtsZXZlbF07CisKKwkJCS8qCisJCQkgKiBJZiBhbnkgb2YgdGhlIHBsYW5lcyBvbiB0 aGlzIHBpcGUgZG9uJ3QgZW5hYmxlIHdtIGxldmVscyB0aGF0CisJCQkgKiBpbmN1ciBtZW1vcnkg bGF0ZW5jaWVzIGhpZ2hlciB0aGFuIHNhZ3ZfYmxvY2tfdGltZV91cyB3ZQorCQkJICogY2FuJ3Qg ZW5hYmxlIFNBR1YuCisJCQkgKi8KKwkJCWlmIChsYXRlbmN5IDwgZGV2X3ByaXYtPnNhZ3ZfYmxv Y2tfdGltZV91cykKKwkJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKKwlyZXR1cm4gdHJ1ZTsK K30KKworYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisKKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJcmV0dXJuIHN0YXRlLT5nZW4xMl9jYW5f c2FndjsKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDExKQorCQlyZXR1cm4gaWNs X2Nhbl9lbmFibGVfc2FndihzdGF0ZSk7CisKKwlyZXR1cm4gc2tsX2Nhbl9lbmFibGVfc2Fndihz dGF0ZSk7Cit9CisKIHN0YXRpYyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgY29uc3QgdTY0IHRvdGFsX2RhdGFfcmF0ZSwKQEAg LTM5MzYsNiArNDAwNSw3IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfd21fcGFyYW1zKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgY29sb3JfcGxh bmUpOwogc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwKKwkJCQkgdTMyIGxhdGVu Y3ksCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgY29uc3Qgc3Ry dWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCiAJCQkJIHN0cnVjdCBza2xfd21fbGV2ZWwg KnJlc3VsdCAvKiBvdXQgKi8pOwpAQCAtMzk1OCw3ICs0MDI4LDggQEAgc2tsX2N1cnNvcl9hbGxv Y2F0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCVdBUk5f T04ocmV0KTsKIAogCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKysp IHsKLQkJc2tsX2NvbXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsICZ3cCwgJndtLCAm d20pOworCQl1MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CisJ CXNrbF9jb21wdXRlX3BsYW5lX3dtKGNydGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LCAmd3AsICZ3 bSwgJndtKTsKIAkJaWYgKHdtLm1pbl9kZGJfYWxsb2MgPT0gVTE2X01BWCkKIAkJCWJyZWFrOwog CkBAIC00MzEwLDYgKzQzODEsNzMgQEAgaWNsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIHRvdGFsX2RhdGFf cmF0ZTsKIH0KIAorc3RhdGljIGludAordGdsX2NoZWNrX3BpcGVfZml0c19zYWd2X3dtKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9h bGxvY2F0aW9uICpkZGIgLyogb3V0ICovKQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNy dGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYyA9ICZjcnRj X3N0YXRlLT53bS5za2wuZGRiOworCXUxNiBhbGxvY19zaXplOworCXUxNiB0b3RhbFtJOTE1X01B WF9QTEFORVNdID0ge307CisJdTY0IHRvdGFsX2RhdGFfcmF0ZTsKKwllbnVtIHBsYW5lX2lkIHBs YW5lX2lkOworCWludCBudW1fYWN0aXZlOworCXU2NCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhf UExBTkVTXSA9IHt9OworCXU2NCB1dl9wbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9 IHt9OworCXUzMiBibG9ja3M7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKKwkJ dG90YWxfZGF0YV9yYXRlID0KKwkJCWljbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNy dGNfc3RhdGUsCisJCQkJCQkJIHBsYW5lX2RhdGFfcmF0ZSk7CisJZWxzZQorCQl0b3RhbF9kYXRh X3JhdGUgPQorCQkJc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3J0Y19zdGF0ZSwK KwkJCQkJCQkgcGxhbmVfZGF0YV9yYXRlLAorCQkJCQkJCSB1dl9wbGFuZV9kYXRhX3JhdGUpOwor CisKKwlza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKGRldl9wcml2LCBjcnRjX3N0 YXRlLCB0b3RhbF9kYXRhX3JhdGUsCisJCQkJCSAgIGRkYiwgYWxsb2MsICZudW1fYWN0aXZlKTsK KwlhbGxvY19zaXplID0gc2tsX2RkYl9lbnRyeV9zaXplKGFsbG9jKTsKKwlpZiAoYWxsb2Nfc2l6 ZSA9PSAwKQorCQlyZXR1cm4gLUVOT1NQQzsKKworCS8qIEFsbG9jYXRlIGZpeGVkIG51bWJlciBv ZiBibG9ja3MgZm9yIGN1cnNvci4gKi8KKwl0b3RhbFtQTEFORV9DVVJTT1JdID0gc2tsX2N1cnNv cl9hbGxvY2F0aW9uKGNydGNfc3RhdGUsIG51bV9hY3RpdmUpOworCWFsbG9jX3NpemUgLT0gdG90 YWxbUExBTkVfQ1VSU09SXTsKKwljcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVf Q1VSU09SXS5zdGFydCA9CisJCWFsbG9jLT5lbmQgLSB0b3RhbFtQTEFORV9DVVJTT1JdOworCWNy dGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5l bmQ7CisKKwkvKgorCSAqIERvIGNoZWNrIGlmIHdlIGNhbiBmaXQgTDAgKyBzYWd2X2Jsb2NrX3Rp bWUgYW5kCisJICogZGlzYWJsZSBTQUdWIGlmIHdlIGNhbid0LgorCSAqLworCWJsb2NrcyA9IDA7 CisJZm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhpbnRlbF9jcnRjLCBwbGFuZV9pZCkgeworCQlj b25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSA9CisJCQkmY3J0Y19zdGF0ZS0+d20uc2tsLm9w dGltYWwucGxhbmVzW3BsYW5lX2lkXTsKKworCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09S KSB7CisJCQlpZiAoV0FSTl9PTih3bS0+c2Fndl93bV9sMC5taW5fZGRiX2FsbG9jID4KKwkJCQkg ICAgdG90YWxbUExBTkVfQ1VSU09SXSkpIHsKKwkJCQlibG9ja3MgPSBVMzJfTUFYOworCQkJCWJy ZWFrOworCQkJfQorCQkJY29udGludWU7CisJCX0KKworCQlibG9ja3MgKz0gd20tPnNhZ3Zfd21f bDAubWluX2RkYl9hbGxvYzsKKwkJaWYgKGJsb2NrcyA+IGFsbG9jX3NpemUpIHsKKwkJCXJldHVy biAtRU5PU1BDOworCQl9CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBza2xfYWxs b2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAg ICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCkBAIC00NzM5LDEy ICs0ODc3LDEyIEBAIHN0YXRpYyBib29sIHNrbF93bV9oYXNfbGluZXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgbGV2ZWwpCiAKIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRl X3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ CSBpbnQgbGV2ZWwsCisJCQkJIHUzMiBsYXRlbmN5LAogCQkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dt X3BhcmFtcyAqd3AsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2 LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOwotCXUzMiBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVs XTsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKIAl1aW50X2ZpeGVkXzE2 XzE2X3Qgc2VsZWN0ZWRfcmVzdWx0OwogCXUzMiByZXNfYmxvY2tzLCByZXNfbGluZXMsIG1pbl9k ZGJfYWxsb2MgPSAwOwpAQCAtNDg2NSwxOSArNTAwMyw0NSBAQCBzdGF0aWMgdm9pZCBza2xfY29t cHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHN0YXRpYyB2b2lkCiBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1z ICp3bV9wYXJhbXMsCi0JCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKKwkJICAg ICAgc3RydWN0IHNrbF9wbGFuZV93bSAqcGxhbmVfd20sCisJCSAgICAgIGJvb2wgeXV2KQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZl bChkZXZfcHJpdik7CisJLyoKKwkgKiBDaGVjayB3aGljaCBraW5kIG9mIHBsYW5lIGlzIGl0IGFu ZCBiYXNlZCBvbiB0aGF0IGNhbGN1bGF0ZQorCSAqIGNvcnJlc3BvbmRlbnQgV00gbGV2ZWxzLgor CSAqLworCXN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscyA9IHl1diA/IHBsYW5lX3dtLT51dl93 bSA6IHBsYW5lX3dtLT53bTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRfcHJldiA9ICZs ZXZlbHNbMF07CiAKIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsr KSB7CiAJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCA9ICZsZXZlbHNbbGV2ZWxdOworCQl1 MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAKLQkJc2tsX2Nv bXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsIHdtX3BhcmFtcywKLQkJCQkgICAgIHJl c3VsdF9wcmV2LCByZXN1bHQpOworCQlza2xfY29tcHV0ZV9wbGFuZV93bShjcnRjX3N0YXRlLCBs ZXZlbCwgbGF0ZW5jeSwKKwkJCQkgICAgIHdtX3BhcmFtcywgcmVzdWx0X3ByZXYsIHJlc3VsdCk7 CiAKIAkJcmVzdWx0X3ByZXYgPSByZXN1bHQ7CisJCWlmIChsZXZlbCA9PSAwKSB7CisJCQkvKgor CQkJICogRm9yIEdlbjEyIGlmIGl0IGlzIGFuIEwwIHdlIG5lZWQgdG8gYWxzbworCQkJICogY29u c2lkZXIgc2Fndl9ibG9ja190aW1lIHdoZW4gY2FsY3VsYXRpbmcKKwkJCSAqIEwwIHdhdGVybWFy ayAtIHdlIHdpbGwgbmVlZCB0aGF0IHdoZW4gbWFraW5nCisJCQkgKiBhIGRlY2lzaW9uIHdoZXRo ZXIgZW5hYmxlIFNBR1Ygb3Igbm90LgorCQkJICogRm9yIG9sZGVyIGdlbnMgd2UgYWdyZWVkIHRv IGNvcHkgTDAgdmFsdWUgZm9yCisJCQkgKiBjb21wYXRpYmlsaXR5LgorCQkJICovCisJCQlpZiAo KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCQkJbGF0ZW5jeSArPSBkZXZfcHJpdi0+ c2Fndl9ibG9ja190aW1lX3VzOworCQkJCXNrbF9jb21wdXRlX3BsYW5lX3dtKGNydGNfc3RhdGUs IGxldmVsLCBsYXRlbmN5LAorCQkJCSAgICAgd21fcGFyYW1zLCByZXN1bHRfcHJldiwKKwkJCQkg ICAgJnBsYW5lX3dtLT5zYWd2X3dtX2wwKTsKKwkJCX0KKwkJCWVsc2UgCisJCQkJbWVtY3B5KCZw bGFuZV93bS0+c2Fndl93bV9sMCwgJmxldmVsc1swXSwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBza2xf d21fbGV2ZWwpKTsKKwkJfQogCX0KIH0KIApAQCAtNDk3MSw3ICs1MTM1LDcgQEAgc3RhdGljIGlu dCBza2xfYnVpbGRfcGxhbmVfd21fc2luZ2xlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlza2xfY29tcHV0ZV93bV9sZXZl bHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20tPndtKTsKKwlza2xfY29tcHV0ZV93bV9sZXZl bHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20sIGZhbHNlKTsKIAlza2xfY29tcHV0ZV90cmFu c2l0aW9uX3dtKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtKTsKIAogCXJldHVybiAwOwpAQCAt NDk5Myw3ICs1MTU3LDcgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGxhbmVfd21fdXYoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAotCXNrbF9jb21wdXRlX3dtX2xldmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bS0+dXZf d20pOworCXNrbF9jb21wdXRlX3dtX2xldmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bSwg dHJ1ZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTU1NDQsMTAgKzU3MDgsMTMgQEAgc3RhdGljIGlu dCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIHN0YXRpYyBpbnQKIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7 CisJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpu ZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7 CiAJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1bHRzOwor CXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiA9ICZzdGF0ZS0+d21fcmVzdWx0cy5kZGI7 CiAJaW50IHJldCwgaTsKIAogCS8qIENsZWFyIGFsbCBkaXJ0eSBmbGFncyAqLwpAQCAtNTU1Nyw2 ICs1NzI0LDggQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCXN0YXRlLT5nZW4xMl9jYW5fc2FndiA9 IGZhbHNlOworCiAJLyoKIAkgKiBDYWxjdWxhdGUgV00ncyBmb3IgYWxsIHBpcGVzIHRoYXQgYXJl IHBhcnQgb2YgdGhpcyB0cmFuc2FjdGlvbi4KIAkgKiBOb3RlIHRoYXQgc2tsX2RkYl9hZGRfYWZm ZWN0ZWRfcGlwZXMgbWF5IGhhdmUgYWRkZWQgbW9yZSBDUlRDJ3MgdGhhdApAQCAtNTU3OSw2ICs1 NzQ4LDQ5IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogCQkJcmVzdWx0cy0+ZGlydHlfcGlwZXMgfD0gQklUKGNydGMtPnBpcGUpOwogCX0KIAorCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCisJCWdvdG8gY29tcHV0ZV9kZGI7CisKKwkvKgor CSAqIExldHMgYXNzdW1lIHdlIGNhbiB0b2xlcmF0ZSBTQUdWIGZvciBub3csCisJICogdW50aWwg d2F0ZXJtYXJrIGNhbGN1bGF0aW9ucyBwcm92ZSB0aGUgb3Bwb3NpdGUKKwkgKiBpZiBhbnkgb2Yg dGhlIHBpcGUgcGxhbmVzIGluIHRoZSBzdGF0ZSB3aWxsCisJICogZmFpbCB0aGUgcmVxdWlyZW1l bnRzIGl0IHdpbGwgYmUgYXNzaWduZWQgdG8gZmFsc2UKKwkgKiBpbiBza2xfY29tcHV0ZV9kZGIu CisJICovCisJc3RhdGUtPmdlbjEyX2Nhbl9zYWd2ID0gdHJ1ZTsKKworCWZvcl9lYWNoX29sZG5l d19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKKwkJCQkJ ICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCXJldCA9IHRnbF9jaGVja19waXBlX2ZpdHNfc2Fn dl93bShuZXdfY3J0Y19zdGF0ZSwgZGRiKTsKKwkJaWYgKHJldCkgeworCQkJc3RhdGUtPmdlbjEy X2Nhbl9zYWd2ID0gZmFsc2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChzdGF0ZS0+Z2Vu MTJfY2FuX3NhZ3YpIHsKKwkJLyoKKwkJICogSWYgd2UgZGV0ZXJtaW5lZCB0aGF0IHdlIGNhbiBh Y3R1YWxseSBlbmFibGUgU0FHViwgdGhlbgorCQkgKiBhY3R1YWxseSB1c2UgdGhvc2UgbGV2ZWxz IHRnbF9jaGVja19waXBlX2ZpdHNfc2Fndl93bQorCQkgKiBoYXMgYWxyZWFkeSB0YWtlbiBjYXJl IG9mIGNoZWNraW5nIGlmIEwwICsgc2FndiBibG9jayB0aW1lCisJCSAqIGZpdHMgaW50byBkZGIu CisJCSAqLworCQlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0 Yywgb2xkX2NydGNfc3RhdGUsCisJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQkJc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZTsKKwkJCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo JmRldl9wcml2LT5kcm0sIGNydGMsIHBsYW5lKSB7CisJCQkJZW51bSBwbGFuZV9pZCBwbGFuZV9p ZCA9IHBsYW5lLT5pZDsKKwkJCQlzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwbGFuZV93bSA9IFwKKwkJ CQkgICAgJm5ld19jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOwor CQkJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnNhZ3Zfd20wID0gJnBsYW5lX3dtLT5zYWd2X3dtX2ww OworCQkJCXN0cnVjdCBza2xfd21fbGV2ZWwgKmwwX3dtMCA9ICZwbGFuZV93bS0+d21bMF07CisJ CQkJbWVtY3B5KGwwX3dtMCwgc2Fndl93bTAsIHNpemVvZihzdHJ1Y3Qgc2tsX3dtX2xldmVsKSk7 CisJCQl9CisJCX0KKwl9CisKK2NvbXB1dGVfZGRiOgogCXJldCA9IHNrbF9jb21wdXRlX2RkYihz dGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3781CA9EB6 for ; Wed, 23 Oct 2019 09:10:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C325B20659 for ; Wed, 23 Oct 2019 09:10:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C325B20659 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 45EA36EA03; Wed, 23 Oct 2019 09:10:39 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCCD46E9FE for ; Wed, 23 Oct 2019 09:10:34 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Oct 2019 02:10:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,220,1569308400"; d="scan'208";a="191773402" Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com ([10.237.72.89]) by orsmga008.jf.intel.com with ESMTP; 23 Oct 2019 02:10:32 -0700 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Wed, 23 Oct 2019 12:08:03 +0300 Message-Id: <20191023090804.26607-2-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191023090804.26607-1-stanislav.lisovskiy@intel.com> References: <20191023090804.26607-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v6 1/2] drm/i915: Refactor intel_can_enable_sagv X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: martin.peres@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191023090803.GXUU4j9HjtnSysw3ft1YsanFj4CXyxoHU7tj2K_isyI@z> Q3VycmVudGx5IGludGVsX2Nhbl9lbmFibGVfc2FndiBmdW5jdGlvbiBjb250YWlucwphIG1peCBv ZiB3b3JrYXJvdW5kcyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcwpzb21lIG9mIHRoZW0gYXJlIG5v dCB2YWxpZCBmb3IgZ2VucyA+PSAxMSBhbHJlYWR5LApzbyBsZXRzIHNwbGl0IGl0IGludG8gc2Vw YXJhdGUgZnVuY3Rpb25zLgoKdjI6CiAgICAtIFJld29yayB3YXRlcm1hcmsgY2FsY3VsYXRpb24g YWxnb3JpdGhtIHRvCiAgICAgIGF0dGVtcHQgdG8gY2FsY3VsYXRlIExldmVsIDAgd2F0ZXJtYXJr CiAgICAgIHdpdGggYWRkZWQgc2FndiBibG9jayB0aW1lIGxhdGVuY3kgYW5kCiAgICAgIGNoZWNr IGlmIGl0IGZpdHMgaW4gREJ1ZiBpbiBvcmRlciB0bwogICAgICBkZXRlcm1pbmUgaWYgU0FHViBj YW4gYmUgZW5hYmxlZCBhbHJlYWR5CiAgICAgIGF0IHRoaXMgc3RhZ2UsIGp1c3QgYXMgQlNwZWMg NDkzMjUgc3RhdGVzLgogICAgICBpZiB0aGF0IGZhaWxzIHJvbGxiYWNrIHRvIHVzdWFsIExldmVs IDAKICAgICAgbGF0ZW5jeSBhbmQgZGlzYWJsZSBTQUdWLgogICAgLSBSZW1vdmUgdW5uZWVkZWQg dGFicyhKYW1lcyBBdXNtdXMpCgp2MzogUmViYXNlZCB0aGUgcGF0Y2gKClNpZ25lZC1vZmYtYnk6 IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgpDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT4KQ2M6IEphbWVzIEF1c211 cyA8amFtZXMuYXVzbXVzQGludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDggKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgICAgICAgICAgIHwgMjI4ICsrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFu Z2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IDgzNTgxNTJl NDAzZS4uZjA5YzgwYzk2NDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaApAQCAtNDkwLDYgKzQ5MCwxMyBAQCBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlIHsKIAkgKi8KIAl1OCBhY3RpdmVfcGlwZV9jaGFuZ2VzOwogCisJLyoK KwkgKiBGb3IgR2VuMTIgb25seSBhZnRlciBjYWxjdWxhdGluZyB3YXRlcm1hcmtzIHdpdGgKKwkg KiBhZGRpdGlvbmFsIGxhdGVuY3ksIHdlIGNhbiBkZXRlcm1pbmUgaWYgU0FHViBjYW4gYmUgZW5h YmxlZAorCSAqIG9yIG5vdCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24uCisJICov CisJYm9vbCBnZW4xMl9jYW5fc2FndjsKKwogCXU4IGFjdGl2ZV9waXBlczsKIAkvKiBtaW5pbXVt IGFjY2VwdGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLwogCWludCBtaW5fY2RjbGtbSTkxNV9N QVhfUElQRVNdOwpAQCAtNjQyLDYgKzY0OSw3IEBAIHN0cnVjdCBza2xfcGxhbmVfd20gewogCXN0 cnVjdCBza2xfd21fbGV2ZWwgd21bOF07CiAJc3RydWN0IHNrbF93bV9sZXZlbCB1dl93bVs4XTsK IAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHRyYW5zX3dtOworCXN0cnVjdCBza2xfd21fbGV2ZWwgc2Fn dl93bV9sMDsKIAlib29sIGlzX3BsYW5hcjsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmlu ZGV4IDM2MjIzNDQ0OTA4Ny4uYzA0MTllNGQ4M2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK QEAgLTM3NTEsNyArMzc1MSw3IEBAIGludGVsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiB9CiAKLWJvb2wgaW50ZWxfY2FuX2VuYWJs ZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQorYm9vbCBza2xfY2FuX2Vu YWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwpAQCAtMzgxNyw2ICszODE3LDc1IEBAIGJvb2wg aW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CXJldHVybiB0cnVlOwogfQogCitib29sIGljbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm5ld19jcnRjX3N0YXRlOworCWludCBsZXZlbCwgbGF0ZW5jeTsKKwlpbnQgaTsKKwlpbnQg cGxhbmVfaWQ7CisKKwlpZiAoIWludGVsX2hhc19zYWd2KGRldl9wcml2KSkKKwkJcmV0dXJuIGZh bHNlOworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgbm8gYWN0aXZlIENSVENzLCBubyBhZGRpdGlv bmFsIGNoZWNrcyBuZWVkIGJlIHBlcmZvcm1lZAorCSAqLworCWlmIChod2VpZ2h0OChzdGF0ZS0+ YWN0aXZlX3BpcGVzKSA9PSAwKQorCQlyZXR1cm4gdHJ1ZTsKKworCWZvcl9lYWNoX25ld19pbnRl bF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgIG5ld19jcnRjX3N0YXRlLCBp KSB7CisKKwkJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCXJldHVybiBmYWxzZTsKKworCQlpZiAoIW5ld19jcnRj X3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJCWNvbnRpbnVlOworCisJCWZvcl9lYWNoX3BsYW5lX2lk X29uX2NydGMoY3J0YywgcGxhbmVfaWQpIHsKKwkJCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0K KwkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisK KwkJCS8qIFNraXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFibGVkICovCisJCQlpZiAoIXdt LT53bVswXS5wbGFuZV9lbikKKwkJCQljb250aW51ZTsKKworCQkJLyogRmluZCB0aGUgaGlnaGVz dCBlbmFibGVkIHdtIGxldmVsIGZvciB0aGlzIHBsYW5lICovCisJCQlmb3IgKGxldmVsID0gaWxr X3dtX21heF9sZXZlbChkZXZfcHJpdik7CisJCQkgICAgICF3bS0+d21bbGV2ZWxdLnBsYW5lX2Vu OyAtLWxldmVsKQorCQkJICAgICB7IH0KKworCQkJbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xf bGF0ZW5jeVtsZXZlbF07CisKKwkJCS8qCisJCQkgKiBJZiBhbnkgb2YgdGhlIHBsYW5lcyBvbiB0 aGlzIHBpcGUgZG9uJ3QgZW5hYmxlIHdtIGxldmVscyB0aGF0CisJCQkgKiBpbmN1ciBtZW1vcnkg bGF0ZW5jaWVzIGhpZ2hlciB0aGFuIHNhZ3ZfYmxvY2tfdGltZV91cyB3ZQorCQkJICogY2FuJ3Qg ZW5hYmxlIFNBR1YuCisJCQkgKi8KKwkJCWlmIChsYXRlbmN5IDwgZGV2X3ByaXYtPnNhZ3ZfYmxv Y2tfdGltZV91cykKKwkJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKKwlyZXR1cm4gdHJ1ZTsK K30KKworYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisKKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJcmV0dXJuIHN0YXRlLT5nZW4xMl9jYW5f c2FndjsKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDExKQorCQlyZXR1cm4gaWNs X2Nhbl9lbmFibGVfc2FndihzdGF0ZSk7CisKKwlyZXR1cm4gc2tsX2Nhbl9lbmFibGVfc2Fndihz dGF0ZSk7Cit9CisKIHN0YXRpYyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgY29uc3QgdTY0IHRvdGFsX2RhdGFfcmF0ZSwKQEAg LTM5MzYsNiArNDAwNSw3IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfd21fcGFyYW1zKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgY29sb3JfcGxh bmUpOwogc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwKKwkJCQkgdTMyIGxhdGVu Y3ksCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgY29uc3Qgc3Ry dWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCiAJCQkJIHN0cnVjdCBza2xfd21fbGV2ZWwg KnJlc3VsdCAvKiBvdXQgKi8pOwpAQCAtMzk1OCw3ICs0MDI4LDggQEAgc2tsX2N1cnNvcl9hbGxv Y2F0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCVdBUk5f T04ocmV0KTsKIAogCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKysp IHsKLQkJc2tsX2NvbXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsICZ3cCwgJndtLCAm d20pOworCQl1MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CisJ CXNrbF9jb21wdXRlX3BsYW5lX3dtKGNydGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LCAmd3AsICZ3 bSwgJndtKTsKIAkJaWYgKHdtLm1pbl9kZGJfYWxsb2MgPT0gVTE2X01BWCkKIAkJCWJyZWFrOwog CkBAIC00MzEwLDYgKzQzODEsNzMgQEAgaWNsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIHRvdGFsX2RhdGFf cmF0ZTsKIH0KIAorc3RhdGljIGludAordGdsX2NoZWNrX3BpcGVfZml0c19zYWd2X3dtKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9h bGxvY2F0aW9uICpkZGIgLyogb3V0ICovKQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNy dGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYyA9ICZjcnRj X3N0YXRlLT53bS5za2wuZGRiOworCXUxNiBhbGxvY19zaXplOworCXUxNiB0b3RhbFtJOTE1X01B WF9QTEFORVNdID0ge307CisJdTY0IHRvdGFsX2RhdGFfcmF0ZTsKKwllbnVtIHBsYW5lX2lkIHBs YW5lX2lkOworCWludCBudW1fYWN0aXZlOworCXU2NCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhf UExBTkVTXSA9IHt9OworCXU2NCB1dl9wbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9 IHt9OworCXUzMiBibG9ja3M7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKKwkJ dG90YWxfZGF0YV9yYXRlID0KKwkJCWljbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNy dGNfc3RhdGUsCisJCQkJCQkJIHBsYW5lX2RhdGFfcmF0ZSk7CisJZWxzZQorCQl0b3RhbF9kYXRh X3JhdGUgPQorCQkJc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3J0Y19zdGF0ZSwK KwkJCQkJCQkgcGxhbmVfZGF0YV9yYXRlLAorCQkJCQkJCSB1dl9wbGFuZV9kYXRhX3JhdGUpOwor CisKKwlza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKGRldl9wcml2LCBjcnRjX3N0 YXRlLCB0b3RhbF9kYXRhX3JhdGUsCisJCQkJCSAgIGRkYiwgYWxsb2MsICZudW1fYWN0aXZlKTsK KwlhbGxvY19zaXplID0gc2tsX2RkYl9lbnRyeV9zaXplKGFsbG9jKTsKKwlpZiAoYWxsb2Nfc2l6 ZSA9PSAwKQorCQlyZXR1cm4gLUVOT1NQQzsKKworCS8qIEFsbG9jYXRlIGZpeGVkIG51bWJlciBv ZiBibG9ja3MgZm9yIGN1cnNvci4gKi8KKwl0b3RhbFtQTEFORV9DVVJTT1JdID0gc2tsX2N1cnNv cl9hbGxvY2F0aW9uKGNydGNfc3RhdGUsIG51bV9hY3RpdmUpOworCWFsbG9jX3NpemUgLT0gdG90 YWxbUExBTkVfQ1VSU09SXTsKKwljcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVf Q1VSU09SXS5zdGFydCA9CisJCWFsbG9jLT5lbmQgLSB0b3RhbFtQTEFORV9DVVJTT1JdOworCWNy dGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5l bmQ7CisKKwkvKgorCSAqIERvIGNoZWNrIGlmIHdlIGNhbiBmaXQgTDAgKyBzYWd2X2Jsb2NrX3Rp bWUgYW5kCisJICogZGlzYWJsZSBTQUdWIGlmIHdlIGNhbid0LgorCSAqLworCWJsb2NrcyA9IDA7 CisJZm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhpbnRlbF9jcnRjLCBwbGFuZV9pZCkgeworCQlj b25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSA9CisJCQkmY3J0Y19zdGF0ZS0+d20uc2tsLm9w dGltYWwucGxhbmVzW3BsYW5lX2lkXTsKKworCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09S KSB7CisJCQlpZiAoV0FSTl9PTih3bS0+c2Fndl93bV9sMC5taW5fZGRiX2FsbG9jID4KKwkJCQkg ICAgdG90YWxbUExBTkVfQ1VSU09SXSkpIHsKKwkJCQlibG9ja3MgPSBVMzJfTUFYOworCQkJCWJy ZWFrOworCQkJfQorCQkJY29udGludWU7CisJCX0KKworCQlibG9ja3MgKz0gd20tPnNhZ3Zfd21f bDAubWluX2RkYl9hbGxvYzsKKwkJaWYgKGJsb2NrcyA+IGFsbG9jX3NpemUpIHsKKwkJCXJldHVy biAtRU5PU1BDOworCQl9CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBza2xfYWxs b2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAg ICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCkBAIC00NzM5LDEy ICs0ODc3LDEyIEBAIHN0YXRpYyBib29sIHNrbF93bV9oYXNfbGluZXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgbGV2ZWwpCiAKIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRl X3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ CSBpbnQgbGV2ZWwsCisJCQkJIHUzMiBsYXRlbmN5LAogCQkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dt X3BhcmFtcyAqd3AsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2 LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOwotCXUzMiBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVs XTsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKIAl1aW50X2ZpeGVkXzE2 XzE2X3Qgc2VsZWN0ZWRfcmVzdWx0OwogCXUzMiByZXNfYmxvY2tzLCByZXNfbGluZXMsIG1pbl9k ZGJfYWxsb2MgPSAwOwpAQCAtNDg2NSwxOSArNTAwMyw0NSBAQCBzdGF0aWMgdm9pZCBza2xfY29t cHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHN0YXRpYyB2b2lkCiBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1z ICp3bV9wYXJhbXMsCi0JCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKKwkJICAg ICAgc3RydWN0IHNrbF9wbGFuZV93bSAqcGxhbmVfd20sCisJCSAgICAgIGJvb2wgeXV2KQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZl bChkZXZfcHJpdik7CisJLyoKKwkgKiBDaGVjayB3aGljaCBraW5kIG9mIHBsYW5lIGlzIGl0IGFu ZCBiYXNlZCBvbiB0aGF0IGNhbGN1bGF0ZQorCSAqIGNvcnJlc3BvbmRlbnQgV00gbGV2ZWxzLgor CSAqLworCXN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscyA9IHl1diA/IHBsYW5lX3dtLT51dl93 bSA6IHBsYW5lX3dtLT53bTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRfcHJldiA9ICZs ZXZlbHNbMF07CiAKIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsr KSB7CiAJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCA9ICZsZXZlbHNbbGV2ZWxdOworCQl1 MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAKLQkJc2tsX2Nv bXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsIHdtX3BhcmFtcywKLQkJCQkgICAgIHJl c3VsdF9wcmV2LCByZXN1bHQpOworCQlza2xfY29tcHV0ZV9wbGFuZV93bShjcnRjX3N0YXRlLCBs ZXZlbCwgbGF0ZW5jeSwKKwkJCQkgICAgIHdtX3BhcmFtcywgcmVzdWx0X3ByZXYsIHJlc3VsdCk7 CiAKIAkJcmVzdWx0X3ByZXYgPSByZXN1bHQ7CisJCWlmIChsZXZlbCA9PSAwKSB7CisJCQkvKgor CQkJICogRm9yIEdlbjEyIGlmIGl0IGlzIGFuIEwwIHdlIG5lZWQgdG8gYWxzbworCQkJICogY29u c2lkZXIgc2Fndl9ibG9ja190aW1lIHdoZW4gY2FsY3VsYXRpbmcKKwkJCSAqIEwwIHdhdGVybWFy ayAtIHdlIHdpbGwgbmVlZCB0aGF0IHdoZW4gbWFraW5nCisJCQkgKiBhIGRlY2lzaW9uIHdoZXRo ZXIgZW5hYmxlIFNBR1Ygb3Igbm90LgorCQkJICogRm9yIG9sZGVyIGdlbnMgd2UgYWdyZWVkIHRv IGNvcHkgTDAgdmFsdWUgZm9yCisJCQkgKiBjb21wYXRpYmlsaXR5LgorCQkJICovCisJCQlpZiAo KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCQkJbGF0ZW5jeSArPSBkZXZfcHJpdi0+ c2Fndl9ibG9ja190aW1lX3VzOworCQkJCXNrbF9jb21wdXRlX3BsYW5lX3dtKGNydGNfc3RhdGUs IGxldmVsLCBsYXRlbmN5LAorCQkJCSAgICAgd21fcGFyYW1zLCByZXN1bHRfcHJldiwKKwkJCQkg ICAgJnBsYW5lX3dtLT5zYWd2X3dtX2wwKTsKKwkJCX0KKwkJCWVsc2UgCisJCQkJbWVtY3B5KCZw bGFuZV93bS0+c2Fndl93bV9sMCwgJmxldmVsc1swXSwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBza2xf d21fbGV2ZWwpKTsKKwkJfQogCX0KIH0KIApAQCAtNDk3MSw3ICs1MTM1LDcgQEAgc3RhdGljIGlu dCBza2xfYnVpbGRfcGxhbmVfd21fc2luZ2xlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlza2xfY29tcHV0ZV93bV9sZXZl bHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20tPndtKTsKKwlza2xfY29tcHV0ZV93bV9sZXZl bHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20sIGZhbHNlKTsKIAlza2xfY29tcHV0ZV90cmFu c2l0aW9uX3dtKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtKTsKIAogCXJldHVybiAwOwpAQCAt NDk5Myw3ICs1MTU3LDcgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGxhbmVfd21fdXYoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAotCXNrbF9jb21wdXRlX3dtX2xldmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bS0+dXZf d20pOworCXNrbF9jb21wdXRlX3dtX2xldmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bSwg dHJ1ZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTU1NDQsMTAgKzU3MDgsMTMgQEAgc3RhdGljIGlu dCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIHN0YXRpYyBpbnQKIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7 CisJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpu ZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7 CiAJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1bHRzOwor CXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiA9ICZzdGF0ZS0+d21fcmVzdWx0cy5kZGI7 CiAJaW50IHJldCwgaTsKIAogCS8qIENsZWFyIGFsbCBkaXJ0eSBmbGFncyAqLwpAQCAtNTU1Nyw2 ICs1NzI0LDggQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCXN0YXRlLT5nZW4xMl9jYW5fc2FndiA9 IGZhbHNlOworCiAJLyoKIAkgKiBDYWxjdWxhdGUgV00ncyBmb3IgYWxsIHBpcGVzIHRoYXQgYXJl IHBhcnQgb2YgdGhpcyB0cmFuc2FjdGlvbi4KIAkgKiBOb3RlIHRoYXQgc2tsX2RkYl9hZGRfYWZm ZWN0ZWRfcGlwZXMgbWF5IGhhdmUgYWRkZWQgbW9yZSBDUlRDJ3MgdGhhdApAQCAtNTU3OSw2ICs1 NzQ4LDQ5IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogCQkJcmVzdWx0cy0+ZGlydHlfcGlwZXMgfD0gQklUKGNydGMtPnBpcGUpOwogCX0KIAorCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCisJCWdvdG8gY29tcHV0ZV9kZGI7CisKKwkvKgor CSAqIExldHMgYXNzdW1lIHdlIGNhbiB0b2xlcmF0ZSBTQUdWIGZvciBub3csCisJICogdW50aWwg d2F0ZXJtYXJrIGNhbGN1bGF0aW9ucyBwcm92ZSB0aGUgb3Bwb3NpdGUKKwkgKiBpZiBhbnkgb2Yg dGhlIHBpcGUgcGxhbmVzIGluIHRoZSBzdGF0ZSB3aWxsCisJICogZmFpbCB0aGUgcmVxdWlyZW1l bnRzIGl0IHdpbGwgYmUgYXNzaWduZWQgdG8gZmFsc2UKKwkgKiBpbiBza2xfY29tcHV0ZV9kZGIu CisJICovCisJc3RhdGUtPmdlbjEyX2Nhbl9zYWd2ID0gdHJ1ZTsKKworCWZvcl9lYWNoX29sZG5l d19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKKwkJCQkJ ICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCXJldCA9IHRnbF9jaGVja19waXBlX2ZpdHNfc2Fn dl93bShuZXdfY3J0Y19zdGF0ZSwgZGRiKTsKKwkJaWYgKHJldCkgeworCQkJc3RhdGUtPmdlbjEy X2Nhbl9zYWd2ID0gZmFsc2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChzdGF0ZS0+Z2Vu MTJfY2FuX3NhZ3YpIHsKKwkJLyoKKwkJICogSWYgd2UgZGV0ZXJtaW5lZCB0aGF0IHdlIGNhbiBh Y3R1YWxseSBlbmFibGUgU0FHViwgdGhlbgorCQkgKiBhY3R1YWxseSB1c2UgdGhvc2UgbGV2ZWxz IHRnbF9jaGVja19waXBlX2ZpdHNfc2Fndl93bQorCQkgKiBoYXMgYWxyZWFkeSB0YWtlbiBjYXJl IG9mIGNoZWNraW5nIGlmIEwwICsgc2FndiBibG9jayB0aW1lCisJCSAqIGZpdHMgaW50byBkZGIu CisJCSAqLworCQlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0 Yywgb2xkX2NydGNfc3RhdGUsCisJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQkJc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZTsKKwkJCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo JmRldl9wcml2LT5kcm0sIGNydGMsIHBsYW5lKSB7CisJCQkJZW51bSBwbGFuZV9pZCBwbGFuZV9p ZCA9IHBsYW5lLT5pZDsKKwkJCQlzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwbGFuZV93bSA9IFwKKwkJ CQkgICAgJm5ld19jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdOwor CQkJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnNhZ3Zfd20wID0gJnBsYW5lX3dtLT5zYWd2X3dtX2ww OworCQkJCXN0cnVjdCBza2xfd21fbGV2ZWwgKmwwX3dtMCA9ICZwbGFuZV93bS0+d21bMF07CisJ CQkJbWVtY3B5KGwwX3dtMCwgc2Fndl93bTAsIHNpemVvZihzdHJ1Y3Qgc2tsX3dtX2xldmVsKSk7 CisJCQl9CisJCX0KKwl9CisKK2NvbXB1dGVfZGRiOgogCXJldCA9IHNrbF9jb21wdXRlX2RkYihz dGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4