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=-8.6 required=3.0 tests=DATE_IN_PAST_06_12, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,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 1A37FC33CB3 for ; Wed, 15 Jan 2020 01:01:53 +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 EEA5C24671 for ; Wed, 15 Jan 2020 01:01:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EEA5C24671 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E35D76E457; Wed, 15 Jan 2020 01:01:50 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6E746E457; Wed, 15 Jan 2020 01:01:49 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jan 2020 17:01:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,320,1574150400"; d="scan'208";a="217940891" Received: from unknown (HELO localhost.jf.intel.com) ([10.166.29.74]) by orsmga008.jf.intel.com with ESMTP; 14 Jan 2020 17:01:49 -0800 From: Akeem G Abodunrin To: akeem.g.abodunrin@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, omer.aran@intel.com, pragyansri.pathi@intel.com, d.scott.phillips@intel.com, david.c.stewart@intel.com, tony.luck@intel.com, jon.bloomfield@intel.com, sudeep.dutt@intel.com, daniel.vetter@intel.com, joonas.lahtinen@intel.com, jani.nikula@intel.com, chris.p.wilson@intel.com, prathap.kumar.valsan@intel.com, mika.kuoppala@intel.com, francesco.balestrieri@intel.com Subject: [RFC PATCH v2 2/2] drm/i915/gen7: Clear all EU/L3 residual contexts Date: Tue, 14 Jan 2020 09:45:48 -0800 Message-Id: <20200114174549.74643-3-akeem.g.abodunrin@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114174549.74643-1-akeem.g.abodunrin@intel.com> References: <20200114174549.74643-1-akeem.g.abodunrin@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogUHJhdGhhcCBLdW1hciBWYWxzYW4gPHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNv bT4KCk9uIGdlbjcgYW5kIGdlbjcuNSBkZXZpY2VzLCB0aGVyZSBjb3VsZCBiZSBsZWZ0b3ZlciBk YXRhIHJlc2lkdWFscyBpbgpFVS9MMyBmcm9tIHRoZSByZXRpcmluZyBjb250ZXh0LiBUaGlzIHBh dGNoIGludHJvZHVjZXMgd29ya2Fyb3VuZCB0byBjbGVhcgp0aGF0IHJlc2lkdWFsIGNvbnRleHRz LCBieSBzdWJtaXR0aW5nIGEgYmF0Y2ggYnVmZmVyIHdpdGggZGVkaWNhdGVkIEhXCmNvbnRleHQg dG8gdGhlIEdQVSB3aXRoIHJpbmcgYWxsb2NhdGlvbiBmb3IgZWFjaCBjb250ZXh0IHN3aXRjaGlu Zy4KClYyOiBBZGRyZXNzZWQgY29tbWVudHMgYWJvdXQgdW51c2VkIGNvZGUsIGNvZGUgZm9ybWF0 dGluZywgYW5kIGluY2x1ZGUKYWRkaXRpb25hbCBkZWJ1ZyBjb2RlCgpTaWduZWQtb2ZmLWJ5OiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogUHJhdGhhcCBLdW1hciBWYWxzYW4gPHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogQWtlZW0gRyBBYm9kdW5yaW4gPGFrZWVtLmcuYWJvZHVucmluQGludGVs LmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXMucC53aWxzb25AaW50ZWwuY29tPgpDYzogQmFs ZXN0cmllcmkgRnJhbmNlc2NvIDxmcmFuY2VzY28uYmFsZXN0cmllcmlAaW50ZWwuY29tPgpDYzog Qmxvb21maWVsZCBKb24gPGpvbi5ibG9vbWZpZWxkQGludGVsLmNvbT4KQ2M6IER1dHQgU3VkZWVw IDxzdWRlZXAuZHV0dEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjdf cmVuZGVyY2xlYXIuYyAgICB8IDUxNSArKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2dlbjdfcmVuZGVyY2xlYXIuaCAgICB8ICAxNiArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaCAgfCAgMTcgKy0KIC4uLi9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfcmluZ19zdWJtaXNzaW9uLmMgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV91dGlscy5oICAgICAgICAgICAgIHwgICA1ICsKIDYgZmlsZXMgY2hhbmdlZCwgNTUz IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvZ2VuN19yZW5kZXJjbGVhci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuN19yZW5kZXJjbGVhci5oCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQppbmRleCBiOGM1Zjg5MzRkYmQuLmU1Mzg2ODcxZjAxNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKQEAgLTc1LDYgKzc1LDcgQEAgZ3QteSArPSBcCiAJZ3QvZGVidWdmc19ndC5vIFwKIAlndC9k ZWJ1Z2ZzX2d0X3BtLm8gXAogCWd0L2dlbjZfcHBndHQubyBcCisJZ3QvZ2VuN19yZW5kZXJjbGVh ci5vIFwKIAlndC9nZW44X3BwZ3R0Lm8gXAogCWd0L2ludGVsX2JyZWFkY3J1bWJzLm8gXAogCWd0 L2ludGVsX2NvbnRleHQubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9n ZW43X3JlbmRlcmNsZWFyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRlcmNs ZWFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZmUyYTZmY2Jk ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRl cmNsZWFyLmMKQEAgLTAsMCArMSw1MTUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBN SVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNp bmNsdWRlICJnZW43X3JlbmRlcmNsZWFyLmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNs dWRlICJpOTE1X3V0aWxzLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3B1X2NvbW1hbmRzLmgiCisKKyNk ZWZpbmUgTUFYX1VSQl9FTlRSSUVTIDY0CisjZGVmaW5lIFNUQVRFX1NJWkUgKDQgKiAxMDI0KQor I2RlZmluZSBHVDNfSU5MSU5FX0RBVEFfREVMQVlTIDB4MUUwMAorCisvKiBNZWRpYSBDQiBLZXJu ZWwgZm9yIGdlbjcgZGV2aWNlcyAqLworc3RhdGljIGNvbnN0IHUzMiBjYjdfa2VybmVsW11bNF0g PSB7CisJeyAweDAwMDAwMDAxLCAweDI2MDIwMTI4LCAweDAwMDAwMDI0LCAweDAwMDAwMDAwIH0s CisJeyAweDAwMDAwMDQwLCAweDIwMjgwYzIxLCAweDAwMDAwMDI4LCAweDAwMDAwMDAxIH0sCisJ eyAweDAxMDAwMDEwLCAweDIwMDAwYzIwLCAweDAwMDAwMDJjLCAweDAwMDAwMDAwIH0sCisJeyAw eDAwMDEwMjIwLCAweDM0MDAxYzAwLCAweDAwMDAxNDAwLCAweDAwMDAwMDJjIH0sCisJeyAweDAw NjAwMDAxLCAweDIwNjAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAw MDA4LCAweDIwNjAxYzg1LCAweDAwMDAwZTAwLCAweDAwMDAwMDBjIH0sCisJeyAweDAwMDAwMDA1 LCAweDIwNjAxY2E1LCAweDAwMDAwMDYwLCAweDAwMDAwMDAxIH0sCisJeyAweDAwMDAwMDA4LCAw eDIwNjQxYzg1LCAweDAwMDAwZTAwLCAweDAwMDAwMDBkIH0sCisJeyAweDAwMDAwMDA1LCAweDIw NjQxY2E1LCAweDAwMDAwMDY0LCAweDAwMDAwMDAzIH0sCisJeyAweDAwMDAwMDQxLCAweDIwNzQy NGE1LCAweDAwMDAwMDY0LCAweDAwMDAwMDM0IH0sCisJeyAweDAwMDAwMDQwLCAweDIwNjAxNGE1 LCAweDAwMDAwMDYwLCAweDAwMDAwMDc0IH0sCisJeyAweDAwMDAwMDA4LCAweDIwNjgxYzg1LCAw eDAwMDAwZTAwLCAweDAwMDAwMDA4IH0sCisJeyAweDAwMDAwMDA1LCAweDIwNjgxY2E1LCAweDAw MDAwMDY4LCAweDAwMDAwMDBmIH0sCisJeyAweDAwMDAwMDQxLCAweDIwNzAxY2E1LCAweDAwMDAw MDYwLCAweDAwMDAwMDEwIH0sCisJeyAweDAwMDAwMDQwLCAweDIwNjgxNGE1LCAweDAwMDAwMDY4 LCAweDAwMDAwMDcwIH0sCisJeyAweDAwNjAwMDAxLCAweDIwYTAwMDYxLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDA1LCAweDIwNmMxYzg1LCAweDAwMDAwZTAwLCAweDAw MDAwMDA3IH0sCisJeyAweDAwMDAwMDQxLCAweDIwNmMxY2E1LCAweDAwMDAwMDZjLCAweDAwMDAw MDA0IH0sCisJeyAweDAwNjAwMDAxLCAweDIwODAwMDIxLCAweDAwOGQwMDAwLCAweDAwMDAwMDAw IH0sCisJeyAweDAwMDAwMDAxLCAweDIwODAwMDIxLCAweDAwMDAwMDZjLCAweDAwMDAwMDAwIH0s CisJeyAweDAwMDAwMDAxLCAweDIwODQwMDIxLCAweDAwMDAwMDY4LCAweDAwMDAwMDAwIH0sCisJ eyAweDAwMDAwMDAxLCAweDIwODgwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAzIH0sCisJeyAw eDAwMDAwMDA1LCAweDIwOGMwZDIxLCAweDAwMDAwMDg2LCAweGZmZmZmZmZmIH0sCisJeyAweDA1 NjAwMDMyLCAweDIwYTAxZmExLCAweDAwOGQwMDgwLCAweDAyMTkwMDAxIH0sCisJeyAweDAwMDAw MDQwLCAweDIwYTAxY2E1LCAweDAwMDAwMGEwLCAweDAwMDAwMDAxIH0sCisJeyAweDA1NjAwMDMy LCAweDIwYTAxZmExLCAweDAwOGQwMDgwLCAweDA0MGE4MDAxIH0sCisJeyAweDAyMDAwMDQwLCAw eDIwMjgxYzIxLCAweDAwMDAwMDI4LCAweGZmZmZmZmZmIH0sCisJeyAweDAwMDEwMjIwLCAweDM0 MDAxYzAwLCAweDAwMDAxNDAwLCAweGZmZmZmZmZjIH0sCisJeyAweDAwMDAwMDAxLCAweDI2MDIw MTI4LCAweDAwMDAwMDI0LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIyMDAwMGU0 LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIyMDgwMWVjLCAw eDAwMDAwMDAwLCAweDAwN2YwMDdmIH0sCisJeyAweDAwNjAwMDAxLCAweDIwNDAwMDIxLCAweDAw OGQwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwNjAwMDAxLCAweDJmZTAwMDIxLCAweDAwOGQw MDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMjAwMDAxLCAweDIwNDAwMTIxLCAweDAwNDUwMDIw LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIwNDgwMDYxLCAweDAwMDAwMDAwLCAw eDAwMGYwMDBmIH0sCisJeyAweDAwMDAwMDA1LCAweDIwNGMwZDIxLCAweDAwMDAwMDQ2LCAweGZm ZmZmZmVmIH0sCisJeyAweDAwODAwMDAxLCAweDIwNjAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAw MDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIwODAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw IH0sCisJeyAweDAwODAwMDAxLCAweDIwYTAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0s CisJeyAweDAwODAwMDAxLCAweDIwYzAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJ eyAweDAwODAwMDAxLCAweDIwZTAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAw eDAwODAwMDAxLCAweDIxMDAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAw ODAwMDAxLCAweDIxMjAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAw MDAxLCAweDIxNDAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDA1NjAwMDMy LCAweDIwMDAxZmEwLCAweDAwOGQwMDQwLCAweDEyMGE4MDAwIH0sCisJeyAweDAwMDAwMDQwLCAw eDIwNDAyZDIxLCAweDAwMDAwMDIwLCAweDAwMTAwMDEwIH0sCisJeyAweDA1NjAwMDMyLCAweDIw MDAxZmEwLCAweDAwOGQwMDQwLCAweDEyMGE4MDAwIH0sCisJeyAweDAyMDAwMDQwLCAweDIyMDgz ZDhjLCAweDAwMDAwMjA4LCAweGZmZmZmZmZmIH0sCisJeyAweDAwODAwMDAxLCAweGEwMDAwMTA5 LCAweDAwMDAwNjAyLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDQwLCAweDIyMDAxYzg0LCAw eDAwMDAwMjAwLCAweDAwMDAwMDIwIH0sCisJeyAweDAwMDEwMjIwLCAweDM0MDAxYzAwLCAweDAw MDAxNDAwLCAweGZmZmZmZmY4IH0sCisJeyAweDA3NjAwMDMyLCAweDIwMDAxZmEwLCAweDAwOGQw ZmUwLCAweDgyMDAwMDEwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAw MDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw IH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0s CisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJ eyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCit9Owor CisvKiBNZWRpYSBDQiBLZXJuZWwgZm9yIGdlbjcuNSBkZXZpY2VzICovCitzdGF0aWMgY29uc3Qg dTMyIGNiNzVfa2VybmVsW11bNF0gPSB7CisJeyAweDAwMDAwMDAxLCAweDI2MDIwMTI4LCAweDAw MDAwMDI0LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDQwLCAweDIwMjgwYzIxLCAweDAwMDAw MDI4LCAweDAwMDAwMDAxIH0sCisJeyAweDAxMDAwMDEwLCAweDIwMDAwYzIwLCAweDAwMDAwMDJj LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDEwMjIwLCAweDM0MDAxYzAwLCAweDAwMDAxNDAwLCAw eDAwMDAwMTYwIH0sCisJeyAweDAwNjAwMDAxLCAweDIwNjAwMDYxLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwIH0sCisJeyAweDAwMDAwMDA4LCAweDIwNjAxYzg1LCAweDAwMDAwZTAwLCAweDAwMDAw MDBjIH0sCisJeyAweDAwMDAwMDA1LCAweDIwNjAxY2E1LCAweDAwMDAwMDYwLCAweDAwMDAwMDAx IH0sCisJeyAweDAwMDAwMDA4LCAweDIwNjQxYzg1LCAweDAwMDAwZTAwLCAweDAwMDAwMDBkIH0s CisJeyAweDAwMDAwMDA1LCAweDIwNjQxY2E1LCAweDAwMDAwMDY0LCAweDAwMDAwMDAzIH0sCisJ eyAweDAwMDAwMDQxLCAweDIwNzQyNGE1LCAweDAwMDAwMDY0LCAweDAwMDAwMDM0IH0sCisJeyAw eDAwMDAwMDQwLCAweDIwNjAxNGE1LCAweDAwMDAwMDYwLCAweDAwMDAwMDc0IH0sCisJeyAweDAw MDAwMDA4LCAweDIwNjgxYzg1LCAweDAwMDAwZTAwLCAweDAwMDAwMDA4IH0sCisJeyAweDAwMDAw MDA1LCAweDIwNjgxY2E1LCAweDAwMDAwMDY4LCAweDAwMDAwMDBmIH0sCisJeyAweDAwMDAwMDQx LCAweDIwNzAxY2E1LCAweDAwMDAwMDYwLCAweDAwMDAwMDEwIH0sCisJeyAweDAwMDAwMDQwLCAw eDIwNjgxNGE1LCAweDAwMDAwMDY4LCAweDAwMDAwMDcwIH0sCisJeyAweDAwNjAwMDAxLCAweDIw YTAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDA1LCAweDIwNmMx Yzg1LCAweDAwMDAwZTAwLCAweDAwMDAwMDA3IH0sCisJeyAweDAwMDAwMDQxLCAweDIwNmMxY2E1 LCAweDAwMDAwMDZjLCAweDAwMDAwMDA0IH0sCisJeyAweDAwNjAwMDAxLCAweDIwODAwMDIxLCAw eDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIwODAwMDIxLCAweDAw MDAwMDZjLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIwODQwMDIxLCAweDAwMDAw MDY4LCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIwODgwMDYxLCAweDAwMDAwMDAw LCAweDAwMDAwMDAzIH0sCisJeyAweDAwMDAwMDA1LCAweDIwOGMwZDIxLCAweDAwMDAwMDg2LCAw eGZmZmZmZmZmIH0sCisJeyAweDA1NjAwMDMyLCAweDIwYTAxZmExLCAweDAwOGQwMDgwLCAweDAy MTkwMDAxIH0sCisJeyAweDAwMDAwMDQwLCAweDIwYTAxY2E1LCAweDAwMDAwMGEwLCAweDAwMDAw MDAxIH0sCisJeyAweDA1NjAwMDMyLCAweDIwYTAxZmExLCAweDAwOGQwMDgwLCAweDA0MGE4MDAx IH0sCisJeyAweDAyMDAwMDQwLCAweDIwMjgxYzIxLCAweDAwMDAwMDI4LCAweGZmZmZmZmZmIH0s CisJeyAweDAwMDEwMjIwLCAweDM0MDAxYzAwLCAweDAwMDAxNDAwLCAweGZmZmZmZmUwIH0sCisJ eyAweDAwMDAwMDAxLCAweDI2MDIwMTI4LCAweDAwMDAwMDI0LCAweDAwMDAwMDAwIH0sCisJeyAw eDAwMDAwMDAxLCAweDIyMDAwMGU0LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAw MDAwMDAxLCAweDIyMDgwMWVjLCAweDAwMDAwMDAwLCAweDAwN2YwMDdmIH0sCisJeyAweDAwNjAw MDAxLCAweDIwNDAwMDIxLCAweDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwNjAwMDAx LCAweDJmZTAwMDIxLCAweDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMjAwMDAxLCAw eDIwNDAwMTIxLCAweDAwNDUwMDIwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIw NDgwMDYxLCAweDAwMDAwMDAwLCAweDAwMGYwMDBmIH0sCisJeyAweDAwMDAwMDA1LCAweDIwNGMw ZDIxLCAweDAwMDAwMDQ2LCAweGZmZmZmZmVmIH0sCisJeyAweDAwODAwMDAxLCAweDIwNjAwMDYx LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIwODAwMDYxLCAw eDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIwYTAwMDYxLCAweDAw MDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIwYzAwMDYxLCAweDAwMDAw MDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIwZTAwMDYxLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIxMDAwMDYxLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIxMjAwMDYxLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwIH0sCisJeyAweDAwODAwMDAxLCAweDIxNDAwMDYxLCAweDAwMDAwMDAwLCAweDAwMDAw MDAwIH0sCisJeyAweDA1NjAwMDMyLCAweDIwMDAxZmEwLCAweDAwOGQwMDQwLCAweDEyMGE4MDAw IH0sCisJeyAweDAwMDAwMDQwLCAweDIwNDAyZDIxLCAweDAwMDAwMDIwLCAweDAwMTAwMDEwIH0s CisJeyAweDA1NjAwMDMyLCAweDIwMDAxZmEwLCAweDAwOGQwMDQwLCAweDEyMGE4MDAwIH0sCisJ eyAweDAyMDAwMDQwLCAweDIyMDgzZDhjLCAweDAwMDAwMjA4LCAweGZmZmZmZmZmIH0sCisJeyAw eDAwODAwMDAxLCAweGEwMDAwMTA5LCAweDAwMDAwNjAyLCAweDAwMDAwMDAwIH0sCisJeyAweDAw MDAwMDQwLCAweDIyMDAxYzg0LCAweDAwMDAwMjAwLCAweDAwMDAwMDIwIH0sCisJeyAweDAwMDEw MjIwLCAweDM0MDAxYzAwLCAweDAwMDAxNDAwLCAweGZmZmZmZmMwIH0sCisJeyAweDA3NjAwMDMy LCAweDIwMDAxZmEwLCAweDAwOGQwZmUwLCAweDgyMDAwMDEwIH0sCisJeyAweDAwMDAwMDAwLCAw eDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAw MDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAw MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAw MDAwLCAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwIH0sCit9OworCitzdHJ1Y3QgY2Jfa2VybmVsIHsKKwljb25zdCB2b2lkICpk YXRhOworCXUzMiBzaXplOworfTsKKworI2RlZmluZSBDQl9LRVJORUwobmFtZSkgeyAuZGF0YSA9 IChuYW1lKSwgLnNpemUgPSBzaXplb2YobmFtZSkgfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNi X2tlcm5lbCBjYl9rZXJuZWxfZ2VuNyA9IENCX0tFUk5FTChjYjdfa2VybmVsKTsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY2Jfa2VybmVsIGNiX2tlcm5lbF9oc3cgPSBDQl9LRVJORUwoY2I3NV9rZXJu ZWwpOworCitzdHJ1Y3QgYmF0Y2hfY2h1bmsgeworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXUz MiBvZmZzZXQ7CisJdTMyICpzdGFydDsKKwl1MzIgKmVuZDsKKwl1MzIgbWF4X2l0ZW1zOworfTsK Kworc3RydWN0IGJhdGNoX3ZhbHMgeworCXUzMiBtYXhfcHJpbWl0aXZlczsKKwl1MzIgbWF4X3Vy Yl9lbnRyaWVzOworCXUzMiBjbWRfc2l6ZTsKKwl1MzIgc3RhdGVfc2l6ZTsKKwl1MzIgc3RhdGVf c3RhcnQ7CisJdTMyIGJhdGNoX3NpemU7CisJdTMyIHN1cmZhY2VfaGVpZ2h0OworCXUzMiBzdXJm YWNlX3dpZHRoOworCXUzMiBzY3JhdGNoX3NpemU7CisJdTMyIG1heF9zaXplOworfTsKKworc3Rh dGljIHZvaWQKK2JhdGNoX2dldF9kZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgc3RydWN0IGJhdGNoX3ZhbHMgKmJ2KQoreworCWlmIChJU19IQVNXRUxMKGk5MTUpKSB7CisJ CWJ2LT5tYXhfcHJpbWl0aXZlcyA9IDI4MDsKKwkJYnYtPm1heF91cmJfZW50cmllcyA9IE1BWF9V UkJfRU5UUklFUzsKKwkJYnYtPnN1cmZhY2VfaGVpZ2h0ID0gMTYgKiAxNjsKKwkJYnYtPnN1cmZh Y2Vfd2lkdGggPSAzMiAqIDIgKiAxNjsKKwl9IGVsc2UgeworCQlidi0+bWF4X3ByaW1pdGl2ZXMg PSAxMjg7CisJCWJ2LT5tYXhfdXJiX2VudHJpZXMgPSBNQVhfVVJCX0VOVFJJRVMgLyAyOworCQli di0+c3VyZmFjZV9oZWlnaHQgPSAxNiAqIDg7CisJCWJ2LT5zdXJmYWNlX3dpZHRoID0gMzIgKiAx NjsKKwl9CisJYnYtPmNtZF9zaXplID0gYnYtPm1heF9wcmltaXRpdmVzICogNDA5NjsKKwlidi0+ c3RhdGVfc2l6ZSA9IFNUQVRFX1NJWkU7CisJYnYtPnN0YXRlX3N0YXJ0ID0gYnYtPmNtZF9zaXpl OworCWJ2LT5iYXRjaF9zaXplID0gYnYtPmNtZF9zaXplICsgYnYtPnN0YXRlX3NpemU7CisJYnYt PnNjcmF0Y2hfc2l6ZSA9IGJ2LT5zdXJmYWNlX2hlaWdodCAqIGJ2LT5zdXJmYWNlX3dpZHRoOwor CWJ2LT5tYXhfc2l6ZSA9IGJ2LT5iYXRjaF9zaXplICsgYnYtPnNjcmF0Y2hfc2l6ZTsKK30KKwor c3RhdGljIHZvaWQgYmF0Y2hfaW5pdChzdHJ1Y3QgYmF0Y2hfY2h1bmsgKmJjLAorCQkgICAgICAg c3RydWN0IGk5MTVfdm1hICp2bWEsCisJCSAgICAgICB1MzIgKnN0YXJ0LCB1MzIgb2Zmc2V0LCB1 MzIgbWF4X2J5dGVzKQoreworCWJjLT52bWEgPSB2bWE7CisJYmMtPm9mZnNldCA9IG9mZnNldDsK KwliYy0+c3RhcnQgPSBzdGFydCArIGJjLT5vZmZzZXQgLyBzaXplb2YoKmJjLT5zdGFydCk7CisJ YmMtPmVuZCA9IGJjLT5zdGFydDsKKwliYy0+bWF4X2l0ZW1zID0gbWF4X2J5dGVzIC8gc2l6ZW9m KCpiYy0+c3RhcnQpOworfQorCitzdGF0aWMgdTMyIGJhdGNoX29mZnNldChjb25zdCBzdHJ1Y3Qg YmF0Y2hfY2h1bmsgKmJjLCB1MzIgKmNzKQoreworCXJldHVybiAoY3MgLSBiYy0+c3RhcnQpICog c2l6ZW9mKCpiYy0+c3RhcnQpICsgYmMtPm9mZnNldDsKK30KKworc3RhdGljIHUzMiBiYXRjaF9h ZGRyKGNvbnN0IHN0cnVjdCBiYXRjaF9jaHVuayAqYmMpCit7CisJcmV0dXJuIGJjLT52bWEtPm5v ZGUuc3RhcnQ7Cit9CisKK3N0YXRpYyB2b2lkIGJhdGNoX2FkZChzdHJ1Y3QgYmF0Y2hfY2h1bmsg KmJjLCBjb25zdCB1MzIgZCkKK3sKKwlHRU1fREVCVUdfV0FSTl9PTigoYmMtPmVuZCAtIGJjLT5z dGFydCkgPj0gYmMtPm1heF9pdGVtcyk7CisJKmJjLT5lbmQrKyA9IGQ7Cit9CisKK3N0YXRpYyB1 MzIgKmJhdGNoX2FsbG9jX2l0ZW1zKHN0cnVjdCBiYXRjaF9jaHVuayAqYmMsIHUzMiBhbGlnbiwg dTMyIGl0ZW1zKQoreworCXUzMiAqbWFwOworCisJaWYgKGFsaWduKSB7CisJCXUzMiAqZW5kID0g cHRyX2FsaWduKGJjLT5lbmQsIGFsaWduKTsKKworCQltZW1zZXQzMihiYy0+ZW5kLCAwLCBlbmQg LSBiYy0+ZW5kKTsKKwkJYmMtPmVuZCA9IGVuZDsKKwl9CisKKwltYXAgPSBiYy0+ZW5kOworCWJj LT5lbmQgKz0gaXRlbXM7CisKKwlyZXR1cm4gbWFwOworfQorCitzdGF0aWMgdTMyICpiYXRjaF9h bGxvY19ieXRlcyhzdHJ1Y3QgYmF0Y2hfY2h1bmsgKmJjLCB1MzIgYWxpZ24sIHUzMiBieXRlcykK K3sKKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKGJ5dGVzLCBzaXplb2YoKmJjLT5zdGFydCkpKTsK KwlyZXR1cm4gYmF0Y2hfYWxsb2NfaXRlbXMoYmMsIGFsaWduLCBieXRlcyAvIHNpemVvZigqYmMt PnN0YXJ0KSk7Cit9CisKK3N0YXRpYyB1MzIKK2dlbjdfZmlsbF9zdXJmYWNlX3N0YXRlKHN0cnVj dCBiYXRjaF9jaHVuayAqc3RhdGUsCisJCQljb25zdCB1MzIgZHN0X29mZnNldCwKKwkJCWNvbnN0 IHN0cnVjdCBiYXRjaF92YWxzICpidikKK3sKKwl1MzIgc3VyZmFjZV9oID0gYnYtPnN1cmZhY2Vf aGVpZ2h0OworCXUzMiBzdXJmYWNlX3cgPSBidi0+c3VyZmFjZV93aWR0aDsKKwl1MzIgKmNzID0g YmF0Y2hfYWxsb2NfaXRlbXMoc3RhdGUsIDMyLCA4KTsKKwl1MzIgb2Zmc2V0ID0gYmF0Y2hfb2Zm c2V0KHN0YXRlLCBjcyk7CisKKyNkZWZpbmUgU1VSRkFDRV8yRCAxCisjZGVmaW5lIFNVUkZBQ0VG T1JNQVRfQjhHOFI4QThfVU5PUk0gMHgwQzAKKyNkZWZpbmUgUkVOREVSX0NBQ0hFX1JFQURfV1JJ VEUgMQorCisJKmNzKysgPSBTVVJGQUNFXzJEIDw8IDI5IHwKKwkJKFNVUkZBQ0VGT1JNQVRfQjhH OFI4QThfVU5PUk0gPDwgMTgpIHwKKwkJKFJFTkRFUl9DQUNIRV9SRUFEX1dSSVRFIDw8IDgpOwor CisJKmNzKysgPSBiYXRjaF9hZGRyKHN0YXRlKSArIGRzdF9vZmZzZXQ7CisKKwkqY3MrKyA9ICgo c3VyZmFjZV9oIC8gNCAtIDEpIDw8IDE2KSB8IChzdXJmYWNlX3cgLyA0IC0gMSk7CisJKmNzKysg PSBzdXJmYWNlX3c7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisjZGVm aW5lIFNIQURFUl9DSEFOTkVMUyhyLCBnLCBiLCBhKSBcCisJKCgocikgPDwgMjUpIHwgKChnKSA8 PCAyMikgfCAoKGIpIDw8IDE5KSB8ICgoYSkgPDwgMTYpKQorCSpjcysrID0gU0hBREVSX0NIQU5O RUxTKDQsIDUsIDYsIDcpOworCWJhdGNoX2FkdmFuY2Uoc3RhdGUsIGNzKTsKKworCXJldHVybiBv ZmZzZXQ7Cit9CisKK3N0YXRpYyB1MzIKK2dlbjdfZmlsbF9iaW5kaW5nX3RhYmxlKHN0cnVjdCBi YXRjaF9jaHVuayAqc3RhdGUsCisJCQljb25zdCBzdHJ1Y3QgYmF0Y2hfdmFscyAqYnYpCit7CisJ dTMyICpjcyA9IGJhdGNoX2FsbG9jX2l0ZW1zKHN0YXRlLCAzMiwgOCk7CisJdTMyIG9mZnNldCA9 IGJhdGNoX29mZnNldChzdGF0ZSwgY3MpOworCXUzMiBzdXJmYWNlX3N0YXJ0OworCisJc3VyZmFj ZV9zdGFydCA9IGdlbjdfZmlsbF9zdXJmYWNlX3N0YXRlKHN0YXRlLCBidi0+YmF0Y2hfc2l6ZSwg YnYpOworCSpjcysrID0gc3VyZmFjZV9zdGFydCAtIHN0YXRlLT5vZmZzZXQ7CisJKmNzKysgPSAw OworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkq Y3MrKyA9IDA7CisJKmNzKysgPSAwOworCisJcmV0dXJuIG9mZnNldDsKK30KKworc3RhdGljIHUz MgorZ2VuN19maWxsX2tlcm5lbF9kYXRhKHN0cnVjdCBiYXRjaF9jaHVuayAqc3RhdGUsCisJCSAg ICAgIGNvbnN0IHUzMiAqZGF0YSwKKwkJICAgICAgY29uc3QgdTMyIHNpemUpCit7CisJcmV0dXJu IGJhdGNoX29mZnNldChzdGF0ZSwKKwkJCSAgICBtZW1jcHkoYmF0Y2hfYWxsb2NfYnl0ZXMoc3Rh dGUsIDY0LCBzaXplKSwKKwkJCQkgICBkYXRhLCBzaXplKSk7Cit9CisKK3N0YXRpYyB1MzIKK2dl bjdfZmlsbF9pbnRlcmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgYmF0Y2hfY2h1bmsgKnN0YXRlLAor CQkJICAgICAgIGNvbnN0IHN0cnVjdCBiYXRjaF92YWxzICpidiwKKwkJCSAgICAgICBjb25zdCBz dHJ1Y3QgY2Jfa2VybmVsICprZXJuZWwsCisJCQkgICAgICAgdW5zaWduZWQgaW50IGNvdW50KQor eworCXUzMiAqY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhzdGF0ZSwgMzIsIDggKiBjb3VudCk7CisJ dTMyIG9mZnNldCA9IGJhdGNoX29mZnNldChzdGF0ZSwgY3MpOworCisJKmNzKysgPSBnZW43X2Zp bGxfa2VybmVsX2RhdGEoc3RhdGUsIGtlcm5lbC0+ZGF0YSwga2VybmVsLT5zaXplKTsKKwkqY3Mr KyA9ICgxIDw8IDcpIHwgKDEgPDwgMTMpOworCSpjcysrID0gMDsKKwkqY3MrKyA9IChnZW43X2Zp bGxfYmluZGluZ190YWJsZShzdGF0ZSwgYnYpIC0gc3RhdGUtPm9mZnNldCkgfCAxOworCSpjcysr ID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkvKiAxIC0gNjNk dW1teSBpZGRzICovCisJbWVtc2V0MzIoY3MsIDB4MDAsIChjb3VudCAtIDEpICogOCk7CisKKwly ZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgdm9pZAorZ2VuN19lbWl0X3N0YXRlX2Jhc2VfYWRk cmVzcyhzdHJ1Y3QgYmF0Y2hfY2h1bmsgKmJhdGNoLAorCQkJICAgICB1MzIgc3VyZmFjZV9zdGF0 ZV9iYXNlKQoreworCXUzMiAqY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhiYXRjaCwgMCwgMTIpOwor CisJKmNzKysgPSBTVEFURV9CQVNFX0FERFJFU1MgfCAoMTIgLSAyKTsKKwkvKiBnZW5lcmFsICov CisJKmNzKysgPSBiYXRjaF9hZGRyKGJhdGNoKSB8IEJBU0VfQUREUkVTU19NT0RJRlk7CisJLyog c3VyZmFjZSAqLworCSpjcysrID0gYmF0Y2hfYWRkcihiYXRjaCkgfCBzdXJmYWNlX3N0YXRlX2Jh c2UgfCBCQVNFX0FERFJFU1NfTU9ESUZZOworCS8qIGR5bmFtaWMgKi8KKwkqY3MrKyA9IGJhdGNo X2FkZHIoYmF0Y2gpIHwgQkFTRV9BRERSRVNTX01PRElGWTsKKwkvKiBpbmRpcmVjdCAqLworCSpj cysrID0gYmF0Y2hfYWRkcihiYXRjaCkgfCBCQVNFX0FERFJFU1NfTU9ESUZZOworCS8qIGluc3Ry dWN0aW9uICovCisJKmNzKysgPSBiYXRjaF9hZGRyKGJhdGNoKSB8IEJBU0VfQUREUkVTU19NT0RJ Rlk7CisKKwkvKiBnZW5lcmFsL2R5bmFtaWMvaW5kaXJlY3QvaW5zdHJ1Y3Rpb24gYWNjZXNzIEJv dW5kICovCisJKmNzKysgPSAwOworCSpjcysrID0gQkFTRV9BRERSRVNTX01PRElGWTsKKwkqY3Mr KyA9IDA7CisJKmNzKysgPSBCQVNFX0FERFJFU1NfTU9ESUZZOworCSpjcysrID0gMDsKKwkqY3Mr KyA9IDA7Cit9CisKK3N0YXRpYyB2b2lkCitnZW43X2VtaXRfdmZlX3N0YXRlKHN0cnVjdCBiYXRj aF9jaHVuayAqYmF0Y2gsCisJCSAgICBjb25zdCBzdHJ1Y3QgYmF0Y2hfdmFscyAqYnYsCisJCSAg ICB1MzIgdXJiX3NpemUsIHUzMiBjdXJiZV9zaXplLAorCQkgICAgdTMyIG1vZGUpCit7CisJdTMy IHVyYl9lbnRyaWVzID0gYnYtPm1heF91cmJfZW50cmllczsKKwl1MzIgdGhyZWFkcyA9IGJ2LT5t YXhfcHJpbWl0aXZlcyAtIDE7CisJdTMyICpjcyA9IGJhdGNoX2FsbG9jX2l0ZW1zKGJhdGNoLCAz MiwgOCk7CisKKwkqY3MrKyA9IE1FRElBX1ZGRV9TVEFURSB8ICg4IC0gMik7CisKKwkvKiBzY3Jh dGNoIGJ1ZmZlciAqLworCSpjcysrID0gMDsKKworCS8qIG51bWJlciBvZiB0aHJlYWRzICYgdXJi IGVudHJpZXMgZm9yIEdQR1BVIHZzIE1lZGlhIE1vZGUgKi8KKwkqY3MrKyA9IHRocmVhZHMgPDwg MTYgfCB1cmJfZW50cmllcyA8PCA4IHwgbW9kZSA8PCAyOworCisJKmNzKysgPSAwOworCisJLyog dXJiIGVudHJ5IHNpemUgJiBjdXJiZSBzaXplIGluIDI1NiBiaXRzIHVuaXQgKi8KKwkqY3MrKyA9 IHVyYl9zaXplIDw8IDE2IHwgY3VyYmVfc2l6ZTsKKworCS8qIHNjb3JlYm9hcmQgKi8KKwkqY3Mr KyA9IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKK30KKworc3RhdGljIHZvaWQKK2dlbjdf ZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkKHN0cnVjdCBiYXRjaF9jaHVuayAqYmF0Y2gs CisJCQkJICAgIGNvbnN0IHUzMiBpbnRlcmZhY2VfZGVzY3JpcHRvciwKKwkJCQkgICAgdW5zaWdu ZWQgaW50IGNvdW50KQoreworCXUzMiAqY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhiYXRjaCwgOCwg NCk7CisKKwkqY3MrKyA9IE1FRElBX0lOVEVSRkFDRV9ERVNDUklQVE9SX0xPQUQgfCAoNCAtIDIp OworCSpjcysrID0gMDsKKwkqY3MrKyA9IGNvdW50ICogOCAqIHNpemVvZigqY3MpOworCisJLyoK KwkgKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBhZGRyZXNzIC0gaXQgaXMgcmVsYXRpdmUgdG8gdGhl IGR5bmFtaWNzIGJhc2UKKwkgKiBhZGRyZXNzCisJICovCisJKmNzKysgPSBpbnRlcmZhY2VfZGVz Y3JpcHRvcjsKK30KKworc3RhdGljIHZvaWQKK2dlbjdfZW1pdF9tZWRpYV9vYmplY3Qoc3RydWN0 IGJhdGNoX2NodW5rICpiYXRjaCwKKwkJICAgICAgIHVuc2lnbmVkIGludCBtZWRpYV9vYmplY3Rf aW5kZXgpCit7CisJdW5zaWduZWQgaW50IHhfb2Zmc2V0ID0gKG1lZGlhX29iamVjdF9pbmRleCAl IDE2KSAqIDY0OworCXVuc2lnbmVkIGludCB5X29mZnNldCA9IChtZWRpYV9vYmplY3RfaW5kZXgg LyAxNikgKiAxNjsKKwl1bnNpZ25lZCBpbnQgaW5saW5lX2RhdGFfc2l6ZTsKKwl1bnNpZ25lZCBp bnQgbWVkaWFfYmF0Y2hfc2l6ZTsKKwl1bnNpZ25lZCBpbnQgaTsKKwl1MzIgKmNzOworCisJaW5s aW5lX2RhdGFfc2l6ZSA9IDExMiAqIDg7CisJbWVkaWFfYmF0Y2hfc2l6ZSA9IGlubGluZV9kYXRh X3NpemUgKyA2OworCisJY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhiYXRjaCwgOCwgbWVkaWFfYmF0 Y2hfc2l6ZSk7CisKKwkqY3MrKyA9IE1FRElBX09CSkVDVCB8IChtZWRpYV9iYXRjaF9zaXplIC0g Mik7CisKKwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBvZmZzZXQgKi8KKwkqY3MrKyA9IDA7CisK KwkvKiB3aXRob3V0IGluZGlyZWN0IGRhdGEgKi8KKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOwor CisJLyogc2NvcmVib2FyZCAqLworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisKKwkvKiBpbmxp bmUgKi8KKwkqY3MrKyA9ICh5X29mZnNldCA8PCAxNikgfCAoeF9vZmZzZXQpOworCSpjcysrID0g MDsKKwkqY3MrKyA9IEdUM19JTkxJTkVfREFUQV9ERUxBWVM7CisJZm9yIChpID0gMzsgaSA8IGlu bGluZV9kYXRhX3NpemU7IGkrKykKKwkJKmNzKysgPSAwOworfQorCitzdGF0aWMgdm9pZCBnZW43 X2VtaXRfcGlwZWxpbmVfZmx1c2goc3RydWN0IGJhdGNoX2NodW5rICpiYXRjaCkKK3sKKwl1MzIg KmNzID0gYmF0Y2hfYWxsb2NfaXRlbXMoYmF0Y2gsIDAsIDUpOworCisJKmNzKysgPSBHRlhfT1Bf UElQRV9DT05UUk9MKDUpOworCSpjcysrID0gUElQRV9DT05UUk9MX1NUQVRFX0NBQ0hFX0lOVkFM SURBVEUgfAorCQlQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkI7CisJKmNzKysgPSAwOworCSpj cysrID0gMDsKKwkqY3MrKyA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGVtaXRfYmF0Y2goc3RydWN0 IGk5MTVfdm1hICogY29uc3Qgdm1hLAorCQkgICAgICAgdTMyICpzdGFydCwKKwkJICAgICAgIGNv bnN0IHN0cnVjdCBiYXRjaF92YWxzICpidikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHZtYS0+dm0tPmk5MTU7CisJdW5zaWduZWQgaW50IGRlc2NfY291bnQgPSA2NDsKKwlj b25zdCB1MzIgdXJiX3NpemUgPSAxMTI7CisJc3RydWN0IGJhdGNoX2NodW5rIGNtZHMsIHN0YXRl OworCXUzMiBpbnRlcmZhY2VfZGVzY3JpcHRvcjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWJhdGNo X2luaXQoJmNtZHMsIHZtYSwgc3RhcnQsIDAsIGJ2LT5jbWRfc2l6ZSk7CisJYmF0Y2hfaW5pdCgm c3RhdGUsIHZtYSwgc3RhcnQsIGJ2LT5zdGF0ZV9zdGFydCwgYnYtPnN0YXRlX3NpemUpOworCisJ aW50ZXJmYWNlX2Rlc2NyaXB0b3IgPQorCQlnZW43X2ZpbGxfaW50ZXJmYWNlX2Rlc2NyaXB0b3Io JnN0YXRlLCBidiwKKwkJCQkJICAgICAgIElTX0hBU1dFTEwoaTkxNSkgPworCQkJCQkgICAgICAg JmNiX2tlcm5lbF9oc3cgOiAmY2Jfa2VybmVsX2dlbjcsCisJCQkJCSAgICAgICBkZXNjX2NvdW50 KTsKKwlnZW43X2VtaXRfcGlwZWxpbmVfZmx1c2goJmNtZHMpOworCWJhdGNoX2FkZCgmY21kcywg UElQRUxJTkVfU0VMRUNUIHwgUElQRUxJTkVfU0VMRUNUX01FRElBKTsKKwliYXRjaF9hZGQoJmNt ZHMsIE1JX05PT1ApOworCWdlbjdfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3MoJmNtZHMsIGludGVy ZmFjZV9kZXNjcmlwdG9yKTsKKwlnZW43X2VtaXRfcGlwZWxpbmVfZmx1c2goJmNtZHMpOworCisJ Z2VuN19lbWl0X3ZmZV9zdGF0ZSgmY21kcywgYnYsIHVyYl9zaXplIC0gMSwgMCwgMCk7CisKKwln ZW43X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZCgmY21kcywKKwkJCQkJICAgIGludGVy ZmFjZV9kZXNjcmlwdG9yLAorCQkJCQkgICAgZGVzY19jb3VudCk7CisKKwlmb3IgKGkgPSAwOyBp IDwgYnYtPm1heF9wcmltaXRpdmVzOyBpKyspCisJCWdlbjdfZW1pdF9tZWRpYV9vYmplY3QoJmNt ZHMsIGkpOworCisJYmF0Y2hfYWRkKCZjbWRzLCBNSV9CQVRDSF9CVUZGRVJfRU5EKTsKK30KKwor aW50IGdlbjdfc2V0dXBfY2xlYXJfZ3ByX2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25z dCBlbmdpbmUsCisJCQkgICAgc3RydWN0IGk5MTVfdm1hICogY29uc3Qgdm1hKQoreworCXN0cnVj dCBiYXRjaF92YWxzIGJ2OworCXUzMiAqYmF0Y2g7CisKKwliYXRjaF9nZXRfZGVmYXVsdHMoZW5n aW5lLT5pOTE1LCAmYnYpOworCWlmICghdm1hKQorCQlyZXR1cm4gYnYubWF4X3NpemU7CisKKwlH RU1fQlVHX09OKHZtYS0+b2JqLT5iYXNlLnNpemUgPCBidi5tYXhfc2l6ZSk7CisKKwliYXRjaCA9 IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHZtYS0+b2JqLCBJOTE1X01BUF9XQyk7CisJaWYgKElT X0VSUihiYXRjaCkpCisJCXJldHVybiBQVFJfRVJSKGJhdGNoKTsKKworCWVtaXRfYmF0Y2godm1h LCBtZW1zZXQoYmF0Y2gsIDAsIGJ2Lm1heF9zaXplKSwgJmJ2KTsKKworCWk5MTVfZ2VtX29iamVj dF9mbHVzaF9tYXAodm1hLT5vYmopOworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAodm1hLT5v YmopOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9nZW43X3JlbmRlcmNsZWFyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRl cmNsZWFyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40Yjg4ZGQ4 ZDBmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3Jl bmRlcmNsZWFyLmgKQEAgLTAsMCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8K KworI2lmbmRlZiBfX0dFTjdfUkVOREVSQ0xFQVJfSF9fCisjZGVmaW5lIF9fR0VON19SRU5ERVJD TEVBUl9IX18KKworI2RlZmluZSBiYXRjaF9hZHZhbmNlKFksIENTKSBHRU1fQlVHX09OKChZKS0+ ZW5kICE9IChDUykpCitzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzOworc3RydWN0IGk5MTVfdm1hOwor CitpbnQgZ2VuN19zZXR1cF9jbGVhcl9ncHJfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNv bnN0IGVuZ2luZSwKKwkJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKiBjb25zdCB2bWEpOworCisjZW5k aWYgLyogX19HRU43X1JFTkRFUkNMRUFSX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9ncHVfY29tbWFuZHMuaAppbmRleCA1MWI4NzE4NTEzYmMuLmYwNDIxNGE1NGY3NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgKQEAgLTI5 MiwxMCArMjkyLDIxIEBACiAjZGVmaW5lIE1JX1NUT1JFX1VSQl9NRU0gICAgICAgIE1JX0lOU1RS KDB4MkQsIDApCiAjZGVmaW5lIE1JX0NPTkRJVElPTkFMX0JBVENIX0JVRkZFUl9FTkQgTUlfSU5T VFIoMHgzNiwgMCkKIAotI2RlZmluZSBQSVBFTElORV9TRUxFQ1QgICAgICAgICAgICAgICAgKCgw eDM8PDI5KXwoMHgxPDwyNyl8KDB4MTw8MjQpfCgweDQ8PDE2KSkKLSNkZWZpbmUgR0ZYX09QXzNE U1RBVEVfVkZfU1RBVElTVElDUyAgICgoMHgzPDwyOSl8KDB4MTw8MjcpfCgweDA8PDI0KXwoMHhC PDwxNikpCi0jZGVmaW5lIE1FRElBX1ZGRV9TVEFURSAgICAgICAgICAgICAgICAoKDB4Mzw8Mjkp fCgweDI8PDI3KXwoMHgwPDwyNCl8KDB4MDw8MTYpKQorI2RlZmluZSBTVEFURV9CQVNFX0FERFJF U1MgXAorCSgoMHgzIDw8IDI5KSB8ICgweDAgPDwgMjcpIHwgKDB4MSA8PCAyNCkgfCAoMHgxIDw8 IDE2KSkKKyNkZWZpbmUgQkFTRV9BRERSRVNTX01PRElGWQkJUkVHX0JJVCgwKQorI2RlZmluZSBQ SVBFTElORV9TRUxFQ1QgXAorCSgoMHgzIDw8IDI5KSB8ICgweDEgPDwgMjcpIHwgKDB4MSA8PCAy NCkgfCAoMHg0IDw8IDE2KSkKKyNkZWZpbmUgUElQRUxJTkVfU0VMRUNUX01FRElBCSAgICAgICBS RUdfQklUKDApCisjZGVmaW5lIEdGWF9PUF8zRFNUQVRFX1ZGX1NUQVRJU1RJQ1MgXAorCSgoMHgz IDw8IDI5KSB8ICgweDEgPDwgMjcpIHwgKDB4MCA8PCAyNCkgfCAoMHhCIDw8IDE2KSkKKyNkZWZp bmUgTUVESUFfVkZFX1NUQVRFIFwKKwkoKDB4MyA8PCAyOSkgfCAoMHgyIDw8IDI3KSB8ICgweDAg PDwgMjQpIHwgKDB4MCA8PCAxNikpCiAjZGVmaW5lICBNRURJQV9WRkVfU1RBVEVfTU1JT19BQ0NF U1NfTUFTSyAoMHgxOCkKKyNkZWZpbmUgTUVESUFfSU5URVJGQUNFX0RFU0NSSVBUT1JfTE9BRCBc CisJKCgweDMgPDwgMjkpIHwgKDB4MiA8PCAyNykgfCAoMHgwIDw8IDI0KSB8ICgweDIgPDwgMTYp KQorI2RlZmluZSBNRURJQV9PQkpFQ1QgXAorCSgoMHgzIDw8IDI5KSB8ICgweDIgPDwgMjcpIHwg KDB4MSA8PCAyNCkgfCAoMHgwIDw8IDE2KSkKICNkZWZpbmUgR1BHUFVfT0JKRUNUICAgICAgICAg ICAgICAgICAgICgoMHgzPDwyOSl8KDB4Mjw8MjcpfCgweDE8PDI0KXwoMHg0PDwxNikpCiAjZGVm aW5lIEdQR1BVX1dBTEtFUiAgICAgICAgICAgICAgICAgICAoKDB4Mzw8MjkpfCgweDI8PDI3KXwo MHgxPDwyNCl8KDB4NTw8MTYpKQogI2RlZmluZSBHRlhfT1BfM0RTVEFURV9EWDlfQ09OU1RBTlRG X1ZTIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3Vi bWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNzaW9u LmMKaW5kZXggMjA0YzQ1MGI3YzQyLi44NTQ5NzliNzlhMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCkBAIC0zNCw2ICszNCw3IEBACiAj aW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKIAogI2luY2x1ZGUgImdlbjZfcHBndHQu aCIKKyNpbmNsdWRlICJnZW43X3JlbmRlcmNsZWFyLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIK ICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgpAQCAt MTk4NCw3ICsxOTg1LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfdmVjcyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiBzdGF0aWMgaW50IGdlbjdfY3R4X3N3aXRjaF9iYl9zZXR1cChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lLAogCQkJCSAgICBzdHJ1Y3QgaTkxNV92 bWEgKiBjb25zdCB2bWEpCiB7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbjdfc2V0dXBfY2xlYXJf Z3ByX2JiKGVuZ2luZSwgdm1hKTsKIH0KIAogc3RhdGljIGludCBnZW43X2N0eF9zd2l0Y2hfYmJf aW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0 aWxzLmgKaW5kZXggYjBhZGU3NmJlYzkwLi43YWM1YjM1NjU4NDUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3V0aWxzLmgKQEAgLTE3Miw2ICsxNzIsMTEgQEAgX19jaGVja19zdHJ1Y3Rfc2l6ZShzaXpl X3QgYmFzZSwgc2l6ZV90IGFyciwgc2l6ZV90IGNvdW50LCBzaXplX3QgKnNpemUpCiAJKHR5cGVv ZihwdHIpKShfX3YgKyAxKTsJCQkJCQlcCiB9KQogCisjZGVmaW5lIHB0cl9hbGlnbihwdHIsIGFs aWduKSAoewkJCQkJXAorCXVuc2lnbmVkIGxvbmcgX192ID0gKHVuc2lnbmVkIGxvbmcpKHB0cik7 CQkJXAorCSh0eXBlb2YocHRyKSlyb3VuZF91cChfX3YsIChhbGlnbikpOwkJCQlcCit9KQorCiAj ZGVmaW5lIHBhZ2VfbWFza19iaXRzKHB0cikgcHRyX21hc2tfYml0cyhwdHIsIFBBR0VfU0hJRlQp CiAjZGVmaW5lIHBhZ2VfdW5tYXNrX2JpdHMocHRyKSBwdHJfdW5tYXNrX2JpdHMocHRyLCBQQUdF X1NISUZUKQogI2RlZmluZSBwYWdlX3BhY2tfYml0cyhwdHIsIGJpdHMpIHB0cl9wYWNrX2JpdHMo cHRyLCBiaXRzLCBQQUdFX1NISUZUKQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK