From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v12 06/11] x86/hvm/ioreq: add a new mappable resource type... Date: Tue, 17 Oct 2017 14:24:27 +0100 Message-ID: <20171017132432.24093-7-paul.durrant@citrix.com> References: <20171017132432.24093-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e4RrS-0000BO-VB for xen-devel@lists.xenproject.org; Tue, 17 Oct 2017 13:24:47 +0000 In-Reply-To: <20171017132432.24093-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 , Konrad Rzeszutek Wilk , 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+Ci0tLQpDYzogR2VvcmdlIER1bmxh cCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs Lm9yZz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgoKdjEyOgogLSBBZGRyZXNzZWQgbW9y ZSBjb21tZW50cyBmcm9tIEphbi4KIC0gRHJvcHBlZCBHZW9yZ2UncyBBLWIgYW5kIFdlaSdzIFIt YiBiZWNhdXNlIG9mIG1hdGVyaWFsIGNoYW5nZS4KCnYxMToKIC0gQWRkcmVzc2VkIG1vcmUgY29t bWVudHMgZnJvbSBKYW4uCgp2MTA6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEphbi4KCnY4 OgogLSBSZS1iYXNlIG9uIG5ldyBib2lsZXJwbGF0ZS4KIC0gQWRqdXN0IGZ1bmN0aW9uIHNpZ25h dHVyZSBvZiBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZSgpLCBhbmQgdGVzdAogICB3aGV0aGVy IHRoZSBidWZpb3JlcSBwYWdlIGlzIHByZXNlbnQuCgp2NToKIC0gVXNlIGdldF9pb3JlcV9zZXJ2 ZXIoKSBmdW5jdGlvbiByYXRoZXIgdGhhbiBpbmRleGluZyBhcnJheSBkaXJlY3RseS4KIC0gQWRk IG1vcmUgZXhwbGFuYXRpb24gaW50byBjb21tZW50cyB0byBzdGF0ZSB0aGFuIG1hcHBpbmcgZ3Vl c3QgZnJhbWVzCiAgIGFuZCBhbGxvY2F0aW9uIG9mIHBhZ2VzIGZvciBpb3JlcSBzZXJ2ZXJzIGFy ZSBub3Qgc2ltdWx0YW5lb3VzbHkKICAgcGVybWl0dGVkLgogLSBBZGQgYSBjb21tZW50IGludG8g YXNtL2lvcmVxLmggc3RhdGluZyB0aGUgbWVhbmluZyBvZiB0aGUgaW5kZXgKICAgdmFsdWUgcGFz c2VkIHRvIGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKCkuCi0tLQogeGVuL2FyY2gveDg2L2h2 bS9pb3JlcS5jICAgICAgICB8IDE1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAgICAgICAgIHwgIDIyICsrKysrKwogeGVu L2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgICB8ICAgNSArKwogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vaW9yZXEuaCB8ICAgMiArCiB4ZW4vaW5jbHVkZS9hc20teDg2L21tLmggICAgICAgIHwg ICA1ICsrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggIHwgICA0ICsrCiB4ZW4vaW5j bHVkZS9wdWJsaWMvbWVtb3J5LmggICAgIHwgICA5ICsrKwogNyBmaWxlcyBjaGFuZ2VkLCAyMDMg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hl bi9hcmNoL3g4Ni9odm0vaW9yZXEuYwppbmRleCBmNjU0ZTc3OTZjLi4yYzYxMWZiZmZhIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9p b3JlcS5jCkBAIC0yNTksNiArMjU5LDE5IEBAIHN0YXRpYyBpbnQgaHZtX21hcF9pb3JlcV9nZm4o c3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogICAgIHN0cnVjdCBodm1faW9y ZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKICAgICBpbnQg cmM7CiAKKyAgICBpZiAoIGlvcnAtPnBhZ2UgKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAg ICogSWYgYSBwYWdlIGhhcyBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkICh3aGljaCB3aWxsIGhhcHBl biBvbgorICAgICAgICAgKiBkZW1hbmQgaWYgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUoKSBp cyBjYWxsZWQpLCB0aGVuCisgICAgICAgICAqIG1hcHBpbmcgYSBndWVzdCBmcmFtZSBpcyBub3Qg cGVybWl0dGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBnZm5fZXEoaW9ycC0+Z2ZuLCBJ TlZBTElEX0dGTikgKQorICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKKworICAgICAgICByZXR1 cm4gMDsKKyAgICB9CisKICAgICBpZiAoIGQtPmlzX2R5aW5nICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAKQEAgLTI4MSw2ICsyOTQsNzAgQEAgc3RhdGljIGludCBodm1fbWFwX2lvcmVxX2dm bihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCiAgICAgcmV0dXJuIHJjOwog fQogCitzdGF0aWMgaW50IGh2bV9hbGxvY19pb3JlcV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnMsIGJvb2wgYnVmKQoreworICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ ZG9tYWluOworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZp b3JlcSA6ICZzLT5pb3JlcTsKKworICAgIGlmICggaW9ycC0+cGFnZSApCisgICAgeworICAgICAg ICAvKgorICAgICAgICAgKiBJZiBhIGd1ZXN0IGZyYW1lIGhhcyBhbHJlYWR5IGJlZW4gbWFwcGVk ICh3aGljaCBtYXkgaGFwcGVuCisgICAgICAgICAqIG9uIGRlbWFuZCBpZiBodm1fZ2V0X2lvcmVx X3NlcnZlcl9pbmZvKCkgaXMgY2FsbGVkKSwgdGhlbgorICAgICAgICAgKiBhbGxvY2F0aW5nIGEg cGFnZSBpcyBub3QgcGVybWl0dGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhZ2ZuX2Vx KGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkKKyAgICAgICAgICAgIHJldHVybiAtRVBFUk07CisK KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZWQgSU9S RVEgc2VydmVyIHBhZ2VzIGFyZSBhc3NpZ25lZCB0byB0aGUgZW11bGF0aW5nCisgICAgICogZG9t YWluLCBub3QgdGhlIHRhcmdldCBkb21haW4uIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW11bGF0b3Ig aXMKKyAgICAgKiBsaWtlbHkgdG8gYmUgZGVzdHJveWVkIGFmdGVyIHRoZSB0YXJnZXQgZG9tYWlu IGhhcyBiZWVuIHRvcm4KKyAgICAgKiBkb3duLCBhbmQgd2UgbXVzdCB1c2UgTUVNRl9ub19yZWZj b3VudCBvdGhlcndpc2UgcGFnZSBhbGxvY2F0aW9uCisgICAgICogY291bGQgZmFpbCBpZiB0aGUg ZW11bGF0aW5nIGRvbWFpbiBoYXMgYWxyZWFkeSByZWFjaGVkIGl0cworICAgICAqIG1heGltdW0g YWxsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBpb3JwLT5wYWdlID0gYWxsb2NfZG9taGVhcF9wYWdl KGN1cnJkLCBNRU1GX25vX3JlZmNvdW50KTsKKyAgICBpZiAoICFpb3JwLT5wYWdlICkKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBpZiAoICFnZXRfcGFnZV90eXBlKGlvcnAtPnBhZ2Us IFBHVF93cml0YWJsZV9wYWdlKSApCisgICAgeworICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUo KTsKKyAgICAgICAgcHV0X3BhZ2UoaW9ycC0+cGFnZSk7CisgICAgICAgIGlvcnAtPnBhZ2UgPSBO VUxMOworICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICB9CisKKyAgICBpb3JwLT52YSA9IF9f bWFwX2RvbWFpbl9wYWdlX2dsb2JhbChpb3JwLT5wYWdlKTsKKyAgICBpZiAoICFpb3JwLT52YSAp CisgICAgeworICAgICAgICBwdXRfcGFnZV9hbmRfdHlwZShpb3JwLT5wYWdlKTsKKyAgICAgICAg aW9ycC0+cGFnZSA9IE5VTEw7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAg IGNsZWFyX3BhZ2UoaW9ycC0+dmEpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBo dm1fZnJlZV9pb3JlcV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQor eworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6 ICZzLT5pb3JlcTsKKworICAgIGlmICggIWlvcnAtPnBhZ2UgKQorICAgICAgICByZXR1cm47CisK KyAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoaW9ycC0+dmEpOworICAgIGlvcnAtPnZhID0g TlVMTDsKKworICAgIHB1dF9wYWdlX2FuZF90eXBlKGlvcnAtPnBhZ2UpOworICAgIGlvcnAtPnBh Z2UgPSBOVUxMOworfQorCiBib29sIGlzX2lvcmVxX3NlcnZlcl9wYWdlKHN0cnVjdCBkb21haW4g KmQsIGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiB7CiAgICAgY29uc3Qgc3RydWN0IGh2 bV9pb3JlcV9zZXJ2ZXIgKnM7CkBAIC00ODQsNiArNTYxLDI3IEBAIHN0YXRpYyB2b2lkIGh2bV9p b3JlcV9zZXJ2ZXJfdW5tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiAgICAg aHZtX3VubWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7CiB9CiAKK3N0YXRpYyBpbnQgaHZtX2lvcmVx X3NlcnZlcl9hbGxvY19wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKK3sKKyAgICBp bnQgcmM7CisKKyAgICByYyA9IGh2bV9hbGxvY19pb3JlcV9tZm4ocywgZmFsc2UpOworCisgICAg aWYgKCAhcmMgJiYgKHMtPmJ1ZmlvcmVxX2hhbmRsaW5nICE9IEhWTV9JT1JFUVNSVl9CVUZJT1JF UV9PRkYpICkKKyAgICAgICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMsIHRydWUpOworCisg ICAgaWYgKCByYyApCisgICAgICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxzZSk7CisKKyAg ICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9wYWdl cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKK3sKKyAgICBodm1fZnJlZV9pb3JlcV9tZm4o cywgdHJ1ZSk7CisgICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsIGZhbHNlKTsKK30KKwogc3RhdGlj IHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzdHJ1Y3QgaHZtX2lvcmVxX3Nl cnZlciAqcykKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKQEAgLTYxMiw3ICs3MTAsMTggQEAgc3Rh dGljIGludCBodm1faW9yZXFfc2VydmVyX2luaXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMs CiAKICBmYWlsX2FkZDoKICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxfdmNwdXMocyk7 CisKKyAgICAvKgorICAgICAqIE5PVEU6IEl0IGlzIHNhZmUgdG8gY2FsbCBib3RoIGh2bV9pb3Jl cV9zZXJ2ZXJfdW5tYXBfcGFnZXMoKSBhbmQKKyAgICAgKiAgICAgICBodm1faW9yZXFfc2VydmVy X2ZyZWVfcGFnZXMoKSBpbiB0aGF0IG9yZGVyLgorICAgICAqICAgICAgIFRoaXMgaXMgYmVjYXVz ZSB0aGUgZm9ybWVyIHdpbGwgZG8gbm90aGluZyBpZiB0aGUgcGFnZXMKKyAgICAgKiAgICAgICBh cmUgbm90IG1hcHBlZCwgbGVhdmluZyB0aGUgcGFnZSB0byBiZSBmcmVlZCBieSB0aGUgbGF0dGVy LgorICAgICAqICAgICAgIEhvd2V2ZXIgaWYgdGhlIHBhZ2VzIGFyZSBtYXBwZWQgdGhlbiB0aGUg Zm9ybWVyIHdpbGwgc2V0CisgICAgICogICAgICAgdGhlIHBhZ2VfaW5mbyBwb2ludGVyIHRvIE5V TEwsIG1lYW5pbmcgdGhlIGxhdHRlciB3aWxsIGRvCisgICAgICogICAgICAgbm90aGluZy4KKyAg ICAgKi8KICAgICBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKHMpOworICAgIGh2bV9pb3Jl cV9zZXJ2ZXJfZnJlZV9wYWdlcyhzKTsKIAogICAgIHJldHVybiByYzsKIH0KQEAgLTYyMiw2ICs3 MzEsNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2RlaW5pdChzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKICAgICBBU1NFUlQoIXMtPmVuYWJsZWQpOwogICAgIGh2bV9pb3JlcV9z ZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1cyhzKTsKICAgICBodm1faW9yZXFfc2VydmVyX3VubWFwX3Bh Z2VzKHMpOworICAgIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9wYWdlcyhzKTsKICAgICBodm1faW9y ZXFfc2VydmVyX2ZyZWVfcmFuZ2VzZXRzKHMpOwogfQogCkBAIC03NzcsNiArODg3LDUyIEBAIGlu dCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3Qg aWQsCiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUo c3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGlkeCwgbWZuX3QgKm1mbikKK3sKKyAgICBzdHJ1Y3QgaHZt X2lvcmVxX3NlcnZlciAqczsKKyAgICBpbnQgcmM7CisKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZl KCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworCisgICAgaWYgKCBpZCA9 PSBERUZBVUxUX0lPU0VSVklEICkKKyAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOworCisgICAg cyA9IGdldF9pb3JlcV9zZXJ2ZXIoZCwgaWQpOworCisgICAgQVNTRVJUKCFJU19ERUZBVUxUKHMp KTsKKworICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcyhzKTsKKyAgICBpZiAo IHJjICkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBzd2l0Y2ggKCBpZHggKQorICAgIHsKKyAg ICBjYXNlIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfYnVmaW9yZXE6CisgICAg ICAgIHJjID0gLUVOT0VOVDsKKyAgICAgICAgaWYgKCAhSEFORExFX0JVRklPUkVRKHMpICkKKyAg ICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgICptZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHMt PmJ1ZmlvcmVxLnBhZ2UpKTsKKyAgICAgICAgcmMgPSAwOworICAgICAgICBicmVhazsKKworICAg IGNhc2UgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcSgwKToKKyAgICAg ICAgKm1mbiA9IF9tZm4ocGFnZV90b19tZm4ocy0+aW9yZXEucGFnZSkpOworICAgICAgICByYyA9 IDA7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmMgPSAtRUlOVkFM OworICAgICAgICBicmVhazsKKyAgICB9CisKKyBvdXQ6CisgICAgc3Bpbl91bmxvY2tfcmVjdXJz aXZlKCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworCisgICAgcmV0dXJu IHJjOworfQorCiBpbnQgaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRv bWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50NjRfdCBlbmQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGQ5ZGY1Y2E2OWYuLjFkMTVhZTJhMTUgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0x MjIsNiArMTIyLDcgQEAKICNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAjaW5jbHVkZSA8YXNtL2lv X2FwaWMuaD4KICNpbmNsdWRlIDxhc20vcGNpLmg+CisjaW5jbHVkZSA8YXNtL2h2bS9pb3JlcS5o PgogCiAjaW5jbHVkZSA8YXNtL2h2bS9ncmFudF90YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9wdi9n cmFudF90YWJsZS5oPgpAQCAtMzg2Niw2ICszODY3LDI3IEBAIGludCB4ZW5tZW1fYWRkX3RvX3Bo eXNtYXBfb25lKAogICAgIHJldHVybiByYzsKIH0KIAoraW50IHhlbm1lbV9hY3F1aXJlX2lvcmVx X3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZnJhbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9mcmFtZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuX2xpc3RbXSkKK3sKKyAgICB1bnNpZ25l ZCBpbnQgaTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfZnJhbWVzOyBpKysgKQorICAgIHsK KyAgICAgICAgbWZuX3QgbWZuOworICAgICAgICBpbnQgcmMgPSBodm1fZ2V0X2lvcmVxX3NlcnZl cl9mcmFtZShkLCBpZCwgZnJhbWUgKyBpLCAmbWZuKTsKKworICAgICAgICBpZiAoIHJjICkKKyAg ICAgICAgICAgIHJldHVybiByYzsKKworICAgICAgICBtZm5fbGlzdFtpXSA9IG1mbl94KG1mbik7 CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIGxvbmcgYXJjaF9tZW1vcnlfb3AodW5zaWdu ZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogewogICAgIGlu dCByYzsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9y eS5jCmluZGV4IGNkZDJlMDMwY2YuLmIyN2E3MWM0ZjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v bWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9tZW1vcnkuYwpAQCAtMTAxMSw2ICsxMDExLDExIEBA IHN0YXRpYyBpbnQgYWNxdWlyZV9yZXNvdXJjZSgKIAogICAgIHN3aXRjaCAoIHhtYXIudHlwZSAp CiAgICAgeworICAgIGNhc2UgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcjoKKyAgICAgICAg cmMgPSB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9zZXJ2ZXIoZCwgeG1hci5pZCwgeG1hci5mcmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1hci5ucl9mcmFtZXMs IG1mbl9saXN0KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9 IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lvcmVxLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oCmluZGV4 IDE4MjlmY2Y0M2UuLjllMzdjOTdhMzcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL2lvcmVxLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaApAQCAtMzEs NiArMzEsOCBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpk LCBpb3NlcnZpZF90IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyAqaW9yZXFfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyAqYnVmaW9yZXFfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0Y2hu X3BvcnRfdCAqYnVmaW9yZXFfcG9ydCk7CitpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUo c3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGlkeCwgbWZuX3QgKm1mbik7CiBpbnQgaHZtX21hcF9pb19y YW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlLCB1aW50NjRf dCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBl bmQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oCmluZGV4IGYyZTBmNDk4YzQuLjQ0YWFjOWQyMjUgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKQEAg LTYxNSw0ICs2MTUsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJjaF9tZm5faW5fZGlyZWN0bWFw KHVuc2lnbmVkIGxvbmcgbWZuKQogICAgIHJldHVybiBtZm4gPD0gKHZpcnRfdG9fbWZuKGV2YSAt IDEpICsgMSk7CiB9CiAKK2ludCB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgbnJfZnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG1mbl9saXN0W10pOworCiAjZW5kaWYgLyogX19BU01fWDg2X01NX0hfXyAq LwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IDk2NzdiZDc0ZTcuLjU5YjYwMDY5MTAgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9w dWJsaWMvaHZtL2RtX29wLmgKQEAgLTkwLDYgKzkwLDEwIEBAIHN0cnVjdCB4ZW5fZG1fb3BfY3Jl YXRlX2lvcmVxX3NlcnZlciB7CiAgKiB0aGUgZnJhbWUgbnVtYmVycyBwYXNzZWQgYmFjayBpbiBn Zm5zIDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFfZ2ZuPgogICogcmVzcGVjdGl2ZWx5LiAoSWYg dGhlIElPUkVRIFNlcnZlciBpcyBub3QgaGFuZGxpbmcgYnVmZmVyZWQgZW11bGF0aW9uCiAgKiBv bmx5IDxpb3JlcV9nZm4+IHdpbGwgYmUgdmFsaWQpLgorICoKKyAqIE5PVEU6IFRvIGFjY2VzcyB0 aGUgc3luY2hyb25vdXMgaW9yZXEgc3RydWN0dXJlcyBhbmQgYnVmZmVyZWQgaW9yZXEKKyAqICAg ICAgIHJpbmcsIGl0IGlzIHByZWZlcmFibGUgdG8gdXNlIHRoZSBYRU5NRU1fYWNxdWlyZV9yZXNv dXJjZSBtZW1vcnkKKyAqICAgICAgIG9wIHNwZWNpZnlpbmcgcmVzb3VyY2UgdHlwZSBYRU5NRU1f cmVzb3VyY2VfaW9yZXFfc2VydmVyLgogICovCiAjZGVmaW5lIFhFTl9ETU9QX2dldF9pb3JlcV9z ZXJ2ZXJfaW5mbyAyCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCBi L3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAppbmRleCAxODExOGVhNWM2Li45NTk2ZWJmMmM3 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKKysrIGIveGVuL2luY2x1 ZGUvcHVibGljL21lbW9yeS5oCkBAIC02MDksOSArNjA5LDE0IEBAIHN0cnVjdCB4ZW5fbWVtX2Fj cXVpcmVfcmVzb3VyY2UgewogICAgIGRvbWlkX3QgZG9taWQ7CiAgICAgLyogSU4gLSB0aGUgdHlw ZSBvZiByZXNvdXJjZSAqLwogICAgIHVpbnQxNl90IHR5cGU7CisKKyNkZWZpbmUgWEVOTUVNX3Jl c291cmNlX2lvcmVxX3NlcnZlciAwCisKICAgICAvKgogICAgICAqIElOIC0gYSB0eXBlLXNwZWNp ZmljIHJlc291cmNlIGlkZW50aWZpZXIsIHdoaWNoIG11c3QgYmUgemVybwogICAgICAqICAgICAg dW5sZXNzIHN0YXRlZCBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiB0eXBlID09IFhFTk1FTV9y ZXNvdXJjZV9pb3JlcV9zZXJ2ZXIgLT4gaWQgPT0gaW9yZXEgc2VydmVyIGlkCiAgICAgICovCiAg ICAgdWludDMyX3QgaWQ7CiAgICAgLyogSU4vT1VUIC0gQXMgYW4gSU4gcGFyYW1ldGVyIG51bWJl ciBvZiBmcmFtZXMgb2YgdGhlIHJlc291cmNlCkBAIC02MjUsNiArNjMwLDEwIEBAIHN0cnVjdCB4 ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UgewogICAgICAqICAgICAgaXMgaWdub3JlZCBpZiBucl9m cmFtZXMgaXMgMC4KICAgICAgKi8KICAgICB1aW50NjRfYWxpZ25lZF90IGZyYW1lOworCisjZGVm aW5lIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfYnVmaW9yZXEgMAorI2RlZmlu ZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyX2ZyYW1lX2lvcmVxKG4pICgxICsgKG4pKQor CiAgICAgLyogSU4vT1VUIC0gSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBQViB0aGVuLCB1cG9uIHJl dHVybiwgZnJhbWVfbGlzdAogICAgICAqICAgICAgICAgIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGgg dGhlIE1GTnMgb2YgdGhlIHJlc291cmNlLgogICAgICAqICAgICAgICAgIElmIHRoZSB0b29scyBk b21haW4gaXMgSFZNIHRoZW4gaXQgaXMgZXhwZWN0ZWQgdGhhdCwgb24KLS0gCjIuMTEuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=