From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 12/12] x86/hvm/ioreq: add a new mappable resource type... Date: Tue, 5 Sep 2017 12:37:16 +0100 Message-ID: <20170905113716.3960-13-paul.durrant@citrix.com> References: <20170905113716.3960-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 1dpCJn-0000qR-0f for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 11:46:59 +0000 In-Reply-To: <20170905113716.3960-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+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4 Ni9odm0vaW9yZXEuYyAgICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICB8ICAyNyArKysrKysr KysKIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmggfCAgIDIgKwogeGVuL2luY2x1ZGUv cHVibGljL2h2bS9kbV9vcC5oICB8ICAgNCArKwogeGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5o ICAgICB8ICAgMyArCiA1IGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jCmluZGV4IDE1OGJmYmJhMzIuLmY0YzA2YTdhMmEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMK QEAgLTI1MCw2ICsyNTAsMTUgQEAgc3RhdGljIGludCBodm1fbWFwX2lvcmVxX2dmbihzdHJ1Y3Qg aHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCiAgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdl ICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOwogICAgIGludCByYzsKIAor ICAgIGlmICggaW9ycC0+cGFnZSApCisgICAgeworICAgICAgICAvKiBNYWtlIHN1cmUgdGhlIHBh Z2UgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZCAqLworICAgICAgICBpZiAoIGdmbl9lcShpb3JwLT5n Zm4sIElOVkFMSURfR0ZOKSApCisgICAgICAgICAgICByZXR1cm4gLUVQRVJNOworCisgICAgICAg IHJldHVybiAwOworICAgIH0KKwogICAgIGlmICggZC0+aXNfZHlpbmcgKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKIApAQCAtMjcyLDYgKzI4MSw1NyBAQCBzdGF0aWMgaW50IGh2bV9tYXBfaW9y ZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKICAgICByZXR1cm4g cmM7CiB9CiAKK3N0YXRpYyBpbnQgaHZtX2FsbG9jX2lvcmVxX21mbihzdHJ1Y3QgaHZtX2lvcmVx X3NlcnZlciAqcywgYm9vbCBidWYpCit7CisgICAgc3RydWN0IGRvbWFpbiAqY3VycmQgPSBjdXJy ZW50LT5kb21haW47CisgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8gJnMt PmJ1ZmlvcmVxIDogJnMtPmlvcmVxOworCisgICAgaWYgKCBpb3JwLT5wYWdlICkKKyAgICB7Cisg ICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgcGFnZSBoYXMgbm90IGJlZW4gbWFwcGVkICovCisgICAg ICAgIGlmICggIWdmbl9lcShpb3JwLT5nZm4sIElOVkFMSURfR0ZOKSApCisgICAgICAgICAgICBy ZXR1cm4gLUVQRVJNOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qCisgICAg ICogQWxsb2NhdGVkIElPUkVRIHNlcnZlciBwYWdlcyBhcmUgYXNzaWduZWQgdG8gdGhlIGVtdWxh dGluZworICAgICAqIGRvbWFpbiwgbm90IHRoZSB0YXJnZXQgZG9tYWluLiBUaGlzIGlzIGJlY2F1 c2UgdGhlIGVtdWxhdG9yIGlzCisgICAgICogbGlrZWx5IHRvIGJlIGRlc3Ryb3llZCBhZnRlciB0 aGUgdGFyZ2V0IGRvbWFpbiBoYXMgYmVlbiB0b3JuCisgICAgICogZG93biwgYW5kIHdlIG11c3Qg dXNlIE1FTUZfbm9fcmVmY291bnQgb3RoZXJ3aXNlIHBhZ2UgYWxsb2NhdGlvbgorICAgICAqIGNv dWxkIGZhaWwgaWYgdGhlIGVtdWxhdGluZyBkb21haW4gaGFzIGFscmVhZHkgcmVhY2hlZCBpdHMK KyAgICAgKiBtYXhpbXVtIGFsbG9jYXRpb24uCisgICAgICovCisgICAgaW9ycC0+cGFnZSA9IGFs bG9jX2RvbWhlYXBfcGFnZShjdXJyZCwgTUVNRl9ub19yZWZjb3VudCk7CisgICAgaWYgKCAhaW9y cC0+cGFnZSApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgaW9ycC0+dmEgPSBfX21h cF9kb21haW5fcGFnZV9nbG9iYWwoaW9ycC0+cGFnZSk7CisgICAgaWYgKCAhaW9ycC0+dmEgKQor ICAgIHsKKyAgICAgICAgaW9ycC0+cGFnZSA9IE5VTEw7CisgICAgICAgIHJldHVybiAtRU5PTUVN OworICAgIH0KKworICAgIGNsZWFyX3BhZ2UoaW9ycC0+dmEpOworICAgIHJldHVybiAwOworfQor CitzdGF0aWMgdm9pZCBodm1fZnJlZV9pb3JlcV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIg KnMsIGJvb2wgYnVmKQoreworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKKworICAgIGlmICggIWlvcnAtPnBhZ2UgKQorICAg ICAgICByZXR1cm47CisKKyAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoaW9ycC0+dmEpOwor ICAgIGlvcnAtPnZhID0gTlVMTDsKKworICAgIHB1dF9wYWdlKGlvcnAtPnBhZ2UpOworICAgIGlv cnAtPnBhZ2UgPSBOVUxMOworfQorCiBib29sIGlzX2lvcmVxX3NlcnZlcl9wYWdlKHN0cnVjdCBk b21haW4gKmQsIGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiB7CiAgICAgY29uc3Qgc3Ry dWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7CkBAIC00NzgsNiArNTM4LDI3IEBAIHN0YXRpYyB2b2lk IGh2bV9pb3JlcV9zZXJ2ZXJfdW5tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMp CiAgICAgaHZtX3VubWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7CiB9CiAKK3N0YXRpYyBpbnQgaHZt X2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKK3sK KyAgICBpbnQgcmMgPSAtRU5PTUVNOworCisgICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMs IGZhbHNlKTsKKworICAgIGlmICggIXJjICYmIChzLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1f SU9SRVFTUlZfQlVGSU9SRVFfT0ZGKSApCisgICAgICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21m bihzLCB0cnVlKTsKKworICAgIGlmICggcmMgKQorICAgICAgICBodm1fZnJlZV9pb3JlcV9tZm4o cywgZmFsc2UpOworCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgdm9pZCBodm1faW9yZXFf c2VydmVyX2ZyZWVfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgaHZt X2ZyZWVfaW9yZXFfbWZuKHMsIHRydWUpOworICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxz ZSk7Cit9CisKIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9yYW5nZXNldHMoc3Ry dWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CkBAIC02MDQs NyArNjg1LDE4IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1f aW9yZXFfc2VydmVyICpzLAogCiAgZmFpbF9hZGQ6CiAgICAgaHZtX2lvcmVxX3NlcnZlcl9yZW1v dmVfYWxsX3ZjcHVzKHMpOworCisgICAgLyoKKyAgICAgKiBOT1RFOiBJdCBpcyBzYWZlIHRvIGNh bGwgYm90aCBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKCkgYW5kCisgICAgICogICAgICAg aHZtX2lvcmVxX3NlcnZlcl9mcmVlX3BhZ2VzKCkgaW4gdGhhdCBvcmRlci4KKyAgICAgKiAgICAg ICBUaGlzIGlzIGJlY2F1c2UgdGhlIGZvcm1lciB3aWxsIGRvIG5vdGhpbmcgaWYgdGhlIHBhZ2Vz CisgICAgICogICAgICAgYXJlIG5vdCBtYXBwZWQsIGxlYXZpbmcgdGhlIHBhZ2UgdG8gYmUgZnJl ZWQgYnkgdGhlIGxhdHRlci4KKyAgICAgKiAgICAgICBIb3dldmVyIGlmIHRoZSBwYWdlcyBhcmUg bWFwcGVkIHRoZW4gdGhlIGZvcm1lciB3aWxsIHNldAorICAgICAqICAgICAgIHRoZSBwYWdlX2lu Zm8gcG9pbnRlciB0byBOVUxMLCBtZWFuaW5nIHRoZSBsYXR0ZXIgd2lsbCBkbworICAgICAqICAg ICAgIG5vdGhpbmcuCisgICAgICovCiAgICAgaHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhz KTsKKyAgICBodm1faW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMocyk7CiAKICAgICByZXR1cm4gcmM7 CiB9CkBAIC02MTQsNiArNzA2LDcgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9kZWlu aXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiAgICAgQVNTRVJUKCFzLT5lbmFibGVkKTsK ICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxfdmNwdXMocyk7CiAgICAgaHZtX2lvcmVx X3NlcnZlcl91bm1hcF9wYWdlcyhzKTsKKyAgICBodm1faW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMo cyk7CiAgICAgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzKTsKIH0KIApAQCAtNzQ1 LDcgKzgzOCw4IEBAIGludCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4g KmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICAq aW9yZXFfZ2ZuID0gZ2ZuX3gocy0+aW9yZXEuZ2ZuKTsKKyAgICBpZiAoIGlvcmVxX2dmbiApCisg ICAgICAgICppb3JlcV9nZm4gPSBnZm5feChzLT5pb3JlcS5nZm4pOwogCiAgICAgaWYgKCBIQU5E TEVfQlVGSU9SRVEocykgKQogICAgIHsKQEAgLTc2Myw2ICs4NTcsMzMgQEAgaW50IGh2bV9nZXRf aW9yZXFfc2VydmVyX2luZm8oc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICBy ZXR1cm4gcmM7CiB9CiAKK21mbl90IGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBk b21haW4gKmQsIGlvc2VydmlkX3QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgaWR4KQoreworICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzOwor ICAgIG1mbl90IG1mbiA9IElOVkFMSURfTUZOOworCisgICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgm ZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKworICAgIHMgPSBkLT5hcmNo Lmh2bV9kb21haW4uaW9yZXFfc2VydmVyLnNlcnZlcltpZF07CisKKyAgICBpZiAoIGlkID49IE1B WF9OUl9JT1JFUV9TRVJWRVJTIHx8ICFzIHx8IElTX0RFRkFVTFQocykgKQorICAgICAgICBnb3Rv IG91dDsKKworICAgIGlmICggaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcyhzKSApCisgICAg ICAgIGdvdG8gb3V0OworCisgICAgaWYgKCBpZHggPT0gMCApCisgICAgICAgIG1mbiA9IF9tZm4o cGFnZV90b19tZm4ocy0+YnVmaW9yZXEucGFnZSkpOworICAgIGVsc2UgaWYgKCBpZHggPT0gMSAp CisgICAgICAgIG1mbiA9IF9tZm4ocGFnZV90b19tZm4ocy0+aW9yZXEucGFnZSkpOworCisgb3V0 OgorICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3Nl cnZlci5sb2NrKTsKKworICAgIHJldHVybiBtZm47Cit9CisKIGludCBodm1fbWFwX2lvX3Jhbmdl X3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IHN0 YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVuZCkK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXgg YjEyNWI4NWJmOS4uNmM5NWM1ODY3NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysr IGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgPGFzbS9m aXhtYXAuaD4KICNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgogI2luY2x1ZGUgPGFzbS9wY2kuaD4K KyNpbmNsdWRlIDxhc20vaHZtL2lvcmVxLmg+CiAKICNpbmNsdWRlIDxhc20vaHZtL2dyYW50X3Rh YmxlLmg+CiAjaW5jbHVkZSA8YXNtL3B2L2dyYW50X3RhYmxlLmg+CkBAIC00NzM4LDYgKzQ3Mzks MjcgQEAgc3RhdGljIGludCB4ZW5tZW1fYWNxdWlyZV9ncmFudF90YWJsZShzdHJ1Y3QgZG9tYWlu ICpkLAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHhlbm1lbV9hY3F1aXJlX2lvcmVx X3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm5fbGlzdFtdKQoreworICAgIHVu c2lnbmVkIGludCBpOworCisgICAgZm9yICggaSA9IDA7IGkgPCBucl9mcmFtZXM7IGkrKyApCisg ICAgeworICAgICAgICBtZm5fdCBtZm4gPSBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShkLCBp ZCwgZnJhbWUgKyBpKTsKKworICAgICAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSAp CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgICAgICBtZm5fbGlzdFtpXSA9IG1m bl94KG1mbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgeGVubWVt X2FjcXVpcmVfcmVzb3VyY2UoeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlX3QgKnhtYXIpCiB7CiAg ICAgc3RydWN0IGRvbWFpbiAqZCwgKmN1cnJkID0gY3VycmVudC0+ZG9tYWluOwpAQCAtNDc3Miw2 ICs0Nzk0LDExIEBAIHN0YXRpYyBpbnQgeGVubWVtX2FjcXVpcmVfcmVzb3VyY2UoeGVuX21lbV9h Y3F1aXJlX3Jlc291cmNlX3QgKnhtYXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWZuX2xpc3QpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWEVOTUVNX3Jl c291cmNlX2lvcmVxX3NlcnZlcjoKKyAgICAgICAgcmMgPSB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9z ZXJ2ZXIoZCwgeG1hci0+aWQsIHhtYXItPmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4bWFyLT5ucl9mcmFtZXMsIG1mbl9saXN0KTsKKyAgICAgICAgYnJl YWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBi cmVhazsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmggYi94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oCmluZGV4IDE4MjlmY2Y0M2UuLjAzMmFlYjZmYTkg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaApAQCAtMzEsNiArMzEsOCBAQCBpbnQgaHZtX2dldF9p b3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqaW9yZXFfZ2ZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqYnVmaW9yZXFfZ2ZuLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0Y2huX3BvcnRfdCAqYnVmaW9yZXFfcG9ydCk7 CittZm5fdCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShzdHJ1Y3QgZG9tYWluICpkLCBpb3Nl cnZpZF90IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGlkeCk7CiBpbnQgaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFp biAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCBlbmQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IDk2 NzdiZDc0ZTcuLjU5YjYwMDY5MTAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0v ZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTkwLDYgKzkw LDEwIEBAIHN0cnVjdCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciB7CiAgKiB0aGUgZnJh bWUgbnVtYmVycyBwYXNzZWQgYmFjayBpbiBnZm5zIDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFf Z2ZuPgogICogcmVzcGVjdGl2ZWx5LiAoSWYgdGhlIElPUkVRIFNlcnZlciBpcyBub3QgaGFuZGxp bmcgYnVmZmVyZWQgZW11bGF0aW9uCiAgKiBvbmx5IDxpb3JlcV9nZm4+IHdpbGwgYmUgdmFsaWQp LgorICoKKyAqIE5PVEU6IFRvIGFjY2VzcyB0aGUgc3luY2hyb25vdXMgaW9yZXEgc3RydWN0dXJl cyBhbmQgYnVmZmVyZWQgaW9yZXEKKyAqICAgICAgIHJpbmcsIGl0IGlzIHByZWZlcmFibGUgdG8g dXNlIHRoZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZSBtZW1vcnkKKyAqICAgICAgIG9wIHNwZWNp ZnlpbmcgcmVzb3VyY2UgdHlwZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyLgogICovCiAj ZGVmaW5lIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAyCiAKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaApp bmRleCA5YmY1OGU3Mzg0Li43MTY5NDFkYzBjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJs aWMvbWVtb3J5LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCkBAIC02NjQsMTAg KzY2NCwxMyBAQCBzdHJ1Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHsKICAgICB1aW50MTZf dCB0eXBlOwogCiAjZGVmaW5lIFhFTk1FTV9yZXNvdXJjZV9ncmFudF90YWJsZSAwCisjZGVmaW5l IFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIgMQogCiAgICAgLyoKICAgICAgKiBJTiAtIGEg dHlwZS1zcGVjaWZpYyByZXNvdXJjZSBpZGVudGlmaWVyLCB3aGljaCBtdXN0IGJlIHplcm8KICAg ICAgKiAgICAgIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogdHlwZSA9 PSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyIC0+IGlkID09IGlvcmVxIHNlcnZlciBpZAog ICAgICAqLwogICAgIHVpbnQzMl90IGlkOwogICAgIC8qIElOIC0gbnVtYmVyIG9mICg0SykgZnJh bWVzIG9mIHRoZSByZXNvdXJjZSB0byBiZSBtYXBwZWQgKi8KLS0gCjIuMTEuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=