From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Mon, 23 Jan 2017 13:59:45 +0000 Message-ID: <1485179989-1763-5-git-send-email-paul.durrant@citrix.com> References: <1485179989-1763-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVfA3-0006ue-OE for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 13:59:55 +0000 In-Reply-To: <1485179989-1763-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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Li4uIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZQoKVGhlc2UgSFZNT1BzIHdlcmUgZXhwb3NlZCB0 byBndWVzdHMgc28gdGhlaXIgZGVmaW5pdGlvbnMgbmVlZCB0byBiZQpwcmVzZXJ2ZWQgZm9yIGNv bXBhdGliaWxpdHkuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlIHVwZGF0ZXMKX19YRU5fTEFURVNUX0lO VEVSRkFDRV9WRVJTSU9OX18gdG8gMHgwMDA0MDkwMCBhbmQgbWFrZXMgdGhlIEhWTU9QCmRlZmlu dGlvbnMgY29uZGl0aW9uYWwgb24gX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBsZXNzIHRoYW4g dGhhdCB2YWx1ZS4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyB3aWRlbnMgdGhlICdkb21haW4nIHBh cmFtZXRlciBvZgogICAgICB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKCkgZnJvbSBhIHVpbnQ4 X3QgdG8gYSB1aW50MTZfdC4KClN1Z2dlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1i eTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQWNrZWQtYnk6IERhbmllbCBEZSBHcmFh ZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KCnYzOgotIFJlbW92ZSB1bm5lY2Vzc2FyeSBwYWRkaW5nLgoKdjI6Ci0g SW50ZXJmYWNlIHZlcnNpb24gbW9kaWZpY2F0aW9uIG1vdmVkIHRvIHRoaXMgcGF0Y2gsIHdoZXJl IGl0IGlzIG5lZWRlZC4KLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0t CiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgICB8ICAgOCArLS0KIHRvb2xzL2xp YnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgICAyICstCiB0b29scy9saWJ4Yy94Y19taXNj LmMgICAgICAgICAgICAgICB8ICA4MyArKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94 ODYvaHZtL2RtLmMgICAgICAgICAgICAgICB8ICA3MiArKysrKysrKysrKysrKysrKysrCiB4ZW4v YXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8IDEzNiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMgICAgICAgICAgICAgIHwg ICA3ICstCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8ICA0MiArKysrKysr KysrKwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAgIDQgKysKIHhlbi9p bmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmggICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS94ZW4v aHZtL2lycS5oICAgICAgICAgICB8ICAgMiArLQogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAg ICAgICAgICAgfCAgMTggLS0tLS0KIHhlbi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAg IHwgIDE4IC0tLS0tCiB4ZW4veHNtL2R1bW15LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyAt CiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8ICAxNSAtLS0tCiB4ZW4veHNt L2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAgNiAtLQogMTUgZmlsZXMgY2hhbmdlZCwg MTU4IGluc2VydGlvbnMoKyksIDI2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94 ZW4uaWYKaW5kZXggNDVlNWI1Zi4uMDkyYTZjNSAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9s aWN5L21vZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZgpAQCAtNTcsOCArNTcsOCBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCWFs bG93ICQxICQyOnNoYWRvdyBlbmFibGU7CiAJYWxsb3cgJDEgJDI6bW11IHsgbWFwX3JlYWQgbWFw X3dyaXRlIGFkanVzdCBtZW1vcnltYXAgcGh5c21hcCBwaW5wYWdlIG1tdWV4dF9vcCB1cGRhdGVt cCB9OwogCWFsbG93ICQxICQyOmdyYW50IHNldHVwOwotCWFsbG93ICQxICQyOmh2bSB7IGNhY2hl YXR0ciBnZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgc2V0aHZtYwotCQkJc2V0cGFy YW0gcGNpbGV2ZWwgbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3Agc2VuZF9pcnEgfTsKKwlh bGxvdyAkMSAkMjpodm0geyBjYWNoZWF0dHIgZ2V0cGFyYW0gaHZtY3RsIHNldGh2bWMKKwkJCXNl dHBhcmFtIG5lc3RlZCBhbHRwMm1odm0gYWx0cDJtaHZtX29wIHNlbmRfaXJxIH07CiAnKQogCiAj IGNyZWF0ZV9kb21haW4ocHJpdiwgdGFyZ2V0KQpAQCAtOTMsNyArOTMsNyBAQCBkZWZpbmUoYG1h bmFnZV9kb21haW4nLCBgCiAjICAgKGluYm91bmQgbWlncmF0aW9uIGlzIHRoZSBzYW1lIGFzIGRv bWFpbiBjcmVhdGlvbikKIGRlZmluZShgbWlncmF0ZV9kb21haW5fb3V0JywgYAogCWFsbG93ICQx IGRvbXhlbl90Om1tdSBtYXBfcmVhZDsKLQlhbGxvdyAkMSAkMjpodm0geyBnZXRodm1jIGdldHBh cmFtIGlycWxldmVsIH07CisJYWxsb3cgJDEgJDI6aHZtIHsgZ2V0aHZtYyBnZXRwYXJhbSB9Owog CWFsbG93ICQxICQyOm1tdSB7IHN0YXQgcGFnZWluZm8gbWFwX3JlYWQgfTsKIAlhbGxvdyAkMSAk Mjpkb21haW4geyBnZXRhZGRyc2l6ZSBnZXR2Y3B1Y29udGV4dCBwYXVzZSBkZXN0cm95IH07CiAJ YWxsb3cgJDEgJDI6ZG9tYWluMiBnZXR0c2M7CkBAIC0xNTEsNyArMTUxLDcgQEAgZGVmaW5lKGBk ZXZpY2VfbW9kZWwnLCBgCiAKIAlhbGxvdyAkMSAkMl90YXJnZXQ6ZG9tYWluIHsgZ2V0ZG9tYWlu aW5mbyBzaHV0ZG93biB9OwogCWFsbG93ICQxICQyX3RhcmdldDptbXUgeyBtYXBfcmVhZCBtYXBf d3JpdGUgYWRqdXN0IHBoeXNtYXAgdGFyZ2V0X2hhY2sgfTsKLQlhbGxvdyAkMSAkMl90YXJnZXQ6 aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0gaHZtY3RsIGlycWxldmVsIHBjaXJvdXRlIHBjaWxldmVs IGNhY2hlYXR0ciBzZW5kX2lycSBkbSB9OworCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRw YXJhbSBzZXRwYXJhbSBodm1jdGwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CiAnKQogCiAjIG1h a2VfZGV2aWNlX21vZGVsKHByaXYsIGRtX2RvbSwgaHZtX2RvbSkKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgK aW5kZXggMGNmMWI0OC4uNmFiN2UyMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAgLTE1OTQsNyAr MTU5NCw3IEBAIGludCB4Y19waHlzZGV2X3VubWFwX3BpcnEoeGNfaW50ZXJmYWNlICp4Y2gsCiAK IGludCB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLCBk b21pZF90IGRvbSwKLSAgICB1aW50OF90IGRvbWFpbiwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2 aWNlLCB1aW50OF90IGludHgsCisgICAgdWludDE2X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWlu dDhfdCBkZXZpY2UsIHVpbnQ4X3QgaW50eCwKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwpOwogaW50 IHhjX2h2bV9zZXRfaXNhX2lycV9sZXZlbCgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb20sCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94 Y19taXNjLmMKaW5kZXggNGM0MWQ0MS4uZGRlYTJiYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMv eGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNDcwLDMzICs0NzAsMjQg QEAgaW50IHhjX2dldGNwdWluZm8oeGNfaW50ZXJmYWNlICp4Y2gsIGludCBtYXhfY3B1cywKIAog aW50IHhjX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwoCiAgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRv bWlkX3QgZG9tLAotICAgIHVpbnQ4X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZp Y2UsIHVpbnQ4X3QgaW50eCwKKyAgICB1aW50MTZfdCBkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50 OF90IGRldmljZSwgdWludDhfdCBpbnR4LAogICAgIHVuc2lnbmVkIGludCBsZXZlbCkKIHsKLSAg ICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xl dmVsLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJf YWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0g ICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHhjX2h2 bV9zZXRfcGNpX2ludHhfbGV2ZWwgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg ICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9w Y2lfaW50eF9sZXZlbCAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgID0gZG9tOwotICAgIGFyZy0+ ZG9tYWluID0gZG9tYWluOwotICAgIGFyZy0+YnVzICAgID0gYnVzOwotICAgIGFyZy0+ZGV2aWNl ID0gZGV2aWNlOwotICAgIGFyZy0+aW50eCAgID0gaW50eDsKLSAgICBhcmctPmxldmVsICA9IGxl dmVsOworICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxs Mih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZN T1Bfc2V0X3BjaV9pbnR4X2xldmVsLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZF Ul9BU19BUkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw7 CisgICAgZGF0YSA9ICZvcC51LnNldF9wY2lfaW50eF9sZXZlbDsKIAotICAgIHhjX2h5cGVyY2Fs bF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+ZG9tYWluID0gZG9tYWluOworICAg IGRhdGEtPmJ1cyA9IGJ1czsKKyAgICBkYXRhLT5kZXZpY2UgPSBkZXZpY2U7CisgICAgZGF0YS0+ aW50eCA9IGludHg7CisgICAgZGF0YS0+bGV2ZWwgPSBsZXZlbDsKIAotICAgIHJldHVybiByYzsK KyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAK IGludCB4Y19odm1fc2V0X2lzYV9pcnFfbGV2ZWwoCkBAIC01MDQsNTMgKzQ5NSwzNSBAQCBpbnQg eGNfaHZtX3NldF9pc2FfaXJxX2xldmVsKAogICAgIHVpbnQ4X3QgaXNhX2lycSwKICAgICB1bnNp Z25lZCBpbnQgbGV2ZWwpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4 ZW5faHZtX3NldF9pc2FfaXJxX2xldmVsLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9 IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAg aWYgKCBhcmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxv Y2F0ZSBtZW1vcnkgZm9yIHhjX2h2bV9zZXRfaXNhX2lycV9sZXZlbCBoeXBlcmNhbGwiKTsKLSAg ICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlk ICAgPSBkb207Ci0gICAgYXJnLT5pc2FfaXJxID0gaXNhX2lycTsKLSAgICBhcmctPmxldmVsICAg PSBsZXZlbDsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVu Y2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAg IEhWTU9QX3NldF9pc2FfaXJxX2xldmVsLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JV RkZFUl9BU19BUkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZl bDsKKyAgICBkYXRhID0gJm9wLnUuc2V0X2lzYV9pcnFfbGV2ZWw7CiAKLSAgICB4Y19oeXBlcmNh bGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPmlzYV9pcnEgPSBpc2FfaXJxOwor ICAgIGRhdGEtPmxldmVsID0gbGV2ZWw7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRv X2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX3Nl dF9wY2lfbGlua19yb3V0ZSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVp bnQ4X3QgbGluaywgdWludDhfdCBpc2FfaXJxKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JV RkZFUihzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUsIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0ZSBo eXBlcmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2Rt X29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlICpkYXRhOwog Ci0gICAgYXJnLT5kb21pZCAgID0gZG9tOwotICAgIGFyZy0+bGluayAgICA9IGxpbms7Ci0gICAg YXJnLT5pc2FfaXJxID0gaXNhX2lycTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsK IAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAg ICAgICAgICAgICAgICAgIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZSwKLSAgICAgICAgICAgICAg ICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1Bf c2V0X3BjaV9saW5rX3JvdXRlOworICAgIGRhdGEgPSAmb3AudS5zZXRfcGNpX2xpbmtfcm91dGU7 CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPmxp bmsgPSBsaW5rOworICAgIGRhdGEtPmlzYV9pcnEgPSBpc2FfaXJxOwogCi0gICAgcmV0dXJuIHJj OworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0K IAogaW50IHhjX2h2bV9pbmplY3RfbXNpKApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9k bS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IGIwOTA4ZjQuLmQ4NDc4OTIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMK QEAgLTY0LDYgKzY0LDQ5IEBAIHN0YXRpYyBpbnQgdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9t YWluICpkLCB4ZW5fcGZuX3QgZmlyc3RfcGZuLAogICAgICAgICBoYXBfdHJhY2tfZGlydHlfdnJh bShkLCBmaXJzdF9wZm4sIG5yLCBidWYtPmgpOwogfQogCitzdGF0aWMgaW50IHNldF9wY2lfaW50 eF9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MTZfdCBkb21haW4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90IGludHgsIHVpbnQ4X3QgbGV2ZWwpCit7CisgICAg aWYgKCBkb21haW4gIT0gMCB8fCBidXMgIT0gMCB8fCBkZXZpY2UgPiAweDFmIHx8IGludHggPiAz ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBzd2l0Y2ggKCBsZXZlbCApCisgICAg eworICAgIGNhc2UgMDoKKyAgICAgICAgaHZtX3BjaV9pbnR4X2RlYXNzZXJ0KGQsIGRldmljZSwg aW50eCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgaHZtX3BjaV9pbnR4 X2Fzc2VydChkLCBkZXZpY2UsIGludHgpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor ICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBzZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGlzYV9p cnEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgbGV2ZWwpCit7CisgICAg aWYgKCBpc2FfaXJxID4gMTUgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHN3aXRj aCAoIGxldmVsICkKKyAgICB7CisgICAgY2FzZSAwOgorICAgICAgICBodm1faXNhX2lycV9kZWFz c2VydChkLCBpc2FfaXJxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAgICBo dm1faXNhX2lycV9hc3NlcnQoZCwgaXNhX2lycSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1 bHQ6CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiAwOworfQor CiBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBucl9idWZzLAogICAgICAgICAgICAgICAgICB4ZW5fZG1fb3BfYnVmX3QgYnVmc1td KQpAQCAtMjAxLDYgKzI0NCwzNSBAQCBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAg ICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9pbnR4X2xl dmVsOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhf bGV2ZWwgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X3BjaV9pbnR4X2xldmVsOworCisg ICAgICAgIHJjID0gc2V0X3BjaV9pbnR4X2xldmVsKGQsIGRhdGEtPmRvbWFpbiwgZGF0YS0+YnVz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5kZXZpY2UsIGRhdGEtPmlu dHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmxldmVsKTsKKyAgICAg ICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBYRU5fRE1PUF9zZXRfaXNhX2lycV9sZXZlbDoK KyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwg KmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X2lzYV9pcnFfbGV2ZWw7CisKKyAgICAgICAg cmMgPSBzZXRfaXNhX2lycV9sZXZlbChkLCBkYXRhLT5pc2FfaXJxLCBkYXRhLT5sZXZlbCk7Cisg ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3Jv dXRlOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtf cm91dGUgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X3BjaV9saW5rX3JvdXRlOworCisg ICAgICAgIHJjID0gaHZtX3NldF9wY2lfbGlua19yb3V0ZShkLCBkYXRhLT5saW5rLCBkYXRhLT5p c2FfaXJxKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAg cmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA4ZmU5ZTZhLi4zOGEy YTQ2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMKQEAgLTQwNDUsNTAgKzQwNDUsNiBAQCB2b2lkIGh2bV9oeXBlcmNhbGxfcGFn ZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgaHZtX2Z1bmNzLmluaXRfaHlwZXJj YWxsX3BhZ2UoZCwgaHlwZXJjYWxsX3BhZ2UpOwogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9w Y2lfaW50eF9sZXZlbCgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X3Bj aV9pbnR4X2xldmVsX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhf bGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAo IGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsK LQotICAgIGlmICggKG9wLmRvbWFpbiA+IDApIHx8IChvcC5idXMgPiAwKSB8fCAob3AuZGV2aWNl ID4gMzEpIHx8IChvcC5pbnR4ID4gMykgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKLQotICAg IHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlm ICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAg ICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9 IHhzbV9odm1fc2V0X3BjaV9pbnR4X2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJj ICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2 ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9kZWFzc2VydChk LCBvcC5kZXZpY2UsIG9wLmludHgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAg ICAgIGh2bV9wY2lfaW50eF9hc3NlcnQoZCwgb3AuZGV2aWNlLCBvcC5pbnR4KTsKLSAgICAgICAg YnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVh azsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJu IHJjOwotfQotCiB2b2lkIGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2LCB1aW50 MTZfdCBjcywgdWludDE2X3QgaXApCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFp bjsKQEAgLTQyMzIsODMgKzQxODgsNiBAQCBzdGF0aWMgdm9pZCBodm1fczNfcmVzdW1lKHN0cnVj dCBkb21haW4gKmQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9pc2FfaXJxX2xl dmVsKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZl bF90KSB1b3ApCi17Ci0gICAgc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgb3A7Ci0g ICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICgg b3AuaXNhX2lycSA+IDE1ICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICByYyA9IHJj dV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9 IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAh aXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZt X3NldF9pc2FfaXJxX2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAg ICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAg IHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIG9wLmlzYV9p cnEpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2Fz c2VydChkLCBvcC5pc2FfaXJxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg ICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1 X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IGh2bW9w X3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1f c2V0X3BjaV9saW5rX3JvdXRlX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNp X2xpbmtfcm91dGUgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAg ICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVG QVVMVDsKLQotICAgIGlmICggKG9wLmxpbmsgPiAzKSB8fCAob3AuaXNhX2lycSA+IDE1KSApCi0g ICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWlu X2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJu IHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQot ICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUo WFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICggcmMgKQotICAgICAgICBnb3RvIG91dDsKLQotICAg IHJjID0gMDsKLSAgICBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIG9wLmxpbmssIG9wLmlzYV9p cnEpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsK LX0KLQogc3RhdGljIGludCBodm1vcF9pbmplY3RfbXNpKAogICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX2h2bV9pbmplY3RfbXNpX3QpIHVvcCkKIHsKQEAgLTUxMTAsMjYgKzQ5ODksMTEg QEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh2b2lkKSBhcmcpCiAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1f cGFyYW1fdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9pbnR4 X2xldmVsOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICAgICAg ICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdCkp OwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw6Ci0g ICAgICAgIHJjID0gaHZtb3Bfc2V0X2lzYV9pcnFfbGV2ZWwoCi0gICAgICAgICAgICBndWVzdF9o YW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWxfdCkpOwotICAgICAgICBi cmVhazsKLQogICAgIGNhc2UgSFZNT1BfaW5qZWN0X21zaToKICAgICAgICAgcmMgPSBodm1vcF9p bmplY3RfbXNpKAogICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2lu amVjdF9tc2lfdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X3BjaV9s aW5rX3JvdXRlOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICAg ICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVf dCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfZmx1c2hfdGxiczoKICAgICAg ICAgcmMgPSBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgp IDogLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwppbmRleCBlNTk3MTE0Li4yNjVhNjIwIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aXJxLmMKQEAgLTIyOSwxMyArMjI5LDE0IEBAIHZvaWQgaHZtX2Fzc2VydF9ldnRjaG5faXJxKHN0 cnVjdCB2Y3B1ICp2KQogICAgICAgICBodm1fc2V0X2NhbGxiYWNrX2lycV9sZXZlbCh2KTsKIH0K IAotdm9pZCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQsIHU4IGxpbmss IHU4IGlzYV9pcnEpCitpbnQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpk LCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogewogICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0g JmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CiAgICAgdTggb2xkX2lzYV9pcnE7CiAgICAgaW50IGk7 CiAKLSAgICBBU1NFUlQoKGxpbmsgPD0gMykgJiYgKGlzYV9pcnEgPD0gMTUpKTsKKyAgICBpZiAo IChsaW5rID4gMykgfHwgKGlzYV9pcnEgPiAxNSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsK IAogICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKIApAQCAtMjcz LDYgKzI3NCw4IEBAIHZvaWQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpk LCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogCiAgICAgZHByaW50ayhYRU5MT0dfR19JTkZPLCAiRG9t JXUgUENJIGxpbmsgJXUgY2hhbmdlZCAldSAtPiAldVxuIiwKICAgICAgICAgICAgIGQtPmRvbWFp bl9pZCwgbGluaywgb2xkX2lzYV9pcnEsIGlzYV9pcnEpOworCisgICAgcmV0dXJuIDA7CiB9CiAK IGludCBodm1faW5qZWN0X21zaShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBhZGRyLCB1aW50 MzJfdCBkYXRhKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIv eGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGZlZjAxZDIuLjE3Y2I4MzAgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTE5NCw2ICsxOTQsNDUgQEAgc3RydWN0IHhlbl9kbV9v cF90cmFja19kaXJ0eV92cmFtIHsKICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07 CiAKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw6IFNldCB0aGUgbG9naWNhbCBs ZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0kgSU5UeCBwaW5zLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZl bCA4CisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsIHsKKyAgICAvKiBJTiAt IFBDSSBJTlR4IGlkZW50aWZpY2F0aW9uIChkb21haW46YnVzOmRldmljZTppbnR4KSAqLworICAg IHVpbnQxNl90IGRvbWFpbjsKKyAgICB1aW50OF90IGJ1cywgZGV2aWNlLCBpbnR4OworICAgIC8q IElOIC0gTGV2ZWw6IDAgLT4gZGVhc3NlcnRlZCwgMSAtPiBhc3NlcnRlZCAqLworICAgIHVpbnQ4 X3QgIGxldmVsOworfTsKKworLyoKKyAqIFhFTl9ETU9QX3NldF9pc2FfaXJxX2xldmVsOiBTZXQg dGhlIGxvZ2ljYWwgbGV2ZWwgb2YgYSBvbmUgb2YgYSBkb21haW4ncworICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElTQSBJUlEgbGluZXMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0 X2lzYV9pcnFfbGV2ZWwgOQorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHsK KyAgICAvKiBJTiAtIElTQSBJUlEgKDAtMTUpICovCisgICAgdWludDhfdCAgaXNhX2lycTsKKyAg ICAvKiBJTiAtIExldmVsOiAwIC0+IGRlYXNzZXJ0ZWQsIDEgLT4gYXNzZXJ0ZWQgKi8KKyAgICB1 aW50OF90ICBsZXZlbDsKK307CisKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU6 IE1hcCBhIFBDSSBJTlR4IGxpbmUgdG8gYW4gSVJRIGxpbmUuCisgKi8KKyNkZWZpbmUgWEVOX0RN T1Bfc2V0X3BjaV9saW5rX3JvdXRlIDEwCisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5r X3JvdXRlIHsKKyAgICAvKiBQQ0kgSU5UeCBsaW5lICgwLTMpICovCisgICAgdWludDhfdCAgbGlu azsKKyAgICAvKiBJU0EgSVJRICgxLTE1KSBvciAwIC0+IGRpc2FibGUgbGluayAqLworICAgIHVp bnQ4X3QgIGlzYV9pcnE7Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBv cDsKICAgICB1aW50MzJfdCBwYWQ7CkBAIC0yMDUsNiArMjQ0LDkgQEAgc3RydWN0IHhlbl9kbV9v cCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSBzZXRf aW9yZXFfc2VydmVyX3N0YXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2Rlc3Ryb3lfaW9y ZXFfc2VydmVyIGRlc3Ryb3lfaW9yZXFfc2VydmVyOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w X3RyYWNrX2RpcnR5X3ZyYW0gdHJhY2tfZGlydHlfdnJhbTsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgc2V0X3BjaV9pbnR4X2xldmVsOworICAgICAgICBzdHJ1 Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHNldF9pc2FfaXJxX2xldmVsOworICAgICAg ICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7 CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKaW5kZXggNDdlODM2Yy4uN2Nm OGQ0ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCB4 ZW5faHZtX3BhcmFtIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFyYW0geGVuX2h2bV9wYXJh bV90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9wYXJhbV90KTsKIAorI2lmIF9f WEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwOTAwCisKIC8qIFNldCB0aGUgbG9naWNh bCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncyBQQ0kgSU5UeCB3aXJlcy4gKi8KICNkZWZpbmUg SFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsICAyCiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhf bGV2ZWwgewpAQCAtNzYsNiArNzgsOCBAQCBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91 dGUgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgeGVuX2h2bV9z ZXRfcGNpX2xpbmtfcm91dGVfdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0 X3BjaV9saW5rX3JvdXRlX3QpOwogCisjZW5kaWYgLyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f XyA8IDB4MDAwNDA5MDAgKi8KKwogLyogRmx1c2hlcyBhbGwgVkNQVSBUTEJzOiBAYXJnIG11c3Qg YmUgTlVMTC4gKi8KICNkZWZpbmUgSFZNT1BfZmx1c2hfdGxicyAgICAgICAgICA1CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmggYi94ZW4vaW5jbHVkZS9wdWJs aWMveGVuLWNvbXBhdC5oCmluZGV4IGRkOGE1YzAuLmI2NzM2NTMgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi1j b21wYXQuaApAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBB VF9IX18KICNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCiAKLSNkZWZpbmUgX19Y RU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDgwMAorI2RlZmluZSBfX1hFTl9M QVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyAweDAwMDQwOTAwCiAKICNpZiBkZWZpbmVkKF9fWEVO X18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIC8qIFhlbiBpcyBidWlsdCB3aXRoIG1hdGNo aW5nIGhlYWRlcnMgYW5kIGltcGxlbWVudHMgdGhlIGxhdGVzdCBpbnRlcmZhY2UuICovCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oIGIveGVuL2luY2x1ZGUveGVuL2h2bS9p cnEuaAppbmRleCA0YzljYjIwLi5kM2Y4NjIzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4v aHZtL2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgKQEAgLTEyMiw3ICsxMjIs NyBAQCB2b2lkIGh2bV9pc2FfaXJxX2Fzc2VydCgKIHZvaWQgaHZtX2lzYV9pcnFfZGVhc3NlcnQo CiAgICAgc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlzYV9pcnEpOwogCi12b2lkIGh2 bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAqZCwgdTggbGluaywgdTggaXNhX2ly cSk7CitpbnQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5r LCB1OCBpc2FfaXJxKTsKIAogaW50IGh2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQsIHVp bnQ2NF90IGFkZHIsIHVpbnQzMl90IGRhdGEpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IDlmN2MxNzQuLmQzZGU0 YjcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCkBAIC02MTAsMjQgKzYxMCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4 c21fc2hhZG93X2NvbnRyb2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQz CiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwg ZCk7CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9wY2lfaW50eF9sZXZl bChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FD VElPTihYU01fRE1fUFJJVik7Ci0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24s IGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci19Ci0KLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZt X3NldF9pc2FfaXJxX2xldmVsKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQotewot ICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1 bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQotc3RhdGljIFhTTV9J TkxJTkUgaW50IHhzbV9odm1fc2V0X3BjaV9saW5rX3JvdXRlKFhTTV9ERUZBVUxUX0FSRyBzdHJ1 Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKLSAg ICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsK LX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9odm1faW5qZWN0X21zaShYU01fREVGQVVM VF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1f UFJJVik7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94 c20veHNtLmgKaW5kZXggYjU4NDVhMi4uMmU0YTNjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTYyLDkgKzE2Miw2IEBA IHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGludCAoKmRv X21jYSkgKHZvaWQpOwogICAgIGludCAoKnNoYWRvd19jb250cm9sKSAoc3RydWN0IGRvbWFpbiAq ZCwgdWludDMyX3Qgb3ApOwotICAgIGludCAoKmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwpIChzdHJ1 Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgKCpodm1fc2V0X2lzYV9pcnFfbGV2ZWwpIChzdHJ1Y3Qg ZG9tYWluICpkKTsKLSAgICBpbnQgKCpodm1fc2V0X3BjaV9saW5rX3JvdXRlKSAoc3RydWN0IGRv bWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX2luamVjdF9tc2kpIChzdHJ1Y3QgZG9tYWluICpkKTsK ICAgICBpbnQgKCptZW1fc2hhcmluZ19vcCkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21h aW4gKmNkLCBpbnQgb3ApOwogICAgIGludCAoKmFwaWMpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQg Y21kKTsKQEAgLTYzNSwyMSArNjMyLDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3NoYWRvd19j b250cm9sICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMKICAgICBy ZXR1cm4geHNtX29wcy0+c2hhZG93X2NvbnRyb2woZCwgb3ApOwogfQogCi1zdGF0aWMgaW5saW5l IGludCB4c21faHZtX3NldF9wY2lfaW50eF9sZXZlbCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVj dCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9zZXRfcGNpX2ludHhfbGV2 ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fc2V0X2lzYV9pcnFfbGV2ZWwg KHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21f b3BzLT5odm1fc2V0X2lzYV9pcnFfbGV2ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHhz bV9odm1fc2V0X3BjaV9saW5rX3JvdXRlICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFp biAqZCkKLXsKLSAgICByZXR1cm4geHNtX29wcy0+aHZtX3NldF9wY2lfbGlua19yb3V0ZShkKTsK LX0KLQogc3RhdGljIGlubGluZSBpbnQgeHNtX2h2bV9pbmplY3RfbXNpICh4c21fZGVmYXVsdF90 IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICByZXR1cm4geHNtX29wcy0+aHZtX2luamVj dF9tc2koZCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMK aW5kZXggZDU0NGVjMS4uZjE1NjhkZCAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBi L3hlbi94c20vZHVtbXkuYwpAQCAtMTQ1LDkgKzE0NSw2IEBAIHZvaWQgX19pbml0IHhzbV9maXh1 cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogI2lmZGVmIENPTkZJR19YODYKICAg ICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvX21jYSk7CiAgICAgc2V0X3RvX2R1bW15X2lm X251bGwob3BzLCBzaGFkb3dfY29udHJvbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3Bz LCBodm1fc2V0X3BjaV9pbnR4X2xldmVsKTsKLSAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMs IGh2bV9zZXRfaXNhX2lycV9sZXZlbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBo dm1fc2V0X3BjaV9saW5rX3JvdXRlKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2 bV9pbmplY3RfbXNpKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5n X29wKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGFwaWMpOwpkaWZmIC0tZ2l0IGEv eGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGE0Mjcy ZDcuLjY4NWNiZmEgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4v eHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE1MDIsMjEgKzE1MDIsNiBAQCBzdGF0aWMgaW50IGZsYXNr X2lvcG9ydF9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJf dCBlbmQsCiAgICAgcmV0dXJuIGZsYXNrX2lvcG9ydF9wZXJtaXNzaW9uKGQsIHN0YXJ0LCBlbmQs IGFjY2Vzcyk7CiB9CiAKLXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9wY2lfaW50eF9sZXZlbChz dHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NM QVNTX0hWTSwgSFZNX19QQ0lMRVZFTCk7Ci19Ci0KLXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9p c2FfaXJxX2xldmVsKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFz X3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX0lSUUxFVkVMKTsKLX0KLQotc3RhdGljIGludCBm bGFza19odm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0 dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1BDSVJPVVRFKTsKLX0K LQogc3RhdGljIGludCBmbGFza19odm1faW5qZWN0X21zaShzdHJ1Y3QgZG9tYWluICpkKQogewog ICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19TRU5EX0lS USk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDQ3Y2U1ODkuLjJmMGVkMmQg MTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNTksMTIgKzI1OSw2IEBAIGNs YXNzIGh2bQogICAgIHNldHBhcmFtCiAjIEhWTU9QX2dldF9wYXJhbQogICAgIGdldHBhcmFtCi0j IEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAoYWxzbyBuZWVkcyBodm1jdGwpCi0gICAgcGNpbGV2 ZWwKLSMgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwKLSAgICBpcnFsZXZlbAotIyBIVk1PUF9zZXRf cGNpX2xpbmtfcm91dGUKLSAgICBwY2lyb3V0ZQogICAgIGJpbmRfaXJxCiAjIFhFTl9ET01DVExf cGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLS0gCjIuMS40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==