From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Thu, 12 Jan 2017 14:58:36 +0000 Message-ID: <1484233120-2015-5-git-send-email-paul.durrant@citrix.com> References: <1484233120-2015-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 1cRgq5-0005Uo-0H for xen-devel@lists.xenproject.org; Thu, 12 Jan 2017 14:58:53 +0000 In-Reply-To: <1484233120-2015-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 eDg2L2h2bS9kbS5jCmluZGV4IGQ1MDFkNTYuLmJjZDllYTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTk5LDYgKzk5LDQ5 IEBAIHN0YXRpYyBpbnQgdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAg ICBoYXBfdHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCk7CiB9CiAKK3N0 YXRpYyBpbnQgc2V0X3BjaV9pbnR4X2xldmVsKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IGRv bWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90 IGRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW50eCwgdWlu dDhfdCBsZXZlbCkKK3sKKyAgICBpZiAoIGRvbWFpbiAhPSAwIHx8IGJ1cyAhPSAwIHx8IGRldmlj ZSA+IDB4MWYgfHwgaW50eCA+IDMgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHN3 aXRjaCAoIGxldmVsICkKKyAgICB7CisgICAgY2FzZSAwOgorICAgICAgICBodm1fcGNpX2ludHhf ZGVhc3NlcnQoZCwgZGV2aWNlLCBpbnR4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgor ICAgICAgICBodm1fcGNpX2ludHhfYXNzZXJ0KGQsIGRldmljZSwgaW50eCk7CisgICAgICAgIGJy ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAg IHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNldF9pc2FfaXJxX2xldmVsKHN0cnVjdCBkb21h aW4gKmQsIHVpbnQ4X3QgaXNhX2lycSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBsZXZlbCkKK3sKKyAgICBpZiAoIGlzYV9pcnEgPiAxNSApCisgICAgICAgIHJldHVybiAt RUlOVkFMOworCisgICAgc3dpdGNoICggbGV2ZWwgKQorICAgIHsKKyAgICBjYXNlIDA6CisgICAg ICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIGlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAg ICBjYXNlIDE6CisgICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBpc2FfaXJxKTsKKyAgICAg ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQor CisgICAgcmV0dXJuIDA7Cit9CisKIGxvbmcgZG9fZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90KSBidWZzKQpAQCAtMjI3LDYgKzI3MCwzNSBAQCBs b25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAg IGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgorICAgIHsKKyAgICAgICAgY29uc3Qg c3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgKmRhdGEgPQorICAgICAgICAgICAg Jm9wLnUuc2V0X3BjaV9pbnR4X2xldmVsOworCisgICAgICAgIHJjID0gc2V0X3BjaV9pbnR4X2xl dmVsKGQsIGRhdGEtPmRvbWFpbiwgZGF0YS0+YnVzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLT5kZXZpY2UsIGRhdGEtPmludHgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEtPmxldmVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2Fz ZSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZlbDoKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVj dCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUu c2V0X2lzYV9pcnFfbGV2ZWw7CisKKyAgICAgICAgcmMgPSBzZXRfaXNhX2lycV9sZXZlbChkLCBk YXRhLT5pc2FfaXJxLCBkYXRhLT5sZXZlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg IGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgorICAgIHsKKyAgICAgICAgY29uc3Qg c3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgKmRhdGEgPQorICAgICAgICAgICAg Jm9wLnUuc2V0X3BjaV9saW5rX3JvdXRlOworCisgICAgICAgIHJjID0gaHZtX3NldF9wY2lfbGlu a19yb3V0ZShkLCBkYXRhLT5saW5rLCBkYXRhLT5pc2FfaXJxKTsKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAg YnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwppbmRleCA4MGQxYWQ2Li4zMGQ1ZDcyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ0MjcsNTAgKzQ0 MjcsNiBAQCB2b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQsCiAgICAgaHZtX2Z1bmNzLmluaXRfaHlwZXJjYWxsX3BhZ2UoZCwgaHlwZXJjYWxsX3BhZ2Up OwogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICBYRU5fR1VF U1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpIHVvcCkKLXsKLSAg ICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFp biAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwg MSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9wLmRvbWFpbiA+IDAp IHx8IChvcC5idXMgPiAwKSB8fCAob3AuZGV2aWNlID4gMzEpIHx8IChvcC5pbnR4ID4gMykgKQot ICAgICAgICByZXR1cm4gLUVJTlZBTDsKLQotICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFp bl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHJldHVy biByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkK LSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1fc2V0X3BjaV9pbnR4X2xldmVs KFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAg ICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0g ICAgICAgIGh2bV9wY2lfaW50eF9kZWFzc2VydChkLCBvcC5kZXZpY2UsIG9wLmludHgpOwotICAg ICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9hc3NlcnQoZCwg b3AuZGV2aWNlLCBvcC5pbnR4KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg ICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1 X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCiB2b2lkIGh2bV92Y3B1X3Jl c2V0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2LCB1aW50MTZfdCBjcywgdWludDE2X3QgaXApCiB7CiAg ICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKQEAgLTQ2MTQsODMgKzQ1NzAsNiBAQCBz dGF0aWMgdm9pZCBodm1fczNfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQogCi1z dGF0aWMgaW50IGh2bW9wX3NldF9pc2FfaXJxX2xldmVsKAotICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbF90KSB1b3ApCi17Ci0gICAgc3RydWN0IHhl bl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBp bnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAg ICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggb3AuaXNhX2lycSA+IDE1ICkKLSAgICAgICAg cmV0dXJuIC1FSU5WQUw7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQo b3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0K LSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAg IGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX3NldF9pc2FfaXJxX2xldmVsKFhTTV9ETV9Q UklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7 Ci0gICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2 bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIG9wLmlzYV9pcnEpOwotICAgICAgICBicmVhazsKLSAgICBj YXNlIDE6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBvcC5pc2FfaXJxKTsKLSAgICAg ICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBi cmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0 dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IGh2bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpIHVvcCkK LXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgb3A7Ci0gICAgc3RydWN0 IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3As IHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9wLmxpbmsg PiAzKSB8fCAob3AuaXNhX2lycSA+IDE1KSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0g ICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAg aWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwot ICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJj ID0geHNtX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUoWFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICgg cmMgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gMDsKLSAgICBodm1fc2V0X3BjaV9s aW5rX3JvdXRlKGQsIG9wLmxpbmssIG9wLmlzYV9pcnEpOwotCi0gb3V0OgotICAgIHJjdV91bmxv Y2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGludCBodm1vcF9pbmpl Y3RfbXNpKAogICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9pbmplY3RfbXNpX3Qp IHVvcCkKIHsKQEAgLTU0OTIsMjYgKzUzNzEsMTEgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQg bG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgICAgICBn dWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fcGFyYW1fdCkpOwogICAgICAgICBicmVhazsK IAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgotICAgICAgICByYyA9IGh2bW9w X3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywg eGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNh c2UgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X2lzYV9p cnFfbGV2ZWwoCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0 X2lzYV9pcnFfbGV2ZWxfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfaW5q ZWN0X21zaToKICAgICAgICAgcmMgPSBodm1vcF9pbmplY3RfbXNpKAogICAgICAgICAgICAgZ3Vl c3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2luamVjdF9tc2lfdCkpOwogICAgICAgICBicmVh azsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgotICAgICAgICByYyA9IGh2 bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFy ZywgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdCkpOwotICAgICAgICBicmVhazsKLQogICAg IGNhc2UgSFZNT1BfZmx1c2hfdGxiczoKICAgICAgICAgcmMgPSBndWVzdF9oYW5kbGVfaXNfbnVs bChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsKICAgICAgICAgYnJlYWs7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9p cnEuYwppbmRleCBlNTk3MTE0Li4yNjVhNjIwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMKQEAgLTIyOSwxMyArMjI5LDE0IEBA IHZvaWQgaHZtX2Fzc2VydF9ldnRjaG5faXJxKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBodm1f c2V0X2NhbGxiYWNrX2lycV9sZXZlbCh2KTsKIH0KIAotdm9pZCBodm1fc2V0X3BjaV9saW5rX3Jv dXRlKHN0cnVjdCBkb21haW4gKmQsIHU4IGxpbmssIHU4IGlzYV9pcnEpCitpbnQgaHZtX3NldF9w Y2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogewog ICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CiAg ICAgdTggb2xkX2lzYV9pcnE7CiAgICAgaW50IGk7CiAKLSAgICBBU1NFUlQoKGxpbmsgPD0gMykg JiYgKGlzYV9pcnEgPD0gMTUpKTsKKyAgICBpZiAoIChsaW5rID4gMykgfHwgKGlzYV9pcnEgPiAx NSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIHNwaW5fbG9jaygmZC0+YXJjaC5o dm1fZG9tYWluLmlycV9sb2NrKTsKIApAQCAtMjczLDYgKzI3NCw4IEBAIHZvaWQgaHZtX3NldF9w Y2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogCiAg ICAgZHByaW50ayhYRU5MT0dfR19JTkZPLCAiRG9tJXUgUENJIGxpbmsgJXUgY2hhbmdlZCAldSAt PiAldVxuIiwKICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgbGluaywgb2xkX2lzYV9pcnEsIGlz YV9pcnEpOworCisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBodm1faW5qZWN0X21zaShzdHJ1Y3Qg ZG9tYWluICpkLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBkYXRhKQpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9v cC5oCmluZGV4IGZiOWNmMTcuLjk3NDM0NTMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTE5 MSw2ICsxOTEsNDUgQEAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtIHsKICAgICB1 aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNp X2ludHhfbGV2ZWw6IFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncwor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kgSU5UeCBwaW5zLgorICovCisjZGVm aW5lIFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZlbCA4CisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0 X3BjaV9pbnR4X2xldmVsIHsKKyAgICAvKiBJTiAtIFBDSSBJTlR4IGlkZW50aWZpY2F0aW9uIChk b21haW46YnVzOmRldmljZTppbnR4KSAqLworICAgIHVpbnQxNl90IGRvbWFpbjsKKyAgICB1aW50 OF90IGJ1cywgZGV2aWNlLCBpbnR4OworICAgIC8qIElOIC0gTGV2ZWw6IDAgLT4gZGVhc3NlcnRl ZCwgMSAtPiBhc3NlcnRlZCAqLworICAgIHVpbnQ4X3QgIGxldmVsOworfTsKKworLyoKKyAqIFhF Tl9ETU9QX3NldF9pc2FfaXJxX2xldmVsOiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2YgYSBvbmUg b2YgYSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTQSBJUlEgbGlu ZXMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwgOQorCitzdHJ1Y3Qg eGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHsKKyAgICAvKiBJTiAtIElTQSBJUlEgKDAtMTUp ICovCisgICAgdWludDhfdCAgaXNhX2lycTsKKyAgICAvKiBJTiAtIExldmVsOiAwIC0+IGRlYXNz ZXJ0ZWQsIDEgLT4gYXNzZXJ0ZWQgKi8KKyAgICB1aW50OF90ICBsZXZlbDsKK307CisKKy8qCisg KiBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU6IE1hcCBhIFBDSSBJTlR4IGxpbmUgdG8gYW4g SVJRIGxpbmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlIDEwCisK K3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlIHsKKyAgICAvKiBQQ0kgSU5UeCBs aW5lICgwLTMpICovCisgICAgdWludDhfdCAgbGluazsKKyAgICAvKiBJU0EgSVJRICgxLTE1KSBv ciAwIC0+IGRpc2FibGUgbGluayAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7Cit9OworCiBzdHJ1 Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBAIC0y MDIsNiArMjQxLDkgQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1f b3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSBzZXRfaW9yZXFfc2VydmVyX3N0YXRlOwogICAgICAg ICBzdHJ1Y3QgeGVuX2RtX29wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIGRlc3Ryb3lfaW9yZXFfc2Vy dmVyOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gdHJhY2tfZGly dHlfdnJhbTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgc2V0 X3BjaV9pbnR4X2xldmVsOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xl dmVsIHNldF9pc2FfaXJxX2xldmVsOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lf bGlua19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vaHZtX29wLmgKaW5kZXggNDdlODM2Yy4uN2NmOGQ0ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9v cC5oCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHsKIHR5cGVkZWYgc3Ry dWN0IHhlbl9odm1fcGFyYW0geGVuX2h2bV9wYXJhbV90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUoeGVuX2h2bV9wYXJhbV90KTsKIAorI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAw eDAwMDQwOTAwCisKIC8qIFNldCB0aGUgbG9naWNhbCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4n cyBQQ0kgSU5UeCB3aXJlcy4gKi8KICNkZWZpbmUgSFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsICAy CiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgewpAQCAtNzYsNiArNzgsOCBAQCBz dHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2 bV9zZXRfcGNpX2xpbmtfcm91dGUgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdDsKIERFRklO RV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpOwogCisjZW5k aWYgLyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAgKi8KKwogLyogRmx1 c2hlcyBhbGwgVkNQVSBUTEJzOiBAYXJnIG11c3QgYmUgTlVMTC4gKi8KICNkZWZpbmUgSFZNT1Bf Zmx1c2hfdGxicyAgICAgICAgICA1CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94 ZW4tY29tcGF0LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLWNvbXBhdC5oCmluZGV4IGRkOGE1 YzAuLmI2NzM2NTMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmgK KysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi1jb21wYXQuaApAQCAtMjcsNyArMjcsNyBAQAog I2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KICNkZWZpbmUgX19YRU5fUFVCTElD X1hFTl9DT01QQVRfSF9fCiAKLSNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9O X18gMHgwMDA0MDgwMAorI2RlZmluZSBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyAw eDAwMDQwOTAwCiAKICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNf XykKIC8qIFhlbiBpcyBidWlsdCB3aXRoIG1hdGNoaW5nIGhlYWRlcnMgYW5kIGltcGxlbWVudHMg dGhlIGxhdGVzdCBpbnRlcmZhY2UuICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaHZt L2lycS5oIGIveGVuL2luY2x1ZGUveGVuL2h2bS9pcnEuaAppbmRleCA0YzljYjIwLi5kM2Y4NjIz IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oCisrKyBiL3hlbi9pbmNsdWRl L3hlbi9odm0vaXJxLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIGh2bV9pc2FfaXJxX2Fzc2Vy dCgKIHZvaWQgaHZtX2lzYV9pcnFfZGVhc3NlcnQoCiAgICAgc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgaW50IGlzYV9pcnEpOwogCi12b2lkIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0 IGRvbWFpbiAqZCwgdTggbGluaywgdTggaXNhX2lycSk7CitpbnQgaHZtX3NldF9wY2lfbGlua19y b3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKTsKIAogaW50IGh2bV9p bmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IGRhdGEp OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hz bS9kdW1teS5oCmluZGV4IDlmN2MxNzQuLmQzZGU0YjcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBAIC02MTAsMjQgKzYx MCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fc2hhZG93X2NvbnRyb2woWFNNX0RFRkFV TFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2Fj dGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5F IGludCB4c21faHZtX3NldF9wY2lfaW50eF9sZXZlbChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRv bWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci19Ci0K LXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9pc2FfaXJxX2xldmVsKFhTTV9ERUZB VUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9E TV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ ZG9tYWluLCBkKTsKLX0KLQotc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9odm1fc2V0X3BjaV9s aW5rX3JvdXRlKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9B U1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50 IHhzbV9odm1faW5qZWN0X21zaShYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5kZXggYjU4NDVhMi4uMmU0 YTNjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS94c20uaApAQCAtMTYyLDkgKzE2Miw2IEBAIHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAj aWZkZWYgQ09ORklHX1g4NgogICAgIGludCAoKmRvX21jYSkgKHZvaWQpOwogICAgIGludCAoKnNo YWRvd19jb250cm9sKSAoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3ApOwotICAgIGludCAo Kmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwpIChzdHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgKCpo dm1fc2V0X2lzYV9pcnFfbGV2ZWwpIChzdHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgKCpodm1f c2V0X3BjaV9saW5rX3JvdXRlKSAoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX2lu amVjdF9tc2kpIChzdHJ1Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCptZW1fc2hhcmluZ19vcCkg KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApOwogICAgIGludCAo KmFwaWMpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKTsKQEAgLTYzNSwyMSArNjMyLDYgQEAg c3RhdGljIGlubGluZSBpbnQgeHNtX3NoYWRvd19jb250cm9sICh4c21fZGVmYXVsdF90IGRlZiwg c3RydWN0IGRvbWFpbiAqZCwgdWludDMKICAgICByZXR1cm4geHNtX29wcy0+c2hhZG93X2NvbnRy b2woZCwgb3ApOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX3NldF9wY2lfaW50eF9s ZXZlbCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJu IHhzbV9vcHMtPmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg aW50IHhzbV9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3Qg ZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1fc2V0X2lzYV9pcnFfbGV2ZWwo ZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fc2V0X3BjaV9saW5rX3JvdXRlICh4 c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICByZXR1cm4geHNtX29w cy0+aHZtX3NldF9wY2lfbGlua19yb3V0ZShkKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgeHNt X2h2bV9pbmplY3RfbXNpICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICByZXR1cm4geHNtX29wcy0+aHZtX2luamVjdF9tc2koZCk7CmRpZmYgLS1naXQgYS94ZW4v eHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMKaW5kZXggZDU0NGVjMS4uZjE1NjhkZCAxMDA2 NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTQ1LDkg KzE0NSw2IEBAIHZvaWQgX19pbml0IHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9u cyAqb3BzKQogI2lmZGVmIENPTkZJR19YODYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMs IGRvX21jYSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaGFkb3dfY29udHJvbCk7 Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBodm1fc2V0X3BjaV9pbnR4X2xldmVsKTsK LSAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9zZXRfaXNhX2lycV9sZXZlbCk7Ci0g ICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKTsKICAg ICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9pbmplY3RfbXNpKTsKICAgICBzZXRfdG9f ZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5nX29wKTsKICAgICBzZXRfdG9fZHVtbXlfaWZf bnVsbChvcHMsIGFwaWMpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVu L3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGE0MjcyZDcuLjY4NWNiZmEgMTAwNjQ0Ci0tLSBhL3hl bi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE1MDIs MjEgKzE1MDIsNiBAQCBzdGF0aWMgaW50IGZsYXNrX2lvcG9ydF9tYXBwaW5nKHN0cnVjdCBkb21h aW4gKmQsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBlbmQsCiAgICAgcmV0dXJuIGZsYXNrX2lv cG9ydF9wZXJtaXNzaW9uKGQsIHN0YXJ0LCBlbmQsIGFjY2Vzcyk7CiB9CiAKLXN0YXRpYyBpbnQg Zmxhc2tfaHZtX3NldF9wY2lfaW50eF9sZXZlbChzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJl dHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19QQ0lMRVZFTCk7Ci19 Ci0KLXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9pc2FfaXJxX2xldmVsKHN0cnVjdCBkb21haW4g KmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1f X0lSUUxFVkVMKTsKLX0KLQotc3RhdGljIGludCBmbGFza19odm1fc2V0X3BjaV9saW5rX3JvdXRl KHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VD Q0xBU1NfSFZNLCBIVk1fX1BDSVJPVVRFKTsKLX0KLQogc3RhdGljIGludCBmbGFza19odm1faW5q ZWN0X21zaShzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJt KGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19TRU5EX0lSUSk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzCmluZGV4IDQ3Y2U1ODkuLjJmMGVkMmQgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2sv cG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzCkBAIC0yNTksMTIgKzI1OSw2IEBAIGNsYXNzIGh2bQogICAgIHNldHBhcmFtCiAjIEhW TU9QX2dldF9wYXJhbQogICAgIGdldHBhcmFtCi0jIEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAo YWxzbyBuZWVkcyBodm1jdGwpCi0gICAgcGNpbGV2ZWwKLSMgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2 ZWwKLSAgICBpcnFsZXZlbAotIyBIVk1PUF9zZXRfcGNpX2xpbmtfcm91dGUKLSAgICBwY2lyb3V0 ZQogICAgIGJpbmRfaXJxCiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNo ZWF0dHIKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==