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 592C1C48BD6 for ; Thu, 27 Jun 2019 15:20:38 +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 2B15220663 for ; Thu, 27 Jun 2019 15:20:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B15220663 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 1hgWCI-0003qA-Dx; Thu, 27 Jun 2019 15:20:26 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hgWCG-0003pv-Qh for xen-devel@lists.xenproject.org; Thu, 27 Jun 2019 15:20:24 +0000 X-Inumbo-ID: 14d7e4a8-98ef-11e9-8980-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 14d7e4a8-98ef-11e9-8980-bc764e045a96; Thu, 27 Jun 2019 15:20:22 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Thu, 27 Jun 2019 09:20:22 -0600 Message-Id: <5D14DEB0020000780023B981@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Thu, 27 Jun 2019 09:20:16 -0600 From: "Jan Beulich" To: "xen-devel" References: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> <5D14DDA6020000780023B96E@prv1-mh.provo.novell.com> In-Reply-To: <5D14DDA6020000780023B96E@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v2 03/10] 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 CgpCZWNhdXNlIG9mIHRoZXJlIG5vdyBiZWluZyBkZWZpbml0aW9ucyBiZXlvbmQgYml0IDMxLCB3 cml0ZWwoKSBhbHNvIGdldHMKcmVwbGFjZWQgYnkgd3JpdGVxKCkgd2hlbiB1cGRhdGluZyBoYXJk d2FyZS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0t CnYyOiBBZGQgZG9tYWluX2lkX3BuZSBmaWVsZC4gTWVudGlvbiB3cml0ZWwoKSAtPiB3cml0ZXEo KSBjaGFuZ2UuCgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3Qu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYwpAQCAtMzE3 LDcgKzMxNyw3IEBAIHN0YXRpYyBpbnQgZG9faW52YWxpZGF0ZV9pb3RsYl9wYWdlcyhzdHIKIAog c3RhdGljIGludCBkb19jb21wbGV0aW9uX3dhaXQoc3RydWN0IGRvbWFpbiAqZCwgY21kX2VudHJ5 X3QgKmNtZCkKIHsKLSAgICBib29sX3QgY29tX3dhaXRfaW50X2VuLCBjb21fd2FpdF9pbnQsIGks IHM7CisgICAgYm9vbCBjb21fd2FpdF9pbnQsIGksIHM7CiAgICAgc3RydWN0IGd1ZXN0X2lvbW11 ICppb21tdTsKICAgICB1bnNpZ25lZCBsb25nIGdmbjsKICAgICBwMm1fdHlwZV90IHAybXQ7CkBA IC0zNTQsMTIgKzM1NCwxMCBAQCBzdGF0aWMgaW50IGRvX2NvbXBsZXRpb25fd2FpdChzdHJ1Y3Qg ZG9tCiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHZhZGRyKTsKICAgICB9CiAKLSAgICBjb21f d2FpdF9pbnRfZW4gPSBpb21tdV9nZXRfYml0KGlvbW11LT5yZWdfY3RybC5sbywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfQ09NUF9XQUlUX0lOVF9T SElGVCk7CiAgICAgY29tX3dhaXRfaW50ID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX3N0YXR1 cy5sbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19DT01Q X1dBSVRfSU5UX1NISUZUKTsKIAotICAgIGlmICggY29tX3dhaXRfaW50X2VuICYmIGNvbV93YWl0 X2ludCApCisgICAgaWYgKCBpb21tdS0+cmVnX2N0cmwuY29tX3dhaXRfaW50X2VuICYmIGNvbV93 YWl0X2ludCApCiAgICAgICAgIGd1ZXN0X2lvbW11X2RlbGl2ZXJfbXNpKGQpOwogCiAgICAgcmV0 dXJuIDA7CkBAIC01MjEsNDAgKzUxOSwxNyBAQCBzdGF0aWMgdm9pZCBndWVzdF9pb21tdV9wcm9j ZXNzX2NvbW1hbmQoCiAgICAgcmV0dXJuOwogfQogCi1zdGF0aWMgaW50IGd1ZXN0X2lvbW11X3dy aXRlX2N0cmwoc3RydWN0IGd1ZXN0X2lvbW11ICppb21tdSwgdWludDY0X3QgbmV3Y3RybCkKK3N0 YXRpYyBpbnQgZ3Vlc3RfaW9tbXVfd3JpdGVfY3RybChzdHJ1Y3QgZ3Vlc3RfaW9tbXUgKmlvbW11 LCB1aW50NjRfdCB2YWwpCiB7Ci0gICAgYm9vbF90IGNtZF9lbiwgZXZlbnRfZW4sIGlvbW11X2Vu LCBwcHJfZW4sIHBwcl9sb2dfZW47Ci0gICAgYm9vbF90IGNtZF9lbl9vbGQsIGV2ZW50X2VuX29s ZCwgaW9tbXVfZW5fb2xkOwotICAgIGJvb2xfdCBjbWRfcnVuOwotCi0gICAgaW9tbXVfZW4gPSBp b21tdV9nZXRfYml0KG5ld2N0cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1V X0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUKTsKLSAgICBpb21tdV9lbl9vbGQgPSBp b21tdV9nZXRfYml0KGlvbW11LT5yZWdfY3RybC5sbywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VX0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUKTsKLQotICAg IGNtZF9lbiA9IGlvbW11X2dldF9iaXQobmV3Y3RybCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VX0NPTlRST0xfQ09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsKLSAgICBjbWRf ZW5fb2xkID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJPTF9DT01NQU5EX0JVRkZFUl9FTkFCTEVfU0hJ RlQpOwotICAgIGNtZF9ydW4gPSBpb21tdV9nZXRfYml0KGlvbW11LT5yZWdfc3RhdHVzLmxvLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19DTURfQlVGRkVSX1JVTl9T SElGVCk7Ci0gICAgZXZlbnRfZW4gPSBpb21tdV9nZXRfYml0KG5ld2N0cmwsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7 Ci0gICAgZXZlbnRfZW5fb2xkID0gaW9tbXVfZ2V0X2JpdChpb21tdS0+cmVnX2N0cmwubG8sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9DT05UUk9MX0VWRU5UX0xPR19F TkFCTEVfU0hJRlQpOwotCi0gICAgcHByX2VuID0gaW9tbXVfZ2V0X2JpdChuZXdjdHJsLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJPTF9QUFJfRU5BQkxFX1NISUZUKTsK LSAgICBwcHJfbG9nX2VuID0gaW9tbXVfZ2V0X2JpdChuZXdjdHJsLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQpOworICAg IHVuaW9uIGFtZF9pb21tdV9jb250cm9sIG5ld2N0cmwgPSB7IC5yYXcgPSB2YWwgfTsKIAotICAg IGlmICggaW9tbXVfZW4gKQorICAgIGlmICggbmV3Y3RybC5pb21tdV9lbiApCiAgICAgewogICAg ICAgICBndWVzdF9pb21tdV9lbmFibGUoaW9tbXUpOwogICAgICAgICBndWVzdF9pb21tdV9lbmFi bGVfZGV2X3RhYmxlKGlvbW11KTsKICAgICB9CiAKLSAgICBpZiAoIGlvbW11X2VuICYmIGNtZF9l biApCisgICAgaWYgKCBuZXdjdHJsLmlvbW11X2VuICYmIG5ld2N0cmwuY21kX2J1Zl9lbiApCiAg ICAgewogICAgICAgICBndWVzdF9pb21tdV9lbmFibGVfcmluZ19idWZmZXIoaW9tbXUsICZpb21t dS0+Y21kX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZihjbWRfZW50cnlfdCkpOwpAQCAtNTYyLDcgKzUzNyw3IEBAIHN0YXRpYyBpbnQgZ3Vlc3Rf aW9tbXVfd3JpdGVfY3RybChzdHJ1Y3QKICAgICAgICAgdGFza2xldF9zY2hlZHVsZSgmaW9tbXUt PmNtZF9idWZmZXJfdGFza2xldCk7CiAgICAgfQogCi0gICAgaWYgKCBpb21tdV9lbiAmJiBldmVu dF9lbiApCisgICAgaWYgKCBuZXdjdHJsLmlvbW11X2VuICYmIG5ld2N0cmwuZXZlbnRfbG9nX2Vu ICkKICAgICB7CiAgICAgICAgIGd1ZXN0X2lvbW11X2VuYWJsZV9yaW5nX2J1ZmZlcihpb21tdSwg JmlvbW11LT5ldmVudF9sb2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoZXZlbnRfZW50cnlfdCkpOwpAQCAtNTcwLDcgKzU0NSw3IEBAIHN0YXRpYyBpbnQg Z3Vlc3RfaW9tbXVfd3JpdGVfY3RybChzdHJ1Y3QKICAgICAgICAgZ3Vlc3RfaW9tbXVfY2xlYXJf c3RhdHVzKGlvbW11LCBJT01NVV9TVEFUVVNfRVZFTlRfT1ZFUkZMT1dfU0hJRlQpOwogICAgIH0K IAotICAgIGlmICggaW9tbXVfZW4gJiYgcHByX2VuICYmIHBwcl9sb2dfZW4gKQorICAgIGlmICgg bmV3Y3RybC5pb21tdV9lbiAmJiBuZXdjdHJsLnBwcl9lbiAmJiBuZXdjdHJsLnBwcl9sb2dfZW4g KQogICAgIHsKICAgICAgICAgZ3Vlc3RfaW9tbXVfZW5hYmxlX3JpbmdfYnVmZmVyKGlvbW11LCAm aW9tbXUtPnBwcl9sb2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YocHByX2VudHJ5X3QpKTsKQEAgLTU3OCwxOSArNTUzLDIxIEBAIHN0YXRpYyBpbnQgZ3Vl c3RfaW9tbXVfd3JpdGVfY3RybChzdHJ1Y3QKICAgICAgICAgZ3Vlc3RfaW9tbXVfY2xlYXJfc3Rh dHVzKGlvbW11LCBJT01NVV9TVEFUVVNfUFBSX0xPR19PVkVSRkxPV19TSElGVCk7CiAgICAgfQog Ci0gICAgaWYgKCBpb21tdV9lbiAmJiBjbWRfZW5fb2xkICYmICFjbWRfZW4gKQorICAgIGlmICgg bmV3Y3RybC5pb21tdV9lbiAmJiBpb21tdS0+cmVnX2N0cmwuY21kX2J1Zl9lbiAmJgorICAgICAg ICAgIW5ld2N0cmwuY21kX2J1Zl9lbiApCiAgICAgewogICAgICAgICAvKiBEaXNhYmxlIGlvbW11 IGNvbW1hbmQgcHJvY2Vzc2luZyAqLwogICAgICAgICB0YXNrbGV0X2tpbGwoJmlvbW11LT5jbWRf YnVmZmVyX3Rhc2tsZXQpOwogICAgIH0KIAotICAgIGlmICggZXZlbnRfZW5fb2xkICYmICFldmVu dF9lbiApCisgICAgaWYgKCBpb21tdS0+cmVnX2N0cmwuZXZlbnRfbG9nX2VuICYmICFuZXdjdHJs LmV2ZW50X2xvZ19lbiApCiAgICAgICAgIGd1ZXN0X2lvbW11X2NsZWFyX3N0YXR1cyhpb21tdSwg SU9NTVVfU1RBVFVTX0VWRU5UX0xPR19SVU5fU0hJRlQpOwogCi0gICAgaWYgKCBpb21tdV9lbl9v bGQgJiYgIWlvbW11X2VuICkKKyAgICBpZiAoIGlvbW11LT5yZWdfY3RybC5pb21tdV9lbiAmJiAh bmV3Y3RybC5pb21tdV9lbiApCiAgICAgICAgIGd1ZXN0X2lvbW11X2Rpc2FibGUoaW9tbXUpOwog Ci0gICAgdTY0X3RvX3JlZygmaW9tbXUtPnJlZ19jdHJsLCBuZXdjdHJsKTsKKyAgICBpb21tdS0+ cmVnX2N0cmwgPSBuZXdjdHJsOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTYzMiw3ICs2MDks NyBAQCBzdGF0aWMgdWludDY0X3QgaW9tbXVfbW1pb19yZWFkNjQoc3RydWN0CiAgICAgICAgIHZh bCA9IHJlZ190b191NjQoaW9tbXUtPnBwcl9sb2cucmVnX3RhaWwpOwogICAgICAgICBicmVhazsK ICAgICBjYXNlIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQ6Ci0gICAgICAgIHZhbCA9IHJlZ190 b191NjQoaW9tbXUtPnJlZ19jdHJsKTsKKyAgICAgICAgdmFsID0gaW9tbXUtPnJlZ19jdHJsLnJh dzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQ6CiAg ICAgICAgIHZhbCA9IHJlZ190b191NjQoaW9tbXUtPnJlZ19zdGF0dXMpOwotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKQEAgLTQxLDcgKzQxLDcgQEAgTElTVF9IRUFEX1JFQURf TU9TVExZKGFtZF9pb21tdV9oZWFkKTsKIHN0cnVjdCB0YWJsZV9zdHJ1Y3QgZGV2aWNlX3RhYmxl OwogYm9vbF90IGlvbW11djJfZW5hYmxlZDsKIAotc3RhdGljIGludCBpb21tdV9oYXNfaHRfZmxh ZyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTggbWFzaykKK3N0YXRpYyBib29sIGlvbW11X2hh c19odF9mbGFnKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1OCBtYXNrKQogewogICAgIHJldHVy biBpb21tdS0+aHRfZmxhZ3MgJiBtYXNrOwogfQpAQCAtNjksMzEgKzY5LDE4IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCB1bm1hcF9pb21tdV9tbWlvX3JlZ2kKIAogc3RhdGljIHZvaWQgc2V0X2lvbW11 X2h0X2ZsYWdzKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogewotICAgIHUzMiBlbnRyeTsKLSAg ICBlbnRyeSA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZG U0VUKTsKLQogICAgIC8qIFNldHVwIEhUIGZsYWdzICovCiAgICAgaWYgKCBpb21tdV9oYXNfY2Fw KGlvbW11LCBQQ0lfQ0FQX0hUX1RVTk5FTF9TSElGVCkgKQotICAgICAgICBpb21tdV9oYXNfaHRf ZmxhZyhpb21tdSwgQUNQSV9JVkhEX1RUX0VOQUJMRSkgPwotICAgICAgICAgICAgaW9tbXVfc2V0 X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfSFRfVFVOTkVMX1RSQU5TTEFUSU9OX1NISUZUKSA6 Ci0gICAgICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0hUX1RV Tk5FTF9UUkFOU0xBVElPTl9TSElGVCk7Ci0KLSAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwg QUNQSV9JVkhEX1JFU19QQVNTX1BXKSA/Ci0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJ T01NVV9DT05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVfU0hJRlQpOgotICAgICAgICBpb21t dV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVf U0hJRlQpOwotCi0gICAgaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9JU09DKSA/ Ci0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0lTT0NIUk9OT1VT X1NISUZUKToKLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9J U09DSFJPTk9VU19TSElGVCk7Ci0KLSAgICBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQSV9J VkhEX1BBU1NfUFcpID8KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRS T0xfUEFTU19QT1NURURfV1JJVEVfU0hJRlQpOgotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVu dHJ5LCBJT01NVV9DT05UUk9MX1BBU1NfUE9TVEVEX1dSSVRFX1NISUZUKTsKKyAgICAgICAgaW9t bXUtPmN0cmwuaHRfdHVuX2VuID0gaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9U VF9FTkFCTEUpOworCisgICAgaW9tbXUtPmN0cmwucGFzc19wdyAgICAgPSBpb21tdV9oYXNfaHRf ZmxhZyhpb21tdSwgQUNQSV9JVkhEX1BBU1NfUFcpOworICAgIGlvbW11LT5jdHJsLnJlc19wYXNz X3B3ID0gaW9tbXVfaGFzX2h0X2ZsYWcoaW9tbXUsIEFDUElfSVZIRF9SRVNfUEFTU19QVyk7Cisg ICAgaW9tbXUtPmN0cmwuaXNvYyAgICAgICAgPSBpb21tdV9oYXNfaHRfZmxhZyhpb21tdSwgQUNQ SV9JVkhEX0lTT0MpOwogCiAgICAgLyogRm9yY2UgY29oZXJlbnQgKi8KLSAgICBpb21tdV9zZXRf Yml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9DT0hFUkVOVF9TSElGVCk7CisgICAgaW9tbXUtPmN0 cmwuY29oZXJlbnQgPSAxOwogCi0gICAgd3JpdGVsKGVudHJ5LCBpb21tdS0+bW1pb19iYXNlK0lP TU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlv bW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKIH0KIAogc3RhdGlj IHZvaWQgcmVnaXN0ZXJfaW9tbXVfZGV2X3RhYmxlX2luX21taW9fc3BhY2Uoc3RydWN0IGFtZF9p b21tdSAqaW9tbXUpCkBAIC0yMDUsNTUgKzE5MiwzNyBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlcl9p b21tdV9wcHJfbG9nX2luX21tCiAKIAogc3RhdGljIHZvaWQgc2V0X2lvbW11X3RyYW5zbGF0aW9u X2NvbnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuYWJsZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsK KyAgICBpb21tdS0+Y3RybC5pb21tdV9lbiA9IGVuYWJsZTsKIAotICAgIGVudHJ5ID0gcmVhZGwo aW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotCi0gICAgZW5h YmxlID8KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfVFJBTlNM QVRJT05fRU5BQkxFX1NISUZUKSA6Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElP TU1VX0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUKTsKLQotICAgIHdyaXRlbChlbnRy eSwgaW9tbXUtPm1taW9fYmFzZStJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKKyAgICB3cml0 ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlP X09GRlNFVCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldF9pb21tdV9ndWVzdF90cmFuc2xhdGlvbl9j b250cm9sKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuYWJsZSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRy eTsKLQotICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xf TU1JT19PRkZTRVQpOworICAgIGlvbW11LT5jdHJsLmd0X2VuID0gZW5hYmxlOwogCi0gICAgZW5h YmxlID8KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50cnksIElPTU1VX0NPTlRST0xfR1RfRU5B QkxFX1NISUZUKSA6Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NPTlRS T0xfR1RfRU5BQkxFX1NISUZUKTsKLQotICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFz ZStJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKKyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3 LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiAKICAgICBp ZiAoIGVuYWJsZSApCiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiR3Vlc3QgVHJhbnNsYXRpb24g RW5hYmxlZC5cbiIpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfaW9tbXVfY29tbWFuZF9idWZmZXJf Y29udHJvbChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5hYmxlKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmFibGUpCiB7Ci0gICAgdTMyIGVu dHJ5OwotCi0gICAgZW50cnkgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJP TF9NTUlPX09GRlNFVCk7Ci0KLSAgICAvKnJlc2V0IGhlYWQgYW5kIHRhaWwgcG9pbnRlciBtYW51 YWxseSBiZWZvcmUgZW5hYmxlbWVudCAqLworICAgIC8qIFJlc2V0IGhlYWQgYW5kIHRhaWwgcG9p bnRlciBtYW51YWxseSBiZWZvcmUgZW5hYmxlbWVudCAqLwogICAgIGlmICggZW5hYmxlICkKICAg ICB7CiAgICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ01EX0JVRkZF Ul9IRUFEX09GRlNFVCk7CiAgICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9N TVVfQ01EX0JVRkZFUl9UQUlMX09GRlNFVCk7Ci0KLSAgICAgICAgaW9tbXVfc2V0X2JpdCgmZW50 cnksIElPTU1VX0NPTlRST0xfQ09NTUFORF9CVUZGRVJfRU5BQkxFX1NISUZUKTsKICAgICB9Ci0g ICAgZWxzZQotICAgICAgICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX0NP TU1BTkRfQlVGRkVSX0VOQUJMRV9TSElGVCk7CiAKLSAgICB3cml0ZWwoZW50cnksIGlvbW11LT5t bWlvX2Jhc2UrSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CisgICAgaW9tbXUtPmN0cmwuY21k X2J1Zl9lbiA9IGVuYWJsZTsKKworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11LT5t bWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKIH0KIAogc3RhdGljIHZvaWQg cmVnaXN0ZXJfaW9tbXVfZXhjbHVzaW9uX3JhbmdlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQpA QCAtMjk1LDU3ICsyNjQsMzggQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVfZXhjbHVzaW9u X3JhbgogfQogCiBzdGF0aWMgdm9pZCBzZXRfaW9tbXVfZXZlbnRfbG9nX2NvbnRyb2woc3RydWN0 IGFtZF9pb21tdSAqaW9tbXUsCi0gICAgICAgICAgICBpbnQgZW5hYmxlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRy eTsKLQotICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xf TU1JT19PRkZTRVQpOwotCi0gICAgLypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFs bHkgYmVmb3JlIGVuYWJsZW1lbnQgKi8KKyAgICAvKiBSZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50 ZXIgbWFudWFsbHkgYmVmb3JlIGVuYWJsZW1lbnQgKi8KICAgICBpZiAoIGVuYWJsZSApCiAgICAg ewogICAgICAgICB3cml0ZXEoMCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0VWRU5UX0xPR19I RUFEX09GRlNFVCk7CiAgICAgICAgIHdyaXRlcSgwLCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVf RVZFTlRfTE9HX1RBSUxfT0ZGU0VUKTsKLQotICAgICAgICBpb21tdV9zZXRfYml0KCZlbnRyeSwg SU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfSU5UX1NISUZUKTsKLSAgICAgICAgaW9tbXVfc2V0X2Jp dCgmZW50cnksIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7Ci0gICAgfQot ICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50cnksIElPTU1VX0NP TlRST0xfRVZFTlRfTE9HX0lOVF9TSElGVCk7Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgmZW50 cnksIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVCk7CiAgICAgfQogCi0gICAg aW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5UX1NISUZU KTsKKyAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4gPSBlbmFibGU7CisgICAgaW9tbXUtPmN0 cmwuZXZlbnRfbG9nX2VuID0gZW5hYmxlOworICAgIGlvbW11LT5jdHJsLmNvbV93YWl0X2ludF9l biA9IDA7CiAKLSAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05U Uk9MX01NSU9fT0ZGU0VUKTsKKyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1p b19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNl dF9pb21tdV9wcHJfbG9nX2NvbnRyb2woc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmFibGUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlKQogewotICAgIHUzMiBlbnRyeTsK LQotICAgIGVudHJ5ID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1J T19PRkZTRVQpOwotCi0gICAgLypyZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgbWFudWFsbHkg YmVmb3JlIGVuYWJsZW1lbnQgKi8KKyAgICAvKiBSZXNldCBoZWFkIGFuZCB0YWlsIHBvaW50ZXIg bWFudWFsbHkgYmVmb3JlIGVuYWJsZW1lbnQgKi8KICAgICBpZiAoIGVuYWJsZSApCiAgICAgewog ICAgICAgICB3cml0ZXEoMCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1BQUl9MT0dfSEVBRF9P RkZTRVQpOwogICAgICAgICB3cml0ZXEoMCwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1BQUl9M T0dfVEFJTF9PRkZTRVQpOwotCi0gICAgICAgIGlvbW11X3NldF9iaXQoJmVudHJ5LCBJT01NVV9D T05UUk9MX1BQUl9FTkFCTEVfU0hJRlQpOwotICAgICAgICBpb21tdV9zZXRfYml0KCZlbnRyeSwg SU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVCk7Ci0gICAgICAgIGlvbW11X3NldF9iaXQo JmVudHJ5LCBJT01NVV9DT05UUk9MX1BQUl9MT0dfRU5BQkxFX1NISUZUKTsKLSAgICB9Ci0gICAg ZWxzZQotICAgIHsKLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJP TF9QUFJfRU5BQkxFX1NISUZUKTsKLSAgICAgICAgaW9tbXVfY2xlYXJfYml0KCZlbnRyeSwgSU9N TVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVCk7Ci0gICAgICAgIGlvbW11X2NsZWFyX2JpdCgm ZW50cnksIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFCTEVfU0hJRlQpOwogICAgIH0KIAotICAg IHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZT RVQpOworICAgIGlvbW11LT5jdHJsLnBwcl9lbiA9IGVuYWJsZTsKKyAgICBpb21tdS0+Y3RybC5w cHJfaW50X2VuID0gZW5hYmxlOworICAgIGlvbW11LT5jdHJsLnBwcl9sb2dfZW4gPSBlbmFibGU7 CisKKyAgICB3cml0ZXEoaW9tbXUtPmN0cmwucmF3LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVf Q09OVFJPTF9NTUlPX09GRlNFVCk7CisKICAgICBpZiAoIGVuYWJsZSApCiAgICAgICAgIEFNRF9J T01NVV9ERUJVRygiUFBSIExvZyBFbmFibGVkLlxuIik7CiB9CkBAIC0zOTgsNyArMzQ4LDcgQEAg c3RhdGljIGludCBpb21tdV9yZWFkX2xvZyhzdHJ1Y3QgYW1kX2lvbQogLyogcmVzZXQgZXZlbnQg bG9nIG9yIHBwciBsb2cgd2hlbiBvdmVyZmxvdyAqLwogc3RhdGljIHZvaWQgaW9tbXVfcmVzZXRf bG9nKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCByaW5nX2J1ZmZlciAqbG9nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv aWQgKCpjdHJsX2Z1bmMpKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBpbnQpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKCpjdHJsX2Z1bmMpKHN0cnVjdCBhbWRfaW9tbXUgKmlv bW11LCBib29sKSkKIHsKICAgICB1MzIgZW50cnk7CiAgICAgaW50IGxvZ19ydW4sIHJ1bl9iaXQ7 CkBAIC02MTUsMTEgKzU2NSwxMSBAQCBzdGF0aWMgdm9pZCBpb21tdV9jaGVja19ldmVudF9sb2co c3RydWN0CiAgICAgICAgIGlvbW11X3Jlc2V0X2xvZyhpb21tdSwgJmlvbW11LT5ldmVudF9sb2cs IHNldF9pb21tdV9ldmVudF9sb2dfY29udHJvbCk7CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAg ZW50cnkgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNF VCk7Ci0gICAgICAgIGlmICggIShlbnRyeSAmIElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9N QVNLKSApCisgICAgICAgIGlmICggIWlvbW11LT5jdHJsLmV2ZW50X2ludF9lbiApCiAgICAgICAg IHsKLSAgICAgICAgICAgIGVudHJ5IHw9IElPTU1VX0NPTlRST0xfRVZFTlRfTE9HX0lOVF9NQVNL OwotICAgICAgICAgICAgd3JpdGVsKGVudHJ5LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09O VFJPTF9NTUlPX09GRlNFVCk7CisgICAgICAgICAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4g PSAxOworICAgICAgICAgICAgd3JpdGVxKGlvbW11LT5jdHJsLnJhdywKKyAgICAgICAgICAgICAg ICAgICBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7CiAgICAg ICAgICAgICAvKgogICAgICAgICAgICAgICogUmUtc2NoZWR1bGUgdGhlIHRhc2tsZXQgdG8gaGFu ZGxlIGV2ZW50dWFsIGxvZyBlbnRyaWVzIGFkZGVkCiAgICAgICAgICAgICAgKiBiZXR3ZWVuIHJl YWRpbmcgdGhlIGxvZyBhYm92ZSBhbmQgcmUtZW5hYmxpbmcgdGhlIGludGVycnVwdC4KQEAgLTcw NCwxMSArNjU0LDExIEBAIHN0YXRpYyB2b2lkIGlvbW11X2NoZWNrX3Bwcl9sb2coc3RydWN0IGEK ICAgICAgICAgaW9tbXVfcmVzZXRfbG9nKGlvbW11LCAmaW9tbXUtPnBwcl9sb2csIHNldF9pb21t dV9wcHJfbG9nX2NvbnRyb2wpOwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGVudHJ5ID0gcmVh ZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwotICAgICAg ICBpZiAoICEoZW50cnkgJiBJT01NVV9DT05UUk9MX1BQUl9MT0dfSU5UX01BU0spICkKKyAgICAg ICAgaWYgKCAhaW9tbXUtPmN0cmwucHByX2ludF9lbiApCiAgICAgICAgIHsKLSAgICAgICAgICAg IGVudHJ5IHw9IElPTU1VX0NPTlRST0xfUFBSX0xPR19JTlRfTUFTSzsKLSAgICAgICAgICAgIHdy aXRlbChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQp OworICAgICAgICAgICAgaW9tbXUtPmN0cmwucHByX2ludF9lbiA9IDE7CisgICAgICAgICAgICB3 cml0ZXEoaW9tbXUtPmN0cmwucmF3LAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5tbWlvX2Jh c2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKICAgICAgICAgICAgIC8qCiAgICAgICAg ICAgICAgKiBSZS1zY2hlZHVsZSB0aGUgdGFza2xldCB0byBoYW5kbGUgZXZlbnR1YWwgbG9nIGVu dHJpZXMgYWRkZWQKICAgICAgICAgICAgICAqIGJldHdlZW4gcmVhZGluZyB0aGUgbG9nIGFib3Zl IGFuZCByZS1lbmFibGluZyB0aGUgaW50ZXJydXB0LgpAQCAtNzU0LDcgKzcwNCw2IEBAIHN0YXRp YyB2b2lkIGRvX2FtZF9pb21tdV9pcnEodW5zaWduZWQgbG8KIHN0YXRpYyB2b2lkIGlvbW11X2lu dGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewotICAgIHUz MiBlbnRyeTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBhbWRfaW9tbXUg KmlvbW11ID0gZGV2X2lkOwogCkBAIC03NjQsMTAgKzcxMyw5IEBAIHN0YXRpYyB2b2lkIGlvbW11 X2ludGVycnVwdF9oYW5kbGVyKGludAogICAgICAqIFNpbGVuY2UgaW50ZXJydXB0cyBmcm9tIGJv dGggZXZlbnQgYW5kIFBQUiBieSBjbGVhcmluZyB0aGUKICAgICAgKiBlbmFibGUgbG9nZ2luZyBi aXRzIGluIHRoZSBjb250cm9sIHJlZ2lzdGVyCiAgICAgICovCi0gICAgZW50cnkgPSByZWFkbChp b21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ09OVFJPTF9NTUlPX09GRlNFVCk7Ci0gICAgaW9tbXVf Y2xlYXJfYml0KCZlbnRyeSwgSU9NTVVfQ09OVFJPTF9FVkVOVF9MT0dfSU5UX1NISUZUKTsKLSAg ICBpb21tdV9jbGVhcl9iaXQoJmVudHJ5LCBJT01NVV9DT05UUk9MX1BQUl9MT0dfSU5UX1NISUZU KTsKLSAgICB3cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01N SU9fT0ZGU0VUKTsKKyAgICBpb21tdS0+Y3RybC5ldmVudF9pbnRfZW4gPSAwOworICAgIGlvbW11 LT5jdHJsLnBwcl9pbnRfZW4gPSAwOworICAgIHdyaXRlcShpb21tdS0+Y3RybC5yYXcsIGlvbW11 LT5tbWlvX2Jhc2UgKyBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUKTsKIAogICAgIHNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiAKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9hbWQtaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FtZC1pb21tdS5o CkBAIC04OCw2ICs4OCw4IEBAIHN0cnVjdCBhbWRfaW9tbXUgewogICAgIHZvaWQgKm1taW9fYmFz ZTsKICAgICB1bnNpZ25lZCBsb25nIG1taW9fYmFzZV9waHlzOwogCisgICAgdW5pb24gYW1kX2lv bW11X2NvbnRyb2wgY3RybDsKKwogICAgIHN0cnVjdCB0YWJsZV9zdHJ1Y3QgZGV2X3RhYmxlOwog ICAgIHN0cnVjdCByaW5nX2J1ZmZlciBjbWRfYnVmZmVyOwogICAgIHN0cnVjdCByaW5nX2J1ZmZl ciBldmVudF9sb2c7CkBAIC0xNzIsNyArMTc0LDcgQEAgc3RydWN0IGd1ZXN0X2lvbW11IHsKICAg ICB1aW50NjRfdCAgICAgICAgICAgICAgICBtbWlvX2Jhc2U7ICAgICAgICAgICAgIC8qIE1NSU8g YmFzZSBhZGRyZXNzICovCiAKICAgICAvKiBNTUlPIHJlZ3MgKi8KLSAgICBzdHJ1Y3QgbW1pb19y ZWcgICAgICAgICByZWdfY3RybDsgICAgICAgICAgICAgIC8qIE1NSU8gb2Zmc2V0IDAwMThoICov CisgICAgdW5pb24gYW1kX2lvbW11X2NvbnRyb2wgcmVnX2N0cmw7ICAgICAgICAgICAgICAvKiBN TUlPIG9mZnNldCAwMDE4aCAqLwogICAgIHN0cnVjdCBtbWlvX3JlZyAgICAgICAgIHJlZ19zdGF0 dXM7ICAgICAgICAgICAgLyogTU1JTyBvZmZzZXQgMjAyMGggKi8KICAgICB1bmlvbiBhbWRfaW9t bXVfZXh0X2ZlYXR1cmVzIHJlZ19leHRfZmVhdHVyZTsgIC8qIE1NSU8gb2Zmc2V0IDAwMzBoICov CiAKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKQEAgLTI5NSwz OCArMjk1LDU2IEBAIHN0cnVjdCBhbWRfaW9tbXVfZHRlIHsKIAogLyogQ29udHJvbCBSZWdpc3Rl ciAqLwogI2RlZmluZSBJT01NVV9DT05UUk9MX01NSU9fT0ZGU0VUCQkJMHgxOAotI2RlZmluZSBJ T01NVV9DT05UUk9MX1RSQU5TTEFUSU9OX0VOQUJMRV9NQVNLCQkweDAwMDAwMDAxCi0jZGVmaW5l IElPTU1VX0NPTlRST0xfVFJBTlNMQVRJT05fRU5BQkxFX1NISUZUCQkwCi0jZGVmaW5lIElPTU1V X0NPTlRST0xfSFRfVFVOTkVMX1RSQU5TTEFUSU9OX01BU0sJMHgwMDAwMDAwMgotI2RlZmluZSBJ T01NVV9DT05UUk9MX0hUX1RVTk5FTF9UUkFOU0xBVElPTl9TSElGVAkxCi0jZGVmaW5lIElPTU1V X0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9NQVNLCQkweDAwMDAwMDA0Ci0jZGVmaW5lIElPTU1V X0NPTlRST0xfRVZFTlRfTE9HX0VOQUJMRV9TSElGVAkJMgotI2RlZmluZSBJT01NVV9DT05UUk9M X0VWRU5UX0xPR19JTlRfTUFTSwkJMHgwMDAwMDAwOAotI2RlZmluZSBJT01NVV9DT05UUk9MX0VW RU5UX0xPR19JTlRfU0hJRlQJCTMKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5U X01BU0sJCTB4MDAwMDAwMTAKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01QX1dBSVRfSU5UX1NI SUZUCQk0Ci0jZGVmaW5lIElPTU1VX0NPTlRST0xfSU5WQUxJREFUSU9OX1RJTUVPVVRfTUFTSwkJ MHgwMDAwMDBFMAotI2RlZmluZSBJT01NVV9DT05UUk9MX0lOVkFMSURBVElPTl9USU1FT1VUX1NI SUZUCTUKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QQVNTX1BPU1RFRF9XUklURV9NQVNLCQkweDAw MDAwMTAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUEFTU19QT1NURURfV1JJVEVfU0hJRlQJCTgK LSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9SRVNQX1BBU1NfUE9TVEVEX1dSSVRFX01BU0sJMHgwMDAw MDIwMAotI2RlZmluZSBJT01NVV9DT05UUk9MX1JFU1BfUEFTU19QT1NURURfV1JJVEVfU0hJRlQJ OQotI2RlZmluZSBJT01NVV9DT05UUk9MX0NPSEVSRU5UX01BU0sJCQkweDAwMDAwNDAwCi0jZGVm aW5lIElPTU1VX0NPTlRST0xfQ09IRVJFTlRfU0hJRlQJCQkxMAotI2RlZmluZSBJT01NVV9DT05U Uk9MX0lTT0NIUk9OT1VTX01BU0sJCQkweDAwMDAwODAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xf SVNPQ0hST05PVVNfU0hJRlQJCQkxMQotI2RlZmluZSBJT01NVV9DT05UUk9MX0NPTU1BTkRfQlVG RkVSX0VOQUJMRV9NQVNLCTB4MDAwMDEwMDAKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9DT01NQU5E X0JVRkZFUl9FTkFCTEVfU0hJRlQJMTIKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0VO QUJMRV9NQVNLCQkweDAwMDAyMDAwCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUFBSX0xPR19FTkFC TEVfU0hJRlQJCTEzCi0jZGVmaW5lIElPTU1VX0NPTlRST0xfUFBSX0xPR19JTlRfTUFTSwkJCTB4 MDAwMDQwMDAKLSNkZWZpbmUgSU9NTVVfQ09OVFJPTF9QUFJfTE9HX0lOVF9TSElGVAkJCTE0Ci0j ZGVmaW5lIElPTU1VX0NPTlRST0xfUFBSX0VOQUJMRV9NQVNLCQkJMHgwMDAwODAwMAotI2RlZmlu ZSBJT01NVV9DT05UUk9MX1BQUl9FTkFCTEVfU0hJRlQJCQkxNQotI2RlZmluZSBJT01NVV9DT05U Uk9MX0dUX0VOQUJMRV9NQVNLCQkJMHgwMDAxMDAwMAotI2RlZmluZSBJT01NVV9DT05UUk9MX0dU X0VOQUJMRV9TSElGVAkJCTE2Ci0jZGVmaW5lIElPTU1VX0NPTlRST0xfUkVTVEFSVF9NQVNLCQkJ MHg4MDAwMDAwMAotI2RlZmluZSBJT01NVV9DT05UUk9MX1JFU1RBUlRfU0hJRlQJCQkzMQorCit1 bmlvbiBhbWRfaW9tbXVfY29udHJvbCB7CisgICAgdWludDY0X3QgcmF3OworICAgIHN0cnVjdCB7 CisgICAgICAgIHVuc2lnbmVkIGludCBpb21tdV9lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQg aHRfdHVuX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBldmVudF9sb2dfZW46MTsKKyAgICAg ICAgdW5zaWduZWQgaW50IGV2ZW50X2ludF9lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQgY29t X3dhaXRfaW50X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBpbnZfdGltZW91dDozOworICAg ICAgICB1bnNpZ25lZCBpbnQgcGFzc19wdzoxOworICAgICAgICB1bnNpZ25lZCBpbnQgcmVzX3Bh c3NfcHc6MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGNvaGVyZW50OjE7CisgICAgICAgIHVuc2ln bmVkIGludCBpc29jOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBjbWRfYnVmX2VuOjE7CisgICAg ICAgIHVuc2lnbmVkIGludCBwcHJfbG9nX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBwcHJf aW50X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBwcHJfZW46MTsKKyAgICAgICAgdW5zaWdu ZWQgaW50IGd0X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBnYV9lbjoxOworICAgICAgICB1 bnNpZ25lZCBpbnQgY3J3OjQ7CisgICAgICAgIHVuc2lnbmVkIGludCBzbWlmX2VuOjE7CisgICAg ICAgIHVuc2lnbmVkIGludCBzbGZfd2JfZGlzOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBzbWlm X2xvZ19lbjoxOworICAgICAgICB1bnNpZ25lZCBpbnQgZ2FtX2VuOjM7CisgICAgICAgIHVuc2ln bmVkIGludCBnYV9sb2dfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhX2ludF9lbjoxOwor ICAgICAgICB1bnNpZ25lZCBpbnQgZHVhbF9wcHJfbG9nX2VuOjI7CisgICAgICAgIHVuc2lnbmVk IGludCBkdWFsX2V2ZW50X2xvZ19lbjoyOworICAgICAgICB1bnNpZ25lZCBpbnQgZGV2X3RibF9z ZWdfZW46MzsKKyAgICAgICAgdW5zaWduZWQgaW50IHByaXZfYWJydF9lbjoyOworICAgICAgICB1 bnNpZ25lZCBpbnQgcHByX2F1dG9fcnNwX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBtYXJj X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBibGtfc3RvcF9tcmtfZW46MTsKKyAgICAgICAg dW5zaWduZWQgaW50IHBwcl9hdXRvX3JzcF9hb246MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGRv bWFpbl9pZF9wbmU6MTsKKyAgICAgICAgdW5zaWduZWQgaW50IDoxOworICAgICAgICB1bnNpZ25l ZCBpbnQgZXBoX2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBoYWRfdXBkYXRlOjI7CisgICAg ICAgIHVuc2lnbmVkIGludCBnZF91cGRhdGVfZGlzOjE7CisgICAgICAgIHVuc2lnbmVkIGludCA6 MTsKKyAgICAgICAgdW5zaWduZWQgaW50IHh0X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBp bnRfY2FwX3h0X2VuOjE7CisgICAgICAgIHVuc2lnbmVkIGludCB2Y21kX2VuOjE7CisgICAgICAg IHVuc2lnbmVkIGludCB2aW9tbXVfZW46MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhX3VwZGF0 ZV9kaXM6MTsKKyAgICAgICAgdW5zaWduZWQgaW50IGdhcHBpX2VuOjE7CisgICAgICAgIHVuc2ln bmVkIGludCA6ODsKKyAgICB9OworfTsKIAogLyogRXhjbHVzaW9uIFJlZ2lzdGVyICovCiAjZGVm aW5lIElPTU1VX0VYQ0xVU0lPTl9CQVNFX0xPV19PRkZTRVQJCTB4MjAKCgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=