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.8 required=3.0 tests=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 B58C7C2D0CE for ; Wed, 22 Jan 2020 00:18:33 +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 9165021734 for ; Wed, 22 Jan 2020 00:18:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9165021734 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 21B226E499; Wed, 22 Jan 2020 00:18:33 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id B95E86E49A for ; Wed, 22 Jan 2020 00:18:31 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jan 2020 16:18:29 -0800 X-IronPort-AV: E=Sophos;i="5.70,347,1574150400"; d="scan'208";a="227508539" Received: from pachecof-ubuntu.fm.intel.com ([10.1.27.15]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 21 Jan 2020 16:18:29 -0800 From: Fernando Pacheco To: intel-gfx@lists.freedesktop.org Date: Tue, 21 Jan 2020 16:18:21 -0800 Message-Id: <20200122001822.12872-1-fernando.pacheco@intel.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [Intel-gfx] [CI 1/2] drm/i915/guc: Provide mmio list to be saved/restored on engine reset 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" VGhlIGRyaXZlciBtdXN0IHByb3ZpZGUgR3VDIHdpdGggYSBsaXN0IG9mIG1taW8gcmVnaXN0ZXJz CnRoYXQgc2hvdWxkIGJlIHNhdmVkL3Jlc3RvcmVkIGR1cmluZyBhIEd1Qy1iYXNlZCBlbmdpbmUg cmVzZXQuCldlIHByb3ZpZGUgYSBtaW5pbWFsIHNldCBvZiByZWdpc3RlcnMgdGhhdCBzaG91bGQg Z2V0IHRoaW5ncwp3b3JraW5nIGFuZCBleHRlbmQgYXMgbmVlZGVkLgoKdjI6IHJlYmFzZSBhbmQg Y29tbWVudCB0byBleHBsYWluIHdoeSBtbWlvIGxpc3QgaXMga2VwdCBzb3J0ZWQKClNpZ25lZC1v ZmYtYnk6IEZlcm5hbmRvIFBhY2hlY28gPGZlcm5hbmRvLnBhY2hlY29AaW50ZWwuY29tPgpDYzog RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4K Q2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkFja2VkLWJ5OiBE YW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jICAgfCAyNSArKyst LQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kc190eXBlcy5oIHwgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jICAgIHwgOTYgKysrKysr KysrKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3Jr YXJvdW5kcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYwpp bmRleCA0ZTI5MmQ0YmY3YjkuLmExNmZlNGU5ZTM4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCkBAIC0xNDgsMjkgKzE0OCwzNyBAQCBzdGF0aWMgdm9p ZCBfd2FfYWRkKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgY29uc3Qgc3RydWN0IGk5MTVfd2Eg KndhKQogfQogCiBzdGF0aWMgdm9pZCB3YV9hZGQoc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsLCBp OTE1X3JlZ190IHJlZywgdTMyIG1hc2ssCi0JCSAgIHUzMiB2YWwsIHUzMiByZWFkX21hc2spCisJ CSAgIHUzMiB2YWwsIHUzMiByZWFkX21hc2ssIGJvb2wgbWFza2VkX2JpdHMpCiB7CiAJc3RydWN0 IGk5MTVfd2Egd2EgPSB7CiAJCS5yZWcgID0gcmVnLAogCQkubWFzayA9IG1hc2ssCiAJCS52YWwg ID0gdmFsLAogCQkucmVhZCA9IHJlYWRfbWFzaywKKwkJLm1hc2tlZF9iaXRzID0gbWFza2VkX2Jp dHMsCiAJfTsKIAogCV93YV9hZGQod2FsLCAmd2EpOwogfQogCitzdGF0aWMgdm9pZAorX193YV93 cml0ZV9tYXNrZWRfb3Ioc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsLCBpOTE1X3JlZ190IHJlZywg dTMyIG1hc2ssCisJCSAgICAgdTMyIHZhbCwgYm9vbCBtYXNrZWRfYml0cykKK3sKKwl3YV9hZGQo d2FsLCByZWcsIG1hc2ssIHZhbCwgbWFzaywgbWFza2VkX2JpdHMpOworfQorCiBzdGF0aWMgdm9p ZAogd2Ffd3JpdGVfbWFza2VkX29yKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdf dCByZWcsIHUzMiBtYXNrLAogCQkgICB1MzIgdmFsKQogewotCXdhX2FkZCh3YWwsIHJlZywgbWFz aywgdmFsLCBtYXNrKTsKKwlfX3dhX3dyaXRlX21hc2tlZF9vcih3YWwsIHJlZywgbWFzaywgdmFs LCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkCiB3YV9tYXNrZWRfZW4oc3RydWN0IGk5MTVfd2Ff bGlzdCAqd2FsLCBpOTE1X3JlZ190IHJlZywgdTMyIHZhbCkKIHsKLQl3YV93cml0ZV9tYXNrZWRf b3Iod2FsLCByZWcsIHZhbCwgX01BU0tFRF9CSVRfRU5BQkxFKHZhbCkpOworCV9fd2Ffd3JpdGVf bWFza2VkX29yKHdhbCwgcmVnLCB2YWwsIF9NQVNLRURfQklUX0VOQUJMRSh2YWwpLCB0cnVlKTsK IH0KIAogc3RhdGljIHZvaWQKQEAgLTE4NiwxMyArMTk0LDE2IEBAIHdhX3dyaXRlX29yKHN0cnVj dCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdfdCByZWcsIHUzMiB2YWwpCiB9CiAKICNkZWZp bmUgV0FfU0VUX0JJVF9NQVNLRUQoYWRkciwgbWFzaykgXAotCXdhX3dyaXRlX21hc2tlZF9vcih3 YWwsIChhZGRyKSwgKG1hc2spLCBfTUFTS0VEX0JJVF9FTkFCTEUobWFzaykpCisJX193YV93cml0 ZV9tYXNrZWRfb3Iod2FsLCAoYWRkciksIChtYXNrKSwgXAorCQkJICAgICBfTUFTS0VEX0JJVF9F TkFCTEUobWFzayksIHRydWUpCiAKICNkZWZpbmUgV0FfQ0xSX0JJVF9NQVNLRUQoYWRkciwgbWFz aykgXAotCXdhX3dyaXRlX21hc2tlZF9vcih3YWwsIChhZGRyKSwgKG1hc2spLCBfTUFTS0VEX0JJ VF9ESVNBQkxFKG1hc2spKQorCV9fd2Ffd3JpdGVfbWFza2VkX29yKHdhbCwgKGFkZHIpLCAobWFz ayksIFwKKwkJCSAgICAgX01BU0tFRF9CSVRfRElTQUJMRShtYXNrKSwgdHJ1ZSkKIAogI2RlZmlu ZSBXQV9TRVRfRklFTERfTUFTS0VEKGFkZHIsIG1hc2ssIHZhbHVlKSBcCi0Jd2Ffd3JpdGVfbWFz a2VkX29yKHdhbCwgKGFkZHIpLCAobWFzayksIF9NQVNLRURfRklFTEQoKG1hc2spLCAodmFsdWUp KSkKKwlfX3dhX3dyaXRlX21hc2tlZF9vcih3YWwsIChhZGRyKSwgKG1hc2spLCBcCisJCQkgICAg IF9NQVNLRURfRklFTEQoKG1hc2spLCAodmFsdWUpKSwgdHJ1ZSkKIAogc3RhdGljIHZvaWQgZ2Vu OF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJ CQkJICAgICAgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQpAQCAtNTkyLDcgKzYwMyw3IEBAIHN0 YXRpYyB2b2lkIHRnbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAJICovCiAJd2FfYWRkKHdhbCwgRkZfTU9ERTIsIEZGX01PREUyX1REU19USU1F Ul9NQVNLLCB2YWwsCiAJICAgICAgIElTX1RHTF9SRVZJRChlbmdpbmUtPmk5MTUsIFRHTF9SRVZJ RF9BMCwgVEdMX1JFVklEX0EwKSA/IDAgOgotCQkJICAgIEZGX01PREUyX1REU19USU1FUl9NQVNL KTsKKwkJCSAgICBGRl9NT0RFMl9URFNfVElNRVJfTUFTSywgZmFsc2UpOwogfQogCiBzdGF0aWMg dm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3Vu ZHNfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzX3R5 cGVzLmgKaW5kZXggZTI3YWIxYjcxMGIzLi5hNDNkNWY5NjhmMmQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzX3R5cGVzLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHNfdHlwZXMuaApAQCAtMTYsNiArMTYs NyBAQCBzdHJ1Y3QgaTkxNV93YSB7CiAJdTMyCQltYXNrOwogCXUzMgkJdmFsOwogCXUzMgkJcmVh ZDsKKwlib29sCQltYXNrZWRfYml0czsKIH07CiAKIHN0cnVjdCBpOTE1X3dhX2xpc3QgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jCmluZGV4IDEwMTcyODAwNmFl OS4uM2ZlYTEzZmMyYjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfYWRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj X2Fkcy5jCkBAIC0zLDYgKzMsOCBAQAogICogQ29weXJpZ2h0IMKpIDIwMTQtMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9ic2VhcmNoLmg+CisKICNpbmNsdWRl ICJndC9pbnRlbF9ndC5oIgogI2luY2x1ZGUgImludGVsX2d1Y19hZHMuaCIKICNpbmNsdWRlICJp bnRlbF91Yy5oIgpAQCAtMTYsNiArMTgsOSBAQAogICogaXRzIGludGVybmFsIHN0YXRlIGZvciBz bGVlcC4KICAqLwogCitzdGF0aWMgdm9pZCBndWNfbW1pb19yZWdfc3RhdGVfaW5pdChzdHJ1Y3Qg Z3VjX21taW9fcmVnX3N0YXRlICpyZWdfc3RhdGUsCisJCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSk7CisKIHN0YXRpYyB2b2lkIGd1Y19wb2xpY3lfaW5pdChzdHJ1Y3QgZ3Vj X3BvbGljeSAqcG9saWN5KQogewogCXBvbGljeS0+ZXhlY3V0aW9uX3F1YW50dW0gPSBQT0xJQ1lf REVGQVVMVF9FWEVDVVRJT05fUVVBTlRVTV9VUzsKQEAgLTY3LDEyICs3MiwxOSBAQCBzdHJ1Y3Qg X19ndWNfYWRzX2Jsb2IgewogCiBzdGF0aWMgdm9pZCBfX2d1Y19hZHNfaW5pdChzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3Vj X3RvX2d0KGd1YyktPmk5MTU7CisJc3RydWN0IGludGVsX2d0ICpndCA9IGd1Y190b19ndChndWMp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd0LT5pOTE1OwogCXN0cnVj dCBfX2d1Y19hZHNfYmxvYiAqYmxvYiA9IGd1Yy0+YWRzX2Jsb2I7CiAJY29uc3QgdTMyIHNraXBw ZWRfc2l6ZSA9IExSQ19QUEhXU1BfU1ogKiBQQUdFX1NJWkUgKyBMUl9IV19DT05URVhUX1NJWkU7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOwogCXUzMiBiYXNlOwogCXU4IGVuZ2luZV9jbGFzczsKIAorCS8qIEd1QyBtbWlvIHNhdmUv cmVzdG9yZSBsaXN0ICovCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKQorCQlndWNf bW1pb19yZWdfc3RhdGVfaW5pdCgmYmxvYi0+cmVnX3N0YXRlLCBlbmdpbmUpOworCiAJLyogR3VD IHNjaGVkdWxpbmcgcG9saWNpZXMgKi8KIAlndWNfcG9saWNpZXNfaW5pdCgmYmxvYi0+cG9saWNp ZXMpOwogCkBAIC0xNzAsMyArMTgyLDg1IEBAIHZvaWQgaW50ZWxfZ3VjX2Fkc19yZXNldChzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMpCiAJCXJldHVybjsKIAlfX2d1Y19hZHNfaW5pdChndWMpOwogfQor CitzdGF0aWMgaW50IGd1Y19tbWlvX3JlZ19jbXAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAq YikKK3sKKwljb25zdCBzdHJ1Y3QgZ3VjX21taW9fcmVnICpyYSA9IGE7CisJY29uc3Qgc3RydWN0 IGd1Y19tbWlvX3JlZyAqcmIgPSBiOworCisJcmV0dXJuIChpbnQpcmEtPm9mZnNldCAtIChpbnQp cmItPm9mZnNldDsKK30KKworc3RhdGljIHZvaWQgZ3VjX21taW9fcmVnX2FkZChzdHJ1Y3QgZ3Vj X21taW9fcmVnc2V0ICpyZWdzZXQsCisJCQkgICAgIHUzMiBvZmZzZXQsIHUzMiBmbGFncykKK3sK Kwl1MzIgY291bnQgPSByZWdzZXQtPm51bWJlcl9vZl9yZWdpc3RlcnM7CisJc3RydWN0IGd1Y19t bWlvX3JlZyByZWcgPSB7CisJCS5vZmZzZXQgPSBvZmZzZXQsCisJCS5mbGFncyA9IGZsYWdzLAor CX07CisJc3RydWN0IGd1Y19tbWlvX3JlZyAqc2xvdDsKKworCUdFTV9CVUdfT04oY291bnQgPj0g R1VDX1JFR1NFVF9NQVhfUkVHSVNURVJTKTsKKworCS8qCisJICogVGhlIG1taW8gbGlzdCBpcyBi dWlsdCB1c2luZyBzZXBhcmF0ZSBsaXN0cyB3aXRoaW4gdGhlIGRyaXZlci4KKwkgKiBJdCdzIHBv c3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCB3ZSBtYXkgYXR0ZW1wdCB0byBhZGQgdGhlIHNhbWUK KwkgKiByZWdpc3RlciBtb3JlIHRoYW4gb25jZS4gRG8gbm90IGNvbnNpZGVyIHRoaXMgYW4gZXJy b3I7IHNpbGVudGx5CisJICogbW92ZSBvbiBpZiB0aGUgcmVnaXN0ZXIgaXMgYWxyZWFkeSBpbiB0 aGUgbGlzdC4KKwkgKi8KKwlpZiAoYnNlYXJjaCgmcmVnLCByZWdzZXQtPnJlZ2lzdGVycywgY291 bnQsCisJCSAgICBzaXplb2YocmVnKSwgZ3VjX21taW9fcmVnX2NtcCkpCisJCXJldHVybjsKKwor CXNsb3QgPSAmcmVnc2V0LT5yZWdpc3RlcnNbY291bnRdOworCXJlZ3NldC0+bnVtYmVyX29mX3Jl Z2lzdGVycysrOworCSpzbG90ID0gcmVnOworCisJd2hpbGUgKHNsb3QtLSA+IHJlZ3NldC0+cmVn aXN0ZXJzKSB7CisJCUdFTV9CVUdfT04oc2xvdFswXS5vZmZzZXQgPT0gc2xvdFsxXS5vZmZzZXQp OworCQlpZiAoc2xvdFsxXS5vZmZzZXQgPiBzbG90WzBdLm9mZnNldCkKKwkJCWJyZWFrOworCisJ CXN3YXAoc2xvdFsxXSwgc2xvdFswXSk7CisJfQorfQorCisjZGVmaW5lIEdVQ19NTUlPX1JFR19B REQocmVnc2V0LCByZWcsIG1hc2tlZCkgXAorCWd1Y19tbWlvX3JlZ19hZGQocmVnc2V0LCBcCisJ CQkgaTkxNV9tbWlvX3JlZ19vZmZzZXQoKHJlZykpLCBcCisJCQkgKG1hc2tlZCkgPyBHVUNfUkVH U0VUX01BU0tFRCA6IDApCisKK3N0YXRpYyB2b2lkIGd1Y19tbWlvX3JlZ3NldF9pbml0KHN0cnVj dCBndWNfbW1pb19yZWdzZXQgKnJlZ3NldCwKKwkJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQoreworCWNvbnN0IHUzMiBiYXNlID0gZW5naW5lLT5tbWlvX2Jhc2U7CisJc3RydWN0 IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+d2FfbGlzdDsKKwlzdHJ1Y3QgaTkxNV93YSAq d2E7CisJdW5zaWduZWQgaW50IGk7CisKKwlHVUNfTU1JT19SRUdfQUREKHJlZ3NldCwgUklOR19N T0RFX0dFTjcoYmFzZSksIHRydWUpOworCUdVQ19NTUlPX1JFR19BREQocmVnc2V0LCBSSU5HX0hX U19QR0EoYmFzZSksIGZhbHNlKTsKKwlHVUNfTU1JT19SRUdfQUREKHJlZ3NldCwgUklOR19JTVIo YmFzZSksIGZhbHNlKTsKKworCWZvciAoaSA9IDAsIHdhID0gd2FsLT5saXN0OyBpIDwgd2FsLT5j b3VudDsgaSsrLCB3YSsrKQorCQlHVUNfTU1JT19SRUdfQUREKHJlZ3NldCwgd2EtPnJlZywgd2Et Pm1hc2tlZF9iaXRzKTsKKworCS8qIEJlIGV4dHJhIHBhcmFub2lkIGFuZCBpbmNsdWRlIGFsbCB3 aGl0ZWxpc3QgcmVnaXN0ZXJzLiAqLworCWZvciAoaSA9IDA7IGkgPCBSSU5HX01BWF9OT05QUklW X1NMT1RTOyBpKyspCisJCUdVQ19NTUlPX1JFR19BREQocmVnc2V0LAorCQkJCSBSSU5HX0ZPUkNF X1RPX05PTlBSSVYoYmFzZSwgaSksCisJCQkJIGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgZ3Vj X21taW9fcmVnX3N0YXRlX2luaXQoc3RydWN0IGd1Y19tbWlvX3JlZ19zdGF0ZSAqcmVnX3N0YXRl LAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGd1 Y19tbWlvX3JlZ3NldCAqcmVnc2V0OworCisJR0VNX0JVR19PTihlbmdpbmUtPmNsYXNzID49IEdV Q19NQVhfRU5HSU5FX0NMQVNTRVMpOworCUdFTV9CVUdfT04oZW5naW5lLT5pbnN0YW5jZSA+PSBH VUNfTUFYX0lOU1RBTkNFU19QRVJfQ0xBU1MpOworCXJlZ3NldCA9ICZyZWdfc3RhdGUtPmVuZ2lu ZV9yZWdbZW5naW5lLT5jbGFzc11bZW5naW5lLT5pbnN0YW5jZV07CisKKwlndWNfbW1pb19yZWdz ZXRfaW5pdChyZWdzZXQsIGVuZ2luZSk7Cit9Ci0tIAoyLjI0LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=