From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 12/12] x86/hvm/ioreq: add a new mappable resource type... Date: Tue, 22 Aug 2017 15:51:06 +0100 Message-ID: <20170822145107.6877-13-paul.durrant@citrix.com> References: <20170822145107.6877-1-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 1dkAvA-0004w1-At for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 15:16:48 +0000 In-Reply-To: <20170822145107.6877-1-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: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org Li4uIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIKClRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0 IGZvciBhIG5ldyByZXNvdXJjZSB0eXBlIHRoYXQgY2FuIGJlIG1hcHBlZCB1c2luZwp0aGUgWEVO TUVNX2FjcXVpcmVfcmVzb3VyY2UgbWVtb3J5IG9wLgoKSWYgYW4gZW11bGF0b3IgbWFrZXMgdXNl IG9mIHRoaXMgcmVzb3VyY2UgdHlwZSB0aGVuLCBpbnN0ZWFkIG9mIG1hcHBpbmcKZ2ZucywgdGhl IElPUkVRIHNlcnZlciB3aWxsIGFsbG9jYXRlIHBhZ2VzIGZyb20gdGhlIGhlYXAuIFRoZXNlIHBh Z2VzCndpbGwgbmV2ZXIgYmUgcHJlc2VudCBpbiB0aGUgUDJNIG9mIHRoZSBndWVzdCBhdCBhbnkg cG9pbnQgYW5kIHNvIGFyZQpub3QgdnVsbmVyYWJsZSB0byBhbnkgZGlyZWN0IGF0dGFjayBieSB0 aGUgZ3Vlc3QuIFRoZXkgYXJlIG9ubHkgZXZlcgphY2Nlc3NpYmxlIGJ5IFhlbiBhbmQgYW55IGRv bWFpbiB0aGF0IGhhcyBtYXBwaW5nIHByaXZpbGVnZSBvdmVyIHRoZQpndWVzdCAod2hpY2ggbWF5 IG9yIG1heSBub3QgYmUgbGltaXRlZCB0byB0aGUgZG9tYWluIHJ1bm5pbmcgdGhlIGVtdWxhdG9y KS4KCk5PVEU6IFVzZSBvZiB0aGUgbmV3IHJlc291cmNlIHR5cGUgaXMgbm90IGNvbXBhdGlibGUg d2l0aCB1c2Ugb2YKICAgICAgWEVOX0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHVubGVzcyB0 aGUgWEVOX0RNT1Bfbm9fZ2ZucyBmbGFnIGlzCiAgICAgIHNldC4KClNpZ25lZC1vZmYtYnk6IFBh dWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0 cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4K Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogS29ucmFkIFJ6 ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxs aW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0v aW9yZXEuYyAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICB8ICAyNyArKysrKysrKwogeGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaCB8ICAgMiArCiB4ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2RtX29wLmggIHwgICA0ICsrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmggICAgIHwg ICAzICsKIDUgZmlsZXMgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKaW5kZXgg Nzk1YzE5OGY5NS4uOWU2ODM4ZGFiNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3Jl cS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpAQCAtMjMxLDYgKzIzMSwxNSBAQCBz dGF0aWMgaW50IGh2bV9tYXBfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBi b29sIGJ1ZikKICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVm aW9yZXEgOiAmcy0+aW9yZXE7CiAgICAgaW50IHJjOwogCisgICAgaWYgKCBpb3JwLT5wYWdlICkK KyAgICB7CisgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgcGFnZSBoYXMgbm90IGJlZW4gYWxsb2Nh dGVkICovCisgICAgICAgIGlmICggZ2ZuX2VxKGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkKKyAg ICAgICAgICAgIHJldHVybiAtRVBFUk07CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAg ICAgaWYgKCBkLT5pc19keWluZyApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCkBAIC0yNTMs NiArMjYyLDYwIEBAIHN0YXRpYyBpbnQgaHZtX21hcF9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3Jl cV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogICAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGludCBo dm1fYWxsb2NfaW9yZXFfbWZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikK K3sKKyAgICBzdHJ1Y3QgZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICBzdHJ1 Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9yZXE7 CisKKyAgICBpZiAoIGlvcnAtPnBhZ2UgKQorICAgIHsKKyAgICAgICAgLyogTWFrZSBzdXJlIHRo ZSBwYWdlIGhhcyBub3QgYmVlbiBtYXBwZWQgKi8KKyAgICAgICAgaWYgKCAhZ2ZuX2VxKGlvcnAt PmdmbiwgSU5WQUxJRF9HRk4pICkKKyAgICAgICAgICAgIHJldHVybiAtRVBFUk07CisKKyAgICAg ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZWQgSU9SRVEgc2Vy dmVyIHBhZ2VzIGFyZSBhc3NpZ25lZCB0byB0aGUgZW11bGF0aW5nCisgICAgICogZG9tYWluLCBu b3QgdGhlIHRhcmdldCBkb21haW4uIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW11bGF0b3IgaXMKKyAg ICAgKiBsaWtlbHkgdG8gYmUgZGVzdHJveWVkIGFmdGVyIHRoZSB0YXJnZXQgZG9tYWluIGhhcyBi ZWVuIHRvcm4KKyAgICAgKiBkb3duLCBhbmQgd2UgbXVzdCB1c2UgTUVNRl9ub19yZWZjb3VudCBv dGhlcndpc2UgcGFnZSBhbGxvY2F0aW9uCisgICAgICogY291bGQgZmFpbCBpZiB0aGUgZW11bGF0 aW5nIGRvbWFpbiBoYXMgYWxyZWFkeSByZWFjaGVkIGl0cworICAgICAqIG1heGltdW0gYWxsb2Nh dGlvbi4KKyAgICAgKi8KKyAgICBpb3JwLT5wYWdlID0gYWxsb2NfZG9taGVhcF9wYWdlKGN1cnJk LCBNRU1GX25vX3JlZmNvdW50KTsKKyAgICBpZiAoICFpb3JwLT5wYWdlICkKKyAgICAgICAgcmV0 dXJuIC1FTk9NRU07CisKKyAgICBnZXRfcGFnZShpb3JwLT5wYWdlLCBjdXJyZCk7CisKKyAgICBp b3JwLT52YSA9IF9fbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChpb3JwLT5wYWdlKTsKKyAgICBpZiAo ICFpb3JwLT52YSApCisgICAgeworICAgICAgICBwdXRfcGFnZShpb3JwLT5wYWdlKTsKKyAgICAg ICAgaW9ycC0+cGFnZSA9IE5VTEw7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKwor ICAgIGNsZWFyX3BhZ2UoaW9ycC0+dmEpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCBodm1fZnJlZV9pb3JlcV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVm KQoreworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3Jl cSA6ICZzLT5pb3JlcTsKKworICAgIGlmICggIWlvcnAtPnBhZ2UgKQorICAgICAgICByZXR1cm47 CisKKyAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoaW9ycC0+dmEpOworICAgIGlvcnAtPnZh ID0gTlVMTDsKKworICAgIHB1dF9wYWdlKGlvcnAtPnBhZ2UpOworICAgIGlvcnAtPnBhZ2UgPSBO VUxMOworfQorCiBib29sIGlzX2lvcmVxX3NlcnZlcl9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGNv bnN0IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiB7CiAgICAgY29uc3Qgc3RydWN0IGh2bV9pb3Jl cV9zZXJ2ZXIgKnM7CkBAIC00NTcsNiArNTIwLDI3IEBAIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9z ZXJ2ZXJfdW5tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiAgICAgaHZtX3Vu bWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7CiB9CiAKK3N0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZl cl9hbGxvY19wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKK3sKKyAgICBpbnQgcmMg PSAtRU5PTUVNOworCisgICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMsIGZhbHNlKTsKKwor ICAgIGlmICggIXJjICYmIChzLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVG SU9SRVFfT0ZGKSApCisgICAgICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCB0cnVlKTsK KworICAgIGlmICggcmMgKQorICAgICAgICBodm1fZnJlZV9pb3JlcV9tZm4ocywgZmFsc2UpOwor CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2ZyZWVf cGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgaHZtX2ZyZWVfaW9yZXFf bWZuKHMsIHRydWUpOworICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxzZSk7Cit9CisKIHN0 YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9yYW5nZXNldHMoc3RydWN0IGh2bV9pb3Jl cV9zZXJ2ZXIgKnMpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CkBAIC01ODMsNyArNjY3LDE4IEBA IHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFfc2VydmVy ICpzLAogCiAgZmFpbF9hZGQ6CiAgICAgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVz KHMpOworCisgICAgLyoKKyAgICAgKiBOT1RFOiBJdCBpcyBzYWZlIHRvIGNhbGwgYm90aCBodm1f aW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKCkgYW5kCisgICAgICogICAgICAgaHZtX2lvcmVxX3Nl cnZlcl9mcmVlX3BhZ2VzKCkgaW4gdGhhdCBvcmRlci4KKyAgICAgKiAgICAgICBUaGlzIGlzIGJl Y2F1c2UgdGhlIGZvcm1lciB3aWxsIGRvIG5vdGhpbmcgaWYgdGhlIHBhZ2VzCisgICAgICogICAg ICAgYXJlIG5vdCBtYXBwZWQsIGxlYXZpbmcgdGhlIHBhZ2UgdG8gYmUgZnJlZWQgYnkgdGhlIGxh dHRlci4KKyAgICAgKiAgICAgICBIb3dldmVyIGlmIHRoZSBwYWdlcyBhcmUgbWFwcGVkIHRoZW4g dGhlIGZvcm1lciB3aWxsIHNldAorICAgICAqICAgICAgIHRoZSBwYWdlX2luZm8gcG9pbnRlciB0 byBOVUxMLCBtZWFuaW5nIHRoZSBsYXR0ZXIgd2lsbCBkbworICAgICAqICAgICAgIG5vdGhpbmcu CisgICAgICovCiAgICAgaHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhzKTsKKyAgICBodm1f aW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMocyk7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC01OTMs NiArNjg4LDcgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9kZWluaXQoc3RydWN0IGh2 bV9pb3JlcV9zZXJ2ZXIgKnMpCiAgICAgQVNTRVJUKCFzLT5lbmFibGVkKTsKICAgICBodm1faW9y ZXFfc2VydmVyX3JlbW92ZV9hbGxfdmNwdXMocyk7CiAgICAgaHZtX2lvcmVxX3NlcnZlcl91bm1h cF9wYWdlcyhzKTsKKyAgICBodm1faW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMocyk7CiAgICAgaHZt X2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzKTsKIH0KIApAQCAtNzQ1LDYgKzg0MSw5IEBA IGludCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2Vydmlk X3QgaWQsCiAgICAgICAgICAgICByYyA9IGh2bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2VzKHMpOwog ICAgICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg ICAgIGdkcHJpbnRrKFhFTkxPR19JTkZPLCAiZCVkIGlvcmVxIHNlcnZlciAldSB1c2luZyBnZm5z XG4iLAorICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBzLT5pZCk7CiAgICAgICAg IH0KIAogICAgICAgICBpZiAoIGlvcmVxX2dmbiApCkBAIC03NjcsNiArODY2LDQzIEBAIGludCBo dm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQs CiAgICAgcmV0dXJuIHJjOwogfQogCittZm5fdCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShz dHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGlkeCkKK3sKKyAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZl ciAqczsKKyAgICBtZm5fdCBtZm4gPSBJTlZBTElEX01GTjsKKworICAgIHNwaW5fbG9ja19yZWN1 cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisKKyAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5ICggcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmQtPmFyY2gu aHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg bGlzdF9lbnRyeSApCisgICAgeworICAgICAgICBpbnQgcmM7CisKKyAgICAgICAgaWYgKCBzID09 IGQtPmFyY2guaHZtX2RvbWFpbi5kZWZhdWx0X2lvcmVxX3NlcnZlciApCisgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICBpZiAoIHMtPmlkICE9IGlkICkKKyAgICAgICAgICAgIGNvbnRp bnVlOworCisgICAgICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcyhzKTsKKyAg ICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoIGlkeCA9 PSAwICkKKyAgICAgICAgICAgIG1mbiA9IF9tZm4ocGFnZV90b19tZm4ocy0+YnVmaW9yZXEucGFn ZSkpOworICAgICAgICBlbHNlIGlmICggaWR4ID09IDEgKQorICAgICAgICAgICAgbWZuID0gX21m bihwYWdlX3RvX21mbihzLT5pb3JlcS5wYWdlKSk7CisKKyAgICAgICAgYnJlYWs7CisgICAgfQor CisgICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2Vy dmVyLmxvY2spOworCisgICAgcmV0dXJuIG1mbjsKK30KKwogaW50IGh2bV9tYXBfaW9fcmFuZ2Vf dG9faW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgc3Rh cnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZW5kKQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCA0 ZTg2ZjBhMmFiLi4zZTg0NWFmMGU0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysg Yi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMTIyLDYgKzEyMiw3IEBACiAjaW5jbHVkZSA8YXNtL2Zp eG1hcC5oPgogI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+CiAjaW5jbHVkZSA8YXNtL3BjaS5oPgor I2luY2x1ZGUgPGFzbS9odm0vaW9yZXEuaD4KIAogLyogTWFwcGluZyBvZiB0aGUgZml4bWFwIHNw YWNlIG5lZWRlZCBlYXJseS4gKi8KIGwxX3BnZW50cnlfdCBfX3NlY3Rpb24oIi5ic3MucGFnZV9h bGlnbmVkIikgX19hbGlnbmVkKFBBR0VfU0laRSkKQEAgLTQ3NDQsNiArNDc0NSwyNyBAQCBzdGF0 aWMgaW50IHhlbm1lbV9hY3F1aXJlX2dyYW50X3RhYmxlKHN0cnVjdCBkb21haW4gKmQsCiAgICAg cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgeGVubWVtX2FjcXVpcmVfaW9yZXFfc2VydmVyKHN0 cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBucl9mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbl9saXN0W10pCit7CisgICAgdW5zaWduZWQgaW50 IGk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2ZyYW1lczsgaSsrICkKKyAgICB7CisgICAg ICAgIG1mbl90IG1mbiA9IGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKGQsIGlkLCBmcmFtZSAr IGkpOworCisgICAgICAgIGlmICggbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICkKKyAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAgIG1mbl9saXN0W2ldID0gbWZuX3gobWZuKTsK KyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIGludCB4ZW5tZW1fYWNxdWlyZV9y ZXNvdXJjZSh4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCAqeG1hcikKIHsKICAgICBzdHJ1Y3Qg ZG9tYWluICpkLCAqY3VycmQgPSBjdXJyZW50LT5kb21haW47CkBAIC00Nzc4LDYgKzQ4MDAsMTEg QEAgc3RhdGljIGludCB4ZW5tZW1fYWNxdWlyZV9yZXNvdXJjZSh4ZW5fbWVtX2FjcXVpcmVfcmVz b3VyY2VfdCAqeG1hcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Zm5fbGlzdCk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBYRU5NRU1fcmVzb3VyY2VfaW9y ZXFfc2VydmVyOgorICAgICAgICByYyA9IHhlbm1lbV9hY3F1aXJlX2lvcmVxX3NlcnZlcihkLCB4 bWFyLT5pZCwgeG1hci0+ZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHhtYXItPm5yX2ZyYW1lcywgbWZuX2xpc3QpOworICAgICAgICBicmVhazsKKwogICAg IGRlZmF1bHQ6CiAgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgIGJyZWFrOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lvcmVxLmgKaW5kZXggMTgyOWZjZjQzZS4uMDMyYWViNmZhOSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9pb3JlcS5oCkBAIC0zMSw2ICszMSw4IEBAIGludCBodm1fZ2V0X2lvcmVxX3NlcnZl cl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICppb3JlcV9nZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpidWZpb3JlcV9nZm4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBldnRjaG5fcG9ydF90ICpidWZpb3JlcV9wb3J0KTsKK21mbl90IGh2 bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWR4KTsKIGlu dCBodm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3Nl cnZpZF90IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHR5cGUsIHVpbnQ2NF90IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90IGVuZCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggOTY3N2JkNzRlNy4u NTliNjAwNjkxMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtOTAsNiArOTAsMTAgQEAgc3Ry dWN0IHhlbl9kbV9vcF9jcmVhdGVfaW9yZXFfc2VydmVyIHsKICAqIHRoZSBmcmFtZSBudW1iZXJz IHBhc3NlZCBiYWNrIGluIGdmbnMgPGlvcmVxX2dmbj4gYW5kIDxidWZpb3JlcV9nZm4+CiAgKiBy ZXNwZWN0aXZlbHkuIChJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZmZXJl ZCBlbXVsYXRpb24KICAqIG9ubHkgPGlvcmVxX2dmbj4gd2lsbCBiZSB2YWxpZCkuCisgKgorICog Tk9URTogVG8gYWNjZXNzIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFuZCBidWZm ZXJlZCBpb3JlcQorICogICAgICAgcmluZywgaXQgaXMgcHJlZmVyYWJsZSB0byB1c2UgdGhlIFhF Tk1FTV9hY3F1aXJlX3Jlc291cmNlIG1lbW9yeQorICogICAgICAgb3Agc3BlY2lmeWluZyByZXNv dXJjZSB0eXBlIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIuCiAgKi8KICNkZWZpbmUgWEVO X0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIDIKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv cHVibGljL21lbW9yeS5oIGIveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCmluZGV4IDliZjU4 ZTczODQuLjcxNjk0MWRjMGMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnku aAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKQEAgLTY2NCwxMCArNjY0LDEzIEBA IHN0cnVjdCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UgewogICAgIHVpbnQxNl90IHR5cGU7CiAK ICNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2dyYW50X3RhYmxlIDAKKyNkZWZpbmUgWEVOTUVNX3Jl c291cmNlX2lvcmVxX3NlcnZlciAxCiAKICAgICAvKgogICAgICAqIElOIC0gYSB0eXBlLXNwZWNp ZmljIHJlc291cmNlIGlkZW50aWZpZXIsIHdoaWNoIG11c3QgYmUgemVybwogICAgICAqICAgICAg dW5sZXNzIHN0YXRlZCBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiB0eXBlID09IFhFTk1FTV9y ZXNvdXJjZV9pb3JlcV9zZXJ2ZXIgLT4gaWQgPT0gaW9yZXEgc2VydmVyIGlkCiAgICAgICovCiAg ICAgdWludDMyX3QgaWQ7CiAgICAgLyogSU4gLSBudW1iZXIgb2YgKDRLKSBmcmFtZXMgb2YgdGhl IHJlc291cmNlIHRvIGJlIG1hcHBlZCAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==