From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 06/11] x86/hvm/ioreq: add a new mappable resource type... Date: Thu, 12 Oct 2017 17:25:58 +0100 Message-ID: <20171012162603.3016-7-paul.durrant@citrix.com> References: <20171012162603.3016-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2gJH-0006eo-DG for xen-devel@lists.xenproject.org; Thu, 12 Oct 2017 16:26:11 +0000 In-Reply-To: <20171012162603.3016-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 , Konrad Rzeszutek Wilk , 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+ClJldmlld2VkLWJ5OiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBJYW4g SmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0 YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgoKdjExOgog LSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnYxMDoKIC0gQWRkcmVzc2VkIGNv bW1lbnRzIGZyb20gSmFuLgoKdjg6CiAtIFJlLWJhc2Ugb24gbmV3IGJvaWxlcnBsYXRlLgogLSBB ZGp1c3QgZnVuY3Rpb24gc2lnbmF0dXJlIG9mIGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKCks IGFuZCB0ZXN0CiAgIHdoZXRoZXIgdGhlIGJ1ZmlvcmVxIHBhZ2UgaXMgcHJlc2VudC4KCnY1Ogog LSBVc2UgZ2V0X2lvcmVxX3NlcnZlcigpIGZ1bmN0aW9uIHJhdGhlciB0aGFuIGluZGV4aW5nIGFy cmF5IGRpcmVjdGx5LgogLSBBZGQgbW9yZSBleHBsYW5hdGlvbiBpbnRvIGNvbW1lbnRzIHRvIHN0 YXRlIHRoYW4gbWFwcGluZyBndWVzdCBmcmFtZXMKICAgYW5kIGFsbG9jYXRpb24gb2YgcGFnZXMg Zm9yIGlvcmVxIHNlcnZlcnMgYXJlIG5vdCBzaW11bHRhbmVvdXNseQogICBwZXJtaXR0ZWQuCiAt IEFkZCBhIGNvbW1lbnQgaW50byBhc20vaW9yZXEuaCBzdGF0aW5nIHRoZSBtZWFuaW5nIG9mIHRo ZSBpbmRleAogICB2YWx1ZSBwYXNzZWQgdG8gaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUoKS4K LS0tCiB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgICAgICAgIHwgMTU0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAg ICAgfCAgMjIgKysrKysrCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgICAgIHwgICA1ICsr CiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oIHwgICAyICsKIHhlbi9pbmNsdWRlL2Fz bS14ODYvbW0uaCAgICAgICAgfCAgIDUgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3Au aCAgfCAgIDQgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCAgICAgfCAgIDkgKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IGY2NTRlNzc5 NmMuLmZmNDEzMTI0NTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKQEAgLTI1OSw2ICsyNTksMTkgQEAgc3RhdGljIGlu dCBodm1fbWFwX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYp CiAgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDog JnMtPmlvcmVxOwogICAgIGludCByYzsKIAorICAgIGlmICggaW9ycC0+cGFnZSApCisgICAgewor ICAgICAgICAvKgorICAgICAgICAgKiBJZiBhIHBhZ2UgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0 ZWQgKHdoaWNoIHdpbGwgaGFwcGVuIG9uCisgICAgICAgICAqIGRlbWFuZCBpZiBodm1fZ2V0X2lv cmVxX3NlcnZlcl9mcmFtZSgpIGlzIGNhbGxlZCksIHRoZW4KKyAgICAgICAgICogbWFwcGluZyBh IGd1ZXN0IGZyYW1lIGlzIG5vdCBwZXJtaXR0ZWQuCisgICAgICAgICAqLworICAgICAgICBpZiAo IGdmbl9lcShpb3JwLT5nZm4sIElOVkFMSURfR0ZOKSApCisgICAgICAgICAgICByZXR1cm4gLUVQ RVJNOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKwogICAgIGlmICggZC0+aXNfZHlpbmcg KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIApAQCAtMjgxLDYgKzI5NCw2OSBAQCBzdGF0aWMg aW50IGh2bV9tYXBfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1 ZikKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgaHZtX2FsbG9jX2lvcmVxX21mbihz dHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCit7CisgICAgc3RydWN0IGRvbWFp biAqY3VycmQgPSBjdXJyZW50LT5kb21haW47CisgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICpp b3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOworCisgICAgaWYgKCBpb3JwLT5w YWdlICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIElmIGEgZ3Vlc3QgZnJhbWUgaGFz IGFscmVhZHkgYmVlbiBtYXBwZWQgKHdoaWNoIG1heSBoYXBwZW4KKyAgICAgICAgICogb24gZGVt YW5kIGlmIGh2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oKSBpcyBjYWxsZWQpLCB0aGVuCisgICAg ICAgICAqIGFsbG9jYXRpbmcgYSBwYWdlIGlzIG5vdCBwZXJtaXR0ZWQuCisgICAgICAgICAqLwor ICAgICAgICBpZiAoICFnZm5fZXEoaW9ycC0+Z2ZuLCBJTlZBTElEX0dGTikgKQorICAgICAgICAg ICAgcmV0dXJuIC1FUEVSTTsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKgor ICAgICAqIEFsbG9jYXRlZCBJT1JFUSBzZXJ2ZXIgcGFnZXMgYXJlIGFzc2lnbmVkIHRvIHRoZSBl bXVsYXRpbmcKKyAgICAgKiBkb21haW4sIG5vdCB0aGUgdGFyZ2V0IGRvbWFpbi4gVGhpcyBpcyBi ZWNhdXNlIHRoZSBlbXVsYXRvciBpcworICAgICAqIGxpa2VseSB0byBiZSBkZXN0cm95ZWQgYWZ0 ZXIgdGhlIHRhcmdldCBkb21haW4gaGFzIGJlZW4gdG9ybgorICAgICAqIGRvd24sIGFuZCB3ZSBt dXN0IHVzZSBNRU1GX25vX3JlZmNvdW50IG90aGVyd2lzZSBwYWdlIGFsbG9jYXRpb24KKyAgICAg KiBjb3VsZCBmYWlsIGlmIHRoZSBlbXVsYXRpbmcgZG9tYWluIGhhcyBhbHJlYWR5IHJlYWNoZWQg aXRzCisgICAgICogbWF4aW11bSBhbGxvY2F0aW9uLgorICAgICAqLworICAgIGlvcnAtPnBhZ2Ug PSBhbGxvY19kb21oZWFwX3BhZ2UoY3VycmQsIE1FTUZfbm9fcmVmY291bnQpOworICAgIGlmICgg IWlvcnAtPnBhZ2UgKQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIGlmICggIWdldF9w YWdlX3R5cGUoaW9ycC0+cGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKKyAgICB7CisgICAgICAg IHB1dF9wYWdlKGlvcnAtPnBhZ2UpOworICAgICAgICBpb3JwLT5wYWdlID0gTlVMTDsKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisgICAgfQorCisgICAgaW9ycC0+dmEgPSBfX21hcF9kb21haW5f cGFnZV9nbG9iYWwoaW9ycC0+cGFnZSk7CisgICAgaWYgKCAhaW9ycC0+dmEgKQorICAgIHsKKyAg ICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUoaW9ycC0+cGFnZSk7CisgICAgICAgIGlvcnAtPnBhZ2Ug PSBOVUxMOworICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICB9CisKKyAgICBjbGVhcl9wYWdl KGlvcnAtPnZhKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaHZtX2ZyZWVfaW9y ZXFfbWZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKK3sKKyAgICBzdHJ1 Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9yZXE7 CisKKyAgICBpZiAoICFpb3JwLT5wYWdlICkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5tYXBf ZG9tYWluX3BhZ2VfZ2xvYmFsKGlvcnAtPnZhKTsKKyAgICBpb3JwLT52YSA9IE5VTEw7CisKKyAg ICBwdXRfcGFnZV9hbmRfdHlwZShpb3JwLT5wYWdlKTsKKyAgICBpb3JwLT5wYWdlID0gTlVMTDsK K30KKwogYm9vbCBpc19pb3JlcV9zZXJ2ZXJfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBz dHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQogewogICAgIGNvbnN0IHN0cnVjdCBodm1faW9yZXFfc2Vy dmVyICpzOwpAQCAtNDg0LDYgKzU2MCwyNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVy X3VubWFwX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogICAgIGh2bV91bm1hcF9p b3JlcV9nZm4ocywgZmFsc2UpOwogfQogCitzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWxs b2NfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgaW50IHJjOworCisg ICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMsIGZhbHNlKTsKKworICAgIGlmICggIXJjICYm IChzLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKSApCisg ICAgICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCB0cnVlKTsKKworICAgIGlmICggcmMg KQorICAgICAgICBodm1fZnJlZV9pb3JlcV9tZm4ocywgZmFsc2UpOworCisgICAgcmV0dXJuIHJj OworfQorCitzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMoc3RydWN0IGh2 bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsIHRydWUpOwor ICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxzZSk7Cit9CisKIHN0YXRpYyB2b2lkIGh2bV9p b3JlcV9zZXJ2ZXJfZnJlZV9yYW5nZXNldHMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiB7 CiAgICAgdW5zaWduZWQgaW50IGk7CkBAIC02MTIsNyArNzA5LDE4IEBAIHN0YXRpYyBpbnQgaHZt X2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAogCiAgZmFpbF9h ZGQ6CiAgICAgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHMpOworCisgICAgLyoK KyAgICAgKiBOT1RFOiBJdCBpcyBzYWZlIHRvIGNhbGwgYm90aCBodm1faW9yZXFfc2VydmVyX3Vu bWFwX3BhZ2VzKCkgYW5kCisgICAgICogICAgICAgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3BhZ2Vz KCkgaW4gdGhhdCBvcmRlci4KKyAgICAgKiAgICAgICBUaGlzIGlzIGJlY2F1c2UgdGhlIGZvcm1l ciB3aWxsIGRvIG5vdGhpbmcgaWYgdGhlIHBhZ2VzCisgICAgICogICAgICAgYXJlIG5vdCBtYXBw ZWQsIGxlYXZpbmcgdGhlIHBhZ2UgdG8gYmUgZnJlZWQgYnkgdGhlIGxhdHRlci4KKyAgICAgKiAg ICAgICBIb3dldmVyIGlmIHRoZSBwYWdlcyBhcmUgbWFwcGVkIHRoZW4gdGhlIGZvcm1lciB3aWxs IHNldAorICAgICAqICAgICAgIHRoZSBwYWdlX2luZm8gcG9pbnRlciB0byBOVUxMLCBtZWFuaW5n IHRoZSBsYXR0ZXIgd2lsbCBkbworICAgICAqICAgICAgIG5vdGhpbmcuCisgICAgICovCiAgICAg aHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhzKTsKKyAgICBodm1faW9yZXFfc2VydmVyX2Zy ZWVfcGFnZXMocyk7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC02MjIsNiArNzMwLDcgQEAgc3Rh dGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9kZWluaXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIg KnMpCiAgICAgQVNTRVJUKCFzLT5lbmFibGVkKTsKICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92 ZV9hbGxfdmNwdXMocyk7CiAgICAgaHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhzKTsKKyAg ICBodm1faW9yZXFfc2VydmVyX2ZyZWVfcGFnZXMocyk7CiAgICAgaHZtX2lvcmVxX3NlcnZlcl9m cmVlX3Jhbmdlc2V0cyhzKTsKIH0KIApAQCAtNzc3LDYgKzg4Niw1MSBAQCBpbnQgaHZtX2dldF9p b3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIHJl dHVybiByYzsKIH0KIAoraW50IGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBkb21h aW4gKmQsIGlvc2VydmlkX3QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBpZHgsIG1mbl90ICptZm4pCit7CisgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnM7CisgICAgaW50IHJjOworCisgICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5o dm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKworICAgIGlmICggaWQgPT0gREVGQVVMVF9J T1NFUlZJRCApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAgIHMgPSBnZXRfaW9y ZXFfc2VydmVyKGQsIGlkKTsKKworICAgIEFTU0VSVCghSVNfREVGQVVMVChzKSk7CisKKyAgICBy YyA9IGh2bV9pb3JlcV9zZXJ2ZXJfYWxsb2NfcGFnZXMocyk7CisgICAgaWYgKCByYyApCisgICAg ICAgIGdvdG8gb3V0OworCisgICAgc3dpdGNoICggaWR4ICkKKyAgICB7CisgICAgY2FzZSBYRU5N RU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyX2ZyYW1lX2J1ZmlvcmVxOgorICAgICAgICByYyA9IC1F Tk9FTlQ7CisgICAgICAgIGlmICggIUhBTkRMRV9CVUZJT1JFUShzKSApCisgICAgICAgICAgICBn b3RvIG91dDsKKworICAgICAgICAqbWZuID0gX21mbihwYWdlX3RvX21mbihzLT5idWZpb3JlcS5w YWdlKSk7CisgICAgICAgIHJjID0gMDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTk1F TV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfaW9yZXEoMCk6CisgICAgICAgICptZm4gPSBf bWZuKHBhZ2VfdG9fbWZuKHMtPmlvcmVxLnBhZ2UpKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBk ZWZhdWx0OgorICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor IG91dDoKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3Jl cV9zZXJ2ZXIubG9jayk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBodm1fbWFwX2lvX3Jh bmdlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90 IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVu ZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5k ZXggZDlkZjVjYTY5Zi4uYzliYzRhNGU5MiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMK KysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgPGFz bS9maXhtYXAuaD4KICNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgogI2luY2x1ZGUgPGFzbS9wY2ku aD4KKyNpbmNsdWRlIDxhc20vaHZtL2lvcmVxLmg+CiAKICNpbmNsdWRlIDxhc20vaHZtL2dyYW50 X3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3B2L2dyYW50X3RhYmxlLmg+CkBAIC0zODY2LDYgKzM4 NjcsMjcgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCiAgICAgcmV0dXJuIHJjOwog fQogCitpbnQgeGVubWVtX2FjcXVpcmVfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBucl9mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbWZuX2xpc3RbXSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoIGkgPSAw OyBpIDwgbnJfZnJhbWVzOyBpKysgKQorICAgIHsKKyAgICAgICAgbWZuX3QgbWZuOworICAgICAg ICBpbnQgcmMgPSBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShkLCBpZCwgZnJhbWUgKyBpLCAm bWZuKTsKKworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIHJldHVybiByYzsKKworICAg ICAgICBtZm5fbGlzdFtpXSA9IG1mbl94KG1mbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9 CisKIGxvbmcgYXJjaF9tZW1vcnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0odm9pZCkgYXJnKQogewogICAgIGludCByYzsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGE4OGZjODM1NjUuLjFhOTg3 MmI3NWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9t ZW1vcnkuYwpAQCAtMTAwMCw2ICsxMDAwLDExIEBAIHN0YXRpYyBpbnQgYWNxdWlyZV9yZXNvdXJj ZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKIAogICAgIHN3aXRjaCAoIHhtYXIu dHlwZSApCiAgICAgeworICAgIGNhc2UgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcjoKKyAg ICAgICAgcmMgPSB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9zZXJ2ZXIoZCwgeG1hci5pZCwgeG1hci5m cmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1hci5ucl9m cmFtZXMsIG1mbl9saXN0KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAg ICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2lvcmVxLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5o CmluZGV4IDE4MjlmY2Y0M2UuLjllMzdjOTdhMzcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lvcmVxLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaApA QCAtMzEsNiArMzEsOCBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9t YWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyAqaW9yZXFfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyAqYnVmaW9yZXFfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXZ0Y2huX3BvcnRfdCAqYnVmaW9yZXFfcG9ydCk7CitpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJf ZnJhbWUoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGlkeCwgbWZuX3QgKm1mbik7CiBpbnQgaHZtX21h cF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBp ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlLCB1 aW50NjRfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 NjRfdCBlbmQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9tbS5oCmluZGV4IGYyZTBmNDk4YzQuLjYzN2IxZWVlMWMgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21t LmgKQEAgLTYxNSw0ICs2MTUsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJjaF9tZm5faW5fZGly ZWN0bWFwKHVuc2lnbmVkIGxvbmcgbWZuKQogICAgIHJldHVybiBtZm4gPD0gKHZpcnRfdG9fbWZu KGV2YSAtIDEpICsgMSk7CiB9CiAKK2ludCB4ZW5tZW1fYWNxdWlyZV9pb3JlcV9zZXJ2ZXIoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIG5yX2ZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBtZm5fbGlzdFtdKTsKKwogI2VuZGlmIC8qIF9fQVNNX1g4Nl9N TV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCA5Njc3YmQ3NGU3Li41OWI2MDA2OTEw IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC05MCw2ICs5MCwxMCBAQCBzdHJ1Y3QgeGVuX2Rt X29wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgewogICogdGhlIGZyYW1lIG51bWJlcnMgcGFzc2VkIGJh Y2sgaW4gZ2ZucyA8aW9yZXFfZ2ZuPiBhbmQgPGJ1ZmlvcmVxX2dmbj4KICAqIHJlc3BlY3RpdmVs eS4gKElmIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgbm90IGhhbmRsaW5nIGJ1ZmZlcmVkIGVtdWxhdGlv bgogICogb25seSA8aW9yZXFfZ2ZuPiB3aWxsIGJlIHZhbGlkKS4KKyAqCisgKiBOT1RFOiBUbyBh Y2Nlc3MgdGhlIHN5bmNocm9ub3VzIGlvcmVxIHN0cnVjdHVyZXMgYW5kIGJ1ZmZlcmVkIGlvcmVx CisgKiAgICAgICByaW5nLCBpdCBpcyBwcmVmZXJhYmxlIHRvIHVzZSB0aGUgWEVOTUVNX2FjcXVp cmVfcmVzb3VyY2UgbWVtb3J5CisgKiAgICAgICBvcCBzcGVjaWZ5aW5nIHJlc291cmNlIHR5cGUg WEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlci4KICAqLwogI2RlZmluZSBYRU5fRE1PUF9nZXRf aW9yZXFfc2VydmVyX2luZm8gMgogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVt b3J5LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKaW5kZXggYjdjZjc1M2Q3NS4uNTMz ODAyODdkNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCisrKyBiL3hl bi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaApAQCAtNjA5LDkgKzYwOSwxNCBAQCBzdHJ1Y3QgeGVu X21lbV9hY3F1aXJlX3Jlc291cmNlIHsKICAgICBkb21pZF90IGRvbWlkOwogICAgIC8qIElOIC0g dGhlIHR5cGUgb2YgcmVzb3VyY2UgKi8KICAgICB1aW50MTZfdCB0eXBlOworCisjZGVmaW5lIFhF Tk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIgMAorCiAgICAgLyoKICAgICAgKiBJTiAtIGEgdHlw ZS1zcGVjaWZpYyByZXNvdXJjZSBpZGVudGlmaWVyLCB3aGljaCBtdXN0IGJlIHplcm8KICAgICAg KiAgICAgIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogdHlwZSA9PSBY RU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyIC0+IGlkID09IGlvcmVxIHNlcnZlciBpZAogICAg ICAqLwogICAgIHVpbnQzMl90IGlkOwogICAgIC8qIElOL09VVCAtIEFzIGFuIElOIHBhcmFtZXRl ciBudW1iZXIgb2YgKDRLKSBmcmFtZXMgb2YgdGhlIHJlc291cmNlCkBAIC02MjksNiArNjM0LDEw IEBAIHN0cnVjdCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UgewogICAgICAqICAgICAgaXMgb3B0 aW9uYWwgaWYgbnJfZnJhbWVzIGlzIDAuCiAgICAgICovCiAgICAgdWludDY0X2FsaWduZWRfdCBm cmFtZTsKKworI2RlZmluZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyX2ZyYW1lX2J1Zmlv cmVxIDAKKyNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcShu XykgKDEgKyAobl8pKQorCiAgICAgLyogSU4vT1VUIC0gSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBQ ViB0aGVuLCB1cG9uIHJldHVybiwgZnJhbWVfbGlzdAogICAgICAqICAgICAgICAgIHdpbGwgYmUg cG9wdWxhdGVkIHdpdGggdGhlIE1GTnMgb2YgdGhlIHJlc291cmNlLgogICAgICAqICAgICAgICAg IElmIHRoZSB0b29scyBkb21haW4gaXMgSFZNIHRoZW4gaXQgaXMgZXhwZWN0ZWQgdGhhdCwgb24K LS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=