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 64C10C4743E for ; Tue, 8 Jun 2021 07:36:31 +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 354146127A for ; Tue, 8 Jun 2021 07:36:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 354146127A 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 C6E496EADF; Tue, 8 Jun 2021 07:36:30 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2CD156EAE1 for ; Tue, 8 Jun 2021 07:36:29 +0000 (UTC) IronPort-SDR: ieXPvK3K6RGF/rvVHDbrUGkGI0xPid7CwFcy3ZFYkOULPmcMU7Y1ymedkxoPEGJ9g07IquvICb zX+ZQoOchBkw== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="268644500" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="268644500" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 00:36:28 -0700 IronPort-SDR: B5BrdrF96u3OT8v2P5N8rl2kXurzBMEH76n+ZR8cyfRpu2tO+0JuwTGlpdK7xDcoZKNbdENuKp lxh4B3FZPajw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="418808170" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by orsmga002.jf.intel.com with SMTP; 08 Jun 2021 00:36:24 -0700 Received: by stinkbox (sSMTP sendmail emulation); Tue, 08 Jun 2021 10:36:23 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Tue, 8 Jun 2021 10:35:52 +0300 Message-Id: <20210608073603.2408-7-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210608073603.2408-1-ville.syrjala@linux.intel.com> References: <20210608073603.2408-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 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: , Cc: Jani Nikula 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 dGlvbnMtPmVudHJpZXM7CisgfQoKdjI6IEhhbmRsZSBhZGwtcAoKUmV2aWV3ZWQtYnk6IEphbmkg TmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+ICN2MQpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYyAgICB8IDI1MyArKysrKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90 cmFucy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5z LmMKaW5kZXggNWUxODA1Njc4MGE4Li4zMTQ5YjAxYWFjYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jCkBAIC0xMDMyLDE3ICsx MDMyLDI0IEBAIGJvb2wgaXNfaG9ibF9idWZfdHJhbnMoY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSAqdGFibGUpCiAJcmV0dXJuIHRhYmxlID09IHRnbF9jb21ib19waHlfZGRp X3RyYW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsLmVudHJpZXM7CiB9CiAKK3N0YXRpYyBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK2ludGVsX2dldF9idWZfdHJhbnMoY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnMsIGludCAqbnVt X2VudHJpZXMpCit7CisJKm51bV9lbnRyaWVzID0gZGRpX3RyYW5zbGF0aW9ucy0+bnVtX2VudHJp ZXM7CisJcmV0dXJuIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXM7Cit9CisKIHN0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKIGJkd19nZXRfYnVmX3RyYW5zX2Vk cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7CiAKIAlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewotCQkqbl9lbnRyaWVz ID0gYmR3X2RkaV90cmFuc2xhdGlvbnNfZWRwLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gYmR3X2Rk aV90cmFuc2xhdGlvbnNfZWRwLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZiZHdfZGRpX3RyYW5zbGF0aW9uc19lZHAsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNl IHsKLQkJKm5fZW50cmllcyA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwot CQlyZXR1cm4gYmR3X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVs X2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJCQkgICBuX2VudHJp ZXMpOwogCX0KIH0KIApAQCAtMTA1MiwxNCArMTA1OSwxNCBAQCBza2xfZ2V0X2J1Zl90cmFuc19k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 CiAKIAlpZiAoSVNfU0tMX1VMWChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IHNrbF95X2Rk aV90cmFuc2xhdGlvbnNfZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiBza2xfeV9kZGlfdHJhbnNs YXRpb25zX2RwLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfeV9k ZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoSVNf U0tMX1VMVChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IHNrbF91X2RkaV90cmFuc2xhdGlv bnNfZHAubnVtX2VudHJpZXM7Ci0JCXJldHVybiBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwLmVu dHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfdV9kZGlfdHJhbnNsYXRp b25zX2RwLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSB7Ci0JCSpuX2VudHJpZXMgPSBz a2xfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKLQkJcmV0dXJuIHNrbF9kZGlfdHJh bnNsYXRpb25zX2RwLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xf ZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9CiB9CiAKQEAgLTEw NzEsMTYgKzEwNzgsMTYgQEAga2JsX2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCWlmIChJU19LQkxfVUxYKGRldl9wcml2KSB8 fAogCSAgICBJU19DRkxfVUxYKGRldl9wcml2KSB8fAogCSAgICBJU19DTUxfVUxYKGRldl9wcml2 KSkgewotCQkqbl9lbnRyaWVzID0ga2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmll czsKLQkJcmV0dXJuIGtibF95X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJu IGludGVsX2dldF9idWZfdHJhbnMoJmtibF95X2RkaV90cmFuc2xhdGlvbnNfZHAsCisJCQkJCSAg IG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChJU19LQkxfVUxUKGRldl9wcml2KSB8fAogCQkgICBJ U19DRkxfVUxUKGRldl9wcml2KSB8fAogCQkgICBJU19DTUxfVUxUKGRldl9wcml2KSkgewotCQkq bl9lbnRyaWVzID0ga2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKLQkJcmV0 dXJuIGtibF91X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dl dF9idWZfdHJhbnMoJmtibF91X2RkaV90cmFuc2xhdGlvbnNfZHAsCisJCQkJCSAgIG5fZW50cmll cyk7CiAJfSBlbHNlIHsKLQkJKm5fZW50cmllcyA9IGtibF9kZGlfdHJhbnNsYXRpb25zX2RwLm51 bV9lbnRyaWVzOwotCQlyZXR1cm4ga2JsX2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwkJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmtibF9kZGlfdHJhbnNsYXRpb25zX2RwLAorCQkJ CQkgICBuX2VudHJpZXMpOwogCX0KIH0KIApAQCAtMTA5NCwxNyArMTEwMSwxNyBAQCBza2xfZ2V0 X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRy aWVzKQogCQkgICAgSVNfS0JMX1VMWChkZXZfcHJpdikgfHwKIAkJICAgIElTX0NGTF9VTFgoZGV2 X3ByaXYpIHx8CiAJCSAgICBJU19DTUxfVUxYKGRldl9wcml2KSkgewotCQkJKm5fZW50cmllcyA9 IHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIHNrbF95 X2RkaV90cmFuc2xhdGlvbnNfZWRwLmVudHJpZXM7CisJCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90 cmFucygmc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHAsCisJCQkJCQkgICBuX2VudHJpZXMpOwog CQl9IGVsc2UgaWYgKElTX1NLTF9VTFQoZGV2X3ByaXYpIHx8CiAJCQkgICBJU19LQkxfVUxUKGRl dl9wcml2KSB8fAogCQkJICAgSVNfQ0ZMX1VMVChkZXZfcHJpdikgfHwKIAkJCSAgIElTX0NNTF9V TFQoZGV2X3ByaXYpKSB7Ci0JCQkqbl9lbnRyaWVzID0gc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19l ZHAubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHAuZW50 cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfdV9kZGlfdHJhbnNsYXRp b25zX2VkcCwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0gZWxzZSB7Ci0JCQkqbl9lbnRyaWVz ID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIHNrbF9k ZGlfdHJhbnNsYXRpb25zX2VkcC5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJnNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcCwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0K IAl9CiAKQEAgLTExMjMsMTEgKzExMzAsMTEgQEAgc2tsX2dldF9idWZfdHJhbnNfaGRtaShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRyaWVzKQogCSAgICBJU19L QkxfVUxYKGRldl9wcml2KSB8fAogCSAgICBJU19DRkxfVUxYKGRldl9wcml2KSB8fAogCSAgICBJ U19DTUxfVUxYKGRldl9wcml2KSkgewotCQkqbl9lbnRyaWVzID0gc2tsX3lfZGRpX3RyYW5zbGF0 aW9uc19oZG1pLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19o ZG1pLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfeV9kZGlfdHJh bnNsYXRpb25zX2hkbWksCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIHsKLQkJKm5fZW50 cmllcyA9IHNrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JCXJldHVybiBz a2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVm X3RyYW5zKCZza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAorCQkJCQkgICBuX2VudHJpZXMpOwog CX0KIH0KIApAQCAtMTE1OCwxMSArMTE2NSwxMSBAQCBoc3dfZ2V0X2J1Zl90cmFuc19kcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJCSpuX2VudHJpZXMg PSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVuY29kZXItPnBvcnQsICpuX2VudHJpZXMpOwog CQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZf cHJpdikpIHsKLQkJKm5fZW50cmllcyA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRy aWVzOwotCQlyZXR1cm4gIGJkd19kZGlfdHJhbnNsYXRpb25zX2RwLmVudHJpZXM7CisJCXJldHVy biBpbnRlbF9nZXRfYnVmX3RyYW5zKCZiZHdfZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAg bl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Ci0JCSpuX2Vu dHJpZXMgPSBoc3dfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKLQkJcmV0dXJuIGhz d19kZGlfdHJhbnNsYXRpb25zX2RwLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZoc3dfZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9CiAK IAkqbl9lbnRyaWVzID0gMDsKQEAgLTExODIsOCArMTE4OSw4IEBAIGhzd19nZXRfYnVmX3RyYW5z X2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJfSBl bHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7CiAJCXJldHVybiBiZHdfZ2V0X2J1Zl90 cmFuc19lZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpKSB7Ci0JCSpuX2VudHJpZXMgPSBoc3dfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50 cmllczsKLQkJcmV0dXJuIGhzd19kZGlfdHJhbnNsYXRpb25zX2RwLmVudHJpZXM7CisJCXJldHVy biBpbnRlbF9nZXRfYnVmX3RyYW5zKCZoc3dfZGRpX3RyYW5zbGF0aW9uc19kcCwKKwkJCQkJICAg bl9lbnRyaWVzKTsKIAl9CiAKIAkqbl9lbnRyaWVzID0gMDsKQEAgLTExOTcsMTEgKzEyMDQsMTEg QEAgaHN3X2dldF9idWZfdHJhbnNfZmRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwogCiAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9 IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaS5udW1fZW50cmllczsKLQkJcmV0dXJuIGJkd19kZGlf dHJhbnNsYXRpb25zX2ZkaS5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygm YmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBp ZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IGhzd19kZGlfdHJhbnNs YXRpb25zX2ZkaS5udW1fZW50cmllczsKLQkJcmV0dXJuIGhzd19kZGlfdHJhbnNsYXRpb25zX2Zk aS5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaHN3X2RkaV90cmFuc2xh dGlvbnNfZmRpLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0KIAogCSpuX2VudHJpZXMgPSAwOwpA QCAtMTIxNywxMSArMTIyNCwxMSBAQCBoc3dfZ2V0X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikgPT0gOSAmJiAh SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJcmV0dXJuIHNrbF9nZXRfYnVmX3RyYW5zX2hkbWko ZGV2X3ByaXYsIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYp KSB7Ci0JCSpuX2VudHJpZXMgPSBiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVz OwotCQlyZXR1cm4gYmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOworCQlyZXR1cm4g aW50ZWxfZ2V0X2J1Zl90cmFucygmYmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwKKwkJCQkJICAg bl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Ci0JCSpuX2Vu dHJpZXMgPSBoc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwotCQlyZXR1cm4g aHN3X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1 Zl90cmFucygmaHN3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwKKwkJCQkJICAgbl9lbnRyaWVzKTsK IAl9CiAKIAkqbl9lbnRyaWVzID0gMDsKQEAgLTEyNDYsOCArMTI1Myw3IEBAIGhzd19nZXRfYnVm X3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogc3RhdGljIGNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgogYnh0X2dldF9idWZfdHJhbnNfZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogewotCSpuX2VudHJpZXMg PSBieHRfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKLQlyZXR1cm4gYnh0X2RkaV90 cmFuc2xhdGlvbnNfZHAuZW50cmllczsKKwlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmYnh0 X2RkaV90cmFuc2xhdGlvbnNfZHAsIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKQEAgLTEyNTYsOCArMTI2Miw4IEBAIGJ4dF9n ZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2Vu dHJpZXMpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7CiAKIAlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewot CQkqbl9lbnRyaWVzID0gYnh0X2RkaV90cmFuc2xhdGlvbnNfZWRwLm51bV9lbnRyaWVzOwotCQly ZXR1cm4gYnh0X2RkaV90cmFuc2xhdGlvbnNfZWRwLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9n ZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0aW9uc19lZHAsCisJCQkJCSAgIG5fZW50cmll cyk7CiAJfQogCiAJcmV0dXJuIGJ4dF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsIG5fZW50cmll cyk7CkBAIC0xMjY2LDggKzEyNzIsNyBAQCBieHRfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogc3RhdGljIGNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgogYnh0X2dldF9idWZfdHJhbnNfaGRtaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmll cyA9IGJ4dF9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JcmV0dXJuIGJ4dF9k ZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50cmllczsKKwlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFu cygmYnh0X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwgbl9lbnRyaWVzKTsKIH0KIAogY29uc3QgdW5p b24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xMjg5LDE0ICsxMjk0LDE0IEBAIGNu bF9nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAq bl9lbnRyaWVzKQogCXUzMiB2b2x0YWdlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgQ05MX1BP UlRfQ09NUF9EVzMpICYgVk9MVEFHRV9JTkZPX01BU0s7CiAKIAlpZiAodm9sdGFnZSA9PSBWT0xU QUdFX0lORk9fMF84NVYpIHsKLQkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2hk bWlfMF84NVYubnVtX2VudHJpZXM7Ci0JCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1p XzBfODVWLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxfZGRpX3Ry YW5zbGF0aW9uc19oZG1pXzBfODVWLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAo dm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF85NVYpIHsKLQkJKm5fZW50cmllcyA9IGNubF9kZGlf dHJhbnNsYXRpb25zX2hkbWlfMF85NVYubnVtX2VudHJpZXM7Ci0JCXJldHVybiBjbmxfZGRpX3Ry YW5zbGF0aW9uc19oZG1pXzBfOTVWLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfOTVWLAorCQkJCQkgICBuX2VudHJpZXMp OwogCX0gZWxzZSBpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMV8wNVYpIHsKLQkJKm5fZW50 cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVYubnVtX2VudHJpZXM7Ci0JCXJl dHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWLmVudHJpZXM7CisJCXJldHVybiBp bnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWLAorCQkJ CQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSB7CiAJCSpuX2VudHJpZXMgPSAxOyAvKiBzaHV0IHVw IGdjYyAqLwogCQlNSVNTSU5HX0NBU0Uodm9sdGFnZSk7CkBAIC0xMzExLDE0ICsxMzE2LDE0IEBA IGNubF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQg Km5fZW50cmllcykKIAl1MzIgdm9sdGFnZSA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIENOTF9Q T1JUX0NPTVBfRFczKSAmIFZPTFRBR0VfSU5GT19NQVNLOwogCiAJaWYgKHZvbHRhZ2UgPT0gVk9M VEFHRV9JTkZPXzBfODVWKSB7Ci0JCSpuX2VudHJpZXMgPSBjbmxfZGRpX3RyYW5zbGF0aW9uc19k cF8wXzg1Vi5udW1fZW50cmllczsKLQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBf ODVWLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxfZGRpX3RyYW5z bGF0aW9uc19kcF8wXzg1ViwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYgKHZvbHRh Z2UgPT0gVk9MVEFHRV9JTkZPXzBfOTVWKSB7Ci0JCSpuX2VudHJpZXMgPSBjbmxfZGRpX3RyYW5z bGF0aW9uc19kcF8wXzk1Vi5udW1fZW50cmllczsKLQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRp b25zX2RwXzBfOTVWLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxf ZGRpX3RyYW5zbGF0aW9uc19kcF8wXzk1ViwKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2Ug aWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzFfMDVWKSB7Ci0JCSpuX2VudHJpZXMgPSBjbmxf ZGRpX3RyYW5zbGF0aW9uc19kcF8xXzA1Vi5udW1fZW50cmllczsKLQkJcmV0dXJuIGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzFfMDVWLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZjbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8xXzA1ViwKKwkJCQkJICAgbl9lbnRyaWVzKTsK IAl9IGVsc2UgewogCQkqbl9lbnRyaWVzID0gMTsgLyogc2h1dCB1cCBnY2MgKi8KIAkJTUlTU0lO R19DQVNFKHZvbHRhZ2UpOwpAQCAtMTMzNCwxNCArMTMzOSwxNCBAQCBjbmxfZ2V0X2J1Zl90cmFu c19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCiAJ aWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsKIAkJaWYgKHZvbHRhZ2UgPT0gVk9M VEFHRV9JTkZPXzBfODVWKSB7Ci0JCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xhdGlvbnNf ZWRwXzBfODVWLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2Vk cF8wXzg1Vi5lbnRyaWVzOworCQkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmNubF9kZGlf dHJhbnNsYXRpb25zX2VkcF8wXzg1ViwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0gZWxzZSBp ZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF85NVYpIHsKLQkJCSpuX2VudHJpZXMgPSBjbmxf ZGRpX3RyYW5zbGF0aW9uc19lZHBfMF85NVYubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gY25sX2Rk aV90cmFuc2xhdGlvbnNfZWRwXzBfOTVWLmVudHJpZXM7CisJCQlyZXR1cm4gaW50ZWxfZ2V0X2J1 Zl90cmFucygmY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfOTVWLAorCQkJCQkJICAgbl9lbnRy aWVzKTsKIAkJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18xXzA1VikgewotCQkJ Km5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1Vi5udW1fZW50cmllczsK LQkJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMV8wNVYuZW50cmllczsKKwkJCXJl dHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMV8wNVYs CisJCQkJCQkgICBuX2VudHJpZXMpOwogCQl9IGVsc2UgewogCQkJKm5fZW50cmllcyA9IDE7IC8q IHNodXQgdXAgZ2NjICovCiAJCQlNSVNTSU5HX0NBU0Uodm9sdGFnZSk7CkBAIC0xMzY5LDggKzEz NzQsOCBAQCBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCSAgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmllcyA9IGljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwotCXJldHVybiBpY2xfY29t Ym9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOworCXJldHVybiBpbnRlbF9nZXRf YnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwKKwkJCQkgICBu X2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSAqCkBAIC0xMzc4LDggKzEzODMsOCBAQCBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50 cmllcyA9IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLm51bV9lbnRyaWVz OwotCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMi5lbnRyaWVz OworCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfaGJyMiwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5p b24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xMzkwLDE3ICsxMzk1LDE3IEBAIGlj bF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKIAogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gNTQwMDAwKSB7Ci0JCSpu X2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjMubnVtX2Vu dHJpZXM7Ci0JCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjMu ZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRp X3RyYW5zbGF0aW9uc19lZHBfaGJyMywKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYg KGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsKLQkJKm5fZW50cmllcyA9IGljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMi5udW1fZW50cmllczsKLQkJcmV0dXJuIGlj bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMi5lbnRyaWVzOworCQlyZXR1cm4g aW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9o YnIyLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoSVNfREcxKGRldl9wcml2KSAm JiBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7Ci0JCSpuX2VudHJpZXMgPSBkZzFf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLm51bV9lbnRyaWVzOwotCQly ZXR1cm4gZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMy5lbnRyaWVz OworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX2hicjJfaGJyMywKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9IGVsc2UgaWYgKElT X0RHMShkZXZfcHJpdikpIHsKLQkJKm5fZW50cmllcyA9IGRnMV9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9yYnJfaGJyLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gZGcxX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2RwX3Jicl9oYnIuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9i dWZfdHJhbnMoJmRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9yYnJfaGJyLAorCQkJ CQkgICBuX2VudHJpZXMpOwogCX0KIAogCXJldHVybiBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19k cChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJpZXMpOwpAQCAtMTQyNCw4ICsxNDI5LDggQEAg aWNsX2dldF9tZ19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIGlu dCAqbl9lbnRyaWVzKQogewotCSpuX2VudHJpZXMgPSBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlv bnNfaGRtaS5udW1fZW50cmllczsKLQlyZXR1cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25z X2hkbWkuZW50cmllczsKKwlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX21nX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2hkbWksCisJCQkJICAgbl9lbnRyaWVzKTsKIH0KIAogc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgpAQCAtMTQzNCwxMSArMTQzOSwx MSBAQCBpY2xfZ2V0X21nX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCWludCAqbl9lbnRyaWVzKQogewogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4g MjcwMDAwKSB7Ci0JCSpuX2VudHJpZXMgPSBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJy Ml9oYnIzLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25z X2hicjJfaGJyMy5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX21n X3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJfaGJyMywKKwkJCQkJICAgbl9lbnRyaWVzKTsKIAl9 IGVsc2UgewotCQkqbl9lbnRyaWVzID0gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX3Jicl9o YnIubnVtX2VudHJpZXM7Ci0JCXJldHVybiBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfcmJy X2hici5lbnRyaWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX21nX3BoeV9k ZGlfdHJhbnNsYXRpb25zX3Jicl9oYnIsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogfQogCkBA IC0xNDU4LDggKzE0NjMsOCBAQCBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmll cyA9IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwotCXJl dHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOworCXJldHVy biBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRt aSwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xNDY3LDggKzE0NzIsOCBAQCBlaGxfZ2V0X2NvbWJvX2J1 Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50ICpuX2VudHJpZXMp CiB7Ci0JKm5fZW50cmllcyA9IGVobF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcC5udW1f ZW50cmllczsKLQlyZXR1cm4gZWhsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwLmVudHJp ZXM7CisJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmVobF9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcCwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xNDc5LDggKzE0ODQsOCBAQCBlaGxfZ2V0 X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7CiAKIAlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewotCQkqbl9lbnRyaWVz ID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLm51bV9lbnRyaWVzOwot CQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLmVudHJpZXM7 CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZWRwX2hicjIsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogCiAJcmV0dXJuIGVobF9n ZXRfY29tYm9fYnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7CkBA IC0xNTA0LDggKzE1MDksOCBAQCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmll cyA9IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwotCXJl dHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOworCXJldHVy biBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRt aSwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xNTEzLDggKzE1MTgsOCBAQCBqc2xfZ2V0X2NvbWJvX2J1 Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50ICpuX2VudHJpZXMp CiB7Ci0JKm5fZW50cmllcyA9IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIy Lm51bV9lbnRyaWVzOwotCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBf aGJyMi5lbnRyaWVzOworCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwKKwkJCQkgICBuX2VudHJpZXMpOwogfQogCiBzdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xNTI2LDExICsx NTMxLDExIEBAIGpzbF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAogCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7CiAJCWlm IChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7Ci0JCQkqbl9lbnRyaWVzID0ganNs X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLm51bV9lbnRyaWVzOwotCQkJcmV0 dXJuIGpzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMi5lbnRyaWVzOworCQkJ cmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmpzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9u c19lZHBfaGJyMiwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0gZWxzZSB7Ci0JCQkqbl9lbnRy aWVzID0ganNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIubnVtX2VudHJpZXM7 Ci0JCQlyZXR1cm4ganNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIuZW50cmll czsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZqc2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZWRwX2hiciwKKwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0KIAl9CiAKQEAgLTE1 NTUsOCArMTU2MCw4IEBAIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkJICAgICBpbnQgKm5fZW50cmllcykKIHsKLQkqbl9lbnRyaWVzID0g aWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Ci0JcmV0dXJu IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJcmV0dXJuIGlu dGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAor CQkJCSAgIG5fZW50cmllcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5ICoKQEAgLTE1NjgsMjIgKzE1NzMsMjIgQEAgdGdsX2dldF9jb21ib19idWZf dHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpZiAoY3J0Y19zdGF0 ZS0+cG9ydF9jbG9jayA+IDI3MDAwMCkgewogCQlpZiAoSVNfUk9DS0VUTEFLRShkZXZfcHJpdikp IHsKLQkJCSpuX2VudHJpZXMgPSBya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJy Ml9oYnIzLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIHJrbF9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19kcF9oYnIyX2hicjMuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLAorCQkJCQkJICAg bl9lbnRyaWVzKTsKIAkJfSBlbHNlIGlmIChJU19UR0xfVShkZXZfcHJpdikgfHwgSVNfVEdMX1ko ZGV2X3ByaXYpKSB7Ci0JCQkqbl9lbnRyaWVzID0gdGdsX3V5X2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX2hicjIubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gdGdsX3V5X2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2RwX2hicjIuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVm X3RyYW5zKCZ0Z2xfdXlfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwKKwkJCQkJ CSAgIG5fZW50cmllcyk7CiAJCX0gZWxzZSB7Ci0JCQkqbl9lbnRyaWVzID0gdGdsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIubnVtX2VudHJpZXM7Ci0JCQlyZXR1cm4gdGdsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIuZW50cmllczsKKwkJCXJldHVybiBpbnRl bF9nZXRfYnVmX3RyYW5zKCZ0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwK KwkJCQkJCSAgIG5fZW50cmllcyk7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAoSVNfUk9DS0VUTEFL RShkZXZfcHJpdikpIHsKLQkJCSpuX2VudHJpZXMgPSBya2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfaGJyLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIHJrbF9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyLAorCQkJCQkJICAgbl9lbnRy aWVzKTsKIAkJfSBlbHNlIHsKLQkJCSpuX2VudHJpZXMgPSB0Z2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZHBfaGJyLm51bV9lbnRyaWVzOwotCQkJcmV0dXJuIHRnbF9jb21ib19waHlfZGRp X3RyYW5zbGF0aW9uc19kcF9oYnIuZW50cmllczsKKwkJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZ0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyLAorCQkJCQkJICAgbl9l bnRyaWVzKTsKIAkJfQogCX0KIH0KQEAgLTE1OTcsMTQgKzE2MDIsMTQgQEAgdGdsX2dldF9jb21i b19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CiAKIAlpZiAoY3J0 Y19zdGF0ZS0+cG9ydF9jbG9jayA+IDU0MDAwMCkgewotCQkqbl9lbnRyaWVzID0gaWNsX2NvbWJv X3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIzLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gaWNs X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIzLmVudHJpZXM7CisJCXJldHVybiBp bnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hi cjMsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIGlmIChkZXZfcHJpdi0+dmJ0LmVkcC5o b2JsICYmICFpbnRlbF9kcC0+aG9ibF9mYWlsZWQpIHsKLQkJKm5fZW50cmllcyA9IHRnbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsLm51bV9lbnRyaWVzOwotCQlyZXR1 cm4gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hvYmwuZW50cmllczsK KwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19lZHBfaGJyMl9ob2JsLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0gZWxzZSBpZiAoZGV2 X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewotCQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gaWNsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLmVudHJpZXM7CisJCXJldHVybiBpbnRl bF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIs CisJCQkJCSAgIG5fZW50cmllcyk7CiAJfQogCiAJcmV0dXJuIHRnbF9nZXRfY29tYm9fYnVmX3Ry YW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7CkBAIC0xNjI4LDggKzE2MzMs OCBAQCB0Z2xfZ2V0X2RrbF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJICAgaW50ICpuX2VudHJpZXMpCiB7Ci0JKm5fZW50cmllcyA9IHRnbF9ka2xfcGh5X2RkaV90 cmFuc2xhdGlvbnNfaGRtaS5udW1fZW50cmllczsKLQlyZXR1cm4gdGdsX2RrbF9waHlfZGRpX3Ry YW5zbGF0aW9uc19oZG1pLmVudHJpZXM7CisJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRn bF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwKKwkJCQkgICBuX2VudHJpZXMpOwogfQog CiBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCkBAIC0xNjM4 LDExICsxNjQzLDExIEBAIHRnbF9nZXRfZGtsX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJCSBpbnQgKm5fZW50cmllcykKIHsKIAlpZiAoY3J0Y19zdGF0ZS0+ cG9ydF9jbG9jayA+IDI3MDAwMCkgewotCQkqbl9lbnRyaWVzID0gdGdsX2RrbF9waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIyLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gdGdsX2RrbF9waHlfZGRp X3RyYW5zbGF0aW9uc19kcF9oYnIyLmVudHJpZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZ0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIsCisJCQkJCSAgIG5fZW50 cmllcyk7CiAJfSBlbHNlIHsKLQkJKm5fZW50cmllcyA9IHRnbF9ka2xfcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfaGJyLm51bV9lbnRyaWVzOwotCQlyZXR1cm4gdGdsX2RrbF9waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIuZW50cmllczsKKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnRn bF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyLAorCQkJCQkgICBuX2VudHJpZXMpOwog CX0KIH0KIApAQCAtMTY2MywxMSArMTY2OCwxMSBAQCBhZGxwX2dldF9ka2xfYnVmX3RyYW5zX2Rw KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICBpbnQgKm5fZW50cmllcykKIHsK IAlpZiAoY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA+IDI3MDAwMCkgewotCQkqbl9lbnRyaWVzID0g YWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLm51bV9lbnRyaWVzOwot CQlyZXR1cm4gYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLmVudHJp ZXM7CisJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZhZGxwX2RrbF9waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIyX2hicjMsCisJCQkJCSAgIG5fZW50cmllcyk7CiAJfSBlbHNlIHsKLQkJ Km5fZW50cmllcyA9IGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hici5udW1fZW50 cmllczsKLQkJcmV0dXJuIGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hici5lbnRy aWVzOworCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmYWRscF9ka2xfcGh5X2RkaV90cmFu c2xhdGlvbnNfZHBfaGJyLAorCQkJCQkgICBuX2VudHJpZXMpOwogCX0KIH0KIAotLSAKMi4zMS4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK