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.7 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 F2207C4320A for ; Tue, 27 Jul 2021 02:21:49 +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 647F260FEA for ; Tue, 27 Jul 2021 02:21:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 647F260FEA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=Intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0F3E66F589; Tue, 27 Jul 2021 02:21:49 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 664FD6EDD7; Tue, 27 Jul 2021 02:21:48 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10057"; a="192630002" X-IronPort-AV: E=Sophos;i="5.84,272,1620716400"; d="scan'208";a="192630002" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jul 2021 19:21:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,272,1620716400"; d="scan'208";a="662372347" Received: from relo-linux-5.jf.intel.com ([10.165.21.134]) by fmsmga006.fm.intel.com with ESMTP; 26 Jul 2021 19:21:46 -0700 From: John.C.Harrison@Intel.com To: Intel-GFX@Lists.FreeDesktop.Org Date: Mon, 26 Jul 2021 19:21:44 -0700 Message-Id: <20210727022145.157343-2-John.C.Harrison@Intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210727022145.157343-1-John.C.Harrison@Intel.com> References: <20210727022145.157343-1-John.C.Harrison@Intel.com> MIME-Version: 1.0 Organization: Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ Subject: [Intel-gfx] [PATCH 1/2] drm/i915/guc: Add fetch of hwconfig table 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: DRI-Devel@Lists.FreeDesktop.Org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCkltcGxlbWVu dCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgaGFyZHdhcmUgZGVzY3JpcHRpb24gdGFibGUgZnJv bSB0aGUKR3VDLiBUaGUgY2FsbCBpcyBtYWRlIHR3aWNlIC0gb25jZSB3aXRob3V0IGEgZGVzdGlu YXRpb24gYnVmZmVyIHRvCnF1ZXJ5IHRoZSBzaXplIGFuZCB0aGVuIGEgc2Vjb25kIHRpbWUgdG8g ZmlsbCBpbiB0aGUgYnVmZmVyLgoKTm90ZSB0aGF0IHRoZSB0YWJsZSBpcyBvbmx5IGF2YWlsYWJs ZSBvbiBBREwtUCBhbmQgbGF0ZXIgcGxhdGZvcm1zLgoKQ2M6IE1pY2hhbCBXYWpkZWN6a28gPG1p Y2hhbC53YWpkZWN6a29AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJv ZHJpZ28udml2aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4u Qy5IYXJyaXNvbkBJbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUg ICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19h Y3Rpb25zX2FiaS5oICB8ICAgMSArCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfZXJy b3JzX2FiaS5oICAgfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj LmMgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMu aCAgICAgICAgfCAgIDIgKwogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfaHdjb25m aWcuYyAgIHwgMTU2ICsrKysrKysrKysrKysrKysrKwogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfaHdjb25maWcuaCAgIHwgIDE5ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfdWMuYyAgICAgICAgIHwgICA2ICsKIDggZmlsZXMgY2hhbmdlZCwgMTkxIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfaHdjb25maWcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19od2NvbmZpZy5oCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQppbmRleCBiZGUzZDRmNDYyYTkuLmJjZTdjNTk3ZjFkZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKQEAgLTE4OSw2ICsxODksNyBAQCBpOTE1LXkgKz0gZ3QvdWMvaW50ZWxfdWMubyBcCiAJ ICBndC91Yy9pbnRlbF9ndWNfbG9nLm8gXAogCSAgZ3QvdWMvaW50ZWxfZ3VjX2xvZ19kZWJ1Z2Zz Lm8gXAogCSAgZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24ubyBcCisJICBndC91Yy9pbnRlbF9n dWNfaHdjb25maWcubyBcCiAJICBndC91Yy9pbnRlbF9odWMubyBcCiAJICBndC91Yy9pbnRlbF9o dWNfZGVidWdmcy5vIFwKIAkgIGd0L3VjL2ludGVsX2h1Y19mdy5vCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2FjdGlvbnNfYWJpLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2FjdGlvbnNfYWJpLmgKaW5kZXggNTdlMThiYWJkZjRi Li5hNjZmNTBlMjI4NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2Fi aS9ndWNfYWN0aW9uc19hYmkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkv Z3VjX2FjdGlvbnNfYWJpLmgKQEAgLTEzNyw2ICsxMzcsNyBAQCBlbnVtIGludGVsX2d1Y19hY3Rp b24gewogCUlOVEVMX0dVQ19BQ1RJT05fRU5HSU5FX0ZBSUxVUkVfTk9USUZJQ0FUSU9OID0gMHgx MDA5LAogCUlOVEVMX0dVQ19BQ1RJT05fU0xQQ19SRVFVRVNUID0gMHgzMDAzLAogCUlOVEVMX0dV Q19BQ1RJT05fQVVUSEVOVElDQVRFX0hVQyA9IDB4NDAwMCwKKwlJTlRFTF9HVUNfQUNUSU9OX0dF VF9IV0NPTkZJRyA9IDB4NDEwMCwKIAlJTlRFTF9HVUNfQUNUSU9OX1JFR0lTVEVSX0NPTlRFWFQg PSAweDQ1MDIsCiAJSU5URUxfR1VDX0FDVElPTl9ERVJFR0lTVEVSX0NPTlRFWFQgPSAweDQ1MDMs CiAJSU5URUxfR1VDX0FDVElPTl9SRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAw eDQ1MDUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vy cm9yc19hYmkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfZXJyb3JzX2Fi aS5oCmluZGV4IDQ4OGI2MDYxZWU4OS4uZjllMmE2YWFlZjRhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vycm9yc19hYmkuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vycm9yc19hYmkuaApAQCAtOCw2ICs4LDEwIEBACiAK IGVudW0gaW50ZWxfZ3VjX3Jlc3BvbnNlX3N0YXR1cyB7CiAJSU5URUxfR1VDX1JFU1BPTlNFX1NU QVRVU19TVUNDRVNTID0gMHgwLAorCUlOVEVMX0dVQ19SRVNQT05TRV9OT1RfU1VQUE9SVEVEID0g MHgyMCwKKwlJTlRFTF9HVUNfUkVTUE9OU0VfTk9fQVRUUklCVVRFX1RBQkxFID0gMHgyMDEsCisJ SU5URUxfR1VDX1JFU1BPTlNFX05PX0RFQ1JZUFRJT05fS0VZID0gMHgyMDIsCisJSU5URUxfR1VD X1JFU1BPTlNFX0RFQ1JZUFRJT05fRkFJTEVEID0gMHgyMDQsCiAJSU5URUxfR1VDX1JFU1BPTlNF X1NUQVRVU19HRU5FUklDX0ZBSUwgPSAweEYwMDAsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2ludGVsX2d1Yy5jCmluZGV4IDY2NjFkY2IwMjIzOS4uZTgxMGI1NmM0OWY3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYwpAQCAtNDAwLDEzICs0MDAsMTQgQEAgaW50 IGludGVsX2d1Y19zZW5kX21taW8oc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKnJl cXVlc3QsIHUzMiBsZW4sCiAJLyoKIAkgKiBObyBHdUMgY29tbWFuZCBzaG91bGQgZXZlciB0YWtl IGxvbmdlciB0aGFuIDEwbXMuCiAJICogRmFzdCBjb21tYW5kcyBzaG91bGQgc3RpbGwgY29tcGxl dGUgaW4gMTB1cy4KKwkgKiBFeGNlcHQgZm9yIHRoZSBod2NvbmZpZyB0YWJsZSBxdWVyeSwgd2hp Y2ggdGFrZXMgfjUwbXMuCiAJICovCiAJcmV0ID0gX19pbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9m dyh1bmNvcmUsCiAJCQkJCSAgIGd1Y19zZW5kX3JlZyhndWMsIDApLAogCQkJCQkgICBHVUNfSFhH X01TR18wX09SSUdJTiwKIAkJCQkJICAgRklFTERfUFJFUChHVUNfSFhHX01TR18wX09SSUdJTiwK IAkJCQkJCSAgICAgIEdVQ19IWEdfT1JJR0lOX0dVQyksCi0JCQkJCSAgIDEwLCAxMCwgJmhlYWRl cik7CisJCQkJCSAgIDEwLCAxMDAsICZoZWFkZXIpOwogCWlmICh1bmxpa2VseShyZXQpKSB7CiB0 aW1lb3V0OgogCQlkcm1fZXJyKCZpOTE1LT5kcm0sICJtbWlvIHJlcXVlc3QgJSN4OiBubyByZXBs eSAleFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKaW5kZXggZDQ5ODdj ZDc4OWVhLi5iNGJhMGZhM2ZiYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Yy5oCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAiaW50ZWxfZ3VjX2N0LmgiCiAjaW5jbHVk ZSAiaW50ZWxfZ3VjX2xvZy5oIgogI2luY2x1ZGUgImludGVsX2d1Y19yZWcuaCIKKyNpbmNsdWRl ICJpbnRlbF9ndWNfaHdjb25maWcuaCIKICNpbmNsdWRlICJpbnRlbF91Y19mdy5oIgogI2luY2x1 ZGUgImk5MTVfdXRpbHMuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgpAQCAtMzAsNiArMzEsNyBA QCBzdHJ1Y3QgaW50ZWxfZ3VjIHsKIAlzdHJ1Y3QgaW50ZWxfdWNfZncgZnc7CiAJc3RydWN0IGlu dGVsX2d1Y19sb2cgbG9nOwogCXN0cnVjdCBpbnRlbF9ndWNfY3QgY3Q7CisJc3RydWN0IGludGVs X2d1Y19od2NvbmZpZyBod2NvbmZpZzsKIAogCS8qIEdsb2JhbCBlbmdpbmUgdXNlZCB0byBzdWJt aXQgcmVxdWVzdHMgdG8gR3VDICovCiAJc3RydWN0IGk5MTVfc2NoZWRfZW5naW5lICpzY2hlZF9l bmdpbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNf aHdjb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19od2NvbmZp Zy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWY0ZmM5ZmRiYWFm Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj X2h3Y29uZmlnLmMKQEAgLTAsMCArMSwxNTYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisK KyNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVk ZSAiaTkxNV9tZW1jcHkuaCIKKyNpbmNsdWRlICJpbnRlbF9ndWNfaHdjb25maWcuaCIKKworc3Rh dGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZ3VjICpod2NvbmZpZ190b19ndWMoc3RydWN0IGludGVs X2d1Y19od2NvbmZpZyAqaHdjb25maWcpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihod2NvbmZp Zywgc3RydWN0IGludGVsX2d1YywgaHdjb25maWcpOworfQorCisvKgorICogR3VDIGhhcyBhIGJs b2IgY29udGFpbmluZyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIChIV0NvbmZp ZykuCisgKiBUaGlzIGlzIGZvcm1hdHRlZCBhcyBhIHNpbXBsZSBhbmQgZmxleGlibGUgS0xWIChL ZXkvTGVuZ3RoL1ZhbHVlKSB0YWJsZS4KKyAqCisgKiBGb3IgZXhhbXBsZSwgYSBtaW5pbWFsIHZl cnNpb24gY291bGQgYmU6CisgKiAgIGVudW0gZGV2aWNlX2F0dHIgeworICogICAgIEFUVFJfU09N RV9WQUxVRSA9IDAsCisgKiAgICAgQVRUUl9TT01FX01BU0sgID0gMSwKKyAqICAgfTsKKyAqCisg KiAgIHN0YXRpYyBjb25zdCB1MzIgaHdjb25maWdbXSA9IHsKKyAqICAgICBBVFRSX1NPTUVfVkFM VUUsCisgKiAgICAgMSwJCS8vIFZhbHVlIExlbmd0aCBpbiBEV29yZHMKKyAqICAgICA4LAkJLy8g VmFsdWUKKyAqCisgKiAgICAgQVRUUl9TT01FX01BU0ssCisgKiAgICAgMywKKyAqICAgICAweDAw RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkYwMDAwMDAsCisgKiAgIH07CisgKgorICogVGhlIGF0 dHJpYnV0ZSBpZHMgYXJlIGRlZmluZWQgaW4gYSBoYXJkd2FyZSBzcGVjLgorICovCisKK3N0YXRp YyBpbnQgX19ndWNfYWN0aW9uX2dldF9od2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZ3VjX2h3Y29uZmln ICpod2NvbmZpZywKKwkJCQkgICAgIHUzMiBnZ3R0X29mZnNldCwgdTMyIGdndHRfc2l6ZSkKK3sK KwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBod2NvbmZpZ190b19ndWMoaHdjb25maWcpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2d0KGd1YyktPmk5MTU7CisJdTMy IGFjdGlvbltdID0geworCQlJTlRFTF9HVUNfQUNUSU9OX0dFVF9IV0NPTkZJRywKKwkJZ2d0dF9v ZmZzZXQsCisJCWdndHRfc2l6ZSwKKwkJKElOVEVMX0RFVklEKGk5MTUpIDw8IDE2KSB8IElOVEVM X1JFVklEKGk5MTUpLAorCX07CisJaW50IHJldDsKKworCXJldCA9IGludGVsX2d1Y19zZW5kX21t aW8oZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSwgTlVMTCwgMCk7CisJaWYgKHJldCA9 PSAtRU5YSU8pCisJCXJldHVybiAtRU5PRU5UOworCisJaWYgKCFnZ3R0X3NpemUgJiYgIXJldCkK KwkJcmV0ID0gLUVJTlZBTDsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZ3VjX2h3 Y29uZmlnX2Rpc2NvdmVyX3NpemUoc3RydWN0IGludGVsX2d1Y19od2NvbmZpZyAqaHdjb25maWcp Cit7CisJaW50IHJldDsKKworCS8qIFNlbmRpbmcgYSBxdWVyeSB3aXRoIHRvbyBzbWFsbCBhIHRh YmxlIHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSB0YWJsZSAqLworCXJldCA9IF9fZ3VjX2Fj dGlvbl9nZXRfaHdjb25maWcoaHdjb25maWcsIDAsIDApOworCWlmIChyZXQgPCAwKQorCQlyZXR1 cm4gcmV0OworCisJaHdjb25maWctPnNpemUgPSByZXQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgZ3VjX2h3Y29uZmlnX2ZpbGxfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWNfaHdjb25maWcg Kmh3Y29uZmlnKQoreworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGh3Y29uZmlnX3RvX2d1Yyho d2NvbmZpZyk7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTMyIGdndHRfb2Zmc2V0OworCXZv aWQgKnZhZGRyOworCWludCByZXQ7CisKKwlHRU1fQlVHX09OKCFod2NvbmZpZy0+c2l6ZSk7CisK KwlyZXQgPSBpbnRlbF9ndWNfYWxsb2NhdGVfYW5kX21hcF92bWEoZ3VjLCBod2NvbmZpZy0+c2l6 ZSwgJnZtYSwgJnZhZGRyKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZ2d0dF9vZmZz ZXQgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCB2bWEpOworCisJcmV0ID0gX19ndWNfYWN0 aW9uX2dldF9od2NvbmZpZyhod2NvbmZpZywgZ2d0dF9vZmZzZXQsIGh3Y29uZmlnLT5zaXplKTsK KwlpZiAocmV0ID49IDApCisJCW1lbWNweShod2NvbmZpZy0+cHRyLCB2YWRkciwgaHdjb25maWct PnNpemUpOworCisJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJnZtYSwgSTkxNV9WTUFfUkVM RUFTRV9NQVApOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGJvb2wgaGFzX3RhYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWlmIChJU19BTERFUkxBS0VfUChpOTE1 KSkgeworCQlpZiAoSVNfQURMUF9HVF9TVEVQKGk5MTUsIFNURVBfQTAsIFNURVBfQTApKQorCQkJ cmV0dXJuIGZhbHNlOworCisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30K KworLyoqCisgKiBpbnRlbF9ndWNfaHdjb25maWdfZmluaSAtIEZpbmFsaXplIHRoZSBIV0NvbmZp ZworICoKKyAqIEZyZWUgdXAgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGhvbGRpbmcgdGhlIHRhYmxl LgorICovCit2b2lkIGludGVsX2d1Y19od2NvbmZpZ19maW5pKHN0cnVjdCBpbnRlbF9ndWNfaHdj b25maWcgKmh3Y29uZmlnKQoreworCWtmcmVlKGh3Y29uZmlnLT5wdHIpOworCWh3Y29uZmlnLT5z aXplID0gMDsKKwlod2NvbmZpZy0+cHRyID0gTlVMTDsKK30KKworLyoqCisgKiBpbnRlbF9ndWNf aHdjb25maWdfaW5pdCAtIEluaXRpYWxpemUgdGhlIEhXQ29uZmlnCisgKgorICogUmV0cmlldmUg dGhlIEhXQ29uZmlnIHRhYmxlIGZyb20gdGhlIEd1QyBhbmQgc2F2ZSBpdCBhd2F5IGluIGEgbG9j YWwgbWVtb3J5CisgKiBhbGxvY2F0aW9uLiBJdCBjYW4gdGhlbiBiZSBxdWVyaWVkIG9uIGRlbWFu ZCBieSBvdGhlciB1c2VycyBsYXRlciBvbi4KKyAqLworaW50IGludGVsX2d1Y19od2NvbmZpZ19p bml0KHN0cnVjdCBpbnRlbF9ndWNfaHdjb25maWcgKmh3Y29uZmlnKQoreworCXN0cnVjdCBpbnRl bF9ndWMgKmd1YyA9IGh3Y29uZmlnX3RvX2d1Yyhod2NvbmZpZyk7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkxNTsKKwlpbnQgcmV0OworCisJaWYg KCFoYXNfdGFibGUoaTkxNSkpCisJCXJldHVybiAwOworCisJcmV0ID0gZ3VjX2h3Y29uZmlnX2Rp c2NvdmVyX3NpemUoaHdjb25maWcpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlod2Nv bmZpZy0+cHRyID0ga21hbGxvYyhod2NvbmZpZy0+c2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFo d2NvbmZpZy0+cHRyKSB7CisJCWh3Y29uZmlnLT5zaXplID0gMDsKKwkJcmV0dXJuIC1FTk9NRU07 CisJfQorCisJcmV0ID0gZ3VjX2h3Y29uZmlnX2ZpbGxfYnVmZmVyKGh3Y29uZmlnKTsKKwlpZiAo cmV0IDwgMCkgeworCQlpbnRlbF9ndWNfaHdjb25maWdfZmluaShod2NvbmZpZyk7CisJCXJldHVy biByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWNfaHdjb25maWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2ludGVsX2d1Y19od2NvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZmRkN2YwZDZlOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2h3Y29uZmlnLmgKQEAgLTAsMCArMSwxOSBAQAorLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIxIElu dGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfSU5URUxfR1VDX0hXQ09ORklHX0hfCisj ZGVmaW5lIF9JTlRFTF9HVUNfSFdDT05GSUdfSF8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CisKK3N0cnVjdCBpbnRlbF9ndWNfaHdjb25maWcgeworCXUzMiBzaXplOworCXZvaWQgKnB0cjsK K307CisKK2ludCBpbnRlbF9ndWNfaHdjb25maWdfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2h3Y29u ZmlnICpod2NvbmZpZyk7Cit2b2lkIGludGVsX2d1Y19od2NvbmZpZ19maW5pKHN0cnVjdCBpbnRl bF9ndWNfaHdjb25maWcgKmh3Y29uZmlnKTsKKworI2VuZGlmIC8qIF9JTlRFTF9HVUNfSFdDT05G SUdfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3Vj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCmluZGV4IDZkOGI5MjMz MjE0ZS4uNmRmNTk2MTUyOTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF91Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMK QEAgLTQ5Niw2ICs0OTYsMTAgQEAgc3RhdGljIGludCBfX3VjX2luaXRfaHcoc3RydWN0IGludGVs X3VjICp1YykKIAlpZiAocmV0KQogCQlnb3RvIGVycl9sb2dfY2FwdHVyZTsKIAorCXJldCA9IGlu dGVsX2d1Y19od2NvbmZpZ19pbml0KCZndWMtPmh3Y29uZmlnKTsKKwlpZiAocmV0KQorCQlkcm1f ZXJyKCZpOTE1LT5kcm0sICJGYWlsZWQgdG8gcmV0cmlldmUgaHdjb25maWcgdGFibGU6ICVkXG4i LCByZXQpOworCiAJcmV0ID0gZ3VjX2VuYWJsZV9jb21tdW5pY2F0aW9uKGd1Yyk7CiAJaWYgKHJl dCkKIAkJZ290byBlcnJfbG9nX2NhcHR1cmU7CkBAIC01NTIsNiArNTU2LDggQEAgc3RhdGljIHZv aWQgX191Y19maW5pX2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpCiAJaWYgKGludGVsX3VjX3VzZXNf Z3VjX3N1Ym1pc3Npb24odWMpKQogCQlpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGd1Yyk7 CiAKKwlpbnRlbF9ndWNfaHdjb25maWdfZmluaSgmZ3VjLT5od2NvbmZpZyk7CisKIAlfX3VjX3Nh bml0aXplKHVjKTsKIH0KIAotLSAKMi4yNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK