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 54DB7C433ED for ; Wed, 21 Apr 2021 16:49:27 +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 D9F5360232 for ; Wed, 21 Apr 2021 16:49:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9F5360232 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 4D9B76E9CD; Wed, 21 Apr 2021 16:49:26 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA7BA6E99B for ; Wed, 21 Apr 2021 16:49:23 +0000 (UTC) IronPort-SDR: zrOBv9qkcxD62yTLmsUzMh2QHUFQ6D/MmeHAd2avGqiDWvXMJrjCdqOXqy1hbhNef4FNnoKLCF ai6uMZpqOvEg== X-IronPort-AV: E=McAfee;i="6200,9189,9961"; a="182864082" X-IronPort-AV: E=Sophos;i="5.82,240,1613462400"; d="scan'208";a="182864082" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2021 09:49:23 -0700 IronPort-SDR: HXlbBIArNZPxby9TAfZ9s8z+WttO3hcd1ZSbAKPxbEFTapT4+q0IywDE1IfmcLeZ+Bn9wWPZwi KuD9MhxhiV4w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,240,1613462400"; d="scan'208";a="385830293" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by orsmga006.jf.intel.com with SMTP; 21 Apr 2021 09:49:20 -0700 Received: by stinkbox (sSMTP sendmail emulation); Wed, 21 Apr 2021 19:49:20 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Wed, 21 Apr 2021 19:48:42 +0300 Message-Id: <20210421164849.12806-11-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 10/17] drm/i915: Clean up hsw/bdw/skl/kbl buf trans funcs 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" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNw bGl0IHRoZSBoc3cvYmR3L3NrbC9rYmwgZ2V0X2J1Zl90cmFucygpIGZ1bmN0aW9ucyBpbnRvCmNs ZWFuIHBsYXRmb3JtIHNwZWNpZmljIHZhcmlhbnRzLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMgICAgfCAzMDggKysrKysrKy0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDE5MCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJh bnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5j CmluZGV4IDM3YTljM2IyYzAzYy4uMWQ3ODY0MGM0MzllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYwpAQCAtMTAxMiwxMDIgKzEw MTIsMzQgQEAgaW50ZWxfZ2V0X2J1Zl90cmFucyhjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqZGRpX3RyYW5zbGF0aW9ucywgaW50ICpudW0KIH0KIAogc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKLWJkd19nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCitoc3dfZ2V0X2J1Zl90cmFucyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJICBpbnQgKm5fZW50cmllcykKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQot CWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCXJldHVybiBpbnRlbF9nZXRf YnVmX3RyYW5zKCZiZHdfZGRpX3RyYW5zbGF0aW9uc19lZHAsCi0JCQkJCSAgIG5fZW50cmllcyk7 Ci0JfSBlbHNlIHsKLQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNs YXRpb25zX2RwLAotCQkJCQkgICBuX2VudHJpZXMpOwotCX0KLX0KLQotc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKLXNrbF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKLXsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQotCWlm IChJU19TS0xfVUxYKGRldl9wcml2KSkgewotCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygm c2tsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCwKLQkJCQkJICAgbl9lbnRyaWVzKTsKLQl9IGVsc2Ug aWYgKElTX1NLTF9VTFQoZGV2X3ByaXYpKSB7Ci0JCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwLAotCQkJCQkgICBuX2VudHJpZXMpOwotCX0gZWxz ZSB7Ci0JCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfZGRpX3RyYW5zbGF0aW9uc19k cCwKLQkJCQkJICAgbl9lbnRyaWVzKTsKLQl9Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGRpX2J1Zl90cmFucyAqCi1rYmxfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0KLQlpZiAoSVNfS0JM X1VMWChkZXZfcHJpdikgfHwKLQkgICAgSVNfQ0ZMX1VMWChkZXZfcHJpdikgfHwKLQkgICAgSVNf Q01MX1VMWChkZXZfcHJpdikpIHsKLQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmtibF95 X2RkaV90cmFuc2xhdGlvbnNfZHAsCi0JCQkJCSAgIG5fZW50cmllcyk7Ci0JfSBlbHNlIGlmIChJ U19LQkxfVUxUKGRldl9wcml2KSB8fAotCQkgICBJU19DRkxfVUxUKGRldl9wcml2KSB8fAotCQkg ICBJU19DTUxfVUxUKGRldl9wcml2KSkgewotCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygm a2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCwKLQkJCQkJICAgbl9lbnRyaWVzKTsKLQl9IGVsc2Ug ewotCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygma2JsX2RkaV90cmFuc2xhdGlvbnNfZHAs Ci0JCQkJCSAgIG5fZW50cmllcyk7Ci0JfQotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMgKgotc2tsX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQotCWlmIChkZXZfcHJp di0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCWlmIChJU19TS0xfVUxYKGRldl9wcml2KSB8fAot CQkgICAgSVNfS0JMX1VMWChkZXZfcHJpdikgfHwKLQkJICAgIElTX0NGTF9VTFgoZGV2X3ByaXYp IHx8Ci0JCSAgICBJU19DTUxfVUxYKGRldl9wcml2KSkgewotCQkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJnNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwLAotCQkJCQkJICAgbl9lbnRyaWVz KTsKLQkJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldl9wcml2KSB8fAotCQkJICAgSVNfS0JMX1VM VChkZXZfcHJpdikgfHwKLQkJCSAgIElTX0NGTF9VTFQoZGV2X3ByaXYpIHx8Ci0JCQkgICBJU19D TUxfVUxUKGRldl9wcml2KSkgewotCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF91 X2RkaV90cmFuc2xhdGlvbnNfZWRwLAotCQkJCQkJICAgbl9lbnRyaWVzKTsKLQkJfSBlbHNlIHsK LQkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfZGRpX3RyYW5zbGF0aW9uc19lZHAs Ci0JCQkJCQkgICBuX2VudHJpZXMpOwotCQl9Ci0JfQotCi0JaWYgKElTX0tBQllMQUtFKGRldl9w cml2KSB8fAotCSAgICBJU19DT0ZGRUVMQUtFKGRldl9wcml2KSB8fAotCSAgICBJU19DT01FVExB S0UoZGV2X3ByaXYpKQotCQlyZXR1cm4ga2JsX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9l bnRyaWVzKTsKKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQ VVRfQU5BTE9HKSkKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmhzd19kZGlfdHJhbnNs YXRpb25zX2ZkaSwgbl9lbnRyaWVzKTsKKwllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNy dGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiAJZWxzZQotCQlyZXR1 cm4gc2tsX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKKwkJcmV0dXJuIGlu dGVsX2dldF9idWZfdHJhbnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwog fQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgotc2tsX2dldF9i dWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9l bnRyaWVzKQorYmR3X2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CisJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSAgaW50 ICpuX2VudHJpZXMpCiB7Ci0JaWYgKElTX1NLTF9VTFgoZGV2X3ByaXYpIHx8Ci0JICAgIElTX0tC TF9VTFgoZGV2X3ByaXYpIHx8Ci0JICAgIElTX0NGTF9VTFgoZGV2X3ByaXYpIHx8Ci0JICAgIElT X0NNTF9VTFgoZGV2X3ByaXYpKSB7Ci0JCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xf eV9kZGlfdHJhbnNsYXRpb25zX2hkbWksCi0JCQkJCSAgIG5fZW50cmllcyk7Ci0JfSBlbHNlIHsK LQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWks Ci0JCQkJCSAgIG5fZW50cmllcyk7Ci0JfQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisKKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlw ZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfQU5BTE9HKSkKKwkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaSwgbl9lbnRyaWVzKTsKKwllbHNlIGlm IChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5f ZW50cmllcyk7CisJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRF TF9PVVRQVVRfRURQKSAmJgorCQkgaTkxNS0+dmJ0LmVkcC5sb3dfdnN3aW5nKQorCQlyZXR1cm4g aW50ZWxfZ2V0X2J1Zl90cmFucygmYmR3X2RkaV90cmFuc2xhdGlvbnNfZWRwLCBuX2VudHJpZXMp OworCWVsc2UKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRp b25zX2RwLCBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgaW50IHNrbF9idWZfdHJhbnNfbnVtX2Vu dHJpZXMoZW51bSBwb3J0IHBvcnQsIGludCBuX2VudHJpZXMpCkBAIC0xMTIwLDEzMSArMTA1Miwx MDkgQEAgc3RhdGljIGludCBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVudW0gcG9ydCBwb3J0 LCBpbnQgbl9lbnRyaWVzKQogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgKgotaHN3X2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsIGludCAqbl9lbnRyaWVzKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCi0JaWYgKElTX0tBQllMQUtFKGRldl9w cml2KSB8fAotCSAgICBJU19DT0ZGRUVMQUtFKGRldl9wcml2KSB8fAotCSAgICBJU19DT01FVExB S0UoZGV2X3ByaXYpKSB7Ci0JCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlf dHJhbnNsYXRpb25zID0KLQkJCWtibF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsIG5fZW50cmll cyk7Ci0JCSpuX2VudHJpZXMgPSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVuY29kZXItPnBv cnQsICpuX2VudHJpZXMpOwotCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKLQl9IGVsc2UgaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpKSB7Ci0JCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3Ry YW5zICpkZGlfdHJhbnNsYXRpb25zID0KLQkJCXNrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIs IG5fZW50cmllcyk7Ci0JCSpuX2VudHJpZXMgPSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVu Y29kZXItPnBvcnQsICpuX2VudHJpZXMpOwotCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKLQl9 IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2RwLAotCQkJCQkgICBuX2VudHJpZXMpOwot CX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2RwLAotCQkJCQkgICBuX2VudHJpZXMpOwot CX0KLQotCSpuX2VudHJpZXMgPSAwOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgotaHN3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKLXsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQot CWlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikgPT0gOSAmJiAhSVNfQlJPWFRPTihkZXZfcHJpdikp IHsKLQkJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnMg PQotCQkJc2tsX2dldF9idWZfdHJhbnNfZWRwKGVuY29kZXIsIG5fZW50cmllcyk7Ci0JCSpuX2Vu dHJpZXMgPSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVuY29kZXItPnBvcnQsICpuX2VudHJp ZXMpOwotCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKLQl9IGVsc2UgaWYgKElTX0JST0FEV0VM TChkZXZfcHJpdikpIHsKLQkJcmV0dXJuIGJkd19nZXRfYnVmX3RyYW5zX2VkcChlbmNvZGVyLCBu X2VudHJpZXMpOwotCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJcmV0dXJu IGludGVsX2dldF9idWZfdHJhbnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2RwLAotCQkJCQkgICBu X2VudHJpZXMpOwotCX0KLQotCSpuX2VudHJpZXMgPSAwOwotCXJldHVybiBOVUxMOwotfQotCi1z dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgotaHN3X2dldF9idWZfdHJh bnNfZmRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorX3NrbF9nZXRfYnVmX3RyYW5z X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9ucywKIAkJICAgICAgaW50ICpuX2Vu dHJpZXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CisJZGRpX3RyYW5zbGF0aW9ucyA9IGludGVsX2dldF9idWZfdHJh bnMoZGRpX3RyYW5zbGF0aW9ucywgbl9lbnRyaWVzKTsKKwkqbl9lbnRyaWVzID0gc2tsX2J1Zl90 cmFuc19udW1fZW50cmllcyhlbmNvZGVyLT5wb3J0LCAqbl9lbnRyaWVzKTsKKwlyZXR1cm4gZGRp X3RyYW5zbGF0aW9uczsKK30KIAotCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0JCXJl dHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZiZHdfZGRpX3RyYW5zbGF0aW9uc19mZGksCi0JCQkJ CSAgIG5fZW50cmllcyk7Ci0JfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewotCQly ZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpLAotCQkJ CQkgICBuX2VudHJpZXMpOwotCX0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqCitza2xfeV9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAorCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSAg ICBpbnQgKm5fZW50cmllcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCi0JKm5fZW50cmllcyA9IDA7Ci0JcmV0dXJuIE5V TEw7CisJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hE TUkpKQorCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmc2tsX3lfZGRpX3RyYW5zbGF0aW9u c19oZG1pLCBuX2VudHJpZXMpOworCWVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19z dGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkgJiYKKwkJIGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykK KwkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAmc2tsX3lfZGRpX3RyYW5z bGF0aW9uc19lZHAsIG5fZW50cmllcyk7CisJZWxzZQorCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3Ry YW5zX2RwKGVuY29kZXIsICZza2xfeV9kZGlfdHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwog fQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgotaHN3X2dldF9i dWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJICAgICAgIGlu dCAqbl9lbnRyaWVzKQorc2tsX3VfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKKwkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAorCQkgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChESVNQTEFZ X1ZFUihkZXZfcHJpdikgPT0gOSAmJiAhSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKLQkJcmV0dXJu IHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsIG5fZW50cmllcyk7Ci0JfSBlbHNlIGlm IChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0JCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAotCQkJCQkgICBuX2VudHJpZXMpOwotCX0gZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWksCi0JCQkJCSAgIG5fZW50cmllcyk7Ci0JfQot Ci0JKm5fZW50cmllcyA9IDA7Ci0JcmV0dXJuIE5VTEw7CisJaWYgKGludGVsX2NydGNfaGFzX3R5 cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKQorCQlyZXR1cm4gaW50ZWxfZ2V0X2J1 Zl90cmFucygmc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaSwgbl9lbnRyaWVzKTsKKwllbHNlIGlm IChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9FRFApICYmCisJ CSBpOTE1LT52YnQuZWRwLmxvd192c3dpbmcpCisJCXJldHVybiBfc2tsX2dldF9idWZfdHJhbnNf ZHAoZW5jb2RlciwgJnNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwLCBuX2VudHJpZXMpOworCWVs c2UKKwkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAmc2tsX3VfZGRpX3Ry YW5zbGF0aW9uc19kcCwgbl9lbnRyaWVzKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9kZGlfYnVmX3RyYW5zICoKLWhzd19nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAorc2tsX2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAg aW50ICpuX2VudHJpZXMpCiB7Ci0JaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX0FOQUxPRykpCi0JCXJldHVybiBoc3dfZ2V0X2J1Zl90cmFuc19mZGkoZW5j b2Rlciwgbl9lbnRyaWVzKTsKLQllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9IRE1JKSkKLQkJcmV0dXJuIGhzd19nZXRfYnVmX3RyYW5zX2hkbWko ZW5jb2Rlciwgbl9lbnRyaWVzKTsKLQllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNf c3RhdGUsIElOVEVMX09VVFBVVF9FRFApKQotCQlyZXR1cm4gaHN3X2dldF9idWZfdHJhbnNfZWRw KGVuY29kZXIsIG5fZW50cmllcyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKworCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNy dGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJnNrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CisJZWxzZSBpZiAoaW50 ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSAmJgorCQkgaTkx NS0+dmJ0LmVkcC5sb3dfdnN3aW5nKQorCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3RyYW5zX2RwKGVu Y29kZXIsICZza2xfZGRpX3RyYW5zbGF0aW9uc19lZHAsIG5fZW50cmllcyk7CiAJZWxzZQotCQly ZXR1cm4gaHN3X2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKKwkJcmV0dXJu IF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAmc2tsX2RkaV90cmFuc2xhdGlvbnNfZHAs IG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFu cyAqCi1ieHRfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlciwg aW50ICpuX2VudHJpZXMpCitrYmxfeV9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAorCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCisJCSAgICBpbnQgKm5fZW50cmllcykKIHsKLQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFu cygmYnh0X2RkaV90cmFuc2xhdGlvbnNfZHAsIG5fZW50cmllcyk7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKworCWlmIChpbnRl bF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJu IGludGVsX2dldF9idWZfdHJhbnMoJnNrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwgbl9lbnRy aWVzKTsKKwllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09V VFBVVF9FRFApICYmCisJCSBpOTE1LT52YnQuZWRwLmxvd192c3dpbmcpCisJCXJldHVybiBfc2ts X2dldF9idWZfdHJhbnNfZHAoZW5jb2RlciwgJnNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwLCBu X2VudHJpZXMpOworCWVsc2UKKwkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVy LCAma2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCwgbl9lbnRyaWVzKTsKIH0KIAogc3RhdGljIGNv bnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKLWJ4dF9nZXRfYnVmX3RyYW5zX2VkcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCitrYmxfdV9nZXRf YnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkgICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSAgICBpbnQgKm5fZW50cmllcykK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQotCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Ci0JCXJl dHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0aW9uc19lZHAsCi0JCQkJ CSAgIG5fZW50cmllcyk7Ci0JfQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKLQlyZXR1cm4gYnh0X2dldF9idWZfdHJhbnNfZHAo ZW5jb2Rlciwgbl9lbnRyaWVzKTsKKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRl LCBJTlRFTF9PVVRQVVRfSERNSSkpCisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xf ZGRpX3RyYW5zbGF0aW9uc19oZG1pLCBuX2VudHJpZXMpOworCWVsc2UgaWYgKGludGVsX2NydGNf aGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkgJiYKKwkJIGk5MTUtPnZidC5l ZHAubG93X3Zzd2luZykKKwkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAm c2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHAsIG5fZW50cmllcyk7CisJZWxzZQorCQlyZXR1cm4g X3NrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsICZrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2Rw LCBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgKgotYnh0X2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwgaW50ICpuX2VudHJpZXMpCitrYmxfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKKwkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKKwkJICBpbnQgKm5fZW50cmllcykKIHsKLQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygm Ynh0X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwgbl9lbnRyaWVzKTsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCisJaWYgKGludGVs X2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKQorCQlyZXR1cm4g aW50ZWxfZ2V0X2J1Zl90cmFucygmc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaSwgbl9lbnRyaWVz KTsKKwllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9FRFApICYmCisJCSBpOTE1LT52YnQuZWRwLmxvd192c3dpbmcpCisJCXJldHVybiBfc2tsX2dl dF9idWZfdHJhbnNfZHAoZW5jb2RlciwgJnNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcCwgbl9lbnRy aWVzKTsKKwllbHNlCisJCXJldHVybiBfc2tsX2dldF9idWZfdHJhbnNfZHAoZW5jb2RlciwgJmti bF9kZGlfdHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgpAQCAtMTI1MiwxMSArMTE2MiwxNSBAQCBieHRfZ2V0 X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICBpbnQgKm5fZW50cmllcykKIHsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOworCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVU X0hETUkpKQotCQlyZXR1cm4gYnh0X2dldF9idWZfdHJhbnNfaGRtaShlbmNvZGVyLCBuX2VudHJp ZXMpOwotCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9F RFApKQotCQlyZXR1cm4gYnh0X2dldF9idWZfdHJhbnNfZWRwKGVuY29kZXIsIG5fZW50cmllcyk7 Ci0JcmV0dXJuIGJ4dF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsIG5fZW50cmllcyk7CisJCXJl dHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0aW9uc19oZG1pLCBuX2Vu dHJpZXMpOworCWVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0VEUCkgJiYKKwkJIGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykKKwkJcmV0dXJuIGlu dGVsX2dldF9idWZfdHJhbnMoJmJ4dF9kZGlfdHJhbnNsYXRpb25zX2VkcCwgbl9lbnRyaWVzKTsK KwllbHNlCisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0aW9u c19kcCwgbl9lbnRyaWVzKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVm X3RyYW5zICoKQEAgLTE2NzcsNiArMTU5MSwyMCBAQCB2b2lkIGludGVsX2RkaV9idWZfdHJhbnNf aW5pdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJZW5jb2Rlci0+Z2V0X2J1Zl90 cmFucyA9IGNubF9nZXRfYnVmX3RyYW5zOwogCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShpOTE1 KSB8fCBJU19CUk9YVE9OKGk5MTUpKSB7CiAJCWVuY29kZXItPmdldF9idWZfdHJhbnMgPSBieHRf Z2V0X2J1Zl90cmFuczsKKwl9IGVsc2UgaWYgKElTX0NNTF9VTFgoaTkxNSkgfHwgSVNfQ0ZMX1VM WChpOTE1KSB8fCBJU19LQkxfVUxYKGk5MTUpKSB7CisJCWVuY29kZXItPmdldF9idWZfdHJhbnMg PSBrYmxfeV9nZXRfYnVmX3RyYW5zOworCX0gZWxzZSBpZiAoSVNfQ01MX1VMVChpOTE1KSB8fCBJ U19DRkxfVUxUKGk5MTUpIHx8IElTX0tCTF9VTFQoaTkxNSkpIHsKKwkJZW5jb2Rlci0+Z2V0X2J1 Zl90cmFucyA9IGtibF91X2dldF9idWZfdHJhbnM7CisJfSBlbHNlIGlmIChJU19DT01FVExBS0Uo aTkxNSkgfHwgSVNfQ09GRkVFTEFLRShpOTE1KSB8fCBJU19LQUJZTEFLRShpOTE1KSkgeworCQll bmNvZGVyLT5nZXRfYnVmX3RyYW5zID0ga2JsX2dldF9idWZfdHJhbnM7CisJfSBlbHNlIGlmIChJ U19TS0xfVUxYKGk5MTUpKSB7CisJCWVuY29kZXItPmdldF9idWZfdHJhbnMgPSBza2xfeV9nZXRf YnVmX3RyYW5zOworCX0gZWxzZSBpZiAoSVNfU0tMX1VMVChpOTE1KSkgeworCQllbmNvZGVyLT5n ZXRfYnVmX3RyYW5zID0gc2tsX3VfZ2V0X2J1Zl90cmFuczsKKwl9IGVsc2UgaWYgKElTX1NLWUxB S0UoaTkxNSkpIHsKKwkJZW5jb2Rlci0+Z2V0X2J1Zl90cmFucyA9IHNrbF9nZXRfYnVmX3RyYW5z OworCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKSB7CisJCWVuY29kZXItPmdldF9idWZf dHJhbnMgPSBiZHdfZ2V0X2J1Zl90cmFuczsKIAl9IGVsc2UgewogCQllbmNvZGVyLT5nZXRfYnVm X3RyYW5zID0gaHN3X2dldF9idWZfdHJhbnM7CiAJfQotLSAKMi4yNi4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK