From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v5 12/12] x86/hvm/ioreq: add a new mappable resource type... Date: Fri, 8 Sep 2017 16:21:37 +0100 Message-ID: <20170908152137.22808-13-paul.durrant@citrix.com> References: <20170908152137.22808-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 1dqLUz-0002dY-VA for xen-devel@lists.xenproject.org; Fri, 08 Sep 2017 15:47:18 +0000 In-Reply-To: <20170908152137.22808-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 , 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+CkFja2VkLWJ5OiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+Ci0tLQpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogS29u cmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBT dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhl bi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoKdjU6CiAtIFVzZSBnZXRf aW9yZXFfc2VydmVyKCkgZnVuY3Rpb24gcmF0aGVyIHRoYW4gaW5kZXhpbmcgYXJyYXkgZGlyZWN0 bHkuCiAtIEFkZCBtb3JlIGV4cGxhbmF0aW9uIGludG8gY29tbWVudHMgdG8gc3RhdGUgdGhhbiBt YXBwaW5nIGd1ZXN0IGZyYW1lcwogICBhbmQgYWxsb2NhdGlvbiBvZiBwYWdlcyBmb3IgaW9yZXEg c2VydmVycyBhcmUgbm90IHNpbXVsdGFuZW91c2x5CiAgIHBlcm1pdHRlZC4KIC0gQWRkIGEgY29t bWVudCBpbnRvIGFzbS9pb3JlcS5oIHN0YXRpbmcgdGhlIG1lYW5pbmcgb2YgdGhlIGluZGV4CiAg IHZhbHVlIHBhc3NlZCB0byBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZSgpLgotLS0KIHhlbi9h cmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAgfCAxMzEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICB8ICAyNyAr KysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmggfCAgIDYgKysKIHhlbi9p bmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgfCAgIDQgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9t ZW1vcnkuaCAgICAgfCAgIDMgKwogNSBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hl bi9hcmNoL3g4Ni9odm0vaW9yZXEuYwppbmRleCBmMjk3ODA2NDg5Li5jODM3M2Y3ODM3IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9p b3JlcS5jCkBAIC0yNjAsNiArMjYwLDE5IEBAIHN0YXRpYyBpbnQgaHZtX21hcF9pb3JlcV9nZm4o c3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogICAgIHN0cnVjdCBodm1faW9y ZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKICAgICBpbnQg cmM7CiAKKyAgICBpZiAoIGlvcnAtPnBhZ2UgKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAg ICogSWYgYSBwYWdlIGhhcyBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkICh3aGljaCB3aWxsIGhhcHBl biBvbgorICAgICAgICAgKiBkZW1hbmQgaWYgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUoKSBp cyBjYWxsZWQpLCB0aGVuCisgICAgICAgICAqIG1hcHBpbmcgYSBndWVzdCBmcmFtZSBpcyBub3Qg cGVybWl0dGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBnZm5fZXEoaW9ycC0+Z2ZuLCBJ TlZBTElEX0dGTikgKQorICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKKworICAgICAgICByZXR1 cm4gMDsKKyAgICB9CisKICAgICBpZiAoIGQtPmlzX2R5aW5nICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAKQEAgLTI4Miw2ICsyOTUsNjEgQEAgc3RhdGljIGludCBodm1fbWFwX2lvcmVxX2dm bihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCiAgICAgcmV0dXJuIHJjOwog fQogCitzdGF0aWMgaW50IGh2bV9hbGxvY19pb3JlcV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnMsIGJvb2wgYnVmKQoreworICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ ZG9tYWluOworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZp b3JlcSA6ICZzLT5pb3JlcTsKKworICAgIGlmICggaW9ycC0+cGFnZSApCisgICAgeworICAgICAg ICAvKgorICAgICAgICAgKiBJZiBhIGd1ZXN0IGZyYW1lIGhhcyBhbHJlYWR5IGJlZW4gbWFwcGVk ICh3aGljaCBtYXkgaGFwcGVuCisgICAgICAgICAqIG9uIGRlbWFuZCBpZiBodm1fZ2V0X2lvcmVx X3NlcnZlcl9pbmZvKCkgaXMgY2FsbGVkKSwgdGhlbgorICAgICAgICAgKiBhbGxvY2F0aW5nIGEg cGFnZSBpcyBub3QgcGVybWl0dGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhZ2ZuX2Vx KGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkKKyAgICAgICAgICAgIHJldHVybiAtRVBFUk07CisK KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZWQgSU9S RVEgc2VydmVyIHBhZ2VzIGFyZSBhc3NpZ25lZCB0byB0aGUgZW11bGF0aW5nCisgICAgICogZG9t YWluLCBub3QgdGhlIHRhcmdldCBkb21haW4uIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW11bGF0b3Ig aXMKKyAgICAgKiBsaWtlbHkgdG8gYmUgZGVzdHJveWVkIGFmdGVyIHRoZSB0YXJnZXQgZG9tYWlu IGhhcyBiZWVuIHRvcm4KKyAgICAgKiBkb3duLCBhbmQgd2UgbXVzdCB1c2UgTUVNRl9ub19yZWZj b3VudCBvdGhlcndpc2UgcGFnZSBhbGxvY2F0aW9uCisgICAgICogY291bGQgZmFpbCBpZiB0aGUg ZW11bGF0aW5nIGRvbWFpbiBoYXMgYWxyZWFkeSByZWFjaGVkIGl0cworICAgICAqIG1heGltdW0g YWxsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBpb3JwLT5wYWdlID0gYWxsb2NfZG9taGVhcF9wYWdl KGN1cnJkLCBNRU1GX25vX3JlZmNvdW50KTsKKyAgICBpZiAoICFpb3JwLT5wYWdlICkKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBpb3JwLT52YSA9IF9fbWFwX2RvbWFpbl9wYWdlX2ds b2JhbChpb3JwLT5wYWdlKTsKKyAgICBpZiAoICFpb3JwLT52YSApCisgICAgeworICAgICAgICBp b3JwLT5wYWdlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgfQorCisgICAg Y2xlYXJfcGFnZShpb3JwLT52YSk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGh2 bV9mcmVlX2lvcmVxX21mbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCit7 CisgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDog JnMtPmlvcmVxOworCisgICAgaWYgKCAhaW9ycC0+cGFnZSApCisgICAgICAgIHJldHVybjsKKwor ICAgIHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbChpb3JwLT52YSk7CisgICAgaW9ycC0+dmEgPSBO VUxMOworCisgICAgcHV0X3BhZ2UoaW9ycC0+cGFnZSk7CisgICAgaW9ycC0+cGFnZSA9IE5VTEw7 Cit9CisKIGJvb2wgaXNfaW9yZXFfc2VydmVyX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qg c3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHsKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvcmVxX3Nl cnZlciAqczsKQEAgLTQ4OCw2ICs1NTYsMjcgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZl cl91bm1hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKICAgICBodm1fdW5tYXBf aW9yZXFfZ2ZuKHMsIGZhbHNlKTsKIH0KIAorc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2Fs bG9jX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQoreworICAgIGludCByYyA9IC1F Tk9NRU07CisKKyAgICByYyA9IGh2bV9hbGxvY19pb3JlcV9tZm4ocywgZmFsc2UpOworCisgICAg aWYgKCAhcmMgJiYgKHMtPmJ1ZmlvcmVxX2hhbmRsaW5nICE9IEhWTV9JT1JFUVNSVl9CVUZJT1JF UV9PRkYpICkKKyAgICAgICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMsIHRydWUpOworCisg ICAgaWYgKCByYyApCisgICAgICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxzZSk7CisKKyAg ICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9wYWdl cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKK3sKKyAgICBodm1fZnJlZV9pb3JlcV9tZm4o cywgdHJ1ZSk7CisgICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsIGZhbHNlKTsKK30KKwogc3RhdGlj IHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzdHJ1Y3QgaHZtX2lvcmVxX3Nl cnZlciAqcykKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKQEAgLTYxNCw3ICs3MDMsMTggQEAgc3Rh dGljIGludCBodm1faW9yZXFfc2VydmVyX2luaXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMs CiAKICBmYWlsX2FkZDoKICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxfdmNwdXMocyk7 CisKKyAgICAvKgorICAgICAqIE5PVEU6IEl0IGlzIHNhZmUgdG8gY2FsbCBib3RoIGh2bV9pb3Jl cV9zZXJ2ZXJfdW5tYXBfcGFnZXMoKSBhbmQKKyAgICAgKiAgICAgICBodm1faW9yZXFfc2VydmVy X2ZyZWVfcGFnZXMoKSBpbiB0aGF0IG9yZGVyLgorICAgICAqICAgICAgIFRoaXMgaXMgYmVjYXVz ZSB0aGUgZm9ybWVyIHdpbGwgZG8gbm90aGluZyBpZiB0aGUgcGFnZXMKKyAgICAgKiAgICAgICBh cmUgbm90IG1hcHBlZCwgbGVhdmluZyB0aGUgcGFnZSB0byBiZSBmcmVlZCBieSB0aGUgbGF0dGVy LgorICAgICAqICAgICAgIEhvd2V2ZXIgaWYgdGhlIHBhZ2VzIGFyZSBtYXBwZWQgdGhlbiB0aGUg Zm9ybWVyIHdpbGwgc2V0CisgICAgICogICAgICAgdGhlIHBhZ2VfaW5mbyBwb2ludGVyIHRvIE5V TEwsIG1lYW5pbmcgdGhlIGxhdHRlciB3aWxsIGRvCisgICAgICogICAgICAgbm90aGluZy4KKyAg ICAgKi8KICAgICBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKHMpOworICAgIGh2bV9pb3Jl cV9zZXJ2ZXJfZnJlZV9wYWdlcyhzKTsKIAogICAgIHJldHVybiByYzsKIH0KQEAgLTYyNCw2ICs3 MjQsNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2RlaW5pdChzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKICAgICBBU1NFUlQoIXMtPmVuYWJsZWQpOwogICAgIGh2bV9pb3JlcV9z ZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1cyhzKTsKICAgICBodm1faW9yZXFfc2VydmVyX3VubWFwX3Bh Z2VzKHMpOworICAgIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9wYWdlcyhzKTsKICAgICBodm1faW9y ZXFfc2VydmVyX2ZyZWVfcmFuZ2VzZXRzKHMpOwogfQogCkBAIC03NTUsNyArODU2LDggQEAgaW50 IGh2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBp ZCwKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgICppb3JlcV9nZm4gPSBnZm5f eChzLT5pb3JlcS5nZm4pOworICAgIGlmICggaW9yZXFfZ2ZuICkKKyAgICAgICAgKmlvcmVxX2dm biA9IGdmbl94KHMtPmlvcmVxLmdmbik7CiAKICAgICBpZiAoIEhBTkRMRV9CVUZJT1JFUShzKSAp CiAgICAgewpAQCAtNzczLDYgKzg3NSwzMyBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5m byhzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIHJldHVybiByYzsKIH0KIAor bWZuX3QgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2 aWRfdCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBp ZHgpCit7CisgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7CisgICAgbWZuX3QgbWZuID0g SU5WQUxJRF9NRk47CisKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21h aW4uaW9yZXFfc2VydmVyLmxvY2spOworCisgICAgcyA9IGdldF9pb3JlcV9zZXJ2ZXIoZCwgaWQp OworCisgICAgaWYgKCBpZCA+PSBNQVhfTlJfSU9SRVFfU0VSVkVSUyB8fCAhcyB8fCBJU19ERUZB VUxUKHMpICkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBpZiAoIGh2bV9pb3JlcV9zZXJ2ZXJf YWxsb2NfcGFnZXMocykgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIGlmICggaWR4ID09IDAg KQorICAgICAgICBtZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHMtPmJ1ZmlvcmVxLnBhZ2UpKTsKKyAg ICBlbHNlIGlmICggaWR4ID09IDEgKQorICAgICAgICBtZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHMt PmlvcmVxLnBhZ2UpKTsKKworIG91dDoKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFy Y2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisKKyAgICByZXR1cm4gbWZuOworfQor CiBpbnQgaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwg aW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCB0eXBlLCB1aW50NjRfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50NjRfdCBlbmQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hl bi9hcmNoL3g4Ni9tbS5jCmluZGV4IGY5MjYzYTlkNzYuLjU0OTk3MWJhMmYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0xMjIsNiArMTIy LDcgQEAKICNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4K ICNpbmNsdWRlIDxhc20vcGNpLmg+CisjaW5jbHVkZSA8YXNtL2h2bS9pb3JlcS5oPgogCiAjaW5j bHVkZSA8YXNtL2h2bS9ncmFudF90YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9wdi9ncmFudF90YWJs ZS5oPgpAQCAtNDczOCw2ICs0NzM5LDI3IEBAIHN0YXRpYyBpbnQgeGVubWVtX2FjcXVpcmVfZ3Jh bnRfdGFibGUoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGlu dCB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZnJhbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yX2ZyYW1l cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg bWZuX2xpc3RbXSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoIGkgPSAwOyBp IDwgbnJfZnJhbWVzOyBpKysgKQorICAgIHsKKyAgICAgICAgbWZuX3QgbWZuID0gaHZtX2dldF9p b3JlcV9zZXJ2ZXJfZnJhbWUoZCwgaWQsIGZyYW1lICsgaSk7CisKKyAgICAgICAgaWYgKCBtZm5f ZXEobWZuLCBJTlZBTElEX01GTikgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAg ICAgICAgbWZuX2xpc3RbaV0gPSBtZm5feChtZm4pOworICAgIH0KKworICAgIHJldHVybiAwOwor fQorCiBzdGF0aWMgaW50IHhlbm1lbV9hY3F1aXJlX3Jlc291cmNlKHhlbl9tZW1fYWNxdWlyZV9y ZXNvdXJjZV90ICp4bWFyKQogewogICAgIHN0cnVjdCBkb21haW4gKmQsICpjdXJyZCA9IGN1cnJl bnQtPmRvbWFpbjsKQEAgLTQ3NzIsNiArNDc5NCwxMSBAQCBzdGF0aWMgaW50IHhlbm1lbV9hY3F1 aXJlX3Jlc291cmNlKHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90ICp4bWFyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9saXN0KTsKICAgICAgICAgYnJlYWs7 CiAKKyAgICBjYXNlIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXI6CisgICAgICAgIHJjID0g eGVubWVtX2FjcXVpcmVfaW9yZXFfc2VydmVyKGQsIHhtYXItPmlkLCB4bWFyLT5mcmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1hci0+bnJfZnJhbWVzLCBt Zm5fbGlzdCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAt RU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9pb3JlcS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaAppbmRleCAx ODI5ZmNmNDNlLi40NmIyNzVmNzJmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9pb3JlcS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmgKQEAgLTMxLDYg KzMxLDEyIEBAIGludCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQs IGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nICppb3JlcV9nZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nICpidWZpb3JlcV9nZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnRjaG5f cG9ydF90ICpidWZpb3JlcV9wb3J0KTsKKy8qCisgKiBHZXQgdGhlIG1mbiBvZiBlaXRoZXIgdGhl IGJ1ZmZlcmVkIG9yIHN5bmNocm9ub3VzIGlvcmVxIGZyYW1lLgorICogKGlkeCA9PSAwIC0+IGJ1 ZmZlcmVkLCBpZHggPT0gMSAtPiBzeW5jaHJvbm91cykuCisgKi8KK21mbl90IGh2bV9nZXRfaW9y ZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWR4KTsKIGludCBodm1fbWFw X2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVp bnQ2NF90IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2 NF90IGVuZCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggOTY3N2JkNzRlNy4uNTliNjAwNjkx MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBiL3hlbi9p bmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtOTAsNiArOTAsMTAgQEAgc3RydWN0IHhlbl9k bV9vcF9jcmVhdGVfaW9yZXFfc2VydmVyIHsKICAqIHRoZSBmcmFtZSBudW1iZXJzIHBhc3NlZCBi YWNrIGluIGdmbnMgPGlvcmVxX2dmbj4gYW5kIDxidWZpb3JlcV9nZm4+CiAgKiByZXNwZWN0aXZl bHkuIChJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRp b24KICAqIG9ubHkgPGlvcmVxX2dmbj4gd2lsbCBiZSB2YWxpZCkuCisgKgorICogTk9URTogVG8g YWNjZXNzIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFuZCBidWZmZXJlZCBpb3Jl cQorICogICAgICAgcmluZywgaXQgaXMgcHJlZmVyYWJsZSB0byB1c2UgdGhlIFhFTk1FTV9hY3F1 aXJlX3Jlc291cmNlIG1lbW9yeQorICogICAgICAgb3Agc3BlY2lmeWluZyByZXNvdXJjZSB0eXBl IFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIuCiAgKi8KICNkZWZpbmUgWEVOX0RNT1BfZ2V0 X2lvcmVxX3NlcnZlcl9pbmZvIDIKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL21l bW9yeS5oIGIveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCmluZGV4IDliZjU4ZTczODQuLjcx Njk0MWRjMGMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKQEAgLTY2NCwxMCArNjY0LDEzIEBAIHN0cnVjdCB4 ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UgewogICAgIHVpbnQxNl90IHR5cGU7CiAKICNkZWZpbmUg WEVOTUVNX3Jlc291cmNlX2dyYW50X3RhYmxlIDAKKyNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2lv cmVxX3NlcnZlciAxCiAKICAgICAvKgogICAgICAqIElOIC0gYSB0eXBlLXNwZWNpZmljIHJlc291 cmNlIGlkZW50aWZpZXIsIHdoaWNoIG11c3QgYmUgemVybwogICAgICAqICAgICAgdW5sZXNzIHN0 YXRlZCBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiB0eXBlID09IFhFTk1FTV9yZXNvdXJjZV9p b3JlcV9zZXJ2ZXIgLT4gaWQgPT0gaW9yZXEgc2VydmVyIGlkCiAgICAgICovCiAgICAgdWludDMy X3QgaWQ7CiAgICAgLyogSU4gLSBudW1iZXIgb2YgKDRLKSBmcmFtZXMgb2YgdGhlIHJlc291cmNl IHRvIGJlIG1hcHBlZCAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==