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 A21E4C433DB for ; Thu, 25 Mar 2021 21:48:48 +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 6CCF1619D3 for ; Thu, 25 Mar 2021 21:48:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6CCF1619D3 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 91EE36EE68; Thu, 25 Mar 2021 21:48:45 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E00C16EE5F for ; Thu, 25 Mar 2021 21:48:41 +0000 (UTC) IronPort-SDR: yDeXhr4ftaUPr0bJ705kmpbns4YMKCR40Ou2/LicEcbYH7TiOMSkRq7KDrwmBtS79TugfAikxJ fnCEBxaBRIEw== X-IronPort-AV: E=McAfee;i="6000,8403,9934"; a="171005108" X-IronPort-AV: E=Sophos;i="5.81,278,1610438400"; d="scan'208";a="171005108" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2021 14:48:41 -0700 IronPort-SDR: STw1nqsg8hvMv7MEzj0sUX+tkmlePKiuyS7fkVfsN/tsSBfVP3GAVlWEzgY8oPsvPuZSsj6QRR I2FrXdwo6fKA== X-IronPort-AV: E=Sophos;i="5.81,278,1610438400"; d="scan'208";a="375235746" Received: from ideak-desk.fi.intel.com ([10.237.68.141]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2021 14:48:40 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Date: Thu, 25 Mar 2021 23:48:06 +0200 Message-Id: <20210325214808.2071517-24-imre.deak@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210325214808.2071517-1-imre.deak@intel.com> References: <20210325214808.2071517-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 23/25] drm/i915: Add support for FBs requiring a POT stride alignment 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" QW4gdXBjb21pbmcgcGxhdGZvcm0gaGFzIGEgcmVzdHJpY3Rpb24gdGhhdCB0aGUgRkIgc3RyaWRl IG11c3QgYmUKcG93ZXItb2YtdHdvIGFsaWduZWQuIFRvIHN1cHBvcnQgZnJhbWVidWZmZXIgbGF5 b3V0cyB0aGF0IGFyZSBub3QgaW4KdGhpcyBsYXlvdXQgYWRkIGEgbG9naWMgdGhhdCBwYWRzIHRo ZSB0aWxlIHJvd3MgdG8gdGhlIFBPVCBhbGlnbmVkIHNpemUuCgpUaGUgSFcgd29uJ3QgcmVhZCB0 aGUgcGFkZGluZyBQVEVzLCBzbyB0aGVzZSBkb24ndCBoYXZlIHRvIHBvaW50IHRvIGFuCmFsbG9j YXRlZCBhZGRyZXNzLCBvciBldmVuIGhhdmUgdGhlaXIgdmFsaWQgZmxhZyBzZXQuIFNvIHVzZSBh IE5VTEwgUFRFCmluc3RlYWQgZm9yIGluc3RhbmNlIHRoZSBzY3JhdGNoIHBhZ2UsIHdoaWNoIGlz IHNpbXBsZSBhbmQga2VlcHMgdGhlIFNHCnRhYmxlIGNvbXBhY3QuCgp2MjoKLSBTaW1wbGlmeSBw bGFuZV92aWV3X2RzdF9zdHJpZGUoKS4gKFZpbGxlKQotIFBhc3MgcGl0Y2hfdGlsZXMgYXMgdW5z aWduZWQgaW50LgoKU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29t PgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAg fCAgNiArLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwg IDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYi5jICAgICAgIHwgNDkg KysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ2d0dC5jICAg ICAgICAgIHwgNTggKysrKysrKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDggKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYV90eXBlcy5oICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfdm1hLmMgICAgIHwgMTMgKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2Vy dGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNDhiOGUyMDgzZTE0YS4uMzU1MGRiNTFhYjdhZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTkzMyw3 ICs5MzMsNyBAQCB1bnNpZ25lZCBpbnQgaW50ZWxfcm90YXRpb25faW5mb19zaXplKGNvbnN0IHN0 cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbwogCWludCBpOwogCiAJZm9yIChpID0g MCA7IGkgPCBBUlJBWV9TSVpFKHJvdF9pbmZvLT5wbGFuZSk7IGkrKykKLQkJc2l6ZSArPSByb3Rf aW5mby0+cGxhbmVbaV0ud2lkdGggKiByb3RfaW5mby0+cGxhbmVbaV0uaGVpZ2h0OworCQlzaXpl ICs9IHJvdF9pbmZvLT5wbGFuZVtpXS5kc3Rfc3RyaWRlICogcm90X2luZm8tPnBsYW5lW2ldLndp ZHRoOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC05NDQsNyArOTQ0LDcgQEAgdW5zaWduZWQgaW50 IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5m byAqcmVtX2luZm8KIAlpbnQgaTsKIAogCWZvciAoaSA9IDAgOyBpIDwgQVJSQVlfU0laRShyZW1f aW5mby0+cGxhbmUpOyBpKyspCi0JCXNpemUgKz0gcmVtX2luZm8tPnBsYW5lW2ldLndpZHRoICog cmVtX2luZm8tPnBsYW5lW2ldLmhlaWdodDsKKwkJc2l6ZSArPSByZW1faW5mby0+cGxhbmVbaV0u ZHN0X3N0cmlkZSAqIHJlbV9pbmZvLT5wbGFuZVtpXS5oZWlnaHQ7CiAKIAlyZXR1cm4gc2l6ZTsK IH0KQEAgLTE2ODUsNyArMTY4NSw3IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIHZhbGlkX2ZiOgogCXBsYW5lX3N0YXRlLT5y b3RhdGlvbiA9IHBsYW5lX2NvbmZpZy0+cm90YXRpb247Ci0JaW50ZWxfZmJfZmlsbF92aWV3KHRv X2ludGVsX2ZyYW1lYnVmZmVyKGZiKSwgcGxhbmVfc3RhdGUtPnJvdGF0aW9uLAorCWludGVsX2Zi X2ZpbGxfdmlldyh0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYiksIHBsYW5lX2NvbmZpZy0+cm90YXRp b24sCiAJCQkgICAmaW50ZWxfc3RhdGUtPnZpZXcpOwogCiAJX19pOTE1X3ZtYV9waW4odm1hKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90 eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmgKaW5kZXggYjcyODYxZjZmNjhhNy4uNTg2OTc2YzFhOTcwMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKQEAgLTEyOCw2ICsx MjgsNyBAQCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgewogCS8qIFBhcmFtcyB0byByZW1hcCB0 aGUgRkIgcGFnZXMgYW5kIHByb2dyYW0gdGhlIHBsYW5lIHJlZ2lzdGVycyBpbiBlYWNoIHZpZXcu ICovCiAJc3RydWN0IGludGVsX2ZiX3ZpZXcgbm9ybWFsX3ZpZXc7CiAJc3RydWN0IGludGVsX2Zi X3ZpZXcgcm90YXRlZF92aWV3OworCXN0cnVjdCBpbnRlbF9mYl92aWV3IHJlbWFwcGVkX3ZpZXc7 CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZmJkZXYgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9mYi5jCmluZGV4IGRjZjdlODExZDE0MjUuLmE4ZmNlZDQ1NzBlMzAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiLmMKQEAgLTQ4NiwxMCArNDg2LDE3IEBAIHN0YXRp YyBib29sIGludGVsX3BsYW5lX2Nhbl9yZW1hcChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpbnRlbF9m Yl9uZWVkc19wb3Rfc3RyaWRlX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAq ZmIpCit7CisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW50IGludGVsX2ZiX3BpdGNoKGNv bnN0IHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFuZSwgdW5zaWdu ZWQgaW50IHJvdGF0aW9uKQogewogCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9u KSkKIAkJcmV0dXJuIGZiLT5yb3RhdGVkX3ZpZXcuY29sb3JfcGxhbmVbY29sb3JfcGxhbmVdLnBp dGNoOworCWVsc2UgaWYgKGludGVsX2ZiX25lZWRzX3BvdF9zdHJpZGVfcmVtYXAoZmIpKQorCQly ZXR1cm4gZmItPnJlbWFwcGVkX3ZpZXcuY29sb3JfcGxhbmVbY29sb3JfcGxhbmVdLnBpdGNoOwog CWVsc2UKIAkJcmV0dXJuIGZiLT5ub3JtYWxfdmlldy5jb2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0u cGl0Y2g7CiB9CkBAIC01OTcsNiArNjA0LDE2IEBAIHBsYW5lX3ZpZXdfc3JjX3N0cmlkZV90aWxl cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUsCiAJ CQkgICAgZGltcy0+dGlsZV93aWR0aCAqIGZiLT5iYXNlLmZvcm1hdC0+Y3BwW2NvbG9yX3BsYW5l XSk7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK3BsYW5lX3ZpZXdfZHN0X3N0cmlkZV90aWxl cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUsCisJ CQkgICAgdW5zaWduZWQgaW50IHBpdGNoX3RpbGVzKQoreworCWlmIChpbnRlbF9mYl9uZWVkc19w b3Rfc3RyaWRlX3JlbWFwKGZiKSkKKwkJcmV0dXJuIHJvdW5kdXBfcG93X29mX3R3byhwaXRjaF90 aWxlcyk7CisJZWxzZQorCQlyZXR1cm4gcGl0Y2hfdGlsZXM7Cit9CisKIHN0YXRpYyB1bnNpZ25l ZCBpbnQKIHBsYW5lX3ZpZXdfd2lkdGhfdGlsZXMoY29uc3Qgc3RydWN0IGludGVsX2ZyYW1lYnVm ZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lLAogCQkgICAgICAgY29uc3Qgc3RydWN0IGZiX3BsYW5l X3ZpZXdfZGltcyAqZGltcywKQEAgLTYyOSw4ICs2NDYsOCBAQCBzdGF0aWMgdTMyIGNhbGNfcGxh bmVfcmVtYXBfaW5mbyhjb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiLCBpbnQgY29s b3JfcAogCXVuc2lnbmVkIGludCB0aWxlX3dpZHRoID0gZGltcy0+dGlsZV93aWR0aDsKIAl1bnNp Z25lZCBpbnQgdGlsZV9oZWlnaHQgPSBkaW1zLT50aWxlX2hlaWdodDsKIAl1bnNpZ25lZCBpbnQg dGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGk5MTUpOwotCXVuc2lnbmVkIGludCBwaXRjaF90 aWxlczsKIAlzdHJ1Y3QgZHJtX3JlY3QgcjsKKwl1MzIgc2l6ZTsKIAogCWFzc2lnbl9jaGtfb3Zm KGk5MTUsIHJlbWFwX2luZm8tPm9mZnNldCwgb2JqX29mZnNldCk7CiAJYXNzaWduX2Noa19vdmYo aTkxNSwgcmVtYXBfaW5mby0+c3JjX3N0cmlkZSwgcGxhbmVfdmlld19zcmNfc3RyaWRlX3RpbGVz KGZiLCBjb2xvcl9wbGFuZSwgZGltcykpOwpAQCAtNjQwLDYgKzY1Nyw5IEBAIHN0YXRpYyB1MzIg Y2FsY19wbGFuZV9yZW1hcF9pbmZvKGNvbnN0IHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmIs IGludCBjb2xvcl9wCiAJaWYgKHZpZXctPmd0dC50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JPVEFU RUQpIHsKIAkJY2hlY2tfYXJyYXlfYm91bmRzKGk5MTUsIHZpZXctPmd0dC5yb3RhdGVkLnBsYW5l LCBjb2xvcl9wbGFuZSk7CiAKKwkJYXNzaWduX2Noa19vdmYoaTkxNSwgcmVtYXBfaW5mby0+ZHN0 X3N0cmlkZSwKKwkJCSAgICAgICBwbGFuZV92aWV3X2RzdF9zdHJpZGVfdGlsZXMoZmIsIGNvbG9y X3BsYW5lLCByZW1hcF9pbmZvLT5oZWlnaHQpKTsKKwogCQkvKiByb3RhdGUgdGhlIHgveSBvZmZz ZXRzIHRvIG1hdGNoIHRoZSBHVFQgdmlldyAqLwogCQlkcm1fcmVjdF9pbml0KCZyLCB4LCB5LCBk aW1zLT53aWR0aCwgZGltcy0+aGVpZ2h0KTsKIAkJZHJtX3JlY3Rfcm90YXRlKCZyLApAQCAtNjUw LDIyICs2NzAsMjYgQEAgc3RhdGljIHUzMiBjYWxjX3BsYW5lX3JlbWFwX2luZm8oY29uc3Qgc3Ry dWN0IGludGVsX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3AKIAkJY29sb3JfcGxhbmVfaW5m by0+eCA9IHIueDE7CiAJCWNvbG9yX3BsYW5lX2luZm8tPnkgPSByLnkxOwogCi0JCXBpdGNoX3Rp bGVzID0gcmVtYXBfaW5mby0+aGVpZ2h0OwotCQljb2xvcl9wbGFuZV9pbmZvLT5waXRjaCA9IHBp dGNoX3RpbGVzICogdGlsZV9oZWlnaHQ7CisJCWNvbG9yX3BsYW5lX2luZm8tPnBpdGNoID0gcmVt YXBfaW5mby0+ZHN0X3N0cmlkZSAqIHRpbGVfaGVpZ2h0OworCisJCXNpemUgPSByZW1hcF9pbmZv LT5kc3Rfc3RyaWRlICogcmVtYXBfaW5mby0+d2lkdGg7CiAKIAkJLyogcm90YXRlIHRoZSB0aWxl IGRpbWVuc2lvbnMgdG8gbWF0Y2ggdGhlIEdUVCB2aWV3ICovCiAJCXN3YXAodGlsZV93aWR0aCwg dGlsZV9oZWlnaHQpOwogCX0gZWxzZSB7CiAJCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sIHZpZXct Pmd0dC50eXBlICE9IEk5MTVfR0dUVF9WSUVXX1JFTUFQUEVEKTsKLQogCQljaGVja19hcnJheV9i b3VuZHMoaTkxNSwgdmlldy0+Z3R0LnJlbWFwcGVkLnBsYW5lLCBjb2xvcl9wbGFuZSk7CiAKKwkJ YXNzaWduX2Noa19vdmYoaTkxNSwgcmVtYXBfaW5mby0+ZHN0X3N0cmlkZSwKKwkJCSAgICAgICBw bGFuZV92aWV3X2RzdF9zdHJpZGVfdGlsZXMoZmIsIGNvbG9yX3BsYW5lLCByZW1hcF9pbmZvLT53 aWR0aCkpOworCiAJCWNvbG9yX3BsYW5lX2luZm8tPnggPSB4OwogCQljb2xvcl9wbGFuZV9pbmZv LT55ID0geTsKIAotCQlwaXRjaF90aWxlcyA9IHJlbWFwX2luZm8tPndpZHRoOwotCQljb2xvcl9w bGFuZV9pbmZvLT5waXRjaCA9IHBpdGNoX3RpbGVzICogdGlsZV93aWR0aCAqCisJCWNvbG9yX3Bs YW5lX2luZm8tPnBpdGNoID0gcmVtYXBfaW5mby0+ZHN0X3N0cmlkZSAqIHRpbGVfd2lkdGggKgog CQkJCQkgIGZiLT5iYXNlLmZvcm1hdC0+Y3BwW2NvbG9yX3BsYW5lXTsKKworCQlzaXplID0gcmVt YXBfaW5mby0+ZHN0X3N0cmlkZSAqIHJlbWFwX2luZm8tPmhlaWdodDsKIAl9CiAKIAkvKgpAQCAt Njc1LDEwICs2OTksMTAgQEAgc3RhdGljIHUzMiBjYWxjX3BsYW5lX3JlbWFwX2luZm8oY29uc3Qg c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3AKIAkgKi8KIAlpbnRlbF9h ZGp1c3RfdGlsZV9vZmZzZXQoJmNvbG9yX3BsYW5lX2luZm8tPngsICZjb2xvcl9wbGFuZV9pbmZv LT55LAogCQkJCSB0aWxlX3dpZHRoLCB0aWxlX2hlaWdodCwKLQkJCQkgdGlsZV9zaXplLCBwaXRj aF90aWxlcywKKwkJCQkgdGlsZV9zaXplLCByZW1hcF9pbmZvLT5kc3Rfc3RyaWRlLAogCQkJCSBn dHRfb2Zmc2V0ICogdGlsZV9zaXplLCAwKTsKIAotCXJldHVybiByZW1hcF9pbmZvLT53aWR0aCAq IHJlbWFwX2luZm8tPmhlaWdodDsKKwlyZXR1cm4gc2l6ZTsKIH0KIAogI3VuZGVmIGFzc2lnbl9j aGtfb3ZmCkBAIC03MjMsMTIgKzc0NywxNCBAQCBpbnQgaW50ZWxfZmlsbF9mYl9pbmZvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYgogCXN0 cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihm Yik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7 CiAJdTMyIGd0dF9vZmZzZXRfcm90YXRlZCA9IDA7CisJdTMyIGd0dF9vZmZzZXRfcmVtYXBwZWQg PSAwOwogCXVuc2lnbmVkIGludCBtYXhfc2l6ZSA9IDA7CiAJaW50IGksIG51bV9wbGFuZXMgPSBm Yi0+Zm9ybWF0LT5udW1fcGxhbmVzOwogCXVuc2lnbmVkIGludCB0aWxlX3NpemUgPSBpbnRlbF90 aWxlX3NpemUoaTkxNSk7CiAKIAlpbnRlbF9mYl92aWV3X2luaXQoJmludGVsX2ZiLT5ub3JtYWxf dmlldywgSTkxNV9HR1RUX1ZJRVdfTk9STUFMKTsKIAlpbnRlbF9mYl92aWV3X2luaXQoJmludGVs X2ZiLT5yb3RhdGVkX3ZpZXcsIEk5MTVfR0dUVF9WSUVXX1JPVEFURUQpOworCWludGVsX2ZiX3Zp ZXdfaW5pdCgmaW50ZWxfZmItPnJlbWFwcGVkX3ZpZXcsIEk5MTVfR0dUVF9WSUVXX1JFTUFQUEVE KTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW1fcGxhbmVzOyBpKyspIHsKIAkJc3RydWN0IGZiX3Bs YW5lX3ZpZXdfZGltcyB2aWV3X2RpbXM7CkBAIC03NzYsNiArODAyLDExIEBAIGludCBpbnRlbF9m aWxsX2ZiX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiCiAJCQkJCQkJCSAgICBvZmZzZXQsIGd0dF9vZmZzZXRfcm90YXRlZCwgeCwg eSwKIAkJCQkJCQkJICAgICZpbnRlbF9mYi0+cm90YXRlZF92aWV3KTsKIAorCQlpZiAoaW50ZWxf ZmJfbmVlZHNfcG90X3N0cmlkZV9yZW1hcChpbnRlbF9mYikpCisJCQlndHRfb2Zmc2V0X3JlbWFw cGVkICs9IGNhbGNfcGxhbmVfcmVtYXBfaW5mbyhpbnRlbF9mYiwgaSwgJnZpZXdfZGltcywKKwkJ CQkJCQkJICAgICBvZmZzZXQsIGd0dF9vZmZzZXRfcmVtYXBwZWQsIHgsIHksCisJCQkJCQkJCSAg ICAgJmludGVsX2ZiLT5yZW1hcHBlZF92aWV3KTsKKwogCQlzaXplID0gY2FsY19wbGFuZV9ub3Jt YWxfc2l6ZShpbnRlbF9mYiwgaSwgJnZpZXdfZGltcywgeCwgeSk7CiAJCS8qIGhvdyBtYW55IHRp bGVzIGluIHRvdGFsIG5lZWRlZCBpbiB0aGUgYm8gKi8KIAkJbWF4X3NpemUgPSBtYXgobWF4X3Np emUsIG9mZnNldCArIHNpemUpOwpAQCAtODU5LDYgKzg5MCw4IEBAIHZvaWQgaW50ZWxfZmJfZmls bF92aWV3KGNvbnN0IHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqZmIsIHVuc2lnbmVkIGludCBy b3RhdGlvCiB7CiAJaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocm90YXRpb24pKQogCQkqdmll dyA9IGZiLT5yb3RhdGVkX3ZpZXc7CisJZWxzZSBpZiAoaW50ZWxfZmJfbmVlZHNfcG90X3N0cmlk ZV9yZW1hcChmYikpCisJCSp2aWV3ID0gZmItPnJlbWFwcGVkX3ZpZXc7CiAJZWxzZQogCQkqdmll dyA9IGZiLT5ub3JtYWxfdmlldzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2dndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dndHQuYwpp bmRleCBjYjA0OGQwZTM2OWNlLi42MTE0ZjVjOTljZTcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9nZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZ2d0dC5jCkBAIC0xMjY3LDE0ICsxMjY3LDE2IEBAIHZvaWQgaTkxNV9nZ3R0X3Jlc3Vt ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogc3RhdGljIHN0cnVjdCBzY2F0dGVybGlzdCAqCiBy b3RhdGVfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50 IG9mZnNldCwKIAkgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCwK LQkgICAgIHVuc2lnbmVkIGludCBzdHJpZGUsCisJICAgICB1bnNpZ25lZCBpbnQgc3JjX3N0cmlk ZSwgdW5zaWduZWQgaW50IGRzdF9zdHJpZGUsCiAJICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnN0LCBz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnKQogewogCXVuc2lnbmVkIGludCBjb2x1bW4sIHJvdzsKIAl1 bnNpZ25lZCBpbnQgc3JjX2lkeDsKIAogCWZvciAoY29sdW1uID0gMDsgY29sdW1uIDwgd2lkdGg7 IGNvbHVtbisrKSB7Ci0JCXNyY19pZHggPSBzdHJpZGUgKiAoaGVpZ2h0IC0gMSkgKyBjb2x1bW4g KyBvZmZzZXQ7CisJCXVuc2lnbmVkIGludCBsZWZ0OworCisJCXNyY19pZHggPSBzcmNfc3RyaWRl ICogKGhlaWdodCAtIDEpICsgY29sdW1uICsgb2Zmc2V0OwogCQlmb3IgKHJvdyA9IDA7IHJvdyA8 IGhlaWdodDsgcm93KyspIHsKIAkJCXN0LT5uZW50cysrOwogCQkJLyoKQEAgLTEyODYsOSArMTI4 OCwyNyBAQCByb3RhdGVfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5z aWduZWQgaW50IG9mZnNldCwKIAkJCXNnX2RtYV9hZGRyZXNzKHNnKSA9CiAJCQkJaTkxNV9nZW1f b2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmosIHNyY19pZHgpOwogCQkJc2dfZG1hX2xlbihzZykg PSBJOTE1X0dUVF9QQUdFX1NJWkU7CisKIAkJCXNnID0gc2dfbmV4dChzZyk7Ci0JCQlzcmNfaWR4 IC09IHN0cmlkZTsKKwkJCXNyY19pZHggLT0gc3JjX3N0cmlkZTsKIAkJfQorCisJCWxlZnQgPSAo ZHN0X3N0cmlkZSAtIGhlaWdodCkgKiBJOTE1X0dUVF9QQUdFX1NJWkU7CisKKwkJaWYgKCFsZWZ0 KQorCQkJY29udGludWU7CisKKwkJc3QtPm5lbnRzKys7CisKKwkJLyoKKwkJICogVGhlIERFIGln bm9yZXMgdGhlIFBURXMgZm9yIHRoZSBwYWRkaW5nIHRpbGVzLCB0aGUgc2cgZW50cnkKKwkJICog aGVyZSBpcyBqdXN0IGEgY29uZW5pZW5jZSB0byBpbmRpY2F0ZSBob3cgbWFueSBwYWRkaW5nIFBU RXMKKwkJICogdG8gaW5zZXJ0IGF0IHRoaXMgc3BvdC4KKwkJICovCisJCXNnX3NldF9wYWdlKHNn LCBOVUxMLCBsZWZ0LCAwKTsKKwkJc2dfZG1hX2FkZHJlc3Moc2cpID0gMDsKKwkJc2dfZG1hX2xl bihzZykgPSBsZWZ0OworCQlzZyA9IHNnX25leHQoc2cpOwogCX0KIAogCXJldHVybiBzZzsKQEAg LTEzMTcsMTEgKzEzMzcsMTIgQEAgaW50ZWxfcm90YXRlX3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3Rh dGlvbl9pbmZvICpyb3RfaW5mbywKIAlzdC0+bmVudHMgPSAwOwogCXNnID0gc3QtPnNnbDsKIAot CWZvciAoaSA9IDAgOyBpIDwgQVJSQVlfU0laRShyb3RfaW5mby0+cGxhbmUpOyBpKyspIHsKKwlm b3IgKGkgPSAwIDsgaSA8IEFSUkFZX1NJWkUocm90X2luZm8tPnBsYW5lKTsgaSsrKQogCQlzZyA9 IHJvdGF0ZV9wYWdlcyhvYmosIHJvdF9pbmZvLT5wbGFuZVtpXS5vZmZzZXQsCiAJCQkJICByb3Rf aW5mby0+cGxhbmVbaV0ud2lkdGgsIHJvdF9pbmZvLT5wbGFuZVtpXS5oZWlnaHQsCi0JCQkJICBy b3RfaW5mby0+cGxhbmVbaV0uc3JjX3N0cmlkZSwgc3QsIHNnKTsKLQl9CisJCQkJICByb3RfaW5m by0+cGxhbmVbaV0uc3JjX3N0cmlkZSwKKwkJCQkgIHJvdF9pbmZvLT5wbGFuZVtpXS5kc3Rfc3Ry aWRlLAorCQkJCSAgc3QsIHNnKTsKIAogCXJldHVybiBzdDsKIApAQCAtMTMzOSw3ICsxMzYwLDcg QEAgaW50ZWxfcm90YXRlX3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5m bywKIHN0YXRpYyBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKgogcmVtYXBfcGFnZXMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IG9mZnNldCwKIAkgICAgdW5zaWduZWQg aW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAotCSAgICB1bnNpZ25lZCBpbnQgc3RyaWRl LAorCSAgICB1bnNpZ25lZCBpbnQgc3JjX3N0cmlkZSwgdW5zaWduZWQgaW50IGRzdF9zdHJpZGUs CiAJICAgIHN0cnVjdCBzZ190YWJsZSAqc3QsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCiB7CiAJ dW5zaWduZWQgaW50IHJvdzsKQEAgLTEzNTYsNyArMTM3Nyw2IEBAIHJlbWFwX3BhZ2VzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGludCBvZmZzZXQsCiAJCQkgKiB0 aGUgZW50cmllcyBzbyB0aGUgc2cgbGlzdCBjYW4gYmUgaGFwcGlseSB0cmF2ZXJzZWQuCiAJCQkg KiBUaGUgb25seSB0aGluZyB3ZSBuZWVkIGFyZSBETUEgYWRkcmVzc2VzLgogCQkJICovCi0KIAkJ CWFkZHIgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzX2xlbihvYmosIG9mZnNldCwg Jmxlbmd0aCk7CiAKIAkJCWxlbmd0aCA9IG1pbihsZWZ0LCBsZW5ndGgpOwpAQCAtMTM3Miw3ICsx MzkyLDI0IEBAIHJlbWFwX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVu c2lnbmVkIGludCBvZmZzZXQsCiAJCQlsZWZ0IC09IGxlbmd0aDsKIAkJfQogCi0JCW9mZnNldCAr PSBzdHJpZGUgLSB3aWR0aDsKKwkJb2Zmc2V0ICs9IHNyY19zdHJpZGUgLSB3aWR0aDsKKworCQls ZWZ0ID0gKGRzdF9zdHJpZGUgLSB3aWR0aCkgKiBJOTE1X0dUVF9QQUdFX1NJWkU7CisKKwkJaWYg KCFsZWZ0KQorCQkJY29udGludWU7CisKKwkJc3QtPm5lbnRzKys7CisKKwkJLyoKKwkJICogVGhl IERFIGlnbm9yZXMgdGhlIFBURXMgZm9yIHRoZSBwYWRkaW5nIHRpbGVzLCB0aGUgc2cgZW50cnkK KwkJICogaGVyZSBpcyBqdXN0IGEgY29uZW5pZW5jZSB0byBpbmRpY2F0ZSBob3cgbWFueSBwYWRk aW5nIFBURXMKKwkJICogdG8gaW5zZXJ0IGF0IHRoaXMgc3BvdC4KKwkJICovCisJCXNnX3NldF9w YWdlKHNnLCBOVUxMLCBsZWZ0LCAwKTsKKwkJc2dfZG1hX2FkZHJlc3Moc2cpID0gMDsKKwkJc2df ZG1hX2xlbihzZykgPSBsZWZ0OworCQlzZyA9IHNnX25leHQoc2cpOwogCX0KIAogCXJldHVybiBz ZzsKQEAgLTE0MDQsNyArMTQ0MSw4IEBAIGludGVsX3JlbWFwX3BhZ2VzKHN0cnVjdCBpbnRlbF9y ZW1hcHBlZF9pbmZvICpyZW1faW5mbywKIAlmb3IgKGkgPSAwIDsgaSA8IEFSUkFZX1NJWkUocmVt X2luZm8tPnBsYW5lKTsgaSsrKSB7CiAJCXNnID0gcmVtYXBfcGFnZXMob2JqLCByZW1faW5mby0+ cGxhbmVbaV0ub2Zmc2V0LAogCQkJCSByZW1faW5mby0+cGxhbmVbaV0ud2lkdGgsIHJlbV9pbmZv LT5wbGFuZVtpXS5oZWlnaHQsCi0JCQkJIHJlbV9pbmZvLT5wbGFuZVtpXS5zcmNfc3RyaWRlLCBz dCwgc2cpOworCQkJCSByZW1faW5mby0+cGxhbmVbaV0uc3JjX3N0cmlkZSwgcmVtX2luZm8tPnBs YW5lW2ldLmRzdF9zdHJpZGUsCisJCQkJIHN0LCBzZyk7CiAJfQogCiAJaTkxNV9zZ190cmltKHN0 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggOWM0YjlkNDc1NzkzYi4uYjY1 NGI3NDk4YmNkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTE3MywyNiAr MTczLDMwIEBAIGk5MTVfZGVidWdmc19kZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkJCWJyZWFrOwogCiAJCQljYXNlIEk5 MTVfR0dUVF9WSUVXX1JPVEFURUQ6Ci0JCQkJc2VxX3ByaW50ZihtLCAiLCByb3RhdGVkIFsoJXV4 JXUsIHN0cmlkZT0ldSwgb2Zmc2V0PSV1KSwgKCV1eCV1LCBzdHJpZGU9JXUsIG9mZnNldD0ldSld IiwKKwkJCQlzZXFfcHJpbnRmKG0sICIsIHJvdGF0ZWQgWygldXgldSwgc3JjX3N0cmlkZT0ldSwg ZHN0X3N0cmlkZT0ldSwgb2Zmc2V0PSV1KSwgKCV1eCV1LCBzcmNfc3RyaWRlPSV1LCBkc3Rfc3Ry aWRlPSV1LCBvZmZzZXQ9JXUpXSIsCiAJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJvdGF0ZWQucGxh bmVbMF0ud2lkdGgsCiAJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJvdGF0ZWQucGxhbmVbMF0uaGVp Z2h0LAogCQkJCQkgICB2bWEtPmdndHRfdmlldy5yb3RhdGVkLnBsYW5lWzBdLnNyY19zdHJpZGUs CisJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJvdGF0ZWQucGxhbmVbMF0uZHN0X3N0cmlkZSwKIAkJ CQkJICAgdm1hLT5nZ3R0X3ZpZXcucm90YXRlZC5wbGFuZVswXS5vZmZzZXQsCiAJCQkJCSAgIHZt YS0+Z2d0dF92aWV3LnJvdGF0ZWQucGxhbmVbMV0ud2lkdGgsCiAJCQkJCSAgIHZtYS0+Z2d0dF92 aWV3LnJvdGF0ZWQucGxhbmVbMV0uaGVpZ2h0LAogCQkJCQkgICB2bWEtPmdndHRfdmlldy5yb3Rh dGVkLnBsYW5lWzFdLnNyY19zdHJpZGUsCisJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJvdGF0ZWQu cGxhbmVbMV0uZHN0X3N0cmlkZSwKIAkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucm90YXRlZC5wbGFu ZVsxXS5vZmZzZXQpOwogCQkJCWJyZWFrOwogCiAJCQljYXNlIEk5MTVfR0dUVF9WSUVXX1JFTUFQ UEVEOgotCQkJCXNlcV9wcmludGYobSwgIiwgcmVtYXBwZWQgWygldXgldSwgc3RyaWRlPSV1LCBv ZmZzZXQ9JXUpLCAoJXV4JXUsIHN0cmlkZT0ldSwgb2Zmc2V0PSV1KV0iLAorCQkJCXNlcV9wcmlu dGYobSwgIiwgcmVtYXBwZWQgWygldXgldSwgc3JjX3N0cmlkZT0ldSwgZHN0X3N0cmlkZT0ldSwg b2Zmc2V0PSV1KSwgKCV1eCV1LCBzcmNfc3RyaWRlPSV1LCBkc3Rfc3RyaWRlPSV1LCBvZmZzZXQ9 JXUpXSIsCiAJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLndpZHRoLAog CQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS5oZWlnaHQsCiAJCQkJCSAg IHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLnNyY19zdHJpZGUsCisJCQkJCSAgIHZt YS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLmRzdF9zdHJpZGUsCiAJCQkJCSAgIHZtYS0+ Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNldCwKIAkJCQkJICAgdm1hLT5nZ3R0X3Zp ZXcucmVtYXBwZWQucGxhbmVbMV0ud2lkdGgsCiAJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFw cGVkLnBsYW5lWzFdLmhlaWdodCwKIAkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxh bmVbMV0uc3JjX3N0cmlkZSwKKwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVb MV0uZHN0X3N0cmlkZSwKIAkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0u b2Zmc2V0KTsKIAkJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV92bWFfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmgK aW5kZXggZjdmMmFhMTY4YzllZi4uNmIxYmZhMjMwYjgyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV92bWFfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZtYV90eXBlcy5oCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RydWN0IGludGVsX3JlbWFwcGVk X3BsYW5lX2luZm8gewogCXUxNiB3aWR0aDsKIAl1MTYgaGVpZ2h0OwogCXUxNiBzcmNfc3RyaWRl OwotCXUxNiB1bnVzZWRfbWJ6OworCXUxNiBkc3Rfc3RyaWRlOwogfSBfX3BhY2tlZDsKIAogc3Ry dWN0IGludGVsX3JlbWFwcGVkX2luZm8gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV92bWEuYwppbmRleCA5YWFmNzIwMWUyNDIxLi42YWFkY2QzMWQ3NWE5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwpAQCAtNTI4LDYgKzUyOCwxNSBAQCBz dGF0aWMgaW50IGlndF92bWFfcm90YXRlX3JlbWFwKHZvaWQgKmFyZykKIAkJCUdFTV9CVUdfT04o bWF4X29mZnNldCA+IG1heF9wYWdlcyk7CiAJCQltYXhfb2Zmc2V0ID0gbWF4X3BhZ2VzIC0gbWF4 X29mZnNldDsKIAorCQkJaWYgKCFwbGFuZV9pbmZvWzBdLmRzdF9zdHJpZGUpCisJCQkJcGxhbmVf aW5mb1swXS5kc3Rfc3RyaWRlID0gdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQg PworCQkJCQkJCQkJcGxhbmVfaW5mb1swXS5oZWlnaHQgOgorCQkJCQkJCQkJcGxhbmVfaW5mb1sw XS53aWR0aDsKKwkJCWlmICghcGxhbmVfaW5mb1sxXS5kc3Rfc3RyaWRlKQorCQkJCXBsYW5lX2lu Zm9bMV0uZHN0X3N0cmlkZSA9IHZpZXcudHlwZSA9PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEID8K KwkJCQkJCQkJCXBsYW5lX2luZm9bMV0uaGVpZ2h0IDoKKwkJCQkJCQkJCXBsYW5lX2luZm9bMV0u d2lkdGg7CisKIAkJCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKHBsYW5lX2luZm9bMF0ub2Zm c2V0LCAwLCBtYXhfb2Zmc2V0KSB7CiAJCQkJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zyb20ocGxh bmVfaW5mb1sxXS5vZmZzZXQsIDAsIG1heF9vZmZzZXQpIHsKIAkJCQkJc3RydWN0IHNjYXR0ZXJs aXN0ICpzZzsKQEAgLTkwMiw2ICs5MTEsMTAgQEAgc3RhdGljIGludCBpZ3Rfdm1hX3JlbWFwcGVk X2d0dCh2b2lkICphcmcpCiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gb3V0OwogCisJCQlpZiAoIXBs YW5lX2luZm9bMF0uZHN0X3N0cmlkZSkKKwkJCQlwbGFuZV9pbmZvWzBdLmRzdF9zdHJpZGUgPSAq dCA9PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEID8KKwkJCQkJCQkJIHAtPmhlaWdodCA6IHAtPndp ZHRoOworCiAJCQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmdmlldywgMCwg MCwgUElOX01BUFBBQkxFKTsKIAkJCWlmIChJU19FUlIodm1hKSkgewogCQkJCWVyciA9IFBUUl9F UlIodm1hKTsKLS0gCjIuMjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==