From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83193C43331 for ; Thu, 26 Mar 2020 18:14: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 60E1520714 for ; Thu, 26 Mar 2020 18:14:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60E1520714 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 0ABE96E904; Thu, 26 Mar 2020 18:14:14 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1CBC76E903 for ; Thu, 26 Mar 2020 18:14:06 +0000 (UTC) IronPort-SDR: RuFUwwdiWrjp5QE8Gss8mDd++79Lr/uBZC2Z8b6iX6t/aSn98OXZ54s107fozlS3QkXi3fzJnM 29Ih+X0PYFUg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2020 11:14:05 -0700 IronPort-SDR: vLkAh+QnauzJKWiA14bjr5ZTTrT5p1FzaCGYnJAi1KZC4Mbtg2FCTaAh40zWQEu1aFTCw1DkPT bxPP1SHM51JA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,309,1580803200"; d="scan'208";a="420808284" Received: from unknown (HELO slisovsk-Lenovo-ideapad-720S-13IKB.fi.intel.com) ([10.237.72.89]) by orsmga005.jf.intel.com with ESMTP; 26 Mar 2020 11:14:03 -0700 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Thu, 26 Mar 2020 20:10:01 +0200 Message-Id: <20200326181005.11775-7-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.24.1.485.gad05a3d8e5 In-Reply-To: <20200326181005.11775-1-stanislav.lisovskiy@intel.com> References: <20200326181005.11775-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v20 06/10] drm/i915: Add proper SAGV support for TGL+ 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@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" TGV0J3MgcmVmYWN0b3IgdGhlIHdob2xlIFNBR1YgbG9naWMsIG1vdmluZwp0aGUgbWFpbiBjYWxj dWxhdGlvbnMgZnJvbSBpbnRlbF9jYW5fZW5hYmxlX3NhZ3YKdG8gaW50ZWxfY29tcHV0ZV9zYWd2 X21hc2ssIHdoaWNoIGFsc28gaGFuZGxlcwp0aGlzIGluIGEgdW5pZmllZCB3YXkgY2FsbGluZyBn ZW4gc3BlY2lmaWMKZnVuY3Rpb25zIHRvIGV2YWx1YXRlIGlmIFNBR1YgaXMgYWxsb3dlZCBmb3IK ZWFjaCBjcnRjLiBJZiBjcnRjIHNhZ3YgbWFzayBoYXZlIGJlZW4gY2hhbmdlZAp3ZSBzZXJpYWxp emUgYWNjZXNzIGFuZCBtb2RpZnkgZ2xvYmFsIHN0YXRlLgoKaW50ZWxfY2FuX2VuYWJsZV9zYWd2 IG5vdyB1c2VzIGJ3X3N0YXRlIHdoaWNoCnN0b3JlcyBhbGwgaW5mb3JtYXRpb24gcmVsYXRlZCB0 byBTQUdWIGFuZAppcyBub3cgYSB0cml2aWFsIGhlbHBlci4KCnYyOgogICAgLSBSZXdvcmsgd2F0 ZXJtYXJrIGNhbGN1bGF0aW9uIGFsZ29yaXRobSB0bwogICAgICBhdHRlbXB0IHRvIGNhbGN1bGF0 ZSBMZXZlbCAwIHdhdGVybWFyawogICAgICB3aXRoIGFkZGVkIHNhZ3YgYmxvY2sgdGltZSBsYXRl bmN5IGFuZAogICAgICBjaGVjayBpZiBpdCBmaXRzIGluIERCdWYgaW4gb3JkZXIgdG8KICAgICAg ZGV0ZXJtaW5lIGlmIFNBR1YgY2FuIGJlIGVuYWJsZWQgYWxyZWFkeQogICAgICBhdCB0aGlzIHN0 YWdlLCBqdXN0IGFzIEJTcGVjIDQ5MzI1IHN0YXRlcy4KICAgICAgaWYgdGhhdCBmYWlscyByb2xs YmFjayB0byB1c3VhbCBMZXZlbCAwCiAgICAgIGxhdGVuY3kgYW5kIGRpc2FibGUgU0FHVi4KICAg IC0gUmVtb3ZlIHVubmVlZGVkIHRhYnMoSmFtZXMgQXVzbXVzKQoKdjM6IFJlYmFzZWQgdGhlIHBh dGNoCgp2NDogLSBBZGRlZCBiYWNrIGludGVybGFjZWQgY2hlY2sgZm9yIEdlbjEyIGFuZAogICAg ICBhZGRlZCBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgVEdMIFNBR1YgY2hlY2sKICAgICAgKHRoYW5r cyB0byBKYW1lcyBBdXNtdXMgZm9yIHNwb3R0aW5nKQogICAgLSBSZW1vdmVkIHVubmVlZGVkIGdl biBjaGVjawogICAgLSBFeHRyYWN0ZWQgR2VuMTIgU0FHViBkZWNpc2lvbiBtYWtpbmcgY29kZQog ICAgICB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZyb20gc2tsX2NvbXB1dGVfd20KCnY1OiAtIEFk ZGVkIFNBR1YgZ2xvYmFsIHN0YXRlIHRvIGRldl9wcml2LCBiZWNhdXNlCiAgICAgIHdlIG5lZWQg dG8gdHJhY2sgYWxsIHBpcGVzLCBub3Qgb25seSB0aG9zZQogICAgICBpbiBhdG9taWMgc3RhdGUu IEVhY2ggcGlwZSBoYXMgbm93IGNvcnJlc3BvbmRlbnQKICAgICAgYml0IG1hc2sgcmVmbGVjdGlu Zywgd2hldGhlciBpdCBjYW4gdG9sZXJhdGUKICAgICAgU0FHViBvciBub3QodGhhbmtzIHRvIFZp bGxlIFN5cmphbGEgZm9yIHN1Z2dlc3Rpb25zKS4KICAgIC0gTm93IHVzaW5nIGFjdGl2ZSBmbGFn IGluc3RlYWQgb2YgZW5hYmxlIGluIGNyYwogICAgICB1c2FnZSBjaGVjay4KCnY2OiAtIEZpeGVk IHJlYmFzZSBjb25mbGljdHMKCnY3OiAtIGttc19jdXJzb3JfbGVnYWN5IHNlZW1zIHRvIGdldCBi cm9rZW4gYmVjYXVzZSBvZiBtdWx0aXBsZSBtZW1jcHkKICAgICAgY2FsbHMgd2hlbiBjb3B5aW5n IGxldmVsIDAgd2F0ZXIgbWFya3MgZm9yIGVuYWJsZWQgU0FHViwgdG8KICAgICAgZml4IHRoaXMg bm93IHNpbXBseSB1c2luZyB0aGF0IGZpZWxkIHJpZ2h0IGF3YXksIHdpdGhvdXQgY29weWluZywK ICAgICAgZm9yIHRoYXQgaW50cm9kdWNlZCBhIG5ldyB3bV9sZXZlbCBhY2Nlc3NvciB3aGljaCBk ZWNpZGVzIHdoaWNoCiAgICAgIHdtX2xldmVsIHRvIHJldHVybiBiYXNlZCBvbiBTQUdWIHN0YXRl LgoKdjg6IC0gUHJvdGVjdCBjcnRjX3NhZ3ZfbWFzayBzYW1lIHdheSBhcyB3ZSBkbyBmb3Igb3Ro ZXIgZ2xvYmFsIHN0YXRlCiAgICAgIGNoYW5nZXM6IGkuZSBjaGVjayBpZiBjaGFuZ2VzIGFyZSBu ZWVkZWQsIHRoZW4gZ3JhYiBhbGwgY3J0YyBsb2NrcwogICAgICB0byBzZXJpYWxpemUgdGhlIGNo YW5nZXMoVmlsbGUgU3lyasOkbMOkKQogICAgLSBBZGQgY3J0Y19zYWd2X21hc2sgY2FjaGluZyBp biBvcmRlciB0byBhdm9pZCBuZWVkbGVzcyByZWNhbGN1bGF0aW9ucwogICAgICAoTWF0dGhldyBS b3BlcikKICAgIC0gUHV0IGJhY2sgR2VuMTIgU0FHViBzd2l0Y2ggaW4gb3JkZXIgdG8gZ2V0IGl0 IGVuYWJsZWQgaW4gc2VwYXJhdGUKICAgICAgcGF0Y2goTWF0dGhldyBSb3BlcikKICAgIC0gUmVu YW1lICpfc2V0X3NhZ3ZfbWFzayB0byAqX2NvbXB1dGVfc2Fndl9tYXNrKE1hdHRoZXcgUm9wZXIp CiAgICAtIENoZWNrIGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgcGlwZXMgaW4gaW50ZWxfY2FuX2Vu YWJsZV9zYWd2CiAgICAgIGluc3RlYWQgb2YgcGxhdGZvcm0gc3BlY2lmaWMgZnVuY3Rpb25zKE1h dHRoZXcgUm9wZXIpLCBzYW1lCiAgICAgIGZvciBpbnRlbF9oYXNfc2FndiBjaGVjay4KCnY5ICAt IFN3aXRjaGVkIHRvIHU4IGZvciBjcnRjX3NhZ3ZfbWFzayhWaWxsZSBTeXJqw6Rsw6QpCiAgICAt IGNydGNfc2Fndl9tYXNrIG5vdyBpcyBwaXBlX3NhZ3ZfbWFzayhWaWxsZSBTeXJqw6Rsw6QpCiAg ICAtIEV4dHJhY3RlZCBzYWd2IGNoZWNraW5nIGxvZ2ljIGZyb20gc2tsL2ljbC90Z2xfY29tcHV0 ZV9zYWd2X21hc2sKICAgIC0gRXh0cmFjdGVkIHNrbF9wbGFuZV93bV9sZXZlbCBmdW5jdGlvbiBh bmQgcGFzc2luZyBsYXRlbmN5IHRvCiAgICAgIHNlcGFyYXRlIHBhdGNoZXMoVmlsbGUgU3lyasOk bMOkKQogICAgLSBSZW1vdmVkIHBhcnQgb2YgdW5uZWVkZWQgY29weS1wYXN0ZSBmcm9tIHRnbF9j aGVja19waXBlX2ZpdHNfc2Fndl93bQogICAgICAoVmlsbGUgU3lyasOkbMOkKQogICAgLSBOb3cg dXNpbmcgc2ltcGxlIGFzc2lnbm1lbnQgZm9yIHNhZ3Zfd20wIGFzIGl0IGNvbnRhaW5zIG9ubHkK ICAgICAgcG9kIHR5cGVzIGFuZCBubyBwb2ludGVycyhWaWxsZSBTeXJqw6Rsw6QpCiAgICAtIEZp eGVkIGludGVsX2Nhbl9lbmFibGVfc2FndiBub3QgdG8gZG8gZG91YmxlIGR1dHksIG5vdyBpdCBv bmx5CiAgICAgIGNoZWNrIFNBR1YgYml0cyBieSBBTkRpbmcgdGhvc2UgYmV0d2VlbiBsb2NhbCBh bmQgZ2xvYmFsIHN0YXRlLgogICAgICBUaGUgU0FHViBtYXNrcyBhcmUgbm93IGNvbXB1dGVkIGFm dGVyIHdhdGVybWFya3MgYXJlIGF2YWlsYWJsZSwKICAgICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0 byBmaWd1cmUgb3V0IGlmIGRkYiByYW5nZXMgYXJlIGZpdHRpbmcgbmljZWx5LgogICAgICAoVmls bGUgU3lyasOkbMOkKQogICAgLSBOb3cgaGF2aW5nIHV2X3NhZ3Zfd20wIGFuZCBzYWd2X3dtMCwg b3RoZXJ3aXNlIHdlIGhhdmUgd3JvbmcgbG9naWMKICAgICAgd2hlbiB1c2luZyBza2xfcGxhbmVf d21fbGV2ZWwgYWNjZXNzb3IsIGFzIHdlIGhhZCBwcmV2aW91c2x5IGZvcgogICAgICBHZW4xMSsg Y29sb3IgcGxhbmUgYW5kIHJlZ3VsYXIgd20gbGV2ZWxzLCBzbyBwcm9iYWJseSBib3RoCiAgICAg IGhhcyB0byBiZSByZWNhbGN1bGF0ZWQgd2l0aCBhZGRpdGlvbmFsIFNBR1YgYmxvY2sgdGltZSBm b3IgTGV2ZWwgMC4KCnYxMDogLSBTdGFydGluZyB0byB1c2UgbmV3IGdsb2JhbCBzdGF0ZSBmb3Ig c3RvcmluZyBwaXBlX3NhZ3ZfbWFzawoKdjExOiAtIEZpeGVkIHJlYmFzZSBjb25mbGljdCB3aXRo IHJlY2VudCBkcm0tdGlwCiAgICAgLSBDaGVjayBpZiB3ZSByZWFsbHkgbmVlZCB0byByZWNhbGN1 bGF0ZSBTQUdWIG1hc2ssIG90aGVyd2lzZQogICAgICAgYmFpbCBvdXQgd2l0aG91dCBtYWtpbmcg YW55IGNoYW5nZXMuCiAgICAgLSBVc2UgY2FjaGVkIFNBR1YgcmVzdWx0LCBpbnN0ZWFkIG9mIHJl Y2FsY3VsYXRpbmcgaXQgZXZlcnl0aW1lLAogICAgICAgaWYgYndfc3RhdGUgaGFzbid0IGNoYW5n ZWQuCgp2MTI6IC0gUmVtb3ZlZCBXQVJOIGZyb20gaW50ZWxfY2FuX2VuYWJsZV9zYWd2LCBpbiBz b21lIG9mIHRoZSBjb21taXRzCiAgICAgICBpZiB3ZSBkb24ndCByZWNhbGN1bGF0ZWQgd2F0ZXJt YXJrcywgYndfc3RhdGUgaXMgbm90IHJlY2FsY3VsYXRlZCwKICAgICAgIHRodXMgbGVhZGluZyB0 byBTQUdWIHN0YXRlIG5vdCByZWNhbGN1bGF0ZWQgYnkgdGhlIGNvbW1pdCBzdGF0ZSwKICAgICAg IHdoaWNoIGlzIHN0aWxsIGNhbGxpbmcgaW50ZWxfY2FuX2VuYWJsZV9zYWd2IGZ1bmN0aW9uLiBG aXggdGhhdAogICAgICAgYnkganVzdCBhbmFseXppbmcgdGhlIGN1cnJlbnQgZ2xvYmFsIGJ3X3N0 YXRlIG9iamVjdCAtIGJlY2F1c2UKICAgICAgIHdlIHNpbXBseSBoYXZlIG5vIG90aGVyIG9iamVj dHMgcmVsYXRlZCB0byB0aGF0LgoKdjEzOiAtIFJlYmFzZWQsIGZpeGVkIHdhcm5pbmdzIHJlZ2Fy ZGluZyBsb25nIGxpbmVzCiAgICAgLSBDaGFuZ2VkIGZ1bmN0aW9uIGNhbGwgc2l0ZXMgZnJvbSBp bnRlbF9hdG9taWNfYncqIHRvCiAgICAgICBpbnRlbF93Yl8qIGFzIHdhcyBzdWdnZXN0ZWQuKEph bmkgTmlrdWxhKQogICAgIC0gVGFrZW4gZGRiX3N0YXRlX2NoYW5nZWQgYW5kIGJ3X3N0YXRlX2No YW5nZWQgaW50byB1c2UuCgp2MTQ6IC0gdG90YWxfYWZmZWN0ZWRfcGxhbmVzIGlzIG5vIGxvbmdl ciBuZWVkZWQgdG8gY2hlY2sgZm9yIGRkYiBjaGFuZ2VzLAogICAgICAganVzdCBhcyBhY3RpdmVf cGlwZV9jaGFuZ2VzLgoKdjE1OiAtIEZpeGVkIHN0dXBpZCBtaXN0YWtlIHdpdGggdW5pbml0aWFs aXplZCBjcnRjIGluCiAgICAgICBza2xfY29tcHV0ZV9zYWd2X21hc2suCgp2MTY6IC0gQ29udmVy dCBwaXBlX3NhZ3ZfbWFzayB0byBwaXBlX3NhZ3ZfcmVqZWN0IGFuZCBub3cgdXNpbmcgaW52ZXJ0 ZWQKICAgICAgIGZsYWcgdG8gaW5kaWNhdGUgU0FHViByZWFkaW5lc3MgZm9yIHRoZSBwaXBlKFZp bGxlIFN5cmrDpGzDpCkKICAgICAtIEFkZGVkIHJldHVybiB2YWx1ZSB0byBpbnRlbF9jb21wdXRl X3NhZ3ZfbWFzayB3aGljaCBjYWxsCiAgICAgICBpbnRlbF9hdG9taWNfc2VyaWFsaXplX2dsb2Jh bF9zdGF0ZSBpbiBvcmRlciB0byBwcm9wZXJseQogICAgICAgcHJvcGFnYXRlIEVERUFETENLIHRv IGRybS4KICAgICAtIEJhc2VkIG9uIHRoZSBkaXNjdXNzaW9uIHdpdGggVmlsbGUsIHJlbW92ZWQg YWN0aXZlX3BpcGVfY2hhbmdlcwogICAgICAgY2hlY2sgYW5kIGFsc28gdGhlcmUgc2VlbXMgdG8g YmUgbm8gbmVlZCBmb3IgY2hlY2tpbmcKICAgICAgIGRkYl9zdGF0ZV9jaGFuZ2VzIGFzIHdlbGwu CiAgICAgICBJbnN0ZWFkIHdlIGp1c3QgaXRlcmF0ZSB0aHJvdWdoIGNydGNzIGluIHN0YXRlIC0g aGF2aW5nCiAgICAgICBjcnRjIGluIGEgc3RhdGUgYWxyZWFkeSBndWFyYW50ZWVzIHRoYXQgaXQg aXMgYXQgbGVhc3QgcmVhZC1sb2NrZWQKICAgICAgIEhhdmluZyBhZGRpdGlvbmFsIGZsYWcgdG8g Y2hlY2sgaWYgdGhlcmUgYWN0dWFsbHkgd2VyZSBzb21lIHBsYW5lCiAgICAgICB3bS9kZGIgY2hh bmdlcyB3b3VsZCBiZSBwcm9iYWJseSBhZGRlZCBsYXRlciBhcyBhbiBvcHRpbWl6YXRpb24uCiAg ICAgLSBXZSBjYW4ndCBnZXQgcGFyZW50IGF0b21pYyBzdGF0ZSBmcm9tIGNydGNfc3RhdGUgYXQg Y29tbWl0IHN0YWdlCiAgICAgICAobmljZSBkcm0gZmVhdHVyZSksIGFsc28gcHJvcGFnYXRpbmcg c3RhdGUgdGhyb3VnaCBmdW5jdGlvbiBjYWxsCiAgICAgICBjaGFpbiBzZWVtcyB0byBiZSBvdmVy a2lsbCBhbmQgbm90IHBvc3NpYmxlKGN1cnNvciBsZWdhY3kgdXBkYXRlcykKICAgICAgIFF1ZXJ5 aW5nIGZvciBid19zdGF0ZSBvYmplY3QgZnJvbSBnbG9iYWwgc3RhdGUgaXMgbm90IHBvc3NpYmxl IGFzCiAgICAgICBpdCBtaWdodCBnZXQgc3dhcHBlZCB3aXRoIG90aGVyIGdsb2JhbCBzdGF0ZS4K ICAgICAgIFNvLi4uIGp1c3Qgc3RpY2tlZCBjYW5fc2FndiBib29sZWFuIGludG8gd20gY3J0YyBz dGF0ZS4KCnYxNzogLSBTa2lwIGluYWN0aXZlIGNydGNzLCB3aGVuIGNoZWNraW5nIGZvciBTQUdW LXJlYWRpbmVzcy4KCnYxODogLSBTd2l0Y2ggdG8gdXNlIGludGVsX2F0b21pY19jcnRjX3N0YXRl X2Zvcl9lYWNoX3BsYW5lX3N0YXRlCiAgICAgICBpbnN0ZWFkIG9mIGZvcl9lYWNoX2ludGVsX3Bs YW5lX29uX2NydGMgYW5kIGZpeGVkIHByZXZpb3VzCiAgICAgICBjb2RlLCB3aGljaCB3YXMgdXNp bmcgb2xkIHBsYW5lIHN0YXRlLCB3aGljaCBjYXVzZWQgTlVMTCBwdHIKICAgICAgIGRlcmVmZXJl bmNlLCBiYWNhdXNlIHRoYXQgY29kZSBpcyBub3cgY2FsbGVkIGJlZm9yZSB3ZSBzd2FwIHRoZQog ICAgICAgc3RhdGUuCgp2MTk6IC0gVXNlIGludGVsX2F0b21pY19id18qIHBhdHRlcm4gYWdhaW4K ICAgICAtIE9wdGltaXplZCBzYWd2IGNoZWNrcyBpbiB2ZXJpZnlfd21fc3RhdGUoVmlsbGUgU3ly asOkbMOkKQogICAgIC0gRG8gaW50ZWxfY29tcHV0ZV9zYWd2X21hc2sgYWZ0ZXIgZGRiIGlzIGFs bG9jYXRlZChWaWxsZSBTeXJqw6Rsw6QpLAogICAgICAgdXNpbmcgaXQncyByZXN1bHRzCiAgICAg LSBVc2UgYndfc3RhdGUgaW4gaW50ZWxfY2FuX2VuYWJsZV9zYWd2CiAgICAgLSBVc2UgQ09MT1Jf UExBTkUgZW51bSBpbnN0ZWFkIG9mIGJvb2xlYW4geXV2IG9yICIwIiwgIjEiIG1hZ2ljCiAgICAg LSBFeHRyYWN0ZWQgc2FndiB3bTAgY2FsY3VsYXRpb24gaW50byBzZXBhcmF0ZSBza2xfY29tcHV0 ZV9zYWd2X3dtCiAgICAgICBmdW5jdGlvbihWaWxsZSBTeXJqw6Rsw6QpCgpTaWduZWQtb2ZmLWJ5 OiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNvbT4KQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+CkNjOiBKYW1lcyBBdXNt dXMgPGphbWVzLmF1c211c0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9idy5oICAgICAgIHwgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jICB8ICAzMCArKy0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jICAgICAgICAgICAgICAgfCAyNDQgKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIDUgZmlsZXMgY2hhbmdl ZCwgMjU2IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYncuaAppbmRleCBmZTY1NzljOTUyZjUuLjZhZDNlYTdjZWRmZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuaApAQCAtMTgsNiArMTgsMTIgQEAg c3RydWN0IGludGVsX2NydGNfc3RhdGU7CiBzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgewogCXN0cnVj dCBpbnRlbF9nbG9iYWxfc3RhdGUgYmFzZTsKIAorCS8qCisJICogQ29udGFpbnMgYSBiaXQgbWFz aywgdXNlZCB0byBkZXRlcm1pbmUsIHdoZXRoZXIgY29ycmVzcG9uZGVudAorCSAqIHBpcGUgYWxs b3dzIFNBR1Ygb3Igbm90LgorCSAqLworCXU4IHBpcGVfc2Fndl9yZWplY3Q7CisKIAl1bnNpZ25l ZCBpbnQgZGF0YV9yYXRlW0k5MTVfTUFYX1BJUEVTXTsKIAl1OCBudW1fYWN0aXZlX3BsYW5lc1tJ OTE1X01BWF9QSVBFU107CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYwppbmRleCBlNjMwNDI5YWYyYzAuLmUxZDI1OTkxM2ZlMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0MDA5LDcgKzE0MDA5 LDkgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogCQkvKiBXYXRlcm1hcmtzICovCiAJCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2 ZWw7IGxldmVsKyspIHsKIAkJCWlmIChza2xfd21fbGV2ZWxfZXF1YWxzKCZod19wbGFuZV93bS0+ d21bbGV2ZWxdLAotCQkJCQkJJnN3X3BsYW5lX3dtLT53bVtsZXZlbF0pKQorCQkJCQkJJnN3X3Bs YW5lX3dtLT53bVtsZXZlbF0pIHx8CisJCQkgICAgKGxldmVsID09IDAgJiYgc2tsX3dtX2xldmVs X2VxdWFscygmaHdfcGxhbmVfd20tPndtW2xldmVsXSwKKwkJCQkJCQkgICAgICAgJnN3X3BsYW5l X3dtLT5zYWd2X3dtMCkpKQogCQkJCWNvbnRpbnVlOwogCiAJCQlkcm1fZXJyKCZkZXZfcHJpdi0+ ZHJtLApAQCAtMTQwNjQsNyArMTQwNjYsOSBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfd21fc3RhdGUo c3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCS8qIFdhdGVybWFya3MgKi8KIAkJZm9yIChsZXZl bCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewogCQkJaWYgKHNrbF93bV9sZXZl bF9lcXVhbHMoJmh3X3BsYW5lX3dtLT53bVtsZXZlbF0sCi0JCQkJCQkmc3dfcGxhbmVfd20tPndt W2xldmVsXSkpCisJCQkJCQkmc3dfcGxhbmVfd20tPndtW2xldmVsXSkgfHwKKwkJCSAgICAobGV2 ZWwgPT0gMCAmJiBza2xfd21fbGV2ZWxfZXF1YWxzKCZod19wbGFuZV93bS0+d21bbGV2ZWxdLAor CQkJCQkJCSAgICAgICAmc3dfcGxhbmVfd20tPnNhZ3Zfd20wKSkpCiAJCQkJY29udGludWU7CiAK IAkJCWRybV9lcnIoJmRldl9wcml2LT5kcm0sCkBAIC0xNTUzNSw2ICsxNTUzOSwxMCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJCWNydGMtPmNvbmZpZyA9IG5ld19jcnRjX3N0YXRlOwogCiAJaWYgKHN0YXRl LT5tb2Rlc2V0KSB7CisJCXN0cnVjdCBpbnRlbF9id19zdGF0ZSAqYndfc3RhdGU7CisKKwkJYndf c3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2J3X25ld19zdGF0ZShzdGF0ZSk7CisKIAkJZHJtX2F0 b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKGRldiwgJnN0YXRlLT5iYXNl KTsKIAogCQlpbnRlbF9zZXRfY2RjbGtfcHJlX3BsYW5lX3VwZGF0ZShzdGF0ZSk7CkBAIC0xNTU0 Myw4ICsxNTU1MSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCSAqIFNLTCB3b3JrYXJvdW5kOiBic3Bl YyByZWNvbW1lbmRzIHdlIGRpc2FibGUgdGhlIFNBR1Ygd2hlbiB3ZQogCQkgKiBoYXZlIG1vcmUg dGhlbiBvbmUgcGlwZSBlbmFibGVkCiAJCSAqLwotCQlpZiAoIWludGVsX2Nhbl9lbmFibGVfc2Fn dihzdGF0ZSkpCi0JCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOworCQlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDExKSB7CisJCQlpZiAoIWludGVsX2Nhbl9lbmFibGVfc2Fndihid19z dGF0ZSkpCisJCQkJaW50ZWxfZGlzYWJsZV9zYWd2KGRldl9wcml2KTsKKwkJfQogCiAJCWludGVs X21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKGRldl9wcml2LCBzdGF0ZSk7CiAJfQpAQCAtMTU2NDQs OCArMTU2NTQsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWlmIChzdGF0ZS0+bW9kZXNldCkKIAkJaW50 ZWxfdmVyaWZ5X3BsYW5lcyhzdGF0ZSk7CiAKLQlpZiAoc3RhdGUtPm1vZGVzZXQgJiYgaW50ZWxf Y2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKLQkJaW50ZWxfZW5hYmxlX3NhZ3YoZGV2X3ByaXYpOwor CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpIHsKKwkJc3RydWN0IGludGVsX2J3X3N0YXRl ICpid19zdGF0ZTsKKworCQlid19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfYndfbmV3X3N0YXRl KHN0YXRlKTsKKworCQlpZiAoc3RhdGUtPm1vZGVzZXQgJiYgaW50ZWxfY2FuX2VuYWJsZV9zYWd2 KGJ3X3N0YXRlKSkgeworCQkJaW50ZWxfZW5hYmxlX3NhZ3YoZGV2X3ByaXYpOworCQl9CisJfQog CiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoJnN0YXRlLT5iYXNlKTsKIApAQCAt MTU3OTcsNyArMTU4MTQsNiBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAogCWlmIChzdGF0ZS0+Z2xvYmFsX3N0YXRlX2NoYW5nZWQpIHsK IAkJYXNzZXJ0X2dsb2JhbF9zdGF0ZV9sb2NrZWQoZGV2X3ByaXYpOwotCiAJCWRldl9wcml2LT5h Y3RpdmVfcGlwZXMgPSBzdGF0ZS0+YWN0aXZlX3BpcGVzOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA1MjNlMDQ0 NGIzNzMuLjUxZmE1YTc0NmE1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKQEAgLTY3OSw2ICs2NzksOCBAQCBzdHJ1Y3Qgc2ts X3BsYW5lX3dtIHsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHdtWzhdOwogCXN0cnVjdCBza2xfd21f bGV2ZWwgdXZfd21bOF07CiAJc3RydWN0IHNrbF93bV9sZXZlbCB0cmFuc193bTsKKwlzdHJ1Y3Qg c2tsX3dtX2xldmVsIHNhZ3Zfd20wOworCXN0cnVjdCBza2xfd21fbGV2ZWwgdXZfc2Fndl93bTA7 CiAJYm9vbCBpc19wbGFuYXI7CiB9OwogCkBAIC02ODksNiArNjkxLDcgQEAgZW51bSBjb2xvcl9w bGFuZSB7CiAKIHN0cnVjdCBza2xfcGlwZV93bSB7CiAJc3RydWN0IHNrbF9wbGFuZV93bSBwbGFu ZXNbSTkxNV9NQVhfUExBTkVTXTsKKwlib29sIGNhbl9zYWd2OwogfTsKIAogZW51bSB2bHZfd21f bGV2ZWwgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggNjQxOTNiMDk4MTc1Li42M2M0Njkx OGQxZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1 ZGUgImk5MTVfZml4ZWQuaCIKICNpbmNsdWRlICJpOTE1X2lycS5oIgogI2luY2x1ZGUgImk5MTVf dHJhY2UuaCIKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2J3LmgiCiAjaW5jbHVkZSAiaW50ZWxf cG0uaCIKICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL3Bs YXRmb3JtL3g4Ni9pbnRlbF9pcHMuaCIKQEAgLTM2MzQsNyArMzYzNSw3IEBAIHN0YXRpYyBib29s IHNrbF9uZWVkc19tZW1vcnlfYndfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCXJldHVybiBJU19HRU45X0JDKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9wcml2KTsK IH0KIAotc3RhdGljIGJvb2wKK2Jvb2wKIGludGVsX2hhc19zYWd2KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKIAkvKiBIQUNLISAqLwpAQCAtMzgyNywzMyArMzgyOCwxMDYg QEAgc3RhdGljIGJvb2wgc2tsX2Nhbl9lbmFibGVfc2Fndl9vbl9waXBlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXJldHVybiBpY2xfY2FuX2VuYWJsZV9zYWd2X29uX3Bp cGUoY3J0Y19zdGF0ZSk7CiB9CiAKLWJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQorc3RhdGljIGJvb2wKK3RnbF9jYW5fZW5hYmxlX3Nh Z3Zfb25fcGlwZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CisKK2Jvb2wg aW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9id19zdGF0ZSAqYndfc3RhdGUpCit7 CisJcmV0dXJuIGJ3X3N0YXRlLT5waXBlX3NhZ3ZfcmVqZWN0ID09IDA7Cit9CisKK3N0YXRpYyBp bnQgaW50ZWxfY29tcHV0ZV9zYWd2X21hc2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiB7CisJaW50IHJldDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmJhc2Uu ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJc3Ry dWN0IGludGVsX2J3X3N0YXRlICpuZXdfYndfc3RhdGUgPSBOVUxMOworCXN0cnVjdCBpbnRlbF9i d19zdGF0ZSAqb2xkX2J3X3N0YXRlID0gTlVMTDsKIAlpbnQgaTsKKwlib29sIGNhbl9zYWd2Owog CisJLyoKKwkgKiBJZiBTQUdWIGlzIG5vdCBzdXBwb3J0ZWQgd2UganVzdCBjYW4ndCBkbyBhbnl0 aGluZworCSAqIG5vdCBldmVuIHNldCBvciByZWplY3QgU0FHViBwb2ludHMgLSBqdXN0IGJhaWwg b3V0LgorCSAqIFRodXMgYXZvaWQgbmVlZGxlc3MgY2FsY3VsYXRpb25zLgorCSAqLwogCWlmICgh aW50ZWxfaGFzX3NhZ3YoZGV2X3ByaXYpKQotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiAwOwor CisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCisJCQkJCSBu ZXdfY3J0Y19zdGF0ZSwgaSkgeworCQlib29sIHBpcGVfc2Fndl9lbmFibGU7CisKKwkJbmV3X2J3 X3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9id19zdGF0ZShzdGF0ZSk7CisJCWlmIChJU19FUlIo bmV3X2J3X3N0YXRlKSkgeworCQkJV0FSTigxLCAiQ291bGQgbm90IGdldCBid19zdGF0ZVxuIik7 CisJCQlyZXR1cm4gUFRSX0VSUihuZXdfYndfc3RhdGUpOworCQl9CisKKwkJb2xkX2J3X3N0YXRl ID0gaW50ZWxfYXRvbWljX2dldF9id19vbGRfc3RhdGUoc3RhdGUpOworCisJCWlmICghbmV3X2Ny dGNfc3RhdGUtPmh3LmFjdGl2ZSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEyKSB7CisJCQlwaXBlX3NhZ3ZfZW5hYmxlID0gdGdsX2Nhbl9lbmFibGVfc2Fn dl9vbl9waXBlKG5ld19jcnRjX3N0YXRlKTsKKwkJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDExKSB7CisJCQlwaXBlX3NhZ3ZfZW5hYmxlID0gaWNsX2Nhbl9lbmFibGVfc2Fndl9v bl9waXBlKG5ld19jcnRjX3N0YXRlKTsKKwkJfSBlbHNlIHsKKwkJCXBpcGVfc2Fndl9lbmFibGUg PSBza2xfY2FuX2VuYWJsZV9zYWd2X29uX3BpcGUobmV3X2NydGNfc3RhdGUpOworCQl9CisKKwkJ aWYgKHBpcGVfc2Fndl9lbmFibGUpCisJCQluZXdfYndfc3RhdGUtPnBpcGVfc2Fndl9yZWplY3Qg Jj0gfkJJVChjcnRjLT5waXBlKTsKKwkJZWxzZQorCQkJbmV3X2J3X3N0YXRlLT5waXBlX3NhZ3Zf cmVqZWN0IHw9IEJJVChjcnRjLT5waXBlKTsKKwl9CisKKwlpZiAoIW5ld19id19zdGF0ZSB8fCAh b2xkX2J3X3N0YXRlKQorCQlyZXR1cm4gMDsKKworCWNhbl9zYWd2ID0gbmV3X2J3X3N0YXRlLT5w aXBlX3NhZ3ZfcmVqZWN0ID09IDA7CisKKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0 ZShzdGF0ZSwgY3J0YywKKwkJCQkJIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBza2xf cGlwZV93bSAqcGlwZV93bSA9ICZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWw7CisKKwkJ LyoKKwkJICogRHVlIHRvIGRybSBsaW1pdGF0aW9uIGF0IGNvbW1pdCBzdGF0ZSwgd2hlbgorCQkg KiBjaGFuZ2VzIGFyZSB3cml0dGVuIHRoZSB3aG9sZSBhdG9taWMgc3RhdGUgaXMKKwkJICogemVy b2VkIGF3YXkgPT4gd2hpY2ggcHJldmVudHMgZnJvbSB1c2luZyBpdCwKKwkJICogc28ganVzdCBz dGlja2luZyBpdCBpbnRvIHBpcGUgd20gc3RhdGUgZm9yCisJCSAqIGtlZXBpbmcgaXQgc2ltcGxl IC0gYW55d2F5IHRoaXMgaXMgcmVsYXRlZCB0byB3bS4KKwkJICogUHJvcGVyIHdheSBpbiBpZGVh bCB1bml2ZXJzZSB3b3VsZCBiZSBvZiBjb3Vyc2Ugbm90CisJCSAqIHRvIGxvc2UgcGFyZW50IGF0 b21pYyBzdGF0ZSBvYmplY3QgZnJvbSBjaGlsZCBjcnRjX3N0YXRlLAorCQkgKiBhbmQgc3RpY2sg dG8gT09QIHByb2dyYW1taW5nIHByaW5jaXBsZXMsIHdoaWNoIGhhZCBiZWVuCisJCSAqIHNjaWVu dGlmaWNhbGx5IHByb3ZlbiB0byB3b3JrLgorCQkgKi8KKwkJcGlwZV93bS0+Y2FuX3NhZ3YgPSBj YW5fc2FndjsKKwl9CiAKIAkvKgotCSAqIElmIHRoZXJlIGFyZSBubyBhY3RpdmUgQ1JUQ3MsIG5v IGFkZGl0aW9uYWwgY2hlY2tzIG5lZWQgYmUgcGVyZm9ybWVkCisJICogRm9yIFNBR1Ygd2UgbmVl ZCB0byBhY2NvdW50IGFsbCB0aGUgcGlwZXMsCisJICogbm90IG9ubHkgdGhlIG9uZXMgd2hpY2gg YXJlIGluIHN0YXRlIGN1cnJlbnRseS4KKwkgKiBHcmFiIGFsbCBsb2NrcyBpZiB3ZSBkZXRlY3Qg dGhhdCB3ZSBhcmUgYWN0dWFsbHkKKwkgKiBnb2luZyB0byBkbyBzb21ldGhpbmcuCiAJICovCi0J aWYgKGh3ZWlnaHQ4KHN0YXRlLT5hY3RpdmVfcGlwZXMpID09IDApCi0JCXJldHVybiB0cnVlOwor CWlmIChuZXdfYndfc3RhdGUtPnBpcGVfc2Fndl9yZWplY3QgIT0gb2xkX2J3X3N0YXRlLT5waXBl X3NhZ3ZfcmVqZWN0KSB7CisJCURSTV9ERUJVR19LTVMoIlN0YXRlICVwOiBvbGQgc2FndiBtYXNr IDB4JXgsIG5ldyBzYWd2IG1hc2sgMHgleFxuIiwKKwkJCSAgICAgIHN0YXRlLAorCQkJICAgICAg b2xkX2J3X3N0YXRlLT5waXBlX3NhZ3ZfcmVqZWN0LAorCQkJICAgICAgbmV3X2J3X3N0YXRlLT5w aXBlX3NhZ3ZfcmVqZWN0KTsKIAotCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Ci0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9 IDkpIHsKLQkJCWlmICghc2tsX2Nhbl9lbmFibGVfc2Fndl9vbl9waXBlKGNydGNfc3RhdGUpKQot CQkJCXJldHVybiBmYWxzZTsKLQkJfSBlbHNlIGlmICghaWNsX2Nhbl9lbmFibGVfc2Fndl9vbl9w aXBlKGNydGNfc3RhdGUpKSB7Ci0JCQlyZXR1cm4gZmFsc2U7CisJCXJldCA9IGludGVsX2F0b21p Y19zZXJpYWxpemVfZ2xvYmFsX3N0YXRlKCZuZXdfYndfc3RhdGUtPmJhc2UpOworCQlpZiAocmV0 KSB7CisJCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qgc2VyaWFsaXplIGdsb2JhbCBzdGF0ZVxu Iik7CisJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQogCi0JcmV0dXJuIHRydWU7CisJcmV0dXJuIDA7 CiB9CiAKIC8qCkBAIC00MDc1LDYgKzQxNDksNyBAQCBza2xfY3Vyc29yX2FsbG9jYXRpb24oY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXVuc2lnbmVkIGludCBs YXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVsXTsKIAogCQlza2xfY29tcHV0 ZV9wbGFuZV93bShjcnRjX3N0YXRlLCBsZXZlbCwgbGF0ZW5jeSwgJndwLCAmd20sICZ3bSk7CisK IAkJaWYgKHdtLm1pbl9kZGJfYWxsb2MgPT0gVTE2X01BWCkKIAkJCWJyZWFrOwogCkBAIC00NTg5 LDkgKzQ2NjQsNjYgQEAgc2tsX3BsYW5lX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KIAkJ JmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CiAKKwlpZiAoIWxl dmVsKSB7CisJCWNvbnN0IHN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjcnRjX3N0YXRl LT53bS5za2wub3B0aW1hbDsKKworCQlpZiAocGlwZV93bS0+Y2FuX3NhZ3YpCisJCQlyZXR1cm4g Y29sb3JfcGxhbmUgPT0gQ09MT1JfUExBTkVfWSA/ICZ3bS0+c2Fndl93bTAgOiAmd20tPnV2X3Nh Z3Zfd20wOworCX0KKwogCXJldHVybiBjb2xvcl9wbGFuZSA9PSBDT0xPUl9QTEFORV9ZID8gJndt LT53bVtsZXZlbF0gOiAmd20tPnV2X3dtW2xldmVsXTsKIH0KIAorc3RhdGljIGJvb2wKK3RnbF9j YW5fZW5hYmxlX3NhZ3Zfb25fcGlwZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKKwllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOworCisJLyoKKwkg KiBJZiBwaXBlIGlzIG5vdCBhY3RpdmUgaXQgY2FuJ3QgYWZmZWN0IFNBR1YgcmVqZWN0aW9uCisJ ICogQ2hlY2tpbmcgaXQgaGVyZSBpcyBuZWVkZWQgdG8gbGVhdmUgb25seSBjYXNlcyB3aGVuCisJ ICogYWxsb2Nfc2l6ZSBpcyAwIGZvciBhbnkgb3RoZXIgcmVhc29ucywgZXhjZXB0IGluYWN0aXZl CisJICogcGlwZS4gQXMgaW5hY3RpdmUgcGlwZSBpcyBmaW5lLCBob3dldmVyIGhhdmluZyBubyBk ZGIKKwkgKiBzcGFjZSBhdmFpbGFibGUgaXMgYWxyZWFkeSBwcm9ibGVtYXRpYyAtIHNvIG5lZWQg dG8KKwkgKiB0byBzZXBhcmF0ZSB0aG9zZS4KKwkgKi8KKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFj dGl2ZSkKKwkJcmV0dXJuIHRydWU7CisKKwkvKgorCSAqIHNrbF9hbGxvY2F0ZV9waXBlX2RkYiBh bHJlYWR5IGRvbmUgaXQncyBqb2IgdG8gYWxsb2NhdGUKKwkgKiBhcyBtdWNoIGJsb2NrcyBhcyBw b3NzaWJsZSBmb3IgZWFjaCBwbGFuZSAtIGxldCdzIG5vdworCSAqIGV2YWx1YXRlIGlmIHRob3Nl IHdlcmUgZW5vdWdoIHRvIGVuYWJsZSBTQUdWLgorCSAqIENyaXRlcmlhIGlzIHRoYXQgd2UgbmVl ZCB0byBoYXZlIHdtMCArIHNhZ3ZfYmxvY2tfdGltZSBibG9ja3MKKwkgKiBmb3IgbGV2ZWwgMCBm b3IgZWFjaCBwbGFuZS4KKwkgKi8KKwlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2Ny dGMsIHBsYW5lX2lkKSB7CisJCXN0cnVjdCBza2xfZGRiX2VudHJ5ICpwbGFuZV9hbGxvYyA9CisJ CQkmY3J0Y19zdGF0ZS0+d20uc2tsLnBsYW5lX2RkYl95W3BsYW5lX2lkXTsKKwkJc3RydWN0IHNr bF9kZGJfZW50cnkgKnV2X3BsYW5lX2FsbG9jID0KKwkJCSZjcnRjX3N0YXRlLT53bS5za2wucGxh bmVfZGRiX3V2W3BsYW5lX2lkXTsKKwkJY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPQor CQkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisKKwkJaWYg KHNrbF9kZGJfZW50cnlfc2l6ZShwbGFuZV9hbGxvYykgPCB3bS0+c2Fndl93bTAubWluX2RkYl9h bGxvYykgeworCQkJRFJNX0RFQlVHX0tNUygiTm90IGVub3VnaCBkZGIgYmxvY2tzKCVkLSVkKSBm b3IgU0FHViBwbGFuZSAlZCBwaXBlICVjXG4iLAorCQkJCSAgICAgIHBsYW5lX2FsbG9jLT5zdGFy dCwgcGxhbmVfYWxsb2MtPmVuZCwgcGxhbmVfaWQsCisJCQkJICAgICAgcGlwZV9uYW1lKGludGVs X2NydGMtPnBpcGUpKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWlmIChza2xfZGRiX2Vu dHJ5X3NpemUodXZfcGxhbmVfYWxsb2MpIDwgd20tPnV2X3NhZ3Zfd20wLm1pbl9kZGJfYWxsb2Mp IHsKKwkJCURSTV9ERUJVR19LTVMoIk5vdCBlbm91Z2ggZGRiIGJsb2NrcyglZC0lZCkgZm9yIFNB R1YgdXYgcGxhbmUgJWQgcGlwZSAlY1xuIiwKKwkJCQkgICAgICBwbGFuZV9hbGxvYy0+c3RhcnQs IHBsYW5lX2FsbG9jLT5lbmQsIHBsYW5lX2lkLAorCQkJCSAgICAgIHBpcGVfbmFtZShpbnRlbF9j cnRjLT5waXBlKSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKKwlyZXR1cm4gdHJ1ZTsK K30KKwogc3RhdGljIGludAogc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewpAQCAtNTE3MywxMCArNTMwNSwxNyBAQCBzdGF0aWMgdm9p ZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIHN0YXRpYyB2b2lkCiBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xf d21fcGFyYW1zICp3bV9wYXJhbXMsCi0JCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVs cykKKwkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqcGxhbmVfd20sCisJCSAgICAgIGVudW0g Y29sb3JfcGxhbmUgY29sb3JfcGxhbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJaW50IGxldmVs LCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKKwkvKgorCSAqIENoZWNr IHdoaWNoIGtpbmQgb2YgcGxhbmUgaXMgaXQgYW5kIGJhc2VkIG9uIHRoYXQgY2FsY3VsYXRlCisJ ICogY29ycmVzcG9uZGVudCBXTSBsZXZlbHMuCisJICovCisJc3RydWN0IHNrbF93bV9sZXZlbCAq bGV2ZWxzID0gY29sb3JfcGxhbmUgPT0gQ09MT1JfUExBTkVfVVYgPworCQkJCSAgICAgIHBsYW5l X3dtLT51dl93bSA6IHBsYW5lX3dtLT53bTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRf cHJldiA9ICZsZXZlbHNbMF07CiAKIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVs OyBsZXZlbCsrKSB7CkBAIC01MTkwLDYgKzUzMjksNDAgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxz KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCX0KIH0KIAorc3Rh dGljIHZvaWQgc2tsX2NvbXB1dGVfc2Fndl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd21fcGFyYW1z LAorCQkJCXN0cnVjdCBza2xfcGxhbmVfd20gKnBsYW5lX3dtLAorCQkJCWVudW0gY29sb3JfcGxh bmUgY29sb3JfcGxhbmUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IHNrbF93bV9sZXZl bCAqc2Fndl93bSA9IGNvbG9yX3BsYW5lID09IENPTE9SX1BMQU5FX1VWID8KKwkJCQkmcGxhbmVf d20tPnV2X3NhZ3Zfd20wIDogJnBsYW5lX3dtLT5zYWd2X3dtMDsKKwlzdHJ1Y3Qgc2tsX3dtX2xl dmVsICpsZXZlbHMgPSBjb2xvcl9wbGFuZSA9PSBDT0xPUl9QTEFORV9VViA/CisJCQkJcGxhbmVf d20tPnV2X3dtIDogcGxhbmVfd20tPndtOworCisJLyoKKwkgKiBGb3IgR2VuMTIgaWYgaXQgaXMg YW4gTDAgd2UgbmVlZCB0byBhbHNvCisJICogY29uc2lkZXIgc2Fndl9ibG9ja190aW1lIHdoZW4g Y2FsY3VsYXRpbmcKKwkgKiBMMCB3YXRlcm1hcmsgLSB3ZSB3aWxsIG5lZWQgdGhhdCB3aGVuIG1h a2luZworCSAqIGEgZGVjaXNpb24gd2hldGhlciBlbmFibGUgU0FHViBvciBub3QuCisJICogRm9y IG9sZGVyIGdlbnMgd2UgYWdyZWVkIHRvIGNvcHkgTDAgdmFsdWUgZm9yCisJICogY29tcGF0aWJp bGl0eS4KKwkgKi8KKwlpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCXUzMiBs YXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5WzBdOworCisJCWxhdGVuY3kgKz0gZGV2 X3ByaXYtPnNhZ3ZfYmxvY2tfdGltZV91czsKKwkJc2tsX2NvbXB1dGVfcGxhbmVfd20oY3J0Y19z dGF0ZSwgMCwgbGF0ZW5jeSwKKwkJCQkgICAgIHdtX3BhcmFtcywgJmxldmVsc1swXSwKKwkJCQkg ICAgIHNhZ3Zfd20pOworCQlEUk1fREVCVUdfS01TKCIlZCBMMCBibG9ja3MgcmVxdWlyZWQgZm9y IFNBR1YgdnMgJWQgZm9yIG5vbi1TQUdWXG4iLAorCQkJICAgICAgc2Fndl93bS0+bWluX2RkYl9h bGxvYywgbGV2ZWxzWzBdLm1pbl9kZGJfYWxsb2MpOworCX0gZWxzZSB7CisJCS8qIFNpbmNlIGFs bCBtZW1iZXJzIGFyZSBQT0QgKi8KKwkJKnNhZ3Zfd20gPSBsZXZlbHNbMF07CisJfQorfQorCiBz dGF0aWMgdm9pZCBza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFy YW1zICp3cCwKIAkJCQkgICAgICBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSkKQEAgLTUyNzAsNyAr NTQ0Myw4IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtX3NpbmdsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0J c2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLT53bSk7CisJ c2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLCBDT0xPUl9Q TEFORV9ZKTsKKwlza2xfY29tcHV0ZV9zYWd2X3dtKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdt LCBDT0xPUl9QTEFORV9ZKTsKIAlza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKGNydGNfc3RhdGUs ICZ3bV9wYXJhbXMsIHdtKTsKIAogCXJldHVybiAwOwpAQCAtNTI5Miw3ICs1NDY2LDggQEAgc3Rh dGljIGludCBza2xfYnVpbGRfcGxhbmVfd21fdXYoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXNrbF9jb21wdXRlX3dtX2xl dmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bS0+dXZfd20pOworCXNrbF9jb21wdXRlX3dt X2xldmVscyhjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bSwgQ09MT1JfUExBTkVfVVYpOworCXNr bF9jb21wdXRlX3NhZ3Zfd20oY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20sIENPTE9SX1BMQU5F X1VWKTsKIAogCXJldHVybiAwOwogfQpAQCAtNTYzMSw5ICs1ODA2LDI1IEBAIHNrbF9wcmludF93 bV9jaGFuZ2VzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlmb3JfZWFjaF9p bnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjLCBwbGFuZSkgewogCQkJZW51 bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKIAkJCWNvbnN0IHN0cnVjdCBza2xfcGxh bmVfd20gKm9sZF93bSwgKm5ld193bTsKKwkJCWNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKm9s ZF93bV9sZXZlbCwgKm5ld193bV9sZXZlbDsKKwkJCXUxNiBvbGRfcGxhbmVfcmVzX2wsIG5ld19w bGFuZV9yZXNfbDsKKwkJCXU4ICBvbGRfcGxhbmVfcmVzX2IsIG5ld19wbGFuZV9yZXNfYjsKKwkJ CXUxNiBvbGRfbWluX2RkYl9hbGxvYywgbmV3X21pbl9kZGJfYWxsb2M7CisJCQlpbnQgY29sb3Jf cGxhbmUgPSAwOwogCiAJCQlvbGRfd20gPSAmb2xkX3BpcGVfd20tPnBsYW5lc1twbGFuZV9pZF07 CiAJCQluZXdfd20gPSAmbmV3X3BpcGVfd20tPnBsYW5lc1twbGFuZV9pZF07CisJCQlvbGRfd21f bGV2ZWwgPSBza2xfcGxhbmVfd21fbGV2ZWwob2xkX2NydGNfc3RhdGUsIHBsYW5lX2lkLCAwLCBj b2xvcl9wbGFuZSk7CisJCQluZXdfd21fbGV2ZWwgPSBza2xfcGxhbmVfd21fbGV2ZWwobmV3X2Ny dGNfc3RhdGUsIHBsYW5lX2lkLCAwLCBjb2xvcl9wbGFuZSk7CisKKwkJCW9sZF9wbGFuZV9yZXNf bCA9IG9sZF93bV9sZXZlbC0+cGxhbmVfcmVzX2w7CisJCQlvbGRfcGxhbmVfcmVzX2IgPSBvbGRf d21fbGV2ZWwtPnBsYW5lX3Jlc19iOworCisJCQluZXdfcGxhbmVfcmVzX2wgPSBuZXdfd21fbGV2 ZWwtPnBsYW5lX3Jlc19sOworCQkJbmV3X3BsYW5lX3Jlc19iID0gbmV3X3dtX2xldmVsLT5wbGFu ZV9yZXNfYjsKKworCQkJb2xkX21pbl9kZGJfYWxsb2MgPSBvbGRfd21fbGV2ZWwtPm1pbl9kZGJf YWxsb2M7CisJCQluZXdfbWluX2RkYl9hbGxvYyA9IG5ld193bV9sZXZlbC0+bWluX2RkYl9hbGxv YzsKIAogCQkJaWYgKHNrbF9wbGFuZV93bV9lcXVhbHMoZGV2X3ByaXYsIG9sZF93bSwgbmV3X3dt KSkKIAkJCQljb250aW51ZTsKQEAgLTU2NTcsNyArNTg0OCw3IEBAIHNrbF9wcmludF93bV9jaGFu Z2VzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJCSAgICAiW1BMQU5FOiVk OiVzXSAgIGxpbmVzICVjJTNkLCVjJTNkLCVjJTNkLCVjJTNkLCVjJTNkLCVjJTNkLCVjJTNkLCVj JTNkLCVjJTNkIgogCQkJCSAgICAgICIgLT4gJWMlM2QsJWMlM2QsJWMlM2QsJWMlM2QsJWMlM2Qs JWMlM2QsJWMlM2QsJWMlM2QsJWMlM2RcbiIsCiAJCQkJICAgIHBsYW5lLT5iYXNlLmJhc2UuaWQs IHBsYW5lLT5iYXNlLm5hbWUsCi0JCQkJICAgIGVuYXN0KG9sZF93bS0+d21bMF0uaWdub3JlX2xp bmVzKSwgb2xkX3dtLT53bVswXS5wbGFuZV9yZXNfbCwKKwkJCQkgICAgZW5hc3Qob2xkX3dtLT53 bVswXS5pZ25vcmVfbGluZXMpLCBvbGRfcGxhbmVfcmVzX2wsCiAJCQkJICAgIGVuYXN0KG9sZF93 bS0+d21bMV0uaWdub3JlX2xpbmVzKSwgb2xkX3dtLT53bVsxXS5wbGFuZV9yZXNfbCwKIAkJCQkg ICAgZW5hc3Qob2xkX3dtLT53bVsyXS5pZ25vcmVfbGluZXMpLCBvbGRfd20tPndtWzJdLnBsYW5l X3Jlc19sLAogCQkJCSAgICBlbmFzdChvbGRfd20tPndtWzNdLmlnbm9yZV9saW5lcyksIG9sZF93 bS0+d21bM10ucGxhbmVfcmVzX2wsCkBAIC01NjY3LDcgKzU4NTgsNyBAQCBza2xfcHJpbnRfd21f Y2hhbmdlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCQkgICAgZW5hc3Qo b2xkX3dtLT53bVs3XS5pZ25vcmVfbGluZXMpLCBvbGRfd20tPndtWzddLnBsYW5lX3Jlc19sLAog CQkJCSAgICBlbmFzdChvbGRfd20tPnRyYW5zX3dtLmlnbm9yZV9saW5lcyksIG9sZF93bS0+dHJh bnNfd20ucGxhbmVfcmVzX2wsCiAKLQkJCQkgICAgZW5hc3QobmV3X3dtLT53bVswXS5pZ25vcmVf bGluZXMpLCBuZXdfd20tPndtWzBdLnBsYW5lX3Jlc19sLAorCQkJCSAgICBlbmFzdChuZXdfd20t PndtWzBdLmlnbm9yZV9saW5lcyksIG5ld19wbGFuZV9yZXNfbCwKIAkJCQkgICAgZW5hc3QobmV3 X3dtLT53bVsxXS5pZ25vcmVfbGluZXMpLCBuZXdfd20tPndtWzFdLnBsYW5lX3Jlc19sLAogCQkJ CSAgICBlbmFzdChuZXdfd20tPndtWzJdLmlnbm9yZV9saW5lcyksIG5ld193bS0+d21bMl0ucGxh bmVfcmVzX2wsCiAJCQkJICAgIGVuYXN0KG5ld193bS0+d21bM10uaWdub3JlX2xpbmVzKSwgbmV3 X3dtLT53bVszXS5wbGFuZV9yZXNfbCwKQEAgLTU2ODEsMTIgKzU4NzIsMTIgQEAgc2tsX3ByaW50 X3dtX2NoYW5nZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJICAgICJb UExBTkU6JWQ6JXNdICBibG9ja3MgJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGQi CiAJCQkJICAgICIgLT4gJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGRcbiIsCiAJ CQkJICAgIHBsYW5lLT5iYXNlLmJhc2UuaWQsIHBsYW5lLT5iYXNlLm5hbWUsCi0JCQkJICAgIG9s ZF93bS0+d21bMF0ucGxhbmVfcmVzX2IsIG9sZF93bS0+d21bMV0ucGxhbmVfcmVzX2IsCisJCQkJ ICAgIG9sZF9wbGFuZV9yZXNfYiwgb2xkX3dtLT53bVsxXS5wbGFuZV9yZXNfYiwKIAkJCQkgICAg b2xkX3dtLT53bVsyXS5wbGFuZV9yZXNfYiwgb2xkX3dtLT53bVszXS5wbGFuZV9yZXNfYiwKIAkJ CQkgICAgb2xkX3dtLT53bVs0XS5wbGFuZV9yZXNfYiwgb2xkX3dtLT53bVs1XS5wbGFuZV9yZXNf YiwKIAkJCQkgICAgb2xkX3dtLT53bVs2XS5wbGFuZV9yZXNfYiwgb2xkX3dtLT53bVs3XS5wbGFu ZV9yZXNfYiwKIAkJCQkgICAgb2xkX3dtLT50cmFuc193bS5wbGFuZV9yZXNfYiwKLQkJCQkgICAg bmV3X3dtLT53bVswXS5wbGFuZV9yZXNfYiwgbmV3X3dtLT53bVsxXS5wbGFuZV9yZXNfYiwKKwkJ CQkgICAgbmV3X3BsYW5lX3Jlc19iLCBuZXdfd20tPndtWzFdLnBsYW5lX3Jlc19iLAogCQkJCSAg ICBuZXdfd20tPndtWzJdLnBsYW5lX3Jlc19iLCBuZXdfd20tPndtWzNdLnBsYW5lX3Jlc19iLAog CQkJCSAgICBuZXdfd20tPndtWzRdLnBsYW5lX3Jlc19iLCBuZXdfd20tPndtWzVdLnBsYW5lX3Jl c19iLAogCQkJCSAgICBuZXdfd20tPndtWzZdLnBsYW5lX3Jlc19iLCBuZXdfd20tPndtWzddLnBs YW5lX3Jlc19iLApAQCAtNTY5NiwxMiArNTg4NywxMiBAQCBza2xfcHJpbnRfd21fY2hhbmdlcyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCQkgICAgIltQTEFORTolZDolc10g bWluX2RkYiAlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZCIKIAkJCQkgICAgIiAt PiAlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZCwlNGQsJTRkLCU0ZFxuIiwKIAkJCQkgICAgcGxhbmUt PmJhc2UuYmFzZS5pZCwgcGxhbmUtPmJhc2UubmFtZSwKLQkJCQkgICAgb2xkX3dtLT53bVswXS5t aW5fZGRiX2FsbG9jLCBvbGRfd20tPndtWzFdLm1pbl9kZGJfYWxsb2MsCisJCQkJICAgIG9sZF9t aW5fZGRiX2FsbG9jLCBvbGRfd20tPndtWzFdLm1pbl9kZGJfYWxsb2MsCiAJCQkJICAgIG9sZF93 bS0+d21bMl0ubWluX2RkYl9hbGxvYywgb2xkX3dtLT53bVszXS5taW5fZGRiX2FsbG9jLAogCQkJ CSAgICBvbGRfd20tPndtWzRdLm1pbl9kZGJfYWxsb2MsIG9sZF93bS0+d21bNV0ubWluX2RkYl9h bGxvYywKIAkJCQkgICAgb2xkX3dtLT53bVs2XS5taW5fZGRiX2FsbG9jLCBvbGRfd20tPndtWzdd Lm1pbl9kZGJfYWxsb2MsCiAJCQkJICAgIG9sZF93bS0+dHJhbnNfd20ubWluX2RkYl9hbGxvYywK LQkJCQkgICAgbmV3X3dtLT53bVswXS5taW5fZGRiX2FsbG9jLCBuZXdfd20tPndtWzFdLm1pbl9k ZGJfYWxsb2MsCisJCQkJICAgIG5ld19taW5fZGRiX2FsbG9jLCBuZXdfd20tPndtWzFdLm1pbl9k ZGJfYWxsb2MsCiAJCQkJICAgIG5ld193bS0+d21bMl0ubWluX2RkYl9hbGxvYywgbmV3X3dtLT53 bVszXS5taW5fZGRiX2FsbG9jLAogCQkJCSAgICBuZXdfd20tPndtWzRdLm1pbl9kZGJfYWxsb2Ms IG5ld193bS0+d21bNV0ubWluX2RkYl9hbGxvYywKIAkJCQkgICAgbmV3X3dtLT53bVs2XS5taW5f ZGRiX2FsbG9jLCBuZXdfd20tPndtWzddLm1pbl9kZGJfYWxsb2MsCkBAIC01ODY2LDYgKzYwNTcs MTAgQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJ aWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCXJldCA9IGludGVsX2NvbXB1dGVfc2Fndl9tYXNr KHN0YXRlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJLyoKIAkgKiBza2xfY29tcHV0 ZV9kZGIoKSB3aWxsIGhhdmUgYWRqdXN0ZWQgdGhlIGZpbmFsIHdhdGVybWFya3MKIAkgKiBiYXNl ZCBvbiBob3cgbXVjaCBkZGIgaXMgYXZhaWxhYmxlLiBOb3cgd2UgY2FuIGFjdHVhbGx5CkBAIC01 OTkzLDYgKzYxODgsOSBAQCB2b2lkIHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAkJCQl2YWwgPSBJOTE1X1JFQUQoQ1VSX1dNKHBpcGUsIGxldmVsKSk7 CiAKIAkJCXNrbF93bV9sZXZlbF9mcm9tX3JlZ192YWwodmFsLCAmd20tPndtW2xldmVsXSk7CisJ CQlpZiAobGV2ZWwgPT0gMCkKKwkJCQltZW1jcHkoJndtLT5zYWd2X3dtMCwgJndtLT53bVtsZXZl bF0sCisJCQkJICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX3dtX2xldmVsKSk7CiAJCX0KIAogCQlp ZiAocGxhbmVfaWQgIT0gUExBTkVfQ1VSU09SKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmgKaW5kZXgg ZDYwYTg1NDIxYzVhLi41ZmIzMmRiNGFiYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uaApAQCAt OSw2ICs5LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCiAjaW5jbHVkZSAiaTkxNV9y ZWcuaCIKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2J3LmgiCiAKIHN0cnVjdCBkcm1fZGV2aWNl Owogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CkBAIC00MSw3ICs0Miw4IEBAIHZvaWQgc2tsX3Bp cGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgICAgc3Ry dWN0IHNrbF9waXBlX3dtICpvdXQpOwogdm9pZCBnNHhfd21fc2FuaXRpemUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgdmx2X3dtX3Nhbml0aXplKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGludGVsX2Nhbl9lbmFibGVfc2FndihzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7Citib29sIGludGVsX2hhc19zYWd2KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Citib29sIGludGVsX2Nhbl9lbmFibGVfc2Fn dihzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKmJ3X3N0YXRlKTsKIGludCBpbnRlbF9lbmFibGVfc2Fn dihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGludGVsX2Rpc2FibGVf c2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogYm9vbCBza2xfd21fbGV2 ZWxfZXF1YWxzKGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKmwxLAotLSAKMi4yNC4xLjQ4NS5n YWQwNWEzZDhlNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==