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=-3.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C0A33C31E45 for ; Thu, 13 Jun 2019 13:23:12 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 8DE6F2173C for ; Thu, 13 Jun 2019 13:23:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8DE6F2173C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hbPgx-0001Av-Ff; Thu, 13 Jun 2019 13:22:59 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hbPgv-0001Ai-NQ for xen-devel@lists.xenproject.org; Thu, 13 Jun 2019 13:22:57 +0000 X-Inumbo-ID: 58f881d0-8dde-11e9-9377-d37854a9b5cb Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 58f881d0-8dde-11e9-9377-d37854a9b5cb; Thu, 13 Jun 2019 13:22:53 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Thu, 13 Jun 2019 07:22:52 -0600 Message-Id: <5D024E2B0200007800237E00@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Thu, 13 Jun 2019 07:22:51 -0600 From: "Jan Beulich" To: "xen-devel" References: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> In-Reply-To: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH 2/9] AMD/IOMMU: use bit field for control register X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Brian Woods , Suravee Suthikulpanit Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWxzbyBpbnRyb2R1Y2UgYSBmaWVsZCBpbiBzdHJ1Y3QgYW1kX2lvbW11IGNhY2hpbmcgdGhlIG1v c3QgcmVjZW50bHkKd3JpdHRlbiBjb250cm9sIHJlZ2lzdGVyLiBBbGwgd3JpdGVzIHNob3VsZCBu b3cgaGFwcGVuIGV4Y2x1c2l2ZWx5IGZyb20KdGhhdCBjYWNoZWQgdmFsdWUsIHN1Y2ggdGhhdCBp dCBpcyBndWFyYW50ZWVkIHRvIGJlIHVwIHRvIGRhdGUuCgpUYWtlIHRoZSBvcHBvcnR1bml0eSBh bmQgYWRkIGZ1cnRoZXIgZmllbGRzLiBBbHNvIGNvbnZlcnQgYSBmZXcgYm9vbGVhbgpmdW5jdGlv biBwYXJhbWV0ZXJzIHRvIGJvb2wsIHN1Y2ggdGhhdCB1c2Ugb2YgISEgY2FuIGJlIGF2b2lkZWQu CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYwpAQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRp YyBpbnQgZG9faW52YWxpZGF0ZV9pb3RsYl9wYWdlcyhzdHIKIAogc3RhdGljIGludCBkb19jb21w bGV0aW9uX3dhaXQoc3RydWN0IGRvbWFpbiAqZCwgY21kX2VudHJ5X3QgKmNtZCkKIHsKLSAgICBi b29sX3QgY29tX3dhaXRfaW50X2VuLCBjb21fd2FpdF9pbnQsIGksIHM7CisgICAgYm9vbCBjb21f d2FpdF9pbnQsIGksIHM7CiAgICAgc3RydWN0IGd1ZXN0X2lvbW11ICppb21tdTsKICAgICB1bnNp Z25lZCBsb25nIGdmbjsKICAgICBwMm1fdHlwZV90IHAybXQ7CkBAIC0zNTQsMTIgKzM1NCwxMCBA QCBzdGF0aWMgaW50IGRvX2NvbXBsZXRpb25fd2FpdChzdHJ1Y3QgZG9tCiAgICAgICAgIHVubWFw X2RvbWFpbl9wYWdlKHZhZGRyKTsKICAgICB9CiAKLSAgICBjb21fd2FpdF9pbnRfZW4gPSBpb21t dV9nZXRfYml0KGlvbW11LT5yZWdfY3RybC5sbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VX0NPTlRST0xfQ09NUF9XQUlUX0lOVF9TSElGVCk7CiAgICAgY29tX3dh aXRfaW50ID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX3N0YXR1cy5sbywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19DT01QX1dBSVRfSU5UX1NISUZUKTsK IAotICAgIGlmICggY29tX3dhaXRfaW50X2VuICYmIGNvbV93YWl0X2ludCApCisgICAgaWYgKCBp b21tdS0+cmVnX2N0cmwuY29tX3dhaXRfaW50X2VuICYmIGNvbV93YWl0X2ludCApCiAgICAgICAg IGd1ZXN0X2lvbW11X2RlbGl2ZXJfbXNpKGQpOwogCiAgICAgcmV0dXJuIDA7CkBAIC01MjEsNDAg KzUxOSwxNyBAQCBzdGF0aWMgdm9pZCBndWVzdF9pb21tdV9wcm9jZXNzX2NvbW1hbmQoCiAgICAg cmV0dXJuOwogfQogCi1zdGF0aWMgaW50IGd1ZXN0X2lvbW11X3dyaXRlX2N0cmwoc3RydWN0IGd1 ZXN0X2lvbW11ICppb21tdSwgdWludDY0X3QgbmV3Y3RybCkKK3N0YXRpYyBpbnQgZ3Vlc3RfaW9t bXVfd3JpdGVfY3RybChzdHJ1Y3QgZ3Vlc3RfaW9tbXUgKmlvbW11LCB1aW50NjRfdCB2YWwpCiB7 Ci0gICAgYm9vbF90IGNtZF9lbiwgZXZlbnRfZW4sIGlvbW11X2VuLCBwcHJfZW4sIHBwcl9sb2df ZW47Ci0gICAgYm9vbF90IGNtZF9lbl9vbGQsIGV2ZW50X2VuX29sZCwgaW9tbXVfZW5fb2xkOwot ICAgIGJvb2xfdCBjbWRfcnVuOwotCi0gICAgaW9tbXVfZW4gPSBpb21tdV9nZXRfYml0KG5ld2N0 cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfVFJBTlNMQVRJ T05fRU5BQkxFX1NISUZUKTsKLSAgICBpb21tdV9lbl9vbGQgPSBpb21tdV9nZXRfYml0KGlvbW11 LT5yZWdfY3RybC5sbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NP TlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUKTsKLQotICAgIGNtZF9lbiA9IGlvbW11X2dl dF9iaXQobmV3Y3RybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xf Q09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsKLSAgICBjbWRfZW5fb2xkID0gaW9tbXVfZ2V0 X2JpdChpb21tdS0+cmVnX2N0cmwubG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SU9NTVVfQ09OVFJPTF9DT01NQU5EX0JVRkZFUl9FTkFCTEVfU0hJRlQpOwotICAgIGNtZF9ydW4g PSBpb21tdV9nZXRfYml0KGlvbW11LT5yZWdfc3RhdHVzLmxvLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VX1NUQVRVU19DTURfQlVGRkVSX1JVTl9TSElGVCk7Ci0gICAgZXZlbnRf ZW4gPSBpb21tdV9nZXRfYml0KG5ld2N0cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7Ci0gICAgZXZlbnRfZW5fb2xk ID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19FTkFCTEVfU0hJRlQpOwotCi0g ICAgcHByX2VuID0gaW9tbXVfZ2V0X2JpdChuZXdjdHJsLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU9NTVVfQ09OVFJPTF9QUFJfRU5BQkxFX1NISUZUKTsKLSAgICBwcHJfbG9nX2VuID0g aW9tbXVfZ2V0X2JpdChuZXdjdHJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQpOworICAgIHVuaW9uIGFtZF9pb21tdV9j b250cm9sIG5ld2N0cmwgPSB7IC5yYXcgPSB2YWwgfTsKIAotICAgIGlmICggaW9tbXVfZW4gKQor ICAgIGlmICggbmV3Y3RybC5pb21tdV9lbiApCiAgICAgewogICAgICAgICBndWVzdF9pb21tdV9l bmFibGUoaW9tbXUpOwogICAgICAgICBndWVzdF9pb21tdV9lbmFibGVfZGV2X3RhYmxlKGlvbW11 KTsKICAgICB9CiAKLSAgICBpZiAoIGlvbW11X2VuICYmIGNtZF9lbiApCisgICAgaWYgKCBuZXdj dHJsLmlvbW11X2VuICYmIG5ld2N0cmwuY21kX2J1Zl9lbiApCiAgICAgewogICAgICAgICBndWVz dF9pb21tdV9lbmFibGVfcmluZ19idWZmZXIoaW9tbXUsICZpb21tdS0+Y21kX2J1ZmZlciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjbWRfZW50cnlfdCkp OwpAQCAtNTYyLDcgKzUzNyw3IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVfY3RybChz dHJ1Y3QKICAgICAgICAgdGFza2xldF9zY2hlZHVsZSgmaW9tbXUtPmNtZF9idWZmZXJfdGFza2xl dCk7CiAgICAgfQogCi0gICAgaWYgKCBpb21tdV9lbiAmJiBldmVudF9lbiApCisgICAgaWYgKCBu ZXdjdHJsLmlvbW11X2VuICYmIG5ld2N0cmwuZXZlbnRfbG9nX2VuICkKICAgICB7CiAgICAgICAg IGd1ZXN0X2lvbW11X2VuYWJsZV9yaW5nX2J1ZmZlcihpb21tdSwgJmlvbW11LT5ldmVudF9sb2cs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZXZlbnRfZW50 cnlfdCkpOwpAQCAtNTcwLDcgKzU0NSw3IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVf Y3RybChzdHJ1Y3QKICAgICAgICAgZ3Vlc3RfaW9tbXVfY2xlYXJfc3RhdHVzKGlvbW11LCBJT01N VV9TVEFUVVNfRVZFTlRfT1ZFUkZMT1dfU0hJRlQpOwogICAgIH0KIAotICAgIGlmICggaW9tbXVf ZW4gJiYgcHByX2VuICYmIHBwcl9sb2dfZW4gKQorICAgIGlmICggbmV3Y3RybC5pb21tdV9lbiAm JiBuZXdjdHJsLnBwcl9lbiAmJiBuZXdjdHJsLnBwcl9sb2dfZW4gKQogICAgIHsKICAgICAgICAg Z3Vlc3RfaW9tbXVfZW5hYmxlX3JpbmdfYnVmZmVyKGlvbW11LCAmaW9tbXUtPnBwcl9sb2csCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocHByX2VudHJ5X3Qp KTsKQEAgLTU3OCwxOSArNTUzLDIxIEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVfY3Ry bChzdHJ1Y3QKICAgICAgICAgZ3Vlc3RfaW9tbXVfY2xlYXJfc3RhdHVzKGlvbW11LCBJT01NVV9T VEFUVVNfUFBSX0xPR19PVkVSRkxPV19TSElGVCk7CiAgICAgfQogCi0gICAgaWYgKCBpb21tdV9l biAmJiBjbWRfZW5fb2xkICYmICFjbWRfZW4gKQorICAgIGlmICggbmV3Y3RybC5pb21tdV9lbiAm JiBpb21tdS0+cmVnX2N0cmwuY21kX2J1Zl9lbiAmJgorICAgICAgICAgIW5ld2N0cmwuY21kX2J1 Zl9lbiApCiAgICAgewogICAgICAgICAvKiBEaXNhYmxlIGlvbW11IGNvbW1hbmQgcHJvY2Vzc2lu ZyAqLwogICAgICAgICB0YXNrbGV0X2tpbGwoJmlvbW11LT5jbWRfYnVmZmVyX3Rhc2tsZXQpOwog ICAgIH0KIAotICAgIGlmICggZXZlbnRfZW5fb2xkICYmICFldmVudF9lbiApCisgICAgaWYgKCBp b21tdS0+cmVnX2N0cmwuZXZlbnRfbG9nX2VuICYmICFuZXdjdHJsLmV2ZW50X2xvZ19lbiApCiAg ICAgICAgIGd1ZXN0X2lvbW11X2NsZWFyX3N0YXR1cyhpb21tdSwgSU9NTVVfU1RBVFVTX0VWRU5U X0xPR19SVU5fU0hJRlQpOwogCi0gICAgaWYgKCBpb21tdV9lbl9vbGQgJiYgIWlvbW11X2VuICkK KyAgICBpZiAoIGlvbW11LT5yZWdfY3RybC5pb21tdV9lbiAmJiAhbmV3Y3RybC5pb21tdV9lbiAp CiAgICAgICAgIGd1ZXN0X2lvbW11X2Rpc2FibGUoaW9tbXUpOwogCi0gICAgdTY0X3RvX3JlZygm aW9tbXUtPnJlZ19jdHJsLCBuZXdjdHJsKTsKKyAgICBpb21tdS0+cmVnX2N0cmwgPSBuZXdjdHJs OworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTYzMiw3ICs2MDksNyBAQCBzdGF0aWMgdWludDY0 X3QgaW9tbXVfbW1pb19yZWFkNjQoc3RydWN0CiAgICAgICAgIHZhbCA9IHJlZ190b191NjQoaW9t bXUtPnBwcl9sb2cucmVnX3RhaWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIElPTU1VX0NP TlRST0xfTU1JT19PRkZTRVQ6Ci0gICAgICAgIHZhbCA9IHJlZ190b191NjQoaW9tbXUtPnJlZ19j dHJsKTsKKyAgICAgICAgdmFsID0gaW9tbXUtPnJlZ19jdHJsLnJhdzsKICAgICAgICAgYnJlYWs7 CiAgICAgY2FzZSBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQ6CiAgICAgICAgIHZhbCA9IHJlZ190 b191NjQoaW9tbXUtPnJlZ19zdGF0dXMpOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h bWQvaW9tbXVfaW5pdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9p bml0LmMKQEAgLTQxLDcgKzQxLDcgQEAgTElTVF9IRUFEX1JFQURfTU9TVExZKGFtZF9pb21tdV9o ZWFkKTsKIHN0cnVjdCB0YWJsZV9zdHJ1Y3QgZGV2aWNlX3RhYmxlOwogYm9vbF90IGlvbW11djJf ZW5hYmxlZDsKIAotc3RhdGljIGludCBpb21tdV9oYXNfaHRfZmxhZyhzdHJ1Y3QgYW1kX2lvbW11 ICppb21tdSwgdTggbWFzaykKK3N0YXRpYyBib29sIGlvbW11X2hhc19odF9mbGFnKHN0cnVjdCBh bWRfaW9tbXUgKmlvbW11LCB1OCBtYXNrKQogewogICAgIHJldHVybiBpb21tdS0+aHRfZmxhZ3Mg JiBtYXNrOwogfQpAQCAtNjksMzEgKzY5LDE4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB1bm1hcF9p b21tdV9tbWlvX3JlZ2kKIAogc3RhdGljIHZvaWQgc2V0X2lvbW11X2h0X2ZsYWdzKHN0cnVjdCBh bWRfaW9tbXUgKmlvbW11KQogewotICAgIHUzMiBlbnRyeTsKLSAgICBlbnRyeSA9IHJlYWRsKGlv bW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKLQogICAgIC8qIFNl dHVwIEhUIGZsYWdzICovCiAgICAgaWYgKCBpb21tdV9oYXNfY2FwKGlvbW11LCBQQ0lfQ0FQX0hU X1RVTk5FTF9TSElGVCkgKQotICAgICAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9J VkhEX1RUX0VOQUJMRSkgPwotICAgICAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1V X0NPTlRST0xfSFRfVFVOTkVMX1RSQU5TTEFUSU9OX1NISUZUKSA6Ci0gICAgICAgICAgICBpb21t dV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0hUX1RVTk5FTF9UUkFOU0xBVElPTl9T SElGVCk7Ci0KLSAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX1JFU19QQVNT X1BXKSA/Ci0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1JFU1Bf UEFTU19QT1NURURfV1JJVEVfU0hJRlQpOgotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5 LCBJT01NVV9DT05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVfU0hJRlQpOwotCi0gICAgaW9t bXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9JU09DKSA/Ci0gICAgICAgIGlvbW11X3Nl dF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0lTT0NIUk9OT1VTX1NISUZUKToKLSAgICAgICAg aW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9JU09DSFJPTk9VU19TSElGVCk7 Ci0KLSAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX1BBU1NfUFcpID8KLSAg ICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfUEFTU19QT1NURURfV1JJ VEVfU0hJRlQpOgotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9M X1BBU1NfUE9TVEVEX1dSSVRFX1NISUZUKTsKKyAgICAgICAgaW9tbXUtPmN0cmwuaHRfdHVuX2Vu ID0gaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9UVF9FTkFCTEUpOworCisgICAg aW9tbXUtPmN0cmwucGFzc19wdyAgICAgPSBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9J VkhEX1BBU1NfUFcpOworICAgIGlvbW11LT5jdHJsLnJlc19wYXNzX3B3ID0gaW9tbXVfaGFzX2h0 X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9SRVNfUEFTU19QVyk7CisgICAgaW9tbXUtPmN0cmwuaXNv YyAgICAgICAgPSBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9JVkhEX0lTT0MpOwogCiAg ICAgLyogRm9yY2UgY29oZXJlbnQgKi8KLSAgICBpb21tdV9zZXRfYml0KCZlbnRyeSwgSU9NTVVf Q09OVFJPTF9DT0hFUkVOVF9TSElGVCk7CisgICAgaW9tbXUtPmN0cmwuY29oZXJlbnQgPSAxOwog Ci0gICAgd3JpdGVsKGVudHJ5LCBpb21tdS0+bW1pb19iYXNlK0lPTU1VX0NPTlRST0xfTU1JT19P RkZTRVQpOworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11LT5tbWlvX2Jhc2UgKyBJ T01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKIH0KIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9t bXVfZGV2X3RhYmxlX2luX21taW9fc3BhY2Uoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCkBAIC0y MDUsNTUgKzE5MiwzNyBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlcl9pb21tdV9wcHJfbG9nX2luX21t CiAKIAogc3RhdGljIHZvaWQgc2V0X2lvbW11X3RyYW5zbGF0aW9uX2NvbnRyb2woc3RydWN0IGFt ZF9pb21tdSAqaW9tbXUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IGVuYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsKKyAgICBpb21tdS0+Y3RybC5p b21tdV9lbiA9IGVuYWJsZTsKIAotICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSAr IElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotCi0gICAgZW5hYmxlID8KLSAgICAgICAgaW9t bXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZU KSA6Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfVFJBTlNM QVRJT05fRU5BQkxFX1NISUZUKTsKLQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFz ZStJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKKyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3 LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiB9CiAKIHN0 YXRpYyB2b2lkIHNldF9pb21tdV9ndWVzdF90cmFuc2xhdGlvbl9jb250cm9sKHN0cnVjdCBhbWRf aW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGVuYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsKLQotICAgIGVudHJ5ID0g cmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOworICAg IGlvbW11LT5jdHJsLmd0X2VuID0gZW5hYmxlOwogCi0gICAgZW5hYmxlID8KLSAgICAgICAgaW9t bXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfR1RfRU5BQkxFX1NISUZUKSA6Ci0gICAg ICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfR1RfRU5BQkxFX1NISUZU KTsKLQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZStJT01NVV9DT05UUk9MX01N SU9fT0ZGU0VUKTsKKyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNl ICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiAKICAgICBpZiAoIGVuYWJsZSApCiAgICAg ICAgIEFNRF9JT01NVV9ERUJVRygiR3Vlc3QgVHJhbnNsYXRpb24gRW5hYmxlZC5cbiIpOwogfQog CiBzdGF0aWMgdm9pZCBzZXRfaW9tbXVfY29tbWFuZF9idWZmZXJfY29udHJvbChzdHJ1Y3QgYW1k X2lvbW11ICppb21tdSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgZW5hYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBlbmFibGUpCiB7Ci0gICAgdTMyIGVudHJ5OwotCi0gICAgZW50cnkg PSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7Ci0K LSAgICAvKnJlc2V0IGhlYWQgYW5kIHRhaWwgcG9pbnRlciBtYW51YWxseSBiZWZvcmUgZW5hYmxl bWVudCAqLworICAgIC8qIFJlc2V0IGhlYWQgYW5kIHRhaWwgcG9pbnRlciBtYW51YWxseSBiZWZv cmUgZW5hYmxlbWVudCAqLwogICAgIGlmICggZW5hYmxlICkKICAgICB7CiAgICAgICAgIHdyaXRl cSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ01EX0JVRkZFUl9IRUFEX09GRlNFVCk7CiAg ICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ01EX0JVRkZFUl9UQUlM X09GRlNFVCk7Ci0KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xf Q09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsKICAgICB9Ci0gICAgZWxzZQotICAgICAgICBp b21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0NPTU1BTkRfQlVGRkVSX0VOQUJM RV9TSElGVCk7CiAKLSAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UrSU9NTVVfQ09O VFJPTF9NTUlPX09GRlNFVCk7CisgICAgaW9tbXUtPmN0cmwuY21kX2J1Zl9lbiA9IGVuYWJsZTsK KworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9D T05UUk9MX01NSU9fT0ZGU0VUKTsKIH0KIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVfZXhj bHVzaW9uX3JhbmdlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQpAQCAtMjk1LDU3ICsyNjQsMzgg QEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVfZXhjbHVzaW9uX3JhbgogfQogCiBzdGF0aWMg dm9pZCBzZXRfaW9tbXVfZXZlbnRfbG9nX2NvbnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUs Ci0gICAgICAgICAgICBpbnQgZW5hYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsKLQotICAgIGVudHJ5ID0g cmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotCi0g ICAgLypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkgYmVmb3JlIGVuYWJsZW1l bnQgKi8KKyAgICAvKiBSZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkgYmVmb3Jl IGVuYWJsZW1lbnQgKi8KICAgICBpZiAoIGVuYWJsZSApCiAgICAgewogICAgICAgICB3cml0ZXEo MCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0VWRU5UX0xPR19IRUFEX09GRlNFVCk7CiAgICAg ICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfRVZFTlRfTE9HX1RBSUxfT0ZG U0VUKTsKLQotICAgICAgICBpb21tdV9zZXRfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9FVkVO VF9MT0dfSU5UX1NISUZUKTsKLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NP TlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0g ICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lO VF9TSElGVCk7Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xf RVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7CiAgICAgfQogCi0gICAgaW9tbXVfY2xlYXJfYml0KCZl bnRyeSwgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5UX1NISUZUKTsKKyAgICBpb21tdS0+Y3Ry bC5ldmVudF9pbnRfZW4gPSBlbmFibGU7CisgICAgaW9tbXUtPmN0cmwuZXZlbnRfbG9nX2VuID0g ZW5hYmxlOworICAgIGlvbW11LT5jdHJsLmNvbV93YWl0X2ludF9lbiA9IDA7CiAKLSAgICB3cml0 ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsK KyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09O VFJPTF9NTUlPX09GRlNFVCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldF9pb21tdV9wcHJfbG9nX2Nv bnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBlbmFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsKLQotICAgIGVudHJ5ID0gcmVh ZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotCi0gICAg LypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkgYmVmb3JlIGVuYWJsZW1lbnQg Ki8KKyAgICAvKiBSZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkgYmVmb3JlIGVu YWJsZW1lbnQgKi8KICAgICBpZiAoIGVuYWJsZSApCiAgICAgewogICAgICAgICB3cml0ZXEoMCwg aW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1BQUl9MT0dfSEVBRF9PRkZTRVQpOwogICAgICAgICB3 cml0ZXEoMCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1BQUl9MT0dfVEFJTF9PRkZTRVQpOwot Ci0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1BQUl9FTkFCTEVf U0hJRlQpOwotICAgICAgICBpb21tdV9zZXRfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJf TE9HX0lOVF9TSElGVCk7Ci0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05U Uk9MX1BQUl9MT0dfRU5BQkxFX1NISUZUKTsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAg ICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJfRU5BQkxFX1NISUZU KTsKLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9QUFJfTE9H X0lOVF9TSElGVCk7Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRS T0xfUFBSX0xPR19FTkFCTEVfU0hJRlQpOwogICAgIH0KIAotICAgIHdyaXRlbChlbnRyeSwgaW9t bXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOworICAgIGlvbW11LT5j dHJsLnBwcl9lbiA9IGVuYWJsZTsKKyAgICBpb21tdS0+Y3RybC5wcHJfaW50X2VuID0gZW5hYmxl OworICAgIGlvbW11LT5jdHJsLnBwcl9sb2dfZW4gPSBlbmFibGU7CisKKyAgICB3cml0ZXEoaW9t bXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNF VCk7CisKICAgICBpZiAoIGVuYWJsZSApCiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiUFBSIExv ZyBFbmFibGVkLlxuIik7CiB9CkBAIC0zOTgsNyArMzQ4LDcgQEAgc3RhdGljIGludCBpb21tdV9y ZWFkX2xvZyhzdHJ1Y3QgYW1kX2lvbQogLyogcmVzZXQgZXZlbnQgbG9nIG9yIHBwciBsb2cgd2hl biBvdmVyZmxvdyAqLwogc3RhdGljIHZvaWQgaW9tbXVfcmVzZXRfbG9nKHN0cnVjdCBhbWRfaW9t bXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByaW5nX2J1ZmZl ciAqbG9nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpjdHJsX2Z1bmMpKHN0 cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBpbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKCpjdHJsX2Z1bmMpKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBib29sKSkKIHsKICAg ICB1MzIgZW50cnk7CiAgICAgaW50IGxvZ19ydW4sIHJ1bl9iaXQ7CkBAIC02MTUsMTEgKzU2NSwx MSBAQCBzdGF0aWMgdm9pZCBpb21tdV9jaGVja19ldmVudF9sb2coc3RydWN0CiAgICAgICAgIGlv bW11X3Jlc2V0X2xvZyhpb21tdSwgJmlvbW11LT5ldmVudF9sb2csIHNldF9pb21tdV9ldmVudF9s b2dfY29udHJvbCk7CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgZW50cnkgPSByZWFkbChpb21t dS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7Ci0gICAgICAgIGlmICgg IShlbnRyeSAmIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9NQVNLKSApCisgICAgICAgIGlm ICggIWlvbW11LT5jdHJsLmV2ZW50X2ludF9lbiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGVu dHJ5IHw9IElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9NQVNLOwotICAgICAgICAgICAgd3Jp dGVsKGVudHJ5LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7 CisgICAgICAgICAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4gPSAxOworICAgICAgICAgICAg d3JpdGVxKGlvbW11LT5jdHJsLnJhdywKKyAgICAgICAgICAgICAgICAgICBpb21tdS0+bW1pb19i YXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiAgICAgICAgICAgICAvKgogICAgICAg ICAgICAgICogUmUtc2NoZWR1bGUgdGhlIHRhc2tsZXQgdG8gaGFuZGxlIGV2ZW50dWFsIGxvZyBl bnRyaWVzIGFkZGVkCiAgICAgICAgICAgICAgKiBiZXR3ZWVuIHJlYWRpbmcgdGhlIGxvZyBhYm92 ZSBhbmQgcmUtZW5hYmxpbmcgdGhlIGludGVycnVwdC4KQEAgLTcwNCwxMSArNjU0LDExIEBAIHN0 YXRpYyB2b2lkIGlvbW11X2NoZWNrX3Bwcl9sb2coc3RydWN0IGEKICAgICAgICAgaW9tbXVfcmVz ZXRfbG9nKGlvbW11LCAmaW9tbXUtPnBwcl9sb2csIHNldF9pb21tdV9wcHJfbG9nX2NvbnRyb2wp OwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFz ZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotICAgICAgICBpZiAoICEoZW50cnkgJiBJ T01NVV9DT05UUk9MX1BQUl9MT0dfSU5UX01BU0spICkKKyAgICAgICAgaWYgKCAhaW9tbXUtPmN0 cmwucHByX2ludF9lbiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGVudHJ5IHw9IElPTU1VX0NP TlRST0xfUFBSX0xPR19JTlRfTUFTSzsKLSAgICAgICAgICAgIHdyaXRlbChlbnRyeSwgaW9tbXUt Pm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOworICAgICAgICAgICAgaW9t bXUtPmN0cmwucHByX2ludF9lbiA9IDE7CisgICAgICAgICAgICB3cml0ZXEoaW9tbXUtPmN0cmwu cmF3LAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9M X01NSU9fT0ZGU0VUKTsKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBSZS1zY2hlZHVs ZSB0aGUgdGFza2xldCB0byBoYW5kbGUgZXZlbnR1YWwgbG9nIGVudHJpZXMgYWRkZWQKICAgICAg ICAgICAgICAqIGJldHdlZW4gcmVhZGluZyB0aGUgbG9nIGFib3ZlIGFuZCByZS1lbmFibGluZyB0 aGUgaW50ZXJydXB0LgpAQCAtNzU0LDcgKzcwNCw2IEBAIHN0YXRpYyB2b2lkIGRvX2FtZF9pb21t dV9pcnEodW5zaWduZWQgbG8KIHN0YXRpYyB2b2lkIGlvbW11X2ludGVycnVwdF9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmRldl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewotICAgIHUzMiBlbnRyeTsKICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11ID0gZGV2X2lkOwog CkBAIC03NjQsMTAgKzcxMyw5IEBAIHN0YXRpYyB2b2lkIGlvbW11X2ludGVycnVwdF9oYW5kbGVy KGludAogICAgICAqIFNpbGVuY2UgaW50ZXJydXB0cyBmcm9tIGJvdGggZXZlbnQgYW5kIFBQUiBi eSBjbGVhcmluZyB0aGUKICAgICAgKiBlbmFibGUgbG9nZ2luZyBiaXRzIGluIHRoZSBjb250cm9s IHJlZ2lzdGVyCiAgICAgICovCi0gICAgZW50cnkgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsg SU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7Ci0gICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwg SU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfSU5UX1NISUZUKTsKLSAgICBpb21tdV9jbGVhcl9iaXQo JmVudHJ5LCBJT01NVV9DT05UUk9MX1BQUl9MT0dfSU5UX1NISUZUKTsKLSAgICB3cml0ZWwoZW50 cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKKyAgICBp b21tdS0+Y3RybC5ldmVudF9pbnRfZW4gPSAwOworICAgIGlvbW11LT5jdHJsLnBwcl9pbnRfZW4g PSAwOworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01N VV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlv bW11LT5sb2NrLCBmbGFncyk7CiAKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbWQtaW9tbXUu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FtZC1pb21tdS5oCkBAIC04OCw2ICs4OCw4IEBA IHN0cnVjdCBhbWRfaW9tbXUgewogICAgIHZvaWQgKm1taW9fYmFzZTsKICAgICB1bnNpZ25lZCBs b25nIG1taW9fYmFzZV9waHlzOwogCisgICAgdW5pb24gYW1kX2lvbW11X2NvbnRyb2wgY3RybDsK KwogICAgIHN0cnVjdCB0YWJsZV9zdHJ1Y3QgZGV2X3RhYmxlOwogICAgIHN0cnVjdCByaW5nX2J1 ZmZlciBjbWRfYnVmZmVyOwogICAgIHN0cnVjdCByaW5nX2J1ZmZlciBldmVudF9sb2c7CkBAIC0x NzIsNyArMTc0LDcgQEAgc3RydWN0IGd1ZXN0X2lvbW11IHsKICAgICB1aW50NjRfdCAgICAgICAg ICAgICAgICBtbWlvX2Jhc2U7ICAgICAgICAgICAgIC8qIE1NSU8gYmFzZSBhZGRyZXNzICovCiAK ICAgICAvKiBNTUlPIHJlZ3MgKi8KLSAgICBzdHJ1Y3QgbW1pb19yZWcgICAgICAgICByZWdfY3Ry bDsgICAgICAgICAgICAgIC8qIE1NSU8gb2Zmc2V0IDAwMThoICovCisgICAgdW5pb24gYW1kX2lv bW11X2NvbnRyb2wgcmVnX2N0cmw7ICAgICAgICAgICAgICAvKiBNTUlPIG9mZnNldCAwMDE4aCAq LwogICAgIHN0cnVjdCBtbWlvX3JlZyAgICAgICAgIHJlZ19zdGF0dXM7ICAgICAgICAgICAgLyog TU1JTyBvZmZzZXQgMjAyMGggKi8KICAgICB1bmlvbiBhbWRfaW9tbXVfZXh0X2ZlYXR1cmVzIHJl Z19leHRfZmVhdHVyZTsgIC8qIE1NSU8gb2Zmc2V0IDAwMzBoICovCiAKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKQEAgLTI5NSwzOCArMjk1LDU1IEBAIHN0cnVj dCBhbWRfaW9tbXVfZHRlIHsKIAogLyogQ29udHJvbCBSZWdpc3RlciAqLwogI2RlZmluZSBJT01N VV9DT05UUk9MX01NSU9fT0ZGU0VUCQkJMHgxOAotI2RlZmluZSBJT01NVV9DT05UUk9MX1RSQU5T TEFUSU9OX0VOQUJMRV9NQVNLCQkweDAwMDAwMDAxCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfVFJB TlNMQVRJT05fRU5BQkxFX1NISUZUCQkwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfSFRfVFVOTkVM X1RSQU5TTEFUSU9OX01BU0sJMHgwMDAwMDAwMgotI2RlZmluZSBJT01NVV9DT05UUk9MX0hUX1RV Tk5FTF9UUkFOU0xBVElPTl9TSElGVAkxCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfRVZFTlRfTE9H X0VOQUJMRV9NQVNLCQkweDAwMDAwMDA0Ci0jZGVmaW5lIElPTU1VX0NPTlRST0xfRVZFTlRfTE9H X0VOQUJMRV9TSElGVAkJMgotI2RlZmluZSBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19JTlRfTUFT SwkJMHgwMDAwMDAwOAotI2RlZmluZSBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19JTlRfU0hJRlQJ CTMKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5UX01BU0sJCTB4MDAwMDAwMTAK LSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5UX1NISUZUCQk0Ci0jZGVmaW5lIElP TU1VX0NPTlRST0xfSU5WQUxJREFUSU9OX1RJTUVPVVRfTUFTSwkJMHgwMDAwMDBFMAotI2RlZmlu ZSBJT01NVV9DT05UUk9MX0lOVkFMSURBVElPTl9USU1FT1VUX1NISUZUCTUKLSNkZWZpbmUgSU9N TVVfQ09OVFJPTF9QQVNTX1BPU1RFRF9XUklURV9NQVNLCQkweDAwMDAwMTAwCi0jZGVmaW5lIElP TU1VX0NPTlRST0xfUEFTU19QT1NURURfV1JJVEVfU0hJRlQJCTgKLSNkZWZpbmUgSU9NTVVfQ09O VFJPTF9SRVNQX1BBU1NfUE9TVEVEX1dSSVRFX01BU0sJMHgwMDAwMDIwMAotI2RlZmluZSBJT01N VV9DT05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVfU0hJRlQJOQotI2RlZmluZSBJT01NVV9D T05UUk9MX0NPSEVSRU5UX01BU0sJCQkweDAwMDAwNDAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xf Q09IRVJFTlRfU0hJRlQJCQkxMAotI2RlZmluZSBJT01NVV9DT05UUk9MX0lTT0NIUk9OT1VTX01B U0sJCQkweDAwMDAwODAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfSVNPQ0hST05PVVNfU0hJRlQJ CQkxMQotI2RlZmluZSBJT01NVV9DT05UUk9MX0NPTU1BTkRfQlVGRkVSX0VOQUJMRV9NQVNLCTB4 MDAwMDEwMDAKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01NQU5EX0JVRkZFUl9FTkFCTEVfU0hJ RlQJMTIKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0VOQUJMRV9NQVNLCQkweDAwMDAy MDAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQJCTEzCi0jZGVm aW5lIElPTU1VX0NPTlRST0xfUFBSX0xPR19JTlRfTUFTSwkJCTB4MDAwMDQwMDAKLSNkZWZpbmUg SU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVAkJCTE0Ci0jZGVmaW5lIElPTU1VX0NPTlRS T0xfUFBSX0VOQUJMRV9NQVNLCQkJMHgwMDAwODAwMAotI2RlZmluZSBJT01NVV9DT05UUk9MX1BQ Ul9FTkFCTEVfU0hJRlQJCQkxNQotI2RlZmluZSBJT01NVV9DT05UUk9MX0dUX0VOQUJMRV9NQVNL CQkJMHgwMDAxMDAwMAotI2RlZmluZSBJT01NVV9DT05UUk9MX0dUX0VOQUJMRV9TSElGVAkJCTE2 Ci0jZGVmaW5lIElPTU1VX0NPTlRST0xfUkVTVEFSVF9NQVNLCQkJMHg4MDAwMDAwMAotI2RlZmlu ZSBJT01NVV9DT05UUk9MX1JFU1RBUlRfU0hJRlQJCQkzMQorCit1bmlvbiBhbWRfaW9tbXVfY29u dHJvbCB7CisgICAgdWludDY0X3QgcmF3OworICAgIHN0cnVjdCB7CisgICAgICAgIHVuc2lnbmVk IGludCBpb21tdV9lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQgaHRfdHVuX2VuOjE7CisgICAg ICAgIHVuc2lnbmVkIGludCBldmVudF9sb2dfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGV2 ZW50X2ludF9lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQgY29tX3dhaXRfaW50X2VuOjE7Cisg ICAgICAgIHVuc2lnbmVkIGludCBpbnZfdGltZW91dDozOworICAgICAgICB1bnNpZ25lZCBpbnQg cGFzc19wdzoxOworICAgICAgICB1bnNpZ25lZCBpbnQgcmVzX3Bhc3NfcHc6MTsKKyAgICAgICAg dW5zaWduZWQgaW50IGNvaGVyZW50OjE7CisgICAgICAgIHVuc2lnbmVkIGludCBpc29jOjE7Cisg ICAgICAgIHVuc2lnbmVkIGludCBjbWRfYnVmX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBw cHJfbG9nX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBwcHJfaW50X2VuOjE7CisgICAgICAg IHVuc2lnbmVkIGludCBwcHJfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGd0X2VuOjE7Cisg ICAgICAgIHVuc2lnbmVkIGludCBnYV9lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQgY3J3OjQ7 CisgICAgICAgIHVuc2lnbmVkIGludCBzbWlmX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBz bGZfd2JfZGlzOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBzbWlmX2xvZ19lbjoxOworICAgICAg ICB1bnNpZ25lZCBpbnQgZ2FtX2VuOjM7CisgICAgICAgIHVuc2lnbmVkIGludCBnYV9sb2dfZW46 MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhX2ludF9lbjoxOworICAgICAgICB1bnNpZ25lZCBp bnQgZHVhbF9wcHJfbG9nX2VuOjI7CisgICAgICAgIHVuc2lnbmVkIGludCBkdWFsX2V2ZW50X2xv Z19lbjoyOworICAgICAgICB1bnNpZ25lZCBpbnQgZGV2X3RibF9zZWdfZW46MzsKKyAgICAgICAg dW5zaWduZWQgaW50IHByaXZfYWJydF9lbjoyOworICAgICAgICB1bnNpZ25lZCBpbnQgcHByX2F1 dG9fcnNwX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBtYXJjX2VuOjE7CisgICAgICAgIHVu c2lnbmVkIGludCBibGtfc3RvcF9tcmtfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IHBwcl9h dXRvX3JzcF9hb246MTsKKyAgICAgICAgdW5zaWduZWQgaW50IDoyOworICAgICAgICB1bnNpZ25l ZCBpbnQgZXBoX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBoYWRfdXBkYXRlOjI7CisgICAg ICAgIHVuc2lnbmVkIGludCBnZF91cGRhdGVfZGlzOjE7CisgICAgICAgIHVuc2lnbmVkIGludCA6 MTsKKyAgICAgICAgdW5zaWduZWQgaW50IHh0X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBp bnRfY2FwX3h0X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCB2Y21kX2VuOjE7CisgICAgICAg IHVuc2lnbmVkIGludCB2aW9tbXVfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhX3VwZGF0 ZV9kaXM6MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhcHBpX2VuOjE7CisgICAgICAgIHVuc2ln bmVkIGludCA6ODsKKyAgICB9OworfTsKIAogLyogRXhjbHVzaW9uIFJlZ2lzdGVyICovCiAjZGVm aW5lIElPTU1VX0VYQ0xVU0lPTl9CQVNFX0xPV19PRkZTRVQJCTB4MjAKCgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=