From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 03/14] iommu: push use of type-safe BFN and MFN into iommu_ops Date: Thu, 23 Aug 2018 10:47:00 +0100 Message-ID: <20180823094711.21376-4-paul.durrant@citrix.com> References: <20180823094711.21376-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fsmD0-00005G-MT for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:47:18 +0000 In-Reply-To: <20180823094711.21376-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Paul Durrant , Jan Beulich , Suravee Suthikulpanit , George Dunlap List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgbWV0aG9kcyBpbiBzdHJ1Y3QgaW9tbXVfb3BzIHRvIHVz ZSB0eXBlLXNhZmUgQkZOCmFuZCBNRk4uIFRoaXMgZm9sbG93cyBvbiBmcm9tIHRoZSBwcmlvciBw YXRjaCB0aGF0IG1vZGlmaWVkIHRoZSBmdW5jdGlvbnMKZXhwb3J0ZWQgaW4geGVuL2lvbW11Lmgu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpS ZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtl dmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxw YW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgoKdjY6CiAt IFJlLWJhc2UuCgp2MzoKIC0gUmVtb3ZlIHNvbWUgdXNlIG9mIGludGVybWVkaWF0ZSAnZnJhbWUn IHZhcmlhYmxlcy4KCnYyOgogLSBBZGRyZXNzZWQgY29tbWVudHMgZnJvbSBKYW4uCiAtIEV4dGVu ZCB1c2Ugb2YgaW50ZXJtZWRpYXRlICdmcmFtZScgdmFyaWFibGUgdG8gYXZvaWQgZGlyZWN0bHkK ICAgZW5jYXBzdWxhdGluZyBnZm4gdmFsdWVzIGFzIGJmbnMgb3IgdmljZSB2ZXJzYS4KLS0tCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgICAgICAgfCA0NiArKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1k X2lvbW11LmMgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jICAg ICAgICAgICAgfCAxNiArKysrKy0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j ICAgICAgICAgICAgICAgfCAgOSArKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jICAgICAgICAgICB8IDI2ICsrKysrKystLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2lvbW11LmMgICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYv aHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaCB8ICA4ICsrLS0tCiB4ZW4vaW5jbHVkZS94ZW4vaW9t bXUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrKy0tLQogOCBmaWxlcyBjaGFuZ2Vk LCA2NyBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKaW5kZXggNGRlYWI5Y2QyZi4uNWE5YTBhZjMyMCAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtNjMxLDcgKzYzMSw3IEBAIHN0YXRp YyBpbnQgdXBkYXRlX3BhZ2luZ19tb2RlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg YmZuKQogICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZuLCB1bnNpZ25lZCBsb25nIG1mbiwKK2ludCBhbWRf aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLCBtZm5fdCBtZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICBib29sX3Qg bmVlZF9mbHVzaCA9IDA7CkBAIC02NTEsNyArNjUxLDggQEAgaW50IGFtZF9pb21tdV9tYXBfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQgbG9uZyBtZm4s CiAgICAgaWYgKCByYyApCiAgICAgewogICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKLSAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJSb290IHRhYmxlIGFsbG9jIGZh aWxlZCwgYmZuID0gJWx4XG4iLCBiZm4pOworICAgICAgICBBTURfSU9NTVVfREVCVUcoIlJvb3Qg dGFibGUgYWxsb2MgZmFpbGVkLCBiZm4gPSAlIlBSSV9iZm4iXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICAgYmZuX3goYmZuKSk7CiAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAg cmV0dXJuIHJjOwogICAgIH0KQEAgLTY2MCwyNSArNjYxLDI3IEBAIGludCBhbWRfaW9tbXVfbWFw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4sIHVuc2lnbmVkIGxvbmcg bWZuLAogICAgICAqIHdlIG1pZ2h0IG5lZWQgYSBkZWVwZXIgcGFnZSB0YWJsZSBmb3Igd2lkZXIg YmZuIG5vdyAqLwogICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgewotICAgICAgICBp ZiAoIHVwZGF0ZV9wYWdpbmdfbW9kZShkLCBiZm4pICkKKyAgICAgICAgaWYgKCB1cGRhdGVfcGFn aW5nX21vZGUoZCwgYmZuX3goYmZuKSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3Vu bG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgICAgIEFNRF9JT01NVV9ERUJV RygiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgYmZuID0gJWx4XG4iLCBiZm4pOworICAgICAgICAg ICAgQU1EX0lPTU1VX0RFQlVHKCJVcGRhdGUgcGFnZSBtb2RlIGZhaWxlZCBiZm4gPSAlIlBSSV9i Zm4iXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmbl94KGJmbikpOwogICAgICAg ICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAg ICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlvbW11X3BkZV9mcm9tX2JmbihkLCBiZm4sIHB0X21m bikgfHwgKHB0X21mblsxXSA9PSAwKSApCisgICAgaWYgKCBpb21tdV9wZGVfZnJvbV9iZm4oZCwg YmZuX3goYmZuKSwgcHRfbWZuKSB8fCAocHRfbWZuWzFdID09IDApICkKICAgICB7CiAgICAgICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwotICAgICAgICBBTURfSU9NTVVf REVCVUcoIkludmFsaWQgSU8gcGFnZXRhYmxlIGVudHJ5IGJmbiA9ICVseFxuIiwgYmZuKTsKKyAg ICAgICAgQU1EX0lPTU1VX0RFQlVHKCJJbnZhbGlkIElPIHBhZ2V0YWJsZSBlbnRyeSBiZm4gPSAl IlBSSV9iZm4iXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgYmZuX3goYmZuKSk7CiAgICAg ICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgfQogCiAg ICAgLyogSW5zdGFsbCA0ayBtYXBwaW5nIGZpcnN0ICovCi0gICAgbmVlZF9mbHVzaCA9IHNldF9p b21tdV9wdGVfcHJlc2VudChwdF9tZm5bMV0sIGJmbiwgbWZuLAorICAgIG5lZWRfZmx1c2ggPSBz ZXRfaW9tbXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBiZm5feChiZm4pLCBtZm5feChtZm4pLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfUEFHSU5HX01PREVf TEVWRUxfMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEhKGZsYWdz ICYgSU9NTVVGX3dyaXRhYmxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICEhKGZsYWdzICYgSU9NTVVGX3JlYWRhYmxlKSk7CkBAIC02OTAsNyArNjkzLDcgQEAgaW50 IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwg dW5zaWduZWQgbG9uZyBtZm4sCiAgICAgLyogNEsgbWFwcGluZyBmb3IgUFYgZ3Vlc3RzIG5ldmVy IGNoYW5nZXMsIAogICAgICAqIG5vIG5lZWQgdG8gZmx1c2ggaWYgd2UgdHJ1c3Qgbm9uLXByZXNl bnQgYml0cyAqLwogICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGFtZF9pb21t dV9mbHVzaF9wYWdlcyhkLCBiZm4sIDApOworICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMo ZCwgYmZuX3goYmZuKSwgMCk7CiAKICAgICBmb3IgKCBtZXJnZV9sZXZlbCA9IElPTU1VX1BBR0lO R19NT0RFX0xFVkVMXzI7CiAgICAgICAgICAgbWVyZ2VfbGV2ZWwgPD0gaGQtPmFyY2gucGFnaW5n X21vZGU7IG1lcmdlX2xldmVsKysgKQpAQCAtNjk4LDE1ICs3MDEsMTYgQEAgaW50IGFtZF9pb21t dV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQg bG9uZyBtZm4sCiAgICAgICAgIGlmICggcHRfbWZuW21lcmdlX2xldmVsXSA9PSAwICkKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoICFpb21tdV91cGRhdGVfcGRlX2NvdW50KGQsIHB0 X21mblttZXJnZV9sZXZlbF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmZuLCBtZm4sIG1lcmdlX2xldmVsKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmZuX3goYmZuKSwgbWZuX3gobWZuKSwgbWVyZ2VfbGV2ZWwpICkKICAgICAgICAgICAg IGJyZWFrOwogCi0gICAgICAgIGlmICggaW9tbXVfbWVyZ2VfcGFnZXMoZCwgcHRfbWZuW21lcmdl X2xldmVsXSwgYmZuLAorICAgICAgICBpZiAoIGlvbW11X21lcmdlX3BhZ2VzKGQsIHB0X21mbltt ZXJnZV9sZXZlbF0sIGJmbl94KGJmbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmxhZ3MsIG1lcmdlX2xldmVsKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHNwaW5fdW5sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJN ZXJnZSBpb21tdSBwYWdlIGZhaWxlZCBhdCBsZXZlbCAlZCwgIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJiZm4gPSAlbHggbWZuID0gJWx4XG4iLCBtZXJnZV9sZXZlbCwgYmZuLCBtZm4p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZm4gPSAlIlBSSV9iZm4iIG1mbiA9ICUi UFJJX21mbiJcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VfbGV2ZWwsIGJm bl94KGJmbiksIG1mbl94KG1mbikpOwogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAg ICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgIH0KQEAgLTcyMCw3ICs3MjQsNyBAQCBv dXQ6CiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCBhbWRfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbikKK2ludCBhbWRfaW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBwdF9tZm5b N107CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC03NDIs MzEgKzc0NiwzMyBAQCBpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBiZm4pCiAgICAgICogd2UgbWlnaHQgbmVlZCBhIGRlZXBlciBwYWdlIHRh YmxlIGZvciBsYWdlciBiZm4gbm93ICovCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAg ICB7Ci0gICAgICAgIGludCByYyA9IHVwZGF0ZV9wYWdpbmdfbW9kZShkLCBiZm4pOworICAgICAg ICBpbnQgcmMgPSB1cGRhdGVfcGFnaW5nX21vZGUoZCwgYmZuX3goYmZuKSk7CiAKICAgICAgICAg aWYgKCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5t YXBwaW5nX2xvY2spOwotICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJVcGRhdGUgcGFnZSBt b2RlIGZhaWxlZCBiZm4gPSAlbHhcbiIsIGJmbik7CisgICAgICAgICAgICBBTURfSU9NTVVfREVC VUcoIlVwZGF0ZSBwYWdlIG1vZGUgZmFpbGVkIGJmbiA9ICUiUFJJX2JmbiJcbiIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmZuX3goYmZuKSk7CiAgICAgICAgICAgICBpZiAoIHJjICE9 IC1FQUREUk5PVEFWQUlMICkKICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAg ICAgICAgICByZXR1cm4gcmM7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlvbW11X3Bk ZV9mcm9tX2JmbihkLCBiZm4sIHB0X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCisgICAgaWYg KCBpb21tdV9wZGVfZnJvbV9iZm4oZCwgYmZuX3goYmZuKSwgcHRfbWZuKSB8fCAocHRfbWZuWzFd ID09IDApICkKICAgICB7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xv Y2spOwotICAgICAgICBBTURfSU9NTVVfREVCVUcoIkludmFsaWQgSU8gcGFnZXRhYmxlIGVudHJ5 IGJmbiA9ICVseFxuIiwgYmZuKTsKKyAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJJbnZhbGlkIElP IHBhZ2V0YWJsZSBlbnRyeSBiZm4gPSAlIlBSSV9iZm4iXG4iLAorICAgICAgICAgICAgICAgICAg ICAgICAgYmZuX3goYmZuKSk7CiAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7CiAgICAgfQogCiAgICAgLyogbWFyayBQVEUgYXMgJ3BhZ2Ugbm90IHByZXNl bnQnICovCi0gICAgY2xlYXJfaW9tbXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBiZm4pOworICAg IGNsZWFyX2lvbW11X3B0ZV9wcmVzZW50KHB0X21mblsxXSwgYmZuX3goYmZuKSk7CiAgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICBhbWRfaW9tbXVfZmx1c2hf cGFnZXMoZCwgYmZuLCAwKTsKKyAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMoZCwgYmZuX3goYmZu KSwgMCk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTc4Nyw3ICs3OTMsOSBAQCBpbnQgYW1kX2lv bW11X3Jlc2VydmVfZG9tYWluX3VuaXR5X21hcChzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAg Z2ZuID0gcGh5c19hZGRyID4+IFBBR0VfU0hJRlQ7CiAgICAgZm9yICggaSA9IDA7IGkgPCBucGFn ZXM7IGkrKyApCiAgICAgewotICAgICAgICBydCA9IGFtZF9pb21tdV9tYXBfcGFnZShkb21haW4s IGdmbiAraSwgZ2ZuICtpLCBmbGFncyk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgZnJhbWUgPSBn Zm4gKyBpOworCisgICAgICAgIHJ0ID0gYW1kX2lvbW11X21hcF9wYWdlKGRvbWFpbiwgX2Jmbihm cmFtZSksIF9tZm4oZnJhbWUpLCBmbGFncyk7CiAgICAgICAgIGlmICggcnQgIT0gMCApCiAgICAg ICAgICAgICByZXR1cm4gcnQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMKaW5kZXggZDYwODYzMWU2ZS4uZWVhMjJjM2QwZCAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC0yNzEsNyArMjcxLDcgQEAg c3RhdGljIHZvaWQgX19od2RvbV9pbml0IGFtZF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21h aW4gKmQpCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlmICggbWZuX3ZhbGlkKF9tZm4o cGZuKSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXQgPSBhbWRfaW9t bXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sCisgICAgICAgICAgICAgICAgaW50IHJldCA9IGFtZF9p b21tdV9tYXBfcGFnZShkLCBfYmZuKHBmbiksIF9tZm4ocGZuKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFi bGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMKaW5kZXggMWU0ZDU2MWI0Ny4uMjIxYjYyYTU5YyAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h cm0vc21tdS5jCkBAIC0yNTUwLDggKzI1NTAsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBh cm1fc21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbiAqZCkKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfaW90bGJfZmx1c2goc3RydWN0IGRv bWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgYmZuLAorc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfaW90bGJf Zmx1c2goc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAJLyog QVJNIFNNTVUgdjEgZG9lc24ndCBoYXZlIGZsdXNoIGJ5IFZNQSBhbmQgVk1JRCAqLwpAQCAtMjcz Nyw4ICsyNzM2LDggQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVfaW9tbXVfZG9tYWluX3RlYXJkb3du KHN0cnVjdCBkb21haW4gKmQpCiAJeGZyZWUoeGVuX2RvbWFpbik7CiB9CiAKLXN0YXRpYyBpbnQg X19tdXN0X2NoZWNrIGFybV9zbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgYmZuLAotCQkJdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncykKK3N0 YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQs IGJmbl90IGJmbiwKKwkJCQkJICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAlw Mm1fdHlwZV90IHQ7CiAKQEAgLTI3NTEsNyArMjc1MCw3IEBAIHN0YXRpYyBpbnQgX19tdXN0X2No ZWNrIGFybV9zbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZu LAogCSAqIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgZ250dGFiIGNvZGUgd2l0aCBn Zm4gPT0gbWZuID09IGJmbi4KIAkgKi8KIAlCVUdfT04oIWlzX2RvbWFpbl9kaXJlY3RfbWFwcGVk KGQpKTsKLQlCVUdfT04obWZuICE9IGJmbik7CisJQlVHX09OKG1mbl94KG1mbikgIT0gYmZuX3go YmZuKSk7CiAKIAkvKiBXZSBvbmx5IHN1cHBvcnQgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGZsYWdz ICovCiAJaWYgKCEoZmxhZ3MgJiAoSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSkp CkBAIC0yNzYzLDEwICsyNzYyLDExIEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11 X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZuLAogCSAqIFRoZSBm dW5jdGlvbiBndWVzdF9waHlzbWFwX2FkZF9lbnRyeSByZXBsYWNlcyB0aGUgY3VycmVudCBtYXBw aW5nCiAJICogaWYgdGhlcmUgaXMgYWxyZWFkeSBvbmUuLi4KIAkgKi8KLQlyZXR1cm4gZ3Vlc3Rf cGh5c21hcF9hZGRfZW50cnkoZCwgX2dmbihiZm4pLCBfbWZuKGJmbiksIDAsIHQpOworCXJldHVy biBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShkLCBfZ2ZuKGJmbl94KGJmbikpLCBfbWZuKGJmbl94 KGJmbikpLAorCQkJCSAgICAgICAwLCB0KTsKIH0KIAotc3RhdGljIGludCBfX211c3RfY2hlY2sg YXJtX3NtbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbikK K3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgYmZuX3QgYmZuKQogewogCS8qCiAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBi ZSB1c2VkIGJ5IGdudHRhYiBjb2RlIHdoZW4gdGhlIGRvbWFpbgpAQCAtMjc3NSw3ICsyNzc1LDcg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGJmbikKIAlpZiAoICFpc19kb21haW5fZGlyZWN0X21hcHBl ZChkKSApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIGd1ZXN0X3BoeXNtYXBfcmVtb3Zl X3BhZ2UoZCwgX2dmbihiZm4pLCBfbWZuKGJmbiksIDApOworCXJldHVybiBndWVzdF9waHlzbWFw X3JlbW92ZV9wYWdlKGQsIF9nZm4oYmZuX3goYmZuKSksIF9tZm4oYmZuX3goYmZuKSksIDApOwog fQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11X29wcyBhcm1fc21tdV9pb21tdV9vcHMgPSB7 CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCA0MmI1M2IxNWU5Li5kOWVjNjY3OTQ1IDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE5NCw3ICsxOTQsOCBAQCB2b2lkIF9faHdkb21faW5p dCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICAgICAgICA9 PSBQR1Rfd3JpdGFibGVfcGFnZSkgKQogICAgICAgICAgICAgICAgIG1hcHBpbmcgfD0gSU9NTVVG X3dyaXRhYmxlOwogCi0gICAgICAgICAgICByZXQgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFn ZShkLCBiZm4sIG1mbiwgbWFwcGluZyk7CisgICAgICAgICAgICByZXQgPSBoZC0+cGxhdGZvcm1f b3BzLT5tYXBfcGFnZShkLCBfYmZuKGJmbiksIF9tZm4obWZuKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcpOwogICAgICAgICAgICAgaWYgKCAh cmMgKQogICAgICAgICAgICAgICAgIHJjID0gcmV0OwogCkBAIC0yNjQsNyArMjY1LDcgQEAgaW50 IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwgbWZuX3QgbWZuLAog ICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgKQogICAgICAgICBy ZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgYmZuX3go YmZuKSwgbWZuX3gobWZuKSwgZmxhZ3MpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFw X3BhZ2UoZCwgYmZuLCBtZm4sIGZsYWdzKTsKICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAg ewogICAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50a19yYXRlbGltaXQo KSApCkBAIC0yODcsNyArMjg4LDcgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgYmZuX3QgYmZuKQogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9y bV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+ dW5tYXBfcGFnZShkLCBiZm5feChiZm4pKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVu bWFwX3BhZ2UoZCwgYmZuKTsKICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgewogICAgICAg ICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50a19yYXRlbGltaXQoKSApCkBAIC0z MjcsNyArMzI4LDcgQEAgaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGJm bl90IGJmbiwgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxl ZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fCAhaGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2gg KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+aW90bGJf Zmx1c2goZCwgYmZuX3goYmZuKSwgcGFnZV9jb3VudCk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1f b3BzLT5pb3RsYl9mbHVzaChkLCBiZm4sIHBhZ2VfY291bnQpOwogICAgIGlmICggdW5saWtlbHko cmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRr X3JhdGVsaW1pdCgpICkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggNDhmNjJl MGU4ZC4uYzlmNTBmMDRhZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTU4 NCw4ICs1ODQsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9hbGwodm9p ZCkKICAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlvbW11X2Zs dXNoX2lvdGxiKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJmbiwKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNr IGlvbW11X2ZsdXNoX2lvdGxiKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBkbWFfb2xkX3B0ZV9wcmVz ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IHBhZ2VfY291bnQpCiB7CkBAIC02MTIsMTIgKzYxMSwxMiBAQCBzdGF0aWMgaW50IF9fbXVz dF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYihzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICBpZiAo IGlvbW11X2RvbWlkID09IC0xICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm ICggcGFnZV9jb3VudCAhPSAxIHx8IGJmbiA9PSBiZm5feChJTlZBTElEX0JGTikgKQorICAgICAg ICBpZiAoIHBhZ2VfY291bnQgIT0gMSB8fCBiZm5fZXEoYmZuLCBJTlZBTElEX0JGTikgKQogICAg ICAgICAgICAgcmMgPSBpb21tdV9mbHVzaF9pb3RsYl9kc2koaW9tbXUsIGlvbW11X2RvbWlkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZmx1c2hfZGV2X2lvdGxi KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmMgPSBpb21tdV9mbHVzaF9pb3RsYl9wc2ko aW9tbXUsIGlvbW11X2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX19iZm5fdG9fYmFkZHIoYmZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJmbl90b19iYWRkcihiZm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUEFHRV9PUkRFUl80SywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICFkbWFfb2xkX3B0ZV9wcmVzZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmx1c2hfZGV2X2lvdGxiKTsKQEAgLTYzMyw3ICs2MzIsNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYihzdHJ1Y3QgZG9tYWluICpkLAogfQog CiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYl9wYWdlcyhzdHJ1Y3Qg ZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBiZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiZm5fdCBiZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKIHsKICAgICByZXR1cm4g aW9tbXVfZmx1c2hfaW90bGIoZCwgYmZuLCAxLCBwYWdlX2NvdW50KTsKQEAgLTY0MSw3ICs2NDAs NyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYl9wYWdlcyhzdHJ1 Y3QgZG9tYWluICpkLAogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3Rs Yl9hbGwoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICByZXR1cm4gaW9tbXVfZmx1c2hfaW90bGIo ZCwgYmZuX3goSU5WQUxJRF9CRk4pLCAwLCAwKTsKKyAgICByZXR1cm4gaW9tbXVfZmx1c2hfaW90 bGIoZCwgSU5WQUxJRF9CRk4sIDAsIDApOwogfQogCiAvKiBjbGVhciBvbmUgcGFnZSdzIHBhZ2Ug dGFibGUgKi8KQEAgLTY3Niw3ICs2NzUsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBkbWFf cHRlX2NsZWFyX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU2NCBhZGRyKQogICAgIGlvbW11 X2ZsdXNoX2NhY2hlX2VudHJ5KHB0ZSwgc2l6ZW9mKHN0cnVjdCBkbWFfcHRlKSk7CiAKICAgICBp ZiAoICF0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSApCi0gICAgICAgIHJjID0gaW9t bXVfZmx1c2hfaW90bGJfcGFnZXMoZG9tYWluLCBhZGRyID4+IFBBR0VfU0hJRlRfNEssIDEpOwor ICAgICAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxiX3BhZ2VzKGRvbWFpbiwgYmFkZHJfdG9fYmZu KGFkZHIpLCAxKTsKIAogICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShwYWdlKTsKIApAQCAtMTc2 Nyw4ICsxNzY2LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBk b21haW4gKmQpCiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZuX3QgYmZuLCBtZm5fdCBtZm4sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3Mp CiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC0xNzg2 LDE2ICsxNzg0LDE2IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CiAKLSAgICBwZ19tYWRkciA9IGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZCwgX19iZm5f dG9fYmFkZHIoYmZuKSwgMSk7CisgICAgcGdfbWFkZHIgPSBhZGRyX3RvX2RtYV9wYWdlX21hZGRy KGQsIGJmbl90b19iYWRkcihiZm4pLCAxKTsKICAgICBpZiAoIHBnX21hZGRyID09IDAgKQogICAg IHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAgICAg IHJldHVybiAtRU5PTUVNOwogICAgIH0KICAgICBwYWdlID0gKHN0cnVjdCBkbWFfcHRlICopbWFw X3Z0ZF9kb21haW5fcGFnZShwZ19tYWRkcik7Ci0gICAgcHRlID0gcGFnZSArIChiZm4gJiBMRVZF TF9NQVNLKTsKKyAgICBwdGUgPSBwYWdlICsgKGJmbl94KGJmbikgJiBMRVZFTF9NQVNLKTsKICAg ICBvbGQgPSAqcHRlOwotICAgIGRtYV9zZXRfcHRlX2FkZHIobmV3LCAocGFkZHJfdCltZm4gPDwg UEFHRV9TSElGVF80Syk7CisgICAgZG1hX3NldF9wdGVfYWRkcihuZXcsIG1mbl90b19tYWRkciht Zm4pKTsKICAgICBkbWFfc2V0X3B0ZV9wcm90KG5ldywKICAgICAgICAgICAgICAgICAgICAgICgo ZmxhZ3MgJiBJT01NVUZfcmVhZGFibGUpID8gRE1BX1BURV9SRUFEICA6IDApIHwKICAgICAgICAg ICAgICAgICAgICAgICgoZmxhZ3MgJiBJT01NVUZfd3JpdGFibGUpID8gRE1BX1BURV9XUklURSA6 IDApKTsKQEAgLTE4MjMsMTMgKzE4MjEsMTMgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50 ZWxfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKIH0KIAogc3RhdGljIGludCBfX211 c3RfY2hlY2sgaW50ZWxfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJm bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZuX3Qg YmZuKQogewogICAgIC8qIERvIG5vdGhpbmcgaWYgaGFyZHdhcmUgZG9tYWluIGFuZCBpb21tdSBz dXBwb3J0cyBwYXNzIHRocnUuICovCiAgICAgaWYgKCBpb21tdV9wYXNzdGhyb3VnaCAmJiBpc19o YXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBkbWFf cHRlX2NsZWFyX29uZShkLCBfX2Jmbl90b19iYWRkcihiZm4pKTsKKyAgICByZXR1cm4gZG1hX3B0 ZV9jbGVhcl9vbmUoZCwgYmZuX3RvX2JhZGRyKGJmbikpOwogfQogCiBpbnQgaW9tbXVfcHRlX2Zs dXNoKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGJmbiwgdWludDY0X3QgKnB0ZSwKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gveDg2L2lvbW11LmMKaW5kZXggNjgxODJhZmQ5MS4uMzc5ODgyYzY5MCAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTY1LDcgKzY1LDcgQEAgaW50IGFyY2hf aW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgIEFTU0VSVCghKGdmbiA+PiBERUZBVUxUX0RPTUFJTl9BRERSRVNT X1dJRFRIKSk7CiAgICAgICAgICAgICAgICAgQlVHX09OKFNIQVJFRF9NMlAoZ2ZuKSk7Ci0gICAg ICAgICAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBnZm4sIG1mbiwK KyAgICAgICAgICAgICAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIF9iZm4o Z2ZuKSwgX21mbihtZm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICB9CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKaW5kZXggOTliYzIx YzdiMy4uZGNlOWVkNmI4MyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3Zt L2FtZC1pb21tdS1wcm90by5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQt aW9tbXUtcHJvdG8uaApAQCAtNTIsOSArNTIsOSBAQCBpbnQgYW1kX2lvbW11X2luaXQodm9pZCk7 CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKIAogLyogbWFw cGluZyBmdW5jdGlvbnMgKi8KLWludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7Ci1p bnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKK2ludCBfX211c3RfY2hlY2sg YW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuKTsKIHU2NCBh bWRfaW9tbXVfZ2V0X25leHRfdGFibGVfZnJvbV9wdGUodTMyICplbnRyeSk7CiBpbnQgX19tdXN0 X2NoZWNrIGFtZF9pb21tdV9hbGxvY19yb290KHN0cnVjdCBkb21haW5faW9tbXUgKmhkKTsKIGlu dCBhbWRfaW9tbXVfcmVzZXJ2ZV9kb21haW5fdW5pdHlfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFp biwKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBpb21tdV9kdGVfc2V0X2d1ZXN0X2NyMyh1MzIgKmR0 ZSwgdTE2IGRvbV9pZCwgdTY0IGdjcjMsCiAKIC8qIHNlbmQgY21kIHRvIGlvbW11ICovCiB2b2lk IGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCk7Ci12b2lkIGFtZF9p b21tdV9mbHVzaF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKK3Zv aWQgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg YmZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyKTsKIHZv aWQgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKHU4IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGdhZGRyLCB1bnNpZ25l ZCBpbnQgb3JkZXIpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4v aW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCAzZDRmM2U3ZDI2Li42ZWRjNmUxYTEwIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aApAQCAtNDgsNiArNDgsMTEgQEAgc3RhdGljIGlubGluZSBiZm5fdCBiZm5fYWRkKGJmbl90IGJm biwgdW5zaWduZWQgbG9uZyBpKQogICAgIHJldHVybiBfYmZuKGJmbl94KGJmbikgKyBpKTsKIH0K IAorc3RhdGljIGlubGluZSBib29sX3QgYmZuX2VxKGJmbl90IHgsIGJmbl90IHkpCit7CisgICAg cmV0dXJuIGJmbl94KHgpID09IGJmbl94KHkpOworfQorCiAjZGVmaW5lIElPTU1VX1BBR0VfU0hJ RlQgMTIKICNkZWZpbmUgSU9NTVVfUEFHRV9TSVpFICAoX0FDKDEsTCkgPDwgSU9NTVVfUEFHRV9T SElGVCkKICNkZWZpbmUgSU9NTVVfUEFHRV9NQVNLICAofihJT01NVV9QQUdFX1NJWkUgLSAxKSkK QEAgLTE4Miw5ICsxODcsOSBAQCBzdHJ1Y3QgaW9tbXVfb3BzIHsKICNlbmRpZiAvKiBIQVNfUENJ ICovCiAKICAgICB2b2lkICgqdGVhcmRvd24pKHN0cnVjdCBkb21haW4gKmQpOwotICAgIGludCBf X211c3RfY2hlY2sgKCptYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBi Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwg dW5zaWduZWQgaW50IGZsYWdzKTsKLSAgICBpbnQgX19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSko c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4pOworICAgIGludCBfX211c3RfY2hl Y2sgKCptYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLCBtZm5fdCBtZm4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOworICAg IGludCBfX211c3RfY2hlY2sgKCp1bm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBi Zm4pOwogICAgIHZvaWQgKCpmcmVlX3BhZ2VfdGFibGUpKHN0cnVjdCBwYWdlX2luZm8gKik7CiAj aWZkZWYgQ09ORklHX1g4NgogICAgIHZvaWQgKCp1cGRhdGVfaXJlX2Zyb21fYXBpYykodW5zaWdu ZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7CkBAIC0x OTUsNyArMjAwLDcgQEAgc3RydWN0IGlvbW11X29wcyB7CiAgICAgdm9pZCAoKnJlc3VtZSkodm9p ZCk7CiAgICAgdm9pZCAoKnNoYXJlX3AybSkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAo KmNyYXNoX3NodXRkb3duKSh2b2lkKTsKLSAgICBpbnQgX19tdXN0X2NoZWNrICgqaW90bGJfZmx1 c2gpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZuLAorICAgIGludCBfX211c3Rf Y2hlY2sgKCppb3RsYl9mbHVzaCkoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpOwog ICAgIGludCBfX211c3RfY2hlY2sgKCppb3RsYl9mbHVzaF9hbGwpKHN0cnVjdCBkb21haW4gKmQp OwogICAgIGludCAoKmdldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KShpb21tdV9ncmRtX3QgKiwg dm9pZCAqKTsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw=