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=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 32AA6C43460 for ; Wed, 21 Apr 2021 16:49:14 +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 C6E106144C for ; Wed, 21 Apr 2021 16:49:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6E106144C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 373756E9DA; Wed, 21 Apr 2021 16:49:13 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 89A6C6E9DA for ; Wed, 21 Apr 2021 16:49:11 +0000 (UTC) IronPort-SDR: GAhLXQTZhPfEG+0e4SeF0DqNzrTMPj/+FdSP/frsssrwW9/gfrjNW+ff+Wv9aNGhjtV5ecM6XK 1q1dAQBIA1xQ== X-IronPort-AV: E=McAfee;i="6200,9189,9961"; a="257046362" X-IronPort-AV: E=Sophos;i="5.82,240,1613462400"; d="scan'208";a="257046362" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2021 09:49:10 -0700 IronPort-SDR: QrzVftL5SZHieZXa4X9kODZs1cf2IfBLalX4YYjRK1+4HLNw//BoMTptuFU+aPJSJR6YV4BpU7 NetCWYOTrgaQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,240,1613462400"; d="scan'208";a="463643517" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by orsmga001.jf.intel.com with SMTP; 21 Apr 2021 09:49:08 -0700 Received: by stinkbox (sSMTP sendmail emulation); Wed, 21 Apr 2021 19:49:08 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Wed, 21 Apr 2021 19:48:38 +0300 Message-Id: <20210421164849.12806-7-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210421164849.12806-1-ville.syrjala@linux.intel.com> References: <20210421164849.12806-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 06/17] drm/i915: Introduce intel_get_buf_trans() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBhIHNtYWxsIGhlbHBlciB0byBnZXQgdGhlIGJ1ZiB0cmFucyBlbnRyaXMrbnVtX2VudHJpZXMK ZnJvbSB0aGUgc3RydWN0LiBTaG91bGQgYXZvaWQgY29weS1wYXN0ZSBlcnJvcnMgaW4gdGhlCnBs YXRmb3JtIHNwZWNpZmljIGdldF9idWZfdHJhbnMoKSBmdW5jdGlvbnMuCgpAQAppZGVudGlmaWVy IFQsIE47CkBACi0gKk4gPSBULm51bV9lbnRyaWVzOwotIHJldHVybiBULmVudHJpZXM7CisgcmV0 dXJuIGludGVsX2dldF9idWZfdHJhbnMoJlQsIE4pOwoKQEAKQEAKaXNfaG9ibF9idWZfdHJhbnMo Li4uKSB7IC4uLiB9CisKKyBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSAqCisgaW50ZWxfZ2V0X2J1Zl90cmFucyhjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqZGRpX3RyYW5zbGF0aW9ucywgaW50ICpudW1fZW50cmllcykKKyB7CisJKm51bV9lbnRy aWVzID0gZGRpX3RyYW5zbGF0aW9ucy0+bnVtX2VudHJpZXM7CisJcmV0dXJuIGRkaV90cmFuc2xh dGlvbnMtPmVudHJpZXM7CisgfQoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGlfYnVmX3RyYW5zLmMgICAgfCAyNDUgKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDEyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jCmluZGV4IGY4NzUz MzIwMDMyMi4uNDEzZTNjNTUwMjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYwpAQCAtOTkzLDE3ICs5OTMsMjQgQEAgYm9vbCBp c19ob2JsX2J1Zl90cmFucyhjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICp0 YWJsZSkKIAlyZXR1cm4gdGFibGUgPT0gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Vk cF9oYnIyX2hvYmwuZW50cmllczsKIH0KIAorc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgKgoraW50ZWxfZ2V0X2J1Zl90cmFucyhjb25zdCBzdHJ1Y3QgaW50ZWxf ZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9ucywgaW50ICpudW1fZW50cmllcykKK3sKKwkq bnVtX2VudHJpZXMgPSBkZGlfdHJhbnNsYXRpb25zLT5udW1fZW50cmllczsKKwlyZXR1cm4gZGRp X3RyYW5zbGF0aW9ucy0+ZW50cmllczsKK30KKwogc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgKgogYmR3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAogCWlmIChkZXZf cHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCSpuX2VudHJpZXMgPSBiZHdfZGRpX3RyYW5z bGF0aW9uc19lZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiBiZHdfZGRpX3RyYW5zbGF0aW9uc19l ZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNs YXRpb25zX2VkcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2UgewotCQkqbl9lbnRyaWVz ID0gYmR3X2RkaV90cmFuc2xhdGlvbnNfZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiBiZHdfZGRp X3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygm YmR3X2RkaV90cmFuc2xhdGlvbnNfZHAsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogfQogCkBA IC0xMDEzLDE0ICsxMDIwLDE0IEBAIHNrbF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAogCWlmIChJU19TS0xf VUxYKGRldl9wcml2KSkgewotCQkqbl9lbnRyaWVzID0gc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19k cC5udW1fZW50cmllczsKLQkJcmV0dXJuIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmll czsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF95X2RkaV90cmFuc2xhdGlvbnNf ZHAsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldl9wcml2 KSkgewotCQkqbl9lbnRyaWVzID0gc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmll czsKLQkJcmV0dXJuIHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJu IGludGVsX2dldF9idWZfdHJhbnMoJnNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHAsCisJCQkJCSAg IG5fZW50cmllcyk7CiAJfSBlbHNlIHsKLQkJKm5fZW50cmllcyA9IHNrbF9kZGlfdHJhbnNsYXRp b25zX2RwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHAuZW50 cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF9kZGlfdHJhbnNsYXRpb25z X2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0KIH0KIApAQCAtMTAzMiwxNiArMTAzOSwxNiBA QCBrYmxfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50 ICpuX2VudHJpZXMpCiAJaWYgKElTX0tCTF9VTFgoZGV2X3ByaXYpIHx8CiAJICAgIElTX0NGTF9V TFgoZGV2X3ByaXYpIHx8CiAJICAgIElTX0NNTF9VTFgoZGV2X3ByaXYpKSB7Ci0JCSpuX2VudHJp ZXMgPSBrYmxfeV9kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4ga2Js X3lfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90 cmFucygma2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9 IGVsc2UgaWYgKElTX0tCTF9VTFQoZGV2X3ByaXYpIHx8CiAJCSAgIElTX0NGTF9VTFQoZGV2X3By aXYpIHx8CiAJCSAgIElTX0NNTF9VTFQoZGV2X3ByaXYpKSB7Ci0JCSpuX2VudHJpZXMgPSBrYmxf dV9kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4ga2JsX3VfZGRpX3Ry YW5zbGF0aW9uc19kcC5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygma2Js X3VfZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2Ugewot CQkqbl9lbnRyaWVzID0ga2JsX2RkaV90cmFuc2xhdGlvbnNfZHAubnVtX2VudHJpZXM7Ci0JCXJl dHVybiBrYmxfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0 X2J1Zl90cmFucygma2JsX2RkaV90cmFuc2xhdGlvbnNfZHAsCisJCQkJCSAgIG5fZW50cmllcyk7 CiAJfQogfQogCkBAIC0xMDU1LDE3ICsxMDYyLDE3IEBAIHNrbF9nZXRfYnVmX3RyYW5zX2VkcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJCSAgICBJU19L QkxfVUxYKGRldl9wcml2KSB8fAogCQkgICAgSVNfQ0ZMX1VMWChkZXZfcHJpdikgfHwKIAkJICAg IElTX0NNTF9VTFgoZGV2X3ByaXYpKSB7Ci0JCQkqbl9lbnRyaWVzID0gc2tsX3lfZGRpX3RyYW5z bGF0aW9uc19lZHAubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gc2tsX3lfZGRpX3RyYW5zbGF0aW9u c19lZHAuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfeV9kZGlf dHJhbnNsYXRpb25zX2VkcCwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0gZWxzZSBpZiAoSVNf U0tMX1VMVChkZXZfcHJpdikgfHwKIAkJCSAgIElTX0tCTF9VTFQoZGV2X3ByaXYpIHx8CiAJCQkg ICBJU19DRkxfVUxUKGRldl9wcml2KSB8fAogCQkJICAgSVNfQ01MX1VMVChkZXZfcHJpdikpIHsK LQkJCSpuX2VudHJpZXMgPSBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcC5udW1fZW50cmllczsK LQkJCXJldHVybiBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcC5lbnRyaWVzOworCQkJcmV0dXJu IGludGVsX2dldF9idWZfdHJhbnMoJnNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwLAorCQkJCQkJ ICAgbl9lbnRyaWVzKTsKIAkJfSBlbHNlIHsKLQkJCSpuX2VudHJpZXMgPSBza2xfZGRpX3RyYW5z bGF0aW9uc19lZHAubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gc2tsX2RkaV90cmFuc2xhdGlvbnNf ZWRwLmVudHJpZXM7CisJCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmc2tsX2RkaV90cmFu c2xhdGlvbnNfZWRwLAorCQkJCQkJICAgbl9lbnRyaWVzKTsKIAkJfQogCX0KIApAQCAtMTA4NCwx MSArMTA5MSwxMSBAQCBza2xfZ2V0X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCiAJICAgIElTX0tCTF9VTFgoZGV2X3ByaXYp IHx8CiAJICAgIElTX0NGTF9VTFgoZGV2X3ByaXYpIHx8CiAJICAgIElTX0NNTF9VTFgoZGV2X3By aXYpKSB7Ci0JCSpuX2VudHJpZXMgPSBza2xfeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2Vu dHJpZXM7Ci0JCXJldHVybiBza2xfeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50cmllczsKKwkJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwK KwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2UgewotCQkqbl9lbnRyaWVzID0gc2tsX2RkaV90 cmFuc2xhdGlvbnNfaGRtaS5udW1fZW50cmllczsKLQkJcmV0dXJuIHNrbF9kZGlfdHJhbnNsYXRp b25zX2hkbWkuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF9kZGlf dHJhbnNsYXRpb25zX2hkbWksCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogfQogCkBAIC0xMTE5 LDExICsxMTI2LDExIEBAIGhzd19nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAkJKm5fZW50cmllcyA9IHNrbF9idWZfdHJhbnNf bnVtX2VudHJpZXMoZW5jb2Rlci0+cG9ydCwgKm5fZW50cmllcyk7CiAJCXJldHVybiBkZGlfdHJh bnNsYXRpb25zOwogCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewotCQkqbl9l bnRyaWVzID0gYmR3X2RkaV90cmFuc2xhdGlvbnNfZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiAg YmR3X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZf dHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0g ZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IGhzd19kZGlf dHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gaHN3X2RkaV90cmFuc2xhdGlv bnNfZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmhzd19kZGlfdHJh bnNsYXRpb25zX2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0KIAogCSpuX2VudHJpZXMgPSAw OwpAQCAtMTE0Myw4ICsxMTUwLDggQEAgaHN3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAl9IGVsc2UgaWYgKElTX0JST0FE V0VMTChkZXZfcHJpdikpIHsKIAkJcmV0dXJuIGJkd19nZXRfYnVmX3RyYW5zX2VkcChlbmNvZGVy LCBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJKm5f ZW50cmllcyA9IGhzd19kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4g aHN3X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZf dHJhbnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0K IAogCSpuX2VudHJpZXMgPSAwOwpAQCAtMTE1OCwxMSArMTE2NSwxMSBAQCBoc3dfZ2V0X2J1Zl90 cmFuc19mZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKIAlpZiAo SVNfQlJPQURXRUxMKGRldl9wcml2KSkgewotCQkqbl9lbnRyaWVzID0gYmR3X2RkaV90cmFuc2xh dGlvbnNfZmRpLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRp LmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZiZHdfZGRpX3RyYW5zbGF0 aW9uc19mZGksCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRl dl9wcml2KSkgewotCQkqbl9lbnRyaWVzID0gaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpLm51bV9l bnRyaWVzOwotCQlyZXR1cm4gaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpLmVudHJpZXM7CisJCXJl dHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGksCisJCQkJ CSAgIG5fZW50cmllcyk7CiAJfQogCiAJKm5fZW50cmllcyA9IDA7CkBAIC0xMTc4LDExICsxMTg1 LDExIEBAIGhzd19nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJaWYgKERJU1BMQVlfVkVSKGRldl9wcml2KSA9PSA5ICYmICFJU19CUk9YVE9OKGRldl9w cml2KSkgewogCQlyZXR1cm4gc2tsX2dldF9idWZfdHJhbnNfaGRtaShkZXZfcHJpdiwgbl9lbnRy aWVzKTsKIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmll cyA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JCXJldHVybiBiZHdf ZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0g ZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IGhzd19kZGlf dHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JCXJldHVybiBoc3dfZGRpX3RyYW5zbGF0 aW9uc19oZG1pLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZoc3dfZGRp X3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0KIAogCSpuX2VudHJp ZXMgPSAwOwpAQCAtMTIwNyw4ICsxMjE0LDcgQEAgaHN3X2dldF9idWZfdHJhbnMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSAqCiBieHRfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmllcyA9IGJ4dF9kZGlfdHJhbnNs YXRpb25zX2RwLm51bV9lbnRyaWVzOwotCXJldHVybiBieHRfZGRpX3RyYW5zbGF0aW9uc19kcC5l bnRyaWVzOworCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0aW9u c19kcCwgbl9lbnRyaWVzKTsKIH0KIAogc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgKgpAQCAtMTIxNyw4ICsxMjIzLDggQEAgYnh0X2dldF9idWZfdHJhbnNfZWRw KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAogCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCSpuX2VudHJpZXMgPSBi eHRfZGRpX3RyYW5zbGF0aW9uc19lZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiBieHRfZGRpX3Ry YW5zbGF0aW9uc19lZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJ4 dF9kZGlfdHJhbnNsYXRpb25zX2VkcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9CiAKIAlyZXR1 cm4gYnh0X2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKQEAgLTEyMjcsOCAr MTIzMyw3IEBAIGJ4dF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwgaW50ICpuX2VudHJpZXMpCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSAqCiBieHRfZ2V0X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0gYnh0X2RkaV90cmFu c2xhdGlvbnNfaGRtaS5udW1fZW50cmllczsKLQlyZXR1cm4gYnh0X2RkaV90cmFuc2xhdGlvbnNf aGRtaS5lbnRyaWVzOworCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5z bGF0aW9uc19oZG1pLCBuX2VudHJpZXMpOwogfQogCiBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5ICoKQEAgLTEyNTAsMTQgKzEyNTUsMTQgQEAgY25sX2dldF9idWZfdHJhbnNf aGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJdTMy IHZvbHRhZ2UgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBDTkxfUE9SVF9DT01QX0RXMykgJiBW T0xUQUdFX0lORk9fTUFTSzsKIAogCWlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18wXzg1Vikg ewotCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzg1Vi5udW1fZW50 cmllczsKLQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMF84NVYuZW50cmllczsK KwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlf MF84NVYsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRB R0VfSU5GT18wXzk1VikgewotCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRt aV8wXzk1Vi5udW1fZW50cmllczsKLQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlf MF85NVYuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlfdHJh bnNsYXRpb25zX2hkbWlfMF85NVYsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmICh2 b2x0YWdlID09IFZPTFRBR0VfSU5GT18xXzA1VikgewotCQkqbl9lbnRyaWVzID0gY25sX2RkaV90 cmFuc2xhdGlvbnNfaGRtaV8xXzA1Vi5udW1fZW50cmllczsKLQkJcmV0dXJuIGNubF9kZGlfdHJh bnNsYXRpb25zX2hkbWlfMV8wNVYuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVYsCisJCQkJCSAgIG5fZW50cmllcyk7 CiAJfSBlbHNlIHsKIAkJKm5fZW50cmllcyA9IDE7IC8qIHNodXQgdXAgZ2NjICovCiAJCU1JU1NJ TkdfQ0FTRSh2b2x0YWdlKTsKQEAgLTEyNzIsMTQgKzEyNzcsMTQgQEAgY25sX2dldF9idWZfdHJh bnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCXUz MiB2b2x0YWdlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgQ05MX1BPUlRfQ09NUF9EVzMpICYg Vk9MVEFHRV9JTkZPX01BU0s7CiAKIAlpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF84NVYp IHsKLQkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfODVWLm51bV9lbnRy aWVzOwotCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVYuZW50cmllczsKKwkJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfODVW LAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lO Rk9fMF85NVYpIHsKLQkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfOTVW Lm51bV9lbnRyaWVzOwotCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF85NVYuZW50 cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlfdHJhbnNsYXRpb25z X2RwXzBfOTVWLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAodm9sdGFnZSA9PSBW T0xUQUdFX0lORk9fMV8wNVYpIHsKLQkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25z X2RwXzFfMDVWLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBf MV8wNVYuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlfdHJh bnNsYXRpb25zX2RwXzFfMDVWLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSB7CiAJCSpu X2VudHJpZXMgPSAxOyAvKiBzaHV0IHVwIGdjYyAqLwogCQlNSVNTSU5HX0NBU0Uodm9sdGFnZSk7 CkBAIC0xMjk1LDE0ICsxMzAwLDE0IEBAIGNubF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAKIAlpZiAoZGV2X3ByaXYtPnZi dC5lZHAubG93X3Zzd2luZykgewogCQlpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF84NVYp IHsKLQkJCSpuX2VudHJpZXMgPSBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84NVYubnVtX2Vu dHJpZXM7Ci0JCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWLmVudHJpZXM7 CisJCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmY25sX2RkaV90cmFuc2xhdGlvbnNfZWRw XzBfODVWLAorCQkJCQkJICAgbl9lbnRyaWVzKTsKIAkJfSBlbHNlIGlmICh2b2x0YWdlID09IFZP TFRBR0VfSU5GT18wXzk1VikgewotCQkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25z X2VkcF8wXzk1Vi5udW1fZW50cmllczsKLQkJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19l ZHBfMF85NVYuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxfZGRp X3RyYW5zbGF0aW9uc19lZHBfMF85NVYsCisJCQkJCQkgICBuX2VudHJpZXMpOwogCQl9IGVsc2Ug aWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzFfMDVWKSB7Ci0JCQkqbl9lbnRyaWVzID0gY25s X2RkaV90cmFuc2xhdGlvbnNfZWRwXzFfMDVWLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIGNubF9k ZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1Vi5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJmNubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1ViwKKwkJCQkJCSAgIG5fZW50 cmllcyk7CiAJCX0gZWxzZSB7CiAJCQkqbl9lbnRyaWVzID0gMTsgLyogc2h1dCB1cCBnY2MgKi8K IAkJCU1JU1NJTkdfQ0FTRSh2b2x0YWdlKTsKQEAgLTEzMzAsOCArMTMzNSw4IEBAIGljbF9nZXRf Y29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkg ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBp bnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19oZG1pLmVudHJpZXM7CisJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCSAgIG5fZW50cmllcyk7CiB9CiAK IHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKQEAgLTEzMzks OCArMTM0NCw4IEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCQkgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0gaWNsX2NvbWJv X3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIubnVtX2VudHJpZXM7Ci0JcmV0dXJuIGljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLmVudHJpZXM7CisJcmV0dXJuIGludGVs X2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLAor CQkJCSAgIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5ICoKQEAgLTEzNTEsMTcgKzEzNTYsMTcgQEAgaWNsX2dldF9jb21ib19idWZf dHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCiAJaWYg KGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPiA1NDAwMDApIHsKLQkJKm5fZW50cmllcyA9IGljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMy5udW1fZW50cmllczsKLQkJcmV0dXJu IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMy5lbnRyaWVzOworCQlyZXR1 cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Vk cF9oYnIzLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoZGV2X3ByaXYtPnZidC5l ZHAubG93X3Zzd2luZykgewotCQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2VkcF9oYnIyLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2VkcF9oYnIyLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIsCisJCQkJCSAgIG5f ZW50cmllcyk7CiAJfSBlbHNlIGlmIChJU19ERzEoZGV2X3ByaXYpICYmIGNydGNfc3RhdGUtPnBv cnRfY2xvY2sgPiAyNzAwMDApIHsKLQkJKm5fZW50cmllcyA9IGRnMV9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIyX2hicjMubnVtX2VudHJpZXM7Ci0JCXJldHVybiBkZzFfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLmVudHJpZXM7CisJCXJldHVybiBpbnRl bF9nZXRfYnVmX3RyYW5zKCZkZzFfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9o YnIzLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoSVNfREcxKGRldl9wcml2KSkg ewotCQkqbl9lbnRyaWVzID0gZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX3Jicl9o YnIubnVtX2VudHJpZXM7Ci0JCXJldHVybiBkZzFfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf ZHBfcmJyX2hici5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmZGcxX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX3Jicl9oYnIsCisJCQkJCSAgIG5fZW50cmllcyk7 CiAJfQogCiAJcmV0dXJuIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNf c3RhdGUsIG5fZW50cmllcyk7CkBAIC0xMzg1LDggKzEzOTAsOCBAQCBpY2xfZ2V0X21nX2J1Zl90 cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgaW50ICpuX2VudHJpZXMpCiB7 Ci0JKm5fZW50cmllcyA9IGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRy aWVzOwotCXJldHVybiBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOwor CXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNf aGRtaSwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xMzk1LDExICsxNDAwLDExIEBAIGljbF9nZXRfbWdf YnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJaW50ICpuX2Vu dHJpZXMpCiB7CiAJaWYgKGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPiAyNzAwMDApIHsKLQkJKm5f ZW50cmllcyA9IGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19oYnIyX2hicjMubnVtX2VudHJp ZXM7Ci0JCXJldHVybiBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJyMl9oYnIzLmVudHJp ZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfbWdfcGh5X2RkaV90cmFuc2xh dGlvbnNfaGJyMl9oYnIzLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSB7Ci0JCSpuX2Vu dHJpZXMgPSBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfcmJyX2hici5udW1fZW50cmllczsK LQkJcmV0dXJuIGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19yYnJfaGJyLmVudHJpZXM7CisJ CXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNf cmJyX2hiciwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9CiB9CiAKQEAgLTE0MTksOCArMTQyNCw4 IEBAIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkJICAgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JcmV0dXJuIGljbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJcmV0dXJuIGludGVsX2dldF9idWZf dHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCSAgIG5fZW50 cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKQEAgLTE0MjgsOCArMTQzMyw4IEBAIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVz ID0gZWhsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwotCXJldHVy biBlaGxfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwlyZXR1cm4gaW50 ZWxfZ2V0X2J1Zl90cmFucygmZWhsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJ CSAgIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3Ry YW5zX2VudHJ5ICoKQEAgLTE0NDAsOCArMTQ0NSw4IEBAIGVobF9nZXRfY29tYm9fYnVmX3RyYW5z X2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAogCWlmIChkZXZf cHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIubnVtX2VudHJpZXM7Ci0JCXJldHVybiBpY2xfY29t Ym9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIuZW50cmllczsKKwkJcmV0dXJuIGludGVs X2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiwK KwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9CiAKIAlyZXR1cm4gZWhsX2dldF9jb21ib19idWZfdHJh bnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKQEAgLTE0NjUsOCArMTQ3MCw4 IEBAIGpzbF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkJICAgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JcmV0dXJuIGljbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJcmV0dXJuIGludGVsX2dldF9idWZf dHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCSAgIG5fZW50 cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKQEAgLTE0NzQsOCArMTQ3OSw4IEBAIGpzbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVz ID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIubnVtX2VudHJpZXM7Ci0J cmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLmVudHJpZXM7CisJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9u c19kcF9oYnIyLAorCQkJCSAgIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKQEAgLTE0ODcsMTEgKzE0OTIsMTEgQEAganNsX2dl dF9jb21ib19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJ aWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsKIAkJaWYgKGNydGNfc3RhdGUtPnBv cnRfY2xvY2sgPiAyNzAwMDApIHsKLQkJCSpuX2VudHJpZXMgPSBqc2xfY29tYm9fcGh5X2RkaV90 cmFuc2xhdGlvbnNfZWRwX2hicjIubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4ganNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLmVudHJpZXM7CisJCQlyZXR1cm4gaW50ZWxfZ2V0 X2J1Zl90cmFucygmanNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLAorCQkJ CQkJICAgbl9lbnRyaWVzKTsKIAkJfSBlbHNlIHsKLQkJCSpuX2VudHJpZXMgPSBqc2xfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hici5udW1fZW50cmllczsKLQkJCXJldHVybiBqc2xf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hici5lbnRyaWVzOworCQkJcmV0dXJuIGlu dGVsX2dldF9idWZfdHJhbnMoJmpzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJy LAorCQkJCQkJICAgbl9lbnRyaWVzKTsKIAkJfQogCX0KIApAQCAtMTUxNiw4ICsxNTIxLDggQEAg dGdsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CQkgICAgIGludCAqbl9lbnRyaWVzKQogewotCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfaGRtaS5udW1fZW50cmllczsKLQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50cmllczsKKwlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFu cygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWksCisJCQkJICAgbl9lbnRyaWVz KTsKIH0KIAogc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgpA QCAtMTUyOSwyMiArMTUzNCwyMiBAQCB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4g MjcwMDAwKSB7CiAJCWlmIChJU19ST0NLRVRMQUtFKGRldl9wcml2KSkgewotCQkJKm5fZW50cmll cyA9IHJrbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjMubnVtX2VudHJp ZXM7Ci0JCQlyZXR1cm4gcmtsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJy My5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnJrbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjMsCisJCQkJCQkgICBuX2VudHJpZXMpOwogCQl9 IGVsc2UgaWYgKElTX1RHTF9VKGRldl9wcml2KSB8fCBJU19UR0xfWShkZXZfcHJpdikpIHsKLQkJ CSpuX2VudHJpZXMgPSB0Z2xfdXlfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMi5u dW1fZW50cmllczsKLQkJCXJldHVybiB0Z2xfdXlfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf ZHBfaGJyMi5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRnbF91eV9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLAorCQkJCQkJICAgbl9lbnRyaWVzKTsK IAkJfSBlbHNlIHsKLQkJCSpuX2VudHJpZXMgPSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGJyMi5udW1fZW50cmllczsKLQkJCXJldHVybiB0Z2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZHBfaGJyMi5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMo JnRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLAorCQkJCQkJICAgbl9lbnRy aWVzKTsKIAkJfQogCX0gZWxzZSB7CiAJCWlmIChJU19ST0NLRVRMQUtFKGRldl9wcml2KSkgewot CQkJKm5fZW50cmllcyA9IHJrbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIubnVt X2VudHJpZXM7Ci0JCQlyZXR1cm4gcmtsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hi ci5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnJrbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIsCisJCQkJCQkgICBuX2VudHJpZXMpOwogCQl9IGVsc2Ug ewotCQkJKm5fZW50cmllcyA9IHRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIu bnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Rw X2hici5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRnbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIsCisJCQkJCQkgICBuX2VudHJpZXMpOwogCQl9CiAJ fQogfQpAQCAtMTU1OCwxNCArMTU2MywxNCBAQCB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKIAogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Ns b2NrID4gNTQwMDAwKSB7Ci0JCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZWRwX2hicjMubnVtX2VudHJpZXM7Ci0JCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90 cmFuc2xhdGlvbnNfZWRwX2hicjMuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMywKKwkJCQkJICAgbl9l bnRyaWVzKTsKIAl9IGVsc2UgaWYgKGRldl9wcml2LT52YnQuZWRwLmhvYmwgJiYgIWludGVsX2Rw LT5ob2JsX2ZhaWxlZCkgewotCQkqbl9lbnRyaWVzID0gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2VkcF9oYnIyX2hvYmwubnVtX2VudHJpZXM7Ci0JCXJldHVybiB0Z2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJfaG9ibC5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxf Z2V0X2J1Zl90cmFucygmdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hv YmwsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChkZXZfcHJpdi0+dmJ0LmVkcC5s b3dfdnN3aW5nKSB7Ci0JCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZWRwX2hicjIubnVtX2VudHJpZXM7Ci0JCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZWRwX2hicjIuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMo JmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiwKKwkJCQkJICAgbl9lbnRy aWVzKTsKIAl9CiAKIAlyZXR1cm4gdGdsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2Rlciwg Y3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKQEAgLTE1ODksOCArMTU5NCw4IEBAIHRnbF9nZXRfZGts X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICBpbnQgKm5fZW50 cmllcykKIHsKLQkqbl9lbnRyaWVzID0gdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1p Lm51bV9lbnRyaWVzOwotCXJldHVybiB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWku ZW50cmllczsKKwlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmdGdsX2RrbF9waHlfZGRpX3Ry YW5zbGF0aW9uc19oZG1pLAorCQkJCSAgIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKQEAgLTE1OTksMTEgKzE2MDQsMTEgQEAg dGdsX2dldF9ka2xfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJIGludCAqbl9lbnRyaWVzKQogewogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gMjcw MDAwKSB7Ci0JCSpuX2VudHJpZXMgPSB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hi cjIubnVtX2VudHJpZXM7Ci0JCXJldHVybiB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Rw X2hicjIuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRnbF9ka2xfcGh5 X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2Ug ewotCQkqbl9lbnRyaWVzID0gdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIubnVt X2VudHJpZXM7Ci0JCXJldHVybiB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hici5l bnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmdGdsX2RrbF9waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogfQogCi0tIAoyLjI2 LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=