From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Tue, 17 Jan 2017 17:29:52 +0000 Message-ID: <1484674196-19951-5-git-send-email-paul.durrant@citrix.com> References: <1484674196-19951-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cTXa7-0000bE-Fp for xen-devel@lists.xenproject.org; Tue, 17 Jan 2017 17:30:03 +0000 In-Reply-To: <1484674196-19951-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Li4uIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZQoKVGhlc2UgSFZNT1BzIHdlcmUgZXhwb3NlZCB0 byBndWVzdHMgc28gdGhlaXIgZGVmaW5pdGlvbnMgbmVlZCB0byBiZQpwcmVzZXJ2ZWQgZm9yIGNv bXBhdGliaWxpdHkuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlIHVwZGF0ZXMKX19YRU5fTEFURVNUX0lO VEVSRkFDRV9WRVJTSU9OX18gdG8gMHgwMDA0MDkwMCBhbmQgbWFrZXMgdGhlIEhWTU9QCmRlZmlu dGlvbnMgY29uZGl0aW9uYWwgb24gX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBsZXNzIHRoYW4g dGhhdCB2YWx1ZS4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyB3aWRlbnMgdGhlICdkb21haW4nIHBh cmFtZXRlciBvZgogICAgICB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKCkgZnJvbSBhIHVpbnQ4 X3QgdG8gYSB1aW50MTZfdC4KClN1Z2dlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu Y29tPgotLS0KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6 IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzogSWFuIEphY2tzb24g PGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K CnYzOgotIFJlbW92ZSB1bm5lY2Vzc2FyeSBwYWRkaW5nLgoKdjI6Ci0gSW50ZXJmYWNlIHZlcnNp b24gbW9kaWZpY2F0aW9uIG1vdmVkIHRvIHRoaXMgcGF0Y2gsIHdoZXJlIGl0IGlzIG5lZWRlZC4K LSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0tCiB0b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4uaWYgICB8ICAgOCArLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVu Y3RybC5oICAgICAgIHwgICAyICstCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAgICAg ICB8ICA4MyArKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMgICAg ICAgICAgICAgICB8ICA3MiArKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL2h2 bS5jICAgICAgICAgICAgICB8IDEzNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMgICAgICAgICAgICAgIHwgICA3ICstCiB4ZW4vaW5j bHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8ICA0MiArKysrKysrKysrKwogeGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAgIDQgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy94 ZW4tY29tcGF0LmggICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oICAgICAg ICAgICB8ICAgMiArLQogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgfCAgMTgg LS0tLS0KIHhlbi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgIHwgIDE4IC0tLS0tCiB4 ZW4veHNtL2R1bW15LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyAtCiB4ZW4veHNtL2ZsYXNr L2hvb2tzLmMgICAgICAgICAgICAgICB8ICAxNSAtLS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycyB8ICAgNiAtLQogMTUgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMo KyksIDI2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKaW5kZXggNDVl NWI1Zi4uMDkyYTZjNSAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVu LmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAtNTcsOCArNTcs OCBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCWFsbG93ICQxICQyOnNoYWRv dyBlbmFibGU7CiAJYWxsb3cgJDEgJDI6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBt ZW1vcnltYXAgcGh5c21hcCBwaW5wYWdlIG1tdWV4dF9vcCB1cGRhdGVtcCB9OwogCWFsbG93ICQx ICQyOmdyYW50IHNldHVwOwotCWFsbG93ICQxICQyOmh2bSB7IGNhY2hlYXR0ciBnZXRwYXJhbSBo dm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgc2V0aHZtYwotCQkJc2V0cGFyYW0gcGNpbGV2ZWwgbmVz dGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3Agc2VuZF9pcnEgfTsKKwlhbGxvdyAkMSAkMjpodm0g eyBjYWNoZWF0dHIgZ2V0cGFyYW0gaHZtY3RsIHNldGh2bWMKKwkJCXNldHBhcmFtIG5lc3RlZCBh bHRwMm1odm0gYWx0cDJtaHZtX29wIHNlbmRfaXJxIH07CiAnKQogCiAjIGNyZWF0ZV9kb21haW4o cHJpdiwgdGFyZ2V0KQpAQCAtOTMsNyArOTMsNyBAQCBkZWZpbmUoYG1hbmFnZV9kb21haW4nLCBg CiAjICAgKGluYm91bmQgbWlncmF0aW9uIGlzIHRoZSBzYW1lIGFzIGRvbWFpbiBjcmVhdGlvbikK IGRlZmluZShgbWlncmF0ZV9kb21haW5fb3V0JywgYAogCWFsbG93ICQxIGRvbXhlbl90Om1tdSBt YXBfcmVhZDsKLQlhbGxvdyAkMSAkMjpodm0geyBnZXRodm1jIGdldHBhcmFtIGlycWxldmVsIH07 CisJYWxsb3cgJDEgJDI6aHZtIHsgZ2V0aHZtYyBnZXRwYXJhbSB9OwogCWFsbG93ICQxICQyOm1t dSB7IHN0YXQgcGFnZWluZm8gbWFwX3JlYWQgfTsKIAlhbGxvdyAkMSAkMjpkb21haW4geyBnZXRh ZGRyc2l6ZSBnZXR2Y3B1Y29udGV4dCBwYXVzZSBkZXN0cm95IH07CiAJYWxsb3cgJDEgJDI6ZG9t YWluMiBnZXR0c2M7CkBAIC0xNTEsNyArMTUxLDcgQEAgZGVmaW5lKGBkZXZpY2VfbW9kZWwnLCBg CiAKIAlhbGxvdyAkMSAkMl90YXJnZXQ6ZG9tYWluIHsgZ2V0ZG9tYWluaW5mbyBzaHV0ZG93biB9 OwogCWFsbG93ICQxICQyX3RhcmdldDptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IHBo eXNtYXAgdGFyZ2V0X2hhY2sgfTsKLQlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0g c2V0cGFyYW0gaHZtY3RsIGlycWxldmVsIHBjaXJvdXRlIHBjaWxldmVsIGNhY2hlYXR0ciBzZW5k X2lycSBkbSB9OworCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRwYXJhbSBo dm1jdGwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CiAnKQogCiAjIG1ha2VfZGV2aWNlX21vZGVs KHByaXYsIGRtX2RvbSwgaHZtX2RvbSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggYzdlZTQxMi4u ZjgxOWJmMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAgLTE1OTQsNyArMTU5NCw3IEBAIGludCB4 Y19waHlzZGV2X3VubWFwX3BpcnEoeGNfaW50ZXJmYWNlICp4Y2gsCiAKIGludCB4Y19odm1fc2V0 X3BjaV9pbnR4X2xldmVsKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwKLSAg ICB1aW50OF90IGRvbWFpbiwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGlu dHgsCisgICAgdWludDE2X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVp bnQ4X3QgaW50eCwKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwpOwogaW50IHhjX2h2bV9zZXRfaXNh X2lycV9sZXZlbCgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sCmRpZmYgLS1n aXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXgg NGM0MWQ0MS4uZGRlYTJiYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBi L3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNDcwLDMzICs0NzAsMjQgQEAgaW50IHhjX2dldGNw dWluZm8oeGNfaW50ZXJmYWNlICp4Y2gsIGludCBtYXhfY3B1cywKIAogaW50IHhjX2h2bV9zZXRf cGNpX2ludHhfbGV2ZWwoCiAgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAg IHVpbnQ4X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgaW50 eCwKKyAgICB1aW50MTZfdCBkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWlu dDhfdCBpbnR4LAogICAgIHVuc2lnbmVkIGludCBsZXZlbCkKIHsKLSAgICBERUNMQVJFX0hZUEVS Q0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsLCBhcmcpOwotICAg IGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcs IHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQ RVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHhjX2h2bV9zZXRfcGNpX2ludHhf bGV2ZWwgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0 IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZlbCAq ZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgID0gZG9tOwotICAgIGFyZy0+ZG9tYWluID0gZG9tYWlu OwotICAgIGFyZy0+YnVzICAgID0gYnVzOwotICAgIGFyZy0+ZGV2aWNlID0gZGV2aWNlOwotICAg IGFyZy0+aW50eCAgID0gaW50eDsKLSAgICBhcmctPmxldmVsICA9IGxldmVsOworICAgIG1lbXNl dCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBf X0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bfc2V0X3BjaV9pbnR4 X2xldmVsLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7 CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw7CisgICAgZGF0YSA9ICZv cC51LnNldF9wY2lfaW50eF9sZXZlbDsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4 Y2gsIGFyZyk7CisgICAgZGF0YS0+ZG9tYWluID0gZG9tYWluOworICAgIGRhdGEtPmJ1cyA9IGJ1 czsKKyAgICBkYXRhLT5kZXZpY2UgPSBkZXZpY2U7CisgICAgZGF0YS0+aW50eCA9IGludHg7Cisg ICAgZGF0YS0+bGV2ZWwgPSBsZXZlbDsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9f ZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fc2V0 X2lzYV9pcnFfbGV2ZWwoCkBAIC01MDQsNTMgKzQ5NSwzNSBAQCBpbnQgeGNfaHZtX3NldF9pc2Ff aXJxX2xldmVsKAogICAgIHVpbnQ4X3QgaXNhX2lycSwKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwp CiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9pc2Ff aXJxX2xldmVsLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9i dWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVM TCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9y IHhjX2h2bV9zZXRfaXNhX2lycV9sZXZlbCBoeXBlcmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0x OwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3Bf c2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgPSBkb207Ci0gICAg YXJnLT5pc2FfaXJxID0gaXNhX2lycTsKLSAgICBhcmctPmxldmVsICAgPSBsZXZlbDsKKyAgICBt ZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2Fs bCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3NldF9pc2Ff aXJxX2xldmVsLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJn KSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZlbDsKKyAgICBkYXRhID0g Jm9wLnUuc2V0X2lzYV9pcnFfbGV2ZWw7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUo eGNoLCBhcmcpOworICAgIGRhdGEtPmlzYV9pcnEgPSBpc2FfaXJxOworICAgIGRhdGEtPmxldmVs ID0gbGV2ZWw7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9t LCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0 ZSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ4X3QgbGluaywgdWlu dDhfdCBpc2FfaXJxKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVu X2h2bV9zZXRfcGNpX2xpbmtfcm91dGUsIGFyZyk7Ci0gICAgaW50IHJjOwotCi0gICAgYXJnID0g eGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBp ZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGFsbG9j YXRlIG1lbW9yeSBmb3IgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0ZSBoeXBlcmNhbGwiKTsKLSAg ICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlICpkYXRhOwogCi0gICAgYXJnLT5kb21p ZCAgID0gZG9tOwotICAgIGFyZy0+bGluayAgICA9IGxpbms7Ci0gICAgYXJnLT5pc2FfaXJxID0g aXNhX2lycTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVu Y2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAg IEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9C VUZGRVJfQVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3Jv dXRlOworICAgIGRhdGEgPSAmb3AudS5zZXRfcGNpX2xpbmtfcm91dGU7CiAKLSAgICB4Y19oeXBl cmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPmxpbmsgPSBsaW5rOworICAg IGRhdGEtPmlzYV9pcnEgPSBpc2FfaXJxOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBk b19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9p bmplY3RfbXNpKApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gv eDg2L2h2bS9kbS5jCmluZGV4IDg5OTRjMjUuLjEyYTgyZTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTYyLDYgKzYyLDQ5 IEBAIHN0YXRpYyBpbnQgdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZu X3QgZmlyc3RfcGZuLAogICAgICAgICBoYXBfdHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4s IG5yLCBidWYtPmgpOwogfQogCitzdGF0aWMgaW50IHNldF9wY2lfaW50eF9sZXZlbChzdHJ1Y3Qg ZG9tYWluICpkLCB1aW50MTZfdCBkb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50OF90IGludHgsIHVpbnQ4X3QgbGV2ZWwpCit7CisgICAgaWYgKCBkb21haW4gIT0g MCB8fCBidXMgIT0gMCB8fCBkZXZpY2UgPiAweDFmIHx8IGludHggPiAzICkKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICBzd2l0Y2ggKCBsZXZlbCApCisgICAgeworICAgIGNhc2UgMDoK KyAgICAgICAgaHZtX3BjaV9pbnR4X2RlYXNzZXJ0KGQsIGRldmljZSwgaW50eCk7CisgICAgICAg IGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgaHZtX3BjaV9pbnR4X2Fzc2VydChkLCBkZXZp Y2UsIGludHgpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g LUVJTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZXRfaXNh X2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGlzYV9pcnEsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgbGV2ZWwpCit7CisgICAgaWYgKCBpc2FfaXJxID4g MTUgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHN3aXRjaCAoIGxldmVsICkKKyAg ICB7CisgICAgY2FzZSAwOgorICAgICAgICBodm1faXNhX2lycV9kZWFzc2VydChkLCBpc2FfaXJx KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAgICBodm1faXNhX2lycV9hc3Nl cnQoZCwgaXNhX2lycSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl dHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGRt X29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZz LAogICAgICAgICAgICAgICAgICB4ZW5fZG1fb3BfYnVmX3QgYnVmc1tdKQpAQCAtMTk0LDYgKzIz NywzNSBAQCBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGJyZWFrOwog ICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgorICAgIHsKKyAg ICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgKmRhdGEgPQor ICAgICAgICAgICAgJm9wLnUuc2V0X3BjaV9pbnR4X2xldmVsOworCisgICAgICAgIHJjID0gc2V0 X3BjaV9pbnR4X2xldmVsKGQsIGRhdGEtPmRvbWFpbiwgZGF0YS0+YnVzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhLT5kZXZpY2UsIGRhdGEtPmludHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmxldmVsKTsKKyAgICAgICAgYnJlYWs7CisgICAg fQorCisgICAgY2FzZSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZlbDoKKyAgICB7CisgICAgICAg IGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGEgPQorICAgICAg ICAgICAgJm9wLnUuc2V0X2lzYV9pcnFfbGV2ZWw7CisKKyAgICAgICAgcmMgPSBzZXRfaXNhX2ly cV9sZXZlbChkLCBkYXRhLT5pc2FfaXJxLCBkYXRhLT5sZXZlbCk7CisgICAgICAgIGJyZWFrOwor ICAgIH0KKworICAgIGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgorICAgIHsKKyAg ICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgKmRhdGEgPQor ICAgICAgICAgICAgJm9wLnUuc2V0X3BjaV9saW5rX3JvdXRlOworCisgICAgICAgIHJjID0gaHZt X3NldF9wY2lfbGlua19yb3V0ZShkLCBkYXRhLT5saW5rLCBkYXRhLT5pc2FfaXJxKTsKKyAgICAg ICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQ UDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA1YTViNzcyLi45MzdlMTZmIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAg LTQwNDUsNTAgKzQwNDUsNiBAQCB2b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0 cnVjdCBkb21haW4gKmQsCiAgICAgaHZtX2Z1bmNzLmluaXRfaHlwZXJjYWxsX3BhZ2UoZCwgaHlw ZXJjYWxsX3BhZ2UpOwogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgK LSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3Qp IHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgb3A7Ci0gICAg c3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVz dCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9w LmRvbWFpbiA+IDApIHx8IChvcC5idXMgPiAwKSB8fCAob3AuZGV2aWNlID4gMzEpIHx8IChvcC5p bnR4ID4gMykgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKLQotICAgIHJjID0gcmN1X2xvY2tf cmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0g ICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1f ZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1fc2V0X3Bj aV9pbnR4X2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290 byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAgIHsKLSAg ICBjYXNlIDA6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9kZWFzc2VydChkLCBvcC5kZXZpY2UsIG9w LmludHgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9wY2lfaW50 eF9hc3NlcnQoZCwgb3AuZGV2aWNlLCBvcC5pbnR4KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVm YXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBv dXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCiB2b2lk IGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2LCB1aW50MTZfdCBjcywgdWludDE2 X3QgaXApCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKQEAgLTQyMzIsODMg KzQxODgsNiBAQCBzdGF0aWMgdm9pZCBodm1fczNfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQpCiAg ICAgfQogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9pc2FfaXJxX2xldmVsKAotICAgIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbF90KSB1b3ApCi17Ci0g ICAgc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFp biAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwg MSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggb3AuaXNhX2lycSA+IDE1 ICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9k b21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBy ZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihk KSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX3NldF9pc2FfaXJxX2xl dmVsKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0K LSAgICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6 Ci0gICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIG9wLmlzYV9pcnEpOwotICAgICAgICBi cmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBvcC5pc2Ff aXJxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFM OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4o ZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IGh2bW9wX3NldF9wY2lfbGlua19y b3V0ZSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X3BjaV9saW5rX3Jv dXRlX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgb3A7 Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJv bV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlm ICggKG9wLmxpbmsgPiAzKSB8fCAob3AuaXNhX2lycSA+IDE1KSApCi0gICAgICAgIHJldHVybiAt RUlOVkFMOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlk LCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMg PSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91 dDsKLQotICAgIHJjID0geHNtX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUoWFNNX0RNX1BSSVYsIGQp OwotICAgIGlmICggcmMgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gMDsKLSAgICBo dm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIG9wLmxpbmssIG9wLmlzYV9pcnEpOwotCi0gb3V0Ogot ICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGlu dCBodm1vcF9pbmplY3RfbXNpKAogICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9p bmplY3RfbXNpX3QpIHVvcCkKIHsKQEAgLTUxMTAsMjYgKzQ5ODksMTEgQEAgbG9uZyBkb19odm1f b3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAg ICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fcGFyYW1fdCkpOwogICAg ICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgotICAgICAg ICByYyA9IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRs ZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdCkpOwotICAgICAgICBicmVh azsKLQotICAgIGNhc2UgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw6Ci0gICAgICAgIHJjID0gaHZt b3Bfc2V0X2lzYV9pcnFfbGV2ZWwoCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcs IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWxfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNh c2UgSFZNT1BfaW5qZWN0X21zaToKICAgICAgICAgcmMgPSBodm1vcF9pbmplY3RfbXNpKAogICAg ICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2luamVjdF9tc2lfdCkpOwog ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgotICAg ICAgICByYyA9IGh2bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICAgICAgICAgIGd1ZXN0X2hh bmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdCkpOwotICAgICAgICBi cmVhazsKLQogICAgIGNhc2UgSFZNT1BfZmx1c2hfdGxiczoKICAgICAgICAgcmMgPSBndWVzdF9o YW5kbGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsKICAg ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9pcnEuYwppbmRleCBlNTk3MTE0Li4yNjVhNjIwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMKQEAgLTIyOSwx MyArMjI5LDE0IEBAIHZvaWQgaHZtX2Fzc2VydF9ldnRjaG5faXJxKHN0cnVjdCB2Y3B1ICp2KQog ICAgICAgICBodm1fc2V0X2NhbGxiYWNrX2lycV9sZXZlbCh2KTsKIH0KIAotdm9pZCBodm1fc2V0 X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQsIHU4IGxpbmssIHU4IGlzYV9pcnEpCitp bnQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBp c2FfaXJxKQogewogICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2Rv bWFpbi5pcnE7CiAgICAgdTggb2xkX2lzYV9pcnE7CiAgICAgaW50IGk7CiAKLSAgICBBU1NFUlQo KGxpbmsgPD0gMykgJiYgKGlzYV9pcnEgPD0gMTUpKTsKKyAgICBpZiAoIChsaW5rID4gMykgfHwg KGlzYV9pcnEgPiAxNSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIHNwaW5fbG9j aygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKIApAQCAtMjczLDYgKzI3NCw4IEBAIHZv aWQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBp c2FfaXJxKQogCiAgICAgZHByaW50ayhYRU5MT0dfR19JTkZPLCAiRG9tJXUgUENJIGxpbmsgJXUg Y2hhbmdlZCAldSAtPiAldVxuIiwKICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgbGluaywgb2xk X2lzYV9pcnEsIGlzYV9pcnEpOworCisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBodm1faW5qZWN0 X21zaShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBkYXRhKQpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9kbV9vcC5oCmluZGV4IDEwYzQ4YTQuLmE1MmM4ZWEgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmgKQEAgLTE5NSw2ICsxOTUsNDUgQEAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92 cmFtIHsKICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5f RE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw6IFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBvbmUgb2Yg YSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kgSU5UeCBwaW5z LgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZlbCA4CisKK3N0cnVjdCB4 ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsIHsKKyAgICAvKiBJTiAtIFBDSSBJTlR4IGlkZW50 aWZpY2F0aW9uIChkb21haW46YnVzOmRldmljZTppbnR4KSAqLworICAgIHVpbnQxNl90IGRvbWFp bjsKKyAgICB1aW50OF90IGJ1cywgZGV2aWNlLCBpbnR4OworICAgIC8qIElOIC0gTGV2ZWw6IDAg LT4gZGVhc3NlcnRlZCwgMSAtPiBhc3NlcnRlZCAqLworICAgIHVpbnQ4X3QgIGxldmVsOworfTsK KworLyoKKyAqIFhFTl9ETU9QX3NldF9pc2FfaXJxX2xldmVsOiBTZXQgdGhlIGxvZ2ljYWwgbGV2 ZWwgb2YgYSBvbmUgb2YgYSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAgICAgICAgICAg IElTQSBJUlEgbGluZXMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwg OQorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHsKKyAgICAvKiBJTiAtIElT QSBJUlEgKDAtMTUpICovCisgICAgdWludDhfdCAgaXNhX2lycTsKKyAgICAvKiBJTiAtIExldmVs OiAwIC0+IGRlYXNzZXJ0ZWQsIDEgLT4gYXNzZXJ0ZWQgKi8KKyAgICB1aW50OF90ICBsZXZlbDsK K307CisKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU6IE1hcCBhIFBDSSBJTlR4 IGxpbmUgdG8gYW4gSVJRIGxpbmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X3BjaV9saW5r X3JvdXRlIDEwCisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlIHsKKyAgICAv KiBQQ0kgSU5UeCBsaW5lICgwLTMpICovCisgICAgdWludDhfdCAgbGluazsKKyAgICAvKiBJU0Eg SVJRICgxLTE1KSBvciAwIC0+IGRpc2FibGUgbGluayAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7 Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJf dCBwYWQ7CkBAIC0yMDYsNiArMjQ1LDkgQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSBzZXRfaW9yZXFfc2VydmVyX3N0 YXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIGRlc3Ry b3lfaW9yZXFfc2VydmVyOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3Zy YW0gdHJhY2tfZGlydHlfdnJhbTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2lu dHhfbGV2ZWwgc2V0X3BjaV9pbnR4X2xldmVsOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3Nl dF9pc2FfaXJxX2xldmVsIHNldF9pc2FfaXJxX2xldmVsOworICAgICAgICBzdHJ1Y3QgeGVuX2Rt X29wX3NldF9wY2lfbGlua19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7CiAgICAgfSB1OwogfTsK IApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmgKaW5kZXggNDdlODM2Yy4uN2NmOGQ0ZCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2h2bV9vcC5oCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHsK IHR5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFyYW0geGVuX2h2bV9wYXJhbV90OwogREVGSU5FX1hF Tl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9wYXJhbV90KTsKIAorI2lmIF9fWEVOX0lOVEVSRkFDRV9W RVJTSU9OX18gPCAweDAwMDQwOTAwCisKIC8qIFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBvbmUg b2YgYSBkb21haW4ncyBQQ0kgSU5UeCB3aXJlcy4gKi8KICNkZWZpbmUgSFZNT1Bfc2V0X3BjaV9p bnR4X2xldmVsICAyCiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgewpAQCAtNzYs NiArNzgsOCBAQCBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgewogdHlwZWRlZiBz dHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91 dGVfdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRl X3QpOwogCisjZW5kaWYgLyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAg Ki8KKwogLyogRmx1c2hlcyBhbGwgVkNQVSBUTEJzOiBAYXJnIG11c3QgYmUgTlVMTC4gKi8KICNk ZWZpbmUgSFZNT1BfZmx1c2hfdGxicyAgICAgICAgICA1CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3B1YmxpYy94ZW4tY29tcGF0LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLWNvbXBhdC5o CmluZGV4IGRkOGE1YzAuLmI2NzM2NTMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94 ZW4tY29tcGF0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi1jb21wYXQuaApAQCAtMjcs NyArMjcsNyBAQAogI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KICNkZWZpbmUg X19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCiAKLSNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVS RkFDRV9WRVJTSU9OX18gMHgwMDA0MDgwMAorI2RlZmluZSBfX1hFTl9MQVRFU1RfSU5URVJGQUNF X1ZFUlNJT05fXyAweDAwMDQwOTAwCiAKICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQo X19YRU5fVE9PTFNfXykKIC8qIFhlbiBpcyBidWlsdCB3aXRoIG1hdGNoaW5nIGhlYWRlcnMgYW5k IGltcGxlbWVudHMgdGhlIGxhdGVzdCBpbnRlcmZhY2UuICovCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94ZW4vaHZtL2lycS5oIGIveGVuL2luY2x1ZGUveGVuL2h2bS9pcnEuaAppbmRleCA0Yzlj YjIwLi5kM2Y4NjIzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIGh2bV9p c2FfaXJxX2Fzc2VydCgKIHZvaWQgaHZtX2lzYV9pcnFfZGVhc3NlcnQoCiAgICAgc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IGlzYV9pcnEpOwogCi12b2lkIGh2bV9zZXRfcGNpX2xpbmtf cm91dGUoc3RydWN0IGRvbWFpbiAqZCwgdTggbGluaywgdTggaXNhX2lycSk7CitpbnQgaHZtX3Nl dF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKTsK IAogaW50IGh2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGFkZHIsIHVp bnQzMl90IGRhdGEpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hl bi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IDlmN2MxNzQuLmQzZGU0YjcgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBA IC02MTAsMjQgKzYxMCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fc2hhZG93X2NvbnRy b2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9CiAKLXN0YXRp YyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9wY2lfaW50eF9sZXZlbChYU01fREVGQVVMVF9B Ukcgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJ Vik7Ci0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFp biwgZCk7Ci19Ci0KLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9pc2FfaXJxX2xl dmVsKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9BU1NFUlRf QUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlv biwgY3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQotc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9o dm1fc2V0X3BjaV9saW5rX3JvdXRlKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQot ewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2Rl ZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQogc3RhdGljIFhT TV9JTkxJTkUgaW50IHhzbV9odm1faW5qZWN0X21zaShYU01fREVGQVVMVF9BUkcgc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5kZXgg YjU4NDVhMi4uMmU0YTNjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBi L3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTYyLDkgKzE2Miw2IEBAIHN0cnVjdCB4c21fb3Bl cmF0aW9ucyB7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGludCAoKmRvX21jYSkgKHZvaWQpOwog ICAgIGludCAoKnNoYWRvd19jb250cm9sKSAoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3Ap OwotICAgIGludCAoKmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwpIChzdHJ1Y3QgZG9tYWluICpkKTsK LSAgICBpbnQgKCpodm1fc2V0X2lzYV9pcnFfbGV2ZWwpIChzdHJ1Y3QgZG9tYWluICpkKTsKLSAg ICBpbnQgKCpodm1fc2V0X3BjaV9saW5rX3JvdXRlKSAoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAg aW50ICgqaHZtX2luamVjdF9tc2kpIChzdHJ1Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCptZW1f c2hhcmluZ19vcCkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3Ap OwogICAgIGludCAoKmFwaWMpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKTsKQEAgLTYzNSwy MSArNjMyLDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3NoYWRvd19jb250cm9sICh4c21fZGVm YXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMKICAgICByZXR1cm4geHNtX29wcy0+ c2hhZG93X2NvbnRyb2woZCwgb3ApOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX3Nl dF9wY2lfaW50eF9sZXZlbCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCi17 Ci0gICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwoZCk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgKHhzbV9kZWZhdWx0X3Qg ZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1fc2V0X2lz YV9pcnFfbGV2ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fc2V0X3BjaV9s aW5rX3JvdXRlICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBy ZXR1cm4geHNtX29wcy0+aHZtX3NldF9wY2lfbGlua19yb3V0ZShkKTsKLX0KLQogc3RhdGljIGlu bGluZSBpbnQgeHNtX2h2bV9pbmplY3RfbXNpICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICByZXR1cm4geHNtX29wcy0+aHZtX2luamVjdF9tc2koZCk7CmRpZmYg LS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMKaW5kZXggZDU0NGVjMS4u ZjE1NjhkZCAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBiL3hlbi94c20vZHVtbXku YwpAQCAtMTQ1LDkgKzE0NSw2IEBAIHZvaWQgX19pbml0IHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4 c21fb3BlcmF0aW9ucyAqb3BzKQogI2lmZGVmIENPTkZJR19YODYKICAgICBzZXRfdG9fZHVtbXlf aWZfbnVsbChvcHMsIGRvX21jYSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaGFk b3dfY29udHJvbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBodm1fc2V0X3BjaV9p bnR4X2xldmVsKTsKLSAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9zZXRfaXNhX2ly cV9sZXZlbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBodm1fc2V0X3BjaV9saW5r X3JvdXRlKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9pbmplY3RfbXNpKTsK ICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5nX29wKTsKICAgICBzZXRf dG9fZHVtbXlfaWZfbnVsbChvcHMsIGFwaWMpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9o b29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGE0MjcyZDcuLjY4NWNiZmEgMTAw NjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKQEAgLTE1MDIsMjEgKzE1MDIsNiBAQCBzdGF0aWMgaW50IGZsYXNrX2lvcG9ydF9tYXBwaW5n KHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBlbmQsCiAgICAgcmV0 dXJuIGZsYXNrX2lvcG9ydF9wZXJtaXNzaW9uKGQsIHN0YXJ0LCBlbmQsIGFjY2Vzcyk7CiB9CiAK LXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9wY2lfaW50eF9sZXZlbChzdHJ1Y3QgZG9tYWluICpk KQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19Q Q0lMRVZFTCk7Ci19Ci0KLXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9pc2FfaXJxX2xldmVsKHN0 cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xB U1NfSFZNLCBIVk1fX0lSUUxFVkVMKTsKLX0KLQotc3RhdGljIGludCBmbGFza19odm1fc2V0X3Bj aV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFz X3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1BDSVJPVVRFKTsKLX0KLQogc3RhdGljIGludCBm bGFza19odm1faW5qZWN0X21zaShzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHJldHVybiBjdXJy ZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19TRU5EX0lSUSk7CmRpZmYgLS1naXQg YS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9s aWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDQ3Y2U1ODkuLjJmMGVkMmQgMTAwNjQ0Ci0tLSBhL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9s aWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNTksMTIgKzI1OSw2IEBAIGNsYXNzIGh2bQogICAgIHNl dHBhcmFtCiAjIEhWTU9QX2dldF9wYXJhbQogICAgIGdldHBhcmFtCi0jIEhWTU9QX3NldF9wY2lf aW50eF9sZXZlbCAoYWxzbyBuZWVkcyBodm1jdGwpCi0gICAgcGNpbGV2ZWwKLSMgSFZNT1Bfc2V0 X2lzYV9pcnFfbGV2ZWwKLSAgICBpcnFsZXZlbAotIyBIVk1PUF9zZXRfcGNpX2xpbmtfcm91dGUK LSAgICBwY2lyb3V0ZQogICAgIGJpbmRfaXJxCiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0 dHIKICAgICBjYWNoZWF0dHIKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==