From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 3/6] iommu: push use of type-safe DFN and MFN into iommu_ops Date: Wed, 12 Sep 2018 12:30:25 +0100 Message-ID: <20180912113028.19610-4-paul.durrant@citrix.com> References: <20180912113028.19610-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g03Lw-0005kQ-9l for xen-devel@lists.xenproject.org; Wed, 12 Sep 2018 11:30:36 +0000 In-Reply-To: <20180912113028.19610-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 , George Dunlap , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgbWV0aG9kcyBpbiBzdHJ1Y3QgaW9tbXVfb3BzIHRvIHVz ZSB0eXBlLXNhZmUgREZOCmFuZCBNRk4uIFRoaXMgZm9sbG93cyBvbiBmcm9tIHRoZSBwcmlvciBw YXRjaCB0aGF0IG1vZGlmaWVkIHRoZSBmdW5jdGlvbnMKZXhwb3J0ZWQgaW4geGVuL2lvbW11Lmgu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpS ZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtl dmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgotLS0KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5z dXRoaWt1bHBhbml0QGFtZC5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgoK djc6CiAtIFJlLWJhc2UgYW5kIHJlLW5hbWUgQkZOIC0+IERGTi4KIC0gQWRkZWQgSmFuJ3MgQS1i IHNpbmNlIHJlLW5hbWluZyB3YXMgcHVyZWx5IG1lY2hhbmljYWwuCgp2NjoKIC0gUmUtYmFzZS4K CnYzOgogLSBSZW1vdmUgc29tZSB1c2Ugb2YgaW50ZXJtZWRpYXRlICdmcmFtZScgdmFyaWFibGVz LgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEphbi4KIC0gRXh0ZW5kIHVzZSBvZiBp bnRlcm1lZGlhdGUgJ2ZyYW1lJyB2YXJpYWJsZSB0byBhdm9pZCBkaXJlY3RseQogICBlbmNhcHN1 bGF0aW5nIGdmbiB2YWx1ZXMgYXMgYmZucyAobm93IGRmbnMpIG9yIHZpY2UgdmVyc2EuCi0tLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jICAgICAgIHwgNDYgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2Ft ZF9pb21tdS5jICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyAg ICAgICAgICAgIHwgMTYgKysrKystLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUu YyAgICAgICAgICAgICAgIHwgIDkgKysrLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYyAgICAgICAgICAgfCAyNiArKysrKysrLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmggfCAgOCArKy0tLQogeGVuL2luY2x1ZGUveGVuL2lv bW11LmggICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKystLS0KIDggZmlsZXMgY2hhbmdl ZCwgNjcgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4IDYxYWRlNzE4NTAuLmM4OWM1NGZkYjYgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0 aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9kZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGRmbikKICAgICByZXR1cm4gMDsKIH0KIAotaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCitpbnQgYW1k X2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgbWZuLAog ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgYm9vbF90 IG5lZWRfZmx1c2ggPSAwOwpAQCAtNjUxLDcgKzY1MSw4IEBAIGludCBhbWRfaW9tbXVfbWFwX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sIHVuc2lnbmVkIGxvbmcgbWZu LAogICAgIGlmICggcmMgKQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1h cHBpbmdfbG9jayk7Ci0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiUm9vdCB0YWJsZSBhbGxvYyBm YWlsZWQsIGRmbiA9ICVseFxuIiwgZGZuKTsKKyAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJSb290 IHRhYmxlIGFsbG9jIGZhaWxlZCwgZGZuID0gJSJQUklfZGZuIlxuIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGRmbl94KGRmbikpOwogICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgICAg IHJldHVybiByYzsKICAgICB9CkBAIC02NjAsMjUgKzY2MSwyNyBAQCBpbnQgYW1kX2lvbW11X21h cF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBsb25n IG1mbiwKICAgICAgKiB3ZSBtaWdodCBuZWVkIGEgZGVlcGVyIHBhZ2UgdGFibGUgZm9yIHdpZGVy IGRmbiBub3cgKi8KICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgIHsKLSAgICAgICAg aWYgKCB1cGRhdGVfcGFnaW5nX21vZGUoZCwgZGZuKSApCisgICAgICAgIGlmICggdXBkYXRlX3Bh Z2luZ19tb2RlKGQsIGRmbl94KGRmbikpICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgICAgICBBTURfSU9NTVVfREVC VUcoIlVwZGF0ZSBwYWdlIG1vZGUgZmFpbGVkIGRmbiA9ICVseFxuIiwgZGZuKTsKKyAgICAgICAg ICAgIEFNRF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgZGZuID0gJSJQUklf ZGZuIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZm5feChkZm4pKTsKICAgICAg ICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAg ICAgICB9CiAgICAgfQogCi0gICAgaWYgKCBpb21tdV9wZGVfZnJvbV9kZm4oZCwgZGZuLCBwdF9t Zm4pIHx8IChwdF9tZm5bMV0gPT0gMCkgKQorICAgIGlmICggaW9tbXVfcGRlX2Zyb21fZGZuKGQs IGRmbl94KGRmbiksIHB0X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCiAgICAgewogICAgICAg ICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgQU1EX0lPTU1V X0RFQlVHKCJJbnZhbGlkIElPIHBhZ2V0YWJsZSBlbnRyeSBkZm4gPSAlbHhcbiIsIGRmbik7Cisg ICAgICAgIEFNRF9JT01NVV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZGZuID0g JSJQUklfZGZuIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRmbl94KGRmbikpOwogICAg ICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgIH0KIAog ICAgIC8qIEluc3RhbGwgNGsgbWFwcGluZyBmaXJzdCAqLwotICAgIG5lZWRfZmx1c2ggPSBzZXRf aW9tbXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBkZm4sIG1mbiwKKyAgICBuZWVkX2ZsdXNoID0g c2V0X2lvbW11X3B0ZV9wcmVzZW50KHB0X21mblsxXSwgZGZuX3goZGZuKSwgbWZuX3gobWZuKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1BBR0lOR19NT0RF X0xFVkVMXzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIShmbGFn cyAmIElPTU1VRl93cml0YWJsZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAhIShmbGFncyAmIElPTU1VRl9yZWFkYWJsZSkpOwpAQCAtNjkwLDcgKzY5Myw3IEBAIGlu dCBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4s IHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIC8qIDRLIG1hcHBpbmcgZm9yIFBWIGd1ZXN0cyBuZXZl ciBjaGFuZ2VzLCAKICAgICAgKiBubyBuZWVkIHRvIGZsdXNoIGlmIHdlIHRydXN0IG5vbi1wcmVz ZW50IGJpdHMgKi8KICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBhbWRfaW9t bXVfZmx1c2hfcGFnZXMoZCwgZGZuLCAwKTsKKyAgICAgICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2Vz KGQsIGRmbl94KGRmbiksIDApOwogCiAgICAgZm9yICggbWVyZ2VfbGV2ZWwgPSBJT01NVV9QQUdJ TkdfTU9ERV9MRVZFTF8yOwogICAgICAgICAgIG1lcmdlX2xldmVsIDw9IGhkLT5hcmNoLnBhZ2lu Z19tb2RlOyBtZXJnZV9sZXZlbCsrICkKQEAgLTY5OCwxNSArNzAxLDE2IEBAIGludCBhbWRfaW9t bXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sIHVuc2lnbmVk IGxvbmcgbWZuLAogICAgICAgICBpZiAoIHB0X21mblttZXJnZV9sZXZlbF0gPT0gMCApCiAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgaWYgKCAhaW9tbXVfdXBkYXRlX3BkZV9jb3VudChkLCBw dF9tZm5bbWVyZ2VfbGV2ZWxdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRmbiwgbWZuLCBtZXJnZV9sZXZlbCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRmbl94KGRmbiksIG1mbl94KG1mbiksIG1lcmdlX2xldmVsKSApCiAgICAgICAgICAg ICBicmVhazsKIAotICAgICAgICBpZiAoIGlvbW11X21lcmdlX3BhZ2VzKGQsIHB0X21mblttZXJn ZV9sZXZlbF0sIGRmbiwKKyAgICAgICAgaWYgKCBpb21tdV9tZXJnZV9wYWdlcyhkLCBwdF9tZm5b bWVyZ2VfbGV2ZWxdLCBkZm5feChkZm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsYWdzLCBtZXJnZV9sZXZlbCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygi TWVyZ2UgaW9tbXUgcGFnZSBmYWlsZWQgYXQgbGV2ZWwgJWQsICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZGZuID0gJWx4IG1mbiA9ICVseFxuIiwgbWVyZ2VfbGV2ZWwsIGRmbiwgbWZu KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGZuID0gJSJQUklfZGZuIiBtZm4gPSAl IlBSSV9tZm4iXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlX2xldmVsLCBk Zm5feChkZm4pLCBtZm5feChtZm4pKTsKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgICAgICB9CkBAIC03MjAsNyArNzI0LDcgQEAg b3V0OgogICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pCitpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuKQogewogICAgIHVuc2lnbmVkIGxvbmcgcHRfbWZu WzddOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtNzQy LDMxICs3NDYsMzMgQEAgaW50IGFtZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZGZuKQogICAgICAqIHdlIG1pZ2h0IG5lZWQgYSBkZWVwZXIgcGFnZSB0 YWJsZSBmb3IgbGFnZXIgZGZuIG5vdyAqLwogICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAg ICAgewotICAgICAgICBpbnQgcmMgPSB1cGRhdGVfcGFnaW5nX21vZGUoZCwgZGZuKTsKKyAgICAg ICAgaW50IHJjID0gdXBkYXRlX3BhZ2luZ19tb2RlKGQsIGRmbl94KGRmbikpOwogCiAgICAgICAg IGlmICggcmMgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gu bWFwcGluZ19sb2NrKTsKLSAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2Ug bW9kZSBmYWlsZWQgZGZuID0gJWx4XG4iLCBkZm4pOworICAgICAgICAgICAgQU1EX0lPTU1VX0RF QlVHKCJVcGRhdGUgcGFnZSBtb2RlIGZhaWxlZCBkZm4gPSAlIlBSSV9kZm4iXG4iLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRmbl94KGRmbikpOwogICAgICAgICAgICAgaWYgKCByYyAh PSAtRUFERFJOT1RBVkFJTCApCiAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAg ICAgICAgICAgcmV0dXJuIHJjOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCBpb21tdV9w ZGVfZnJvbV9kZm4oZCwgZGZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0gPT0gMCkgKQorICAgIGlm ICggaW9tbXVfcGRlX2Zyb21fZGZuKGQsIGRmbl94KGRmbiksIHB0X21mbikgfHwgKHB0X21mblsx XSA9PSAwKSApCiAgICAgewogICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19s b2NrKTsKLSAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJJbnZhbGlkIElPIHBhZ2V0YWJsZSBlbnRy eSBkZm4gPSAlbHhcbiIsIGRmbik7CisgICAgICAgIEFNRF9JT01NVV9ERUJVRygiSW52YWxpZCBJ TyBwYWdldGFibGUgZW50cnkgZGZuID0gJSJQUklfZGZuIlxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgIGRmbl94KGRmbikpOwogICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgICAgIHJl dHVybiAtRUZBVUxUOwogICAgIH0KIAogICAgIC8qIG1hcmsgUFRFIGFzICdwYWdlIG5vdCBwcmVz ZW50JyAqLwotICAgIGNsZWFyX2lvbW11X3B0ZV9wcmVzZW50KHB0X21mblsxXSwgZGZuKTsKKyAg ICBjbGVhcl9pb21tdV9wdGVfcHJlc2VudChwdF9tZm5bMV0sIGRmbl94KGRmbikpOwogICAgIHNw aW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAgYW1kX2lvbW11X2ZsdXNo X3BhZ2VzKGQsIGRmbiwgMCk7CisgICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGRmbl94KGRm biksIDApOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC03ODcsNyArNzkzLDkgQEAgaW50IGFtZF9p b21tdV9yZXNlcnZlX2RvbWFpbl91bml0eV9tYXAoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAg IGdmbiA9IHBoeXNfYWRkciA+PiBQQUdFX1NISUZUOwogICAgIGZvciAoIGkgPSAwOyBpIDwgbnBh Z2VzOyBpKysgKQogICAgIHsKLSAgICAgICAgcnQgPSBhbWRfaW9tbXVfbWFwX3BhZ2UoZG9tYWlu LCBnZm4gK2ksIGdmbiAraSwgZmxhZ3MpOworICAgICAgICB1bnNpZ25lZCBsb25nIGZyYW1lID0g Z2ZuICsgaTsKKworICAgICAgICBydCA9IGFtZF9pb21tdV9tYXBfcGFnZShkb21haW4sIF9kZm4o ZnJhbWUpLCBfbWZuKGZyYW1lKSwgZmxhZ3MpOwogICAgICAgICBpZiAoIHJ0ICE9IDAgKQogICAg ICAgICAgICAgcmV0dXJuIHJ0OwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv cGNpX2FtZF9pb21tdS5jCmluZGV4IDU2OTlhZGMwZjYuLmU3ZjljNDE2MDMgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtMjcxLDcgKzI3MSw3IEBA IHN0YXRpYyB2b2lkIF9faHdkb21faW5pdCBhbWRfaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9t YWluICpkKQogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAoIG1mbl92YWxpZChfbWZu KHBmbikpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmV0ID0gYW1kX2lv bW11X21hcF9wYWdlKGQsIHBmbiwgcGZuLAorICAgICAgICAgICAgICAgIGludCByZXQgPSBhbWRf aW9tbXVfbWFwX3BhZ2UoZCwgX2RmbihwZm4pLCBfbWZuKHBmbiksCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRh YmxlKTsKIAogICAgICAgICAgICAgICAgIGlmICggIXJjICkKZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v c21tdS5jCmluZGV4IDA2NjIzOThjY2MuLmYzMWIwNzViYzUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YXJtL3NtbXUuYwpAQCAtMjU1MCw4ICsyNTUwLDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sg YXJtX3NtbXVfaW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4gKmQpCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBk b21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGRmbiwKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X2lvdGxi X2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewogCS8q IEFSTSBTTU1VIHYxIGRvZXNuJ3QgaGF2ZSBmbHVzaCBieSBWTUEgYW5kIFZNSUQgKi8KQEAgLTI3 MzcsOCArMjczNiw4IEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X2lvbW11X2RvbWFpbl90ZWFyZG93 bihzdHJ1Y3QgZG9tYWluICpkKQogCXhmcmVlKHhlbl9kb21haW4pOwogfQogCi1zdGF0aWMgaW50 IF9fbXVzdF9jaGVjayBhcm1fc21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGRmbiwKLQkJCXVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCitz dGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1fc21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCBkZm5fdCBkZm4sCisJCQkJCSAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJ cDJtX3R5cGVfdCB0OwogCkBAIC0yNzUxLDcgKzI3NTAsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBhcm1fc21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRm biwKIAkgKiBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGdudHRhYiBjb2RlIHdpdGgg Z2ZuID09IG1mbiA9PSBkZm4uCiAJICovCiAJQlVHX09OKCFpc19kb21haW5fZGlyZWN0X21hcHBl ZChkKSk7Ci0JQlVHX09OKG1mbiAhPSBkZm4pOworCUJVR19PTihtZm5feChtZm4pICE9IGRmbl94 KGRmbikpOwogCiAJLyogV2Ugb25seSBzdXBwb3J0IHJlYWRhYmxlIGFuZCB3cml0YWJsZSBmbGFn cyAqLwogCWlmICghKGZsYWdzICYgKElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZSkp KQpAQCAtMjc2MywxMCArMjc2MiwxMSBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1fc21t dV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwKIAkgKiBUaGUg ZnVuY3Rpb24gZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkgcmVwbGFjZXMgdGhlIGN1cnJlbnQgbWFw cGluZwogCSAqIGlmIHRoZXJlIGlzIGFscmVhZHkgb25lLi4uCiAJICovCi0JcmV0dXJuIGd1ZXN0 X3BoeXNtYXBfYWRkX2VudHJ5KGQsIF9nZm4oZGZuKSwgX21mbihkZm4pLCAwLCB0KTsKKwlyZXR1 cm4gZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoZCwgX2dmbihkZm5feChkZm4pKSwgX21mbihkZm5f eChkZm4pKSwKKwkJCQkgICAgICAgMCwgdCk7CiB9CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNr IGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4p CitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1fc21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGRmbl90IGRmbikKIHsKIAkvKgogCSAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkg YmUgdXNlZCBieSBnbnR0YWIgY29kZSB3aGVuIHRoZSBkb21haW4KQEAgLTI3NzUsNyArMjc3NSw3 IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pCiAJaWYgKCAhaXNfZG9tYWluX2RpcmVjdF9tYXBw ZWQoZCkgKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJldHVybiBndWVzdF9waHlzbWFwX3JlbW92 ZV9wYWdlKGQsIF9nZm4oZGZuKSwgX21mbihkZm4pLCAwKTsKKwlyZXR1cm4gZ3Vlc3RfcGh5c21h cF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGRmbl94KGRmbikpLCBfbWZuKGRmbl94KGRmbikpLCAwKTsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgYXJtX3NtbXVfaW9tbXVfb3BzID0g ewpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKaW5kZXggMGM2ZTU5MDRkYS4uMTVhZTY2YTA2YyAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0xOTMsNyArMTkzLDggQEAgdm9pZCBfX2h3ZG9tX2lu aXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAgICAgICAg PT0gUEdUX3dyaXRhYmxlX3BhZ2UpICkKICAgICAgICAgICAgICAgICBtYXBwaW5nIHw9IElPTU1V Rl93cml0YWJsZTsKIAotICAgICAgICAgICAgcmV0ID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3Bh Z2UoZCwgZGZuLCBtZm4sIG1hcHBpbmcpOworICAgICAgICAgICAgcmV0ID0gaGQtPnBsYXRmb3Jt X29wcy0+bWFwX3BhZ2UoZCwgX2RmbihkZm4pLCBfbWZuKG1mbiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nKTsKICAgICAgICAgICAgIGlmICgg IXJjICkKICAgICAgICAgICAgICAgICByYyA9IHJldDsKIApAQCAtMjYzLDcgKzI2NCw3IEBAIGlu dCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90IG1mbiwK ICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAg cmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGRmbl94 KGRmbiksIG1mbl94KG1mbiksIGZsYWdzKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1h cF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAg IHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0 KCkgKQpAQCAtMjg2LDcgKzI4Nyw3IEBAIGludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGRmbl90IGRmbikKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZv cm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMt PnVubWFwX3BhZ2UoZCwgZGZuX3goZGZuKSk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51 bm1hcF9wYWdlKGQsIGRmbik7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAg ICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQpAQCAt MzI2LDcgKzMyNyw3IEBAIGludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCBk Zm5fdCBkZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogICAgIGlmICggIWlvbW11X2VuYWJs ZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNo ICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxi X2ZsdXNoKGQsIGRmbl94KGRmbiksIHBhZ2VfY291bnQpOworICAgIHJjID0gaGQtPnBsYXRmb3Jt X29wcy0+aW90bGJfZmx1c2goZCwgZGZuLCBwYWdlX2NvdW50KTsKICAgICBpZiAoIHVubGlrZWx5 KHJjKSApCiAgICAgewogICAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50 a19yYXRlbGltaXQoKSApCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IGFjMGE3 OGQ5MTcuLjAxNjNiYjk0OWIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC01 ODQsOCArNTg0LDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfYWxsKHZv aWQpCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9m bHVzaF9pb3RsYihzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkZm4sCitzdGF0aWMgaW50IF9fbXVzdF9jaGVj ayBpb21tdV9mbHVzaF9pb3RsYihzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sX3QgZG1hX29sZF9wdGVfcHJl c2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBwYWdlX2NvdW50KQogewpAQCAtNjEyLDEyICs2MTEsMTIgQEAgc3RhdGljIGludCBfX211 c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgaWYg KCBpb21tdV9kb21pZCA9PSAtMSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBp ZiAoIHBhZ2VfY291bnQgIT0gMSB8fCBkZm4gPT0gZGZuX3goSU5WQUxJRF9ERk4pICkKKyAgICAg ICAgaWYgKCBwYWdlX2NvdW50ICE9IDEgfHwgZGZuX2VxKGRmbiwgSU5WQUxJRF9ERk4pICkKICAg ICAgICAgICAgIHJjID0gaW9tbXVfZmx1c2hfaW90bGJfZHNpKGlvbW11LCBpb21tdV9kb21pZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGZsdXNoX2Rldl9pb3Rs Yik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0gaW9tbXVfZmx1c2hfaW90bGJfcHNp KGlvbW11LCBpb21tdV9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF9fZGZuX3RvX2RhZGRyKGRmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZm5fdG9fZGFkZHIoZGZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBBR0VfT1JERVJfNEssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAhZG1hX29sZF9wdGVfcHJlc2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZsdXNoX2Rldl9pb3RsYik7CkBAIC02MzMsNyArNjMyLDcgQEAgc3RhdGlj IGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFpbiAqZCwKIH0K IAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfcGFnZXMoc3RydWN0 IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGZuX3QgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgcmV0dXJu IGlvbW11X2ZsdXNoX2lvdGxiKGQsIGRmbiwgMSwgcGFnZV9jb3VudCk7CkBAIC02NDEsNyArNjQw LDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfcGFnZXMoc3Ry dWN0IGRvbWFpbiAqZCwKIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90 bGJfYWxsKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgcmV0dXJuIGlvbW11X2ZsdXNoX2lvdGxi KGQsIGRmbl94KElOVkFMSURfREZOKSwgMCwgMCk7CisgICAgcmV0dXJuIGlvbW11X2ZsdXNoX2lv dGxiKGQsIElOVkFMSURfREZOLCAwLCAwKTsKIH0KIAogLyogY2xlYXIgb25lIHBhZ2UncyBwYWdl IHRhYmxlICovCkBAIC02NzYsNyArNjc1LDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgZG1h X3B0ZV9jbGVhcl9vbmUoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1NjQgYWRkcikKICAgICBpb21t dV9mbHVzaF9jYWNoZV9lbnRyeShwdGUsIHNpemVvZihzdHJ1Y3QgZG1hX3B0ZSkpOwogCiAgICAg aWYgKCAhdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgKQotICAgICAgICByYyA9IGlv bW11X2ZsdXNoX2lvdGxiX3BhZ2VzKGRvbWFpbiwgYWRkciA+PiBQQUdFX1NISUZUXzRLLCAxKTsK KyAgICAgICAgcmMgPSBpb21tdV9mbHVzaF9pb3RsYl9wYWdlcyhkb21haW4sIGRhZGRyX3RvX2Rm bihhZGRyKSwgMSk7CiAKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocGFnZSk7CiAKQEAgLTE3 NjcsOCArMTc2Niw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X2RvbWFpbl90ZWFyZG93bihzdHJ1Y3Qg ZG9tYWluICpkKQogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBf cGFnZShzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbl90IGRmbiwgbWZuX3QgbWZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdz KQogewogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtMTc4 NiwxNiArMTc4NCwxNiBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBf cGFnZShzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5n X2xvY2spOwogCi0gICAgcGdfbWFkZHIgPSBhZGRyX3RvX2RtYV9wYWdlX21hZGRyKGQsIF9fZGZu X3RvX2RhZGRyKGRmbiksIDEpOworICAgIHBnX21hZGRyID0gYWRkcl90b19kbWFfcGFnZV9tYWRk cihkLCBkZm5fdG9fZGFkZHIoZGZuKSwgMSk7CiAgICAgaWYgKCBwZ19tYWRkciA9PSAwICkKICAg ICB7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgICAg ICByZXR1cm4gLUVOT01FTTsKICAgICB9CiAgICAgcGFnZSA9IChzdHJ1Y3QgZG1hX3B0ZSAqKW1h cF92dGRfZG9tYWluX3BhZ2UocGdfbWFkZHIpOwotICAgIHB0ZSA9IHBhZ2UgKyAoZGZuICYgTEVW RUxfTUFTSyk7CisgICAgcHRlID0gcGFnZSArIChkZm5feChkZm4pICYgTEVWRUxfTUFTSyk7CiAg ICAgb2xkID0gKnB0ZTsKLSAgICBkbWFfc2V0X3B0ZV9hZGRyKG5ldywgKHBhZGRyX3QpbWZuIDw8 IFBBR0VfU0hJRlRfNEspOworICAgIGRtYV9zZXRfcHRlX2FkZHIobmV3LCBtZm5fdG9fbWFkZHIo bWZuKSk7CiAgICAgZG1hX3NldF9wdGVfcHJvdChuZXcsCiAgICAgICAgICAgICAgICAgICAgICAo KGZsYWdzICYgSU9NTVVGX3JlYWRhYmxlKSA/IERNQV9QVEVfUkVBRCAgOiAwKSB8CiAgICAgICAg ICAgICAgICAgICAgICAoKGZsYWdzICYgSU9NTVVGX3dyaXRhYmxlKSA/IERNQV9QVEVfV1JJVEUg OiAwKSk7CkBAIC0xODIzLDEzICsxODIxLDEzIEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlu dGVsX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiB9CiAKIHN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIGludGVsX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBk Zm4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbl90 IGRmbikKIHsKICAgICAvKiBEbyBub3RoaW5nIGlmIGhhcmR3YXJlIGRvbWFpbiBhbmQgaW9tbXUg c3VwcG9ydHMgcGFzcyB0aHJ1LiAqLwogICAgIGlmICggaW9tbXVfcGFzc3Rocm91Z2ggJiYgaXNf aGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gZG1h X3B0ZV9jbGVhcl9vbmUoZCwgX19kZm5fdG9fZGFkZHIoZGZuKSk7CisgICAgcmV0dXJuIGRtYV9w dGVfY2xlYXJfb25lKGQsIGRmbl90b19kYWRkcihkZm4pKTsKIH0KIAogaW50IGlvbW11X3B0ZV9m bHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBkZm4sIHVpbnQ2NF90ICpwdGUsCmRpZmYg LS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCmluZGV4IDY4MTgyYWZkOTEuLjIxZTY2NzhmMTYgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCkBAIC02NSw3ICs2NSw3IEBAIGludCBhcmNo X2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIShnZm4gPj4gREVGQVVMVF9ET01BSU5fQUREUkVT U19XSURUSCkpOwogICAgICAgICAgICAgICAgIEJVR19PTihTSEFSRURfTTJQKGdmbikpOwotICAg ICAgICAgICAgICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgZ2ZuLCBtZm4s CisgICAgICAgICAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBfZGZu KGdmbiksIF9tZm4obWZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVUZfd3JpdGFibGUpOwogICAgICAgICAgICAgfQpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oCmluZGV4IDk5YmMy MWM3YjMuLjMwODNkNjI1YmQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2 bS9hbWQtaW9tbXUtcHJvdG8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1k LWlvbW11LXByb3RvLmgKQEAgLTUyLDkgKzUyLDkgQEAgaW50IGFtZF9pb21tdV9pbml0KHZvaWQp OwogaW50IGFtZF9pb21tdV91cGRhdGVfaXZyc19tYXBwaW5nX2FjcGkodm9pZCk7CiAKIC8qIG1h cHBpbmcgZnVuY3Rpb25zICovCi1pbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwot aW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIGdmbik7CitpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7CitpbnQgX19tdXN0X2NoZWNr IGFtZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbik7CiB1NjQg YW1kX2lvbW11X2dldF9uZXh0X3RhYmxlX2Zyb21fcHRlKHUzMiAqZW50cnkpOwogaW50IF9fbXVz dF9jaGVjayBhbWRfaW9tbXVfYWxsb2Nfcm9vdChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7CiBp bnQgYW1kX2lvbW11X3Jlc2VydmVfZG9tYWluX3VuaXR5X21hcChzdHJ1Y3QgZG9tYWluICpkb21h aW4sCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgaW9tbXVfZHRlX3NldF9ndWVzdF9jcjModTMyICpk dGUsIHUxNiBkb21faWQsIHU2NCBnY3IzLAogCiAvKiBzZW5kIGNtZCB0byBpb21tdSAqLwogdm9p ZCBhbWRfaW9tbXVfZmx1c2hfYWxsX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQpOwotdm9pZCBhbWRf aW9tbXVfZmx1c2hfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCit2 b2lkIGFtZF9pb21tdV9mbHVzaF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcik7CiB2 b2lkIGFtZF9pb21tdV9mbHVzaF9pb3RsYih1OCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYg KnBkZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBnYWRkciwgdW5zaWdu ZWQgaW50IG9yZGVyKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVu L2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggMjk5YjY5ZWU3Zi4uOWUwYjRlODYzOCAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11 LmgKQEAgLTQ4LDYgKzQ4LDExIEBAIHN0YXRpYyBpbmxpbmUgZGZuX3QgZGZuX2FkZChkZm5fdCBk Zm4sIHVuc2lnbmVkIGxvbmcgaSkKICAgICByZXR1cm4gX2RmbihkZm5feChkZm4pICsgaSk7CiB9 CiAKK3N0YXRpYyBpbmxpbmUgYm9vbF90IGRmbl9lcShkZm5fdCB4LCBkZm5fdCB5KQoreworICAg IHJldHVybiBkZm5feCh4KSA9PSBkZm5feCh5KTsKK30KKwogI2RlZmluZSBJT01NVV9QQUdFX1NI SUZUIDEyCiAjZGVmaW5lIElPTU1VX1BBR0VfU0laRSAgKF9BQygxLEwpIDw8IElPTU1VX1BBR0Vf U0hJRlQpCiAjZGVmaW5lIElPTU1VX1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkp CkBAIC0xODIsOSArMTg3LDkgQEAgc3RydWN0IGlvbW11X29wcyB7CiAjZW5kaWYgLyogSEFTX1BD SSAqLwogCiAgICAgdm9pZCAoKnRlYXJkb3duKShzdHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQg X19tdXN0X2NoZWNrICgqbWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg ZGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4s IHVuc2lnbmVkIGludCBmbGFncyk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2Up KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuKTsKKyAgICBpbnQgX19tdXN0X2No ZWNrICgqbWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgbWZuLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKKyAg ICBpbnQgX19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3Qg ZGZuKTsKICAgICB2b2lkICgqZnJlZV9wYWdlX3RhYmxlKShzdHJ1Y3QgcGFnZV9pbmZvICopOwog I2lmZGVmIENPTkZJR19YODYKICAgICB2b2lkICgqdXBkYXRlX2lyZV9mcm9tX2FwaWMpKHVuc2ln bmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpOwpAQCAt MTk1LDcgKzIwMCw3IEBAIHN0cnVjdCBpb21tdV9vcHMgewogICAgIHZvaWQgKCpyZXN1bWUpKHZv aWQpOwogICAgIHZvaWQgKCpzaGFyZV9wMm0pKHN0cnVjdCBkb21haW4gKmQpOwogICAgIHZvaWQg KCpjcmFzaF9zaHV0ZG93bikodm9pZCk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKmlvdGxiX2Zs dXNoKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwKKyAgICBpbnQgX19tdXN0 X2NoZWNrICgqaW90bGJfZmx1c2gpKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KTsK ICAgICBpbnQgX19tdXN0X2NoZWNrICgqaW90bGJfZmx1c2hfYWxsKShzdHJ1Y3QgZG9tYWluICpk KTsKICAgICBpbnQgKCpnZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeSkoaW9tbXVfZ3JkbV90ICos IHZvaWQgKik7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs