From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chong Li Subject: [PATCH v9 for Xen 4.7 1/4] xen: enable per-VCPU parameter for RTDS Date: Thu, 31 Mar 2016 23:59:43 -0500 Message-ID: <1459486786-3085-2-git-send-email-lichong659@gmail.com> References: <1459486786-3085-1-git-send-email-lichong659@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459486786-3085-1-git-send-email-lichong659@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Chong Li , Sisu Xi , george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, Meng Xu , jbeulich@suse.com, lichong659@gmail.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org QWRkIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBhbmQgX3B1dHZjcHVpbmZvIGh5cGVy Y2FsbHMKdG8gaW5kZXBlbmRlbnRseSBnZXQgYW5kIHNldCB0aGUgc2NoZWR1bGluZyBwYXJhbWV0 ZXJzIG9mIGVhY2gKdkNQVSBvZiBhIGRvbWFpbi4KCkFsc28gZml4IGEgYnVnIGluIFhFTl9ET01D VExfU0NIRURPUF9nZXRpbmZvLCB3aGVyZSBQRVJJT0QgYW5kCkJVREdFVCBhcmUgbm90IGRpdmlk ZWQgYnkgTUlDUk9TRUNTKDEpIGJlZm9yZSBiZWluZyByZXRydW5lZAp0byB0aGUgY2FsbGVyLgoK U2lnbmVkLW9mZi1ieTogQ2hvbmcgTGkgPGNob25nLmxpQHd1c3RsLmVkdT4KU2lnbmVkLW9mZi1i eTogTWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVubi5lZHU+ClNpZ25lZC1vZmYtYnk6IFNpc3UgWGkg PHhpc2lzdUBnbWFpbC5jb20+CgotLS0KQ2hhbmdlcyBvbiBQQVRDSCB2ODoKMSkgTW92ZSBCVUcg Zml4IGRlc2NyaXB0aW9uIGJlZm9yZSBTb0IuCjIpIFJlbW92ZSB0aGUgdW51c2VmdWwgcGFkZGlu ZyBpbiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHUuCgpDaGFuZ2VzIG9uIFBBVENI IHY3OgoxKSBBIGJ1ZyBpbiBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvIChpbiBYZW4g NC42KSBpcyBmaXhlZDoKVGhlIGRlZmF1bHQgUEVSSU9EIG9yIEJVREdFVCBzaG91bGQgYmUgZGl2 aWRlZCBieSBNSUNST1NFQ1MoMSksCmJlZm9yZSByZXR1cm5lZCB0byB1cHBlciBjYWxsZXIuCgoy KSBJbiB0aGUgKmNudGwoKSBmdW5jdGlvbnMgaW4gc2NoZWRfY3JlZGl0LmMgYW5kIHNjaGVkX2Ny ZWRpdDIuYywgcmVtb3ZlCnR3byB1bmhhbmRsZWQgY2FzZXMgaW4gInN3aXRjaCIuCgoKQ2hhbmdl cyBvbiBQQVRDSCB2NjoKMSkgQWRkIGV4cGxhaW4gZm9yIG5yX3ZjcHVzIGluIHN0cnVjdCB4ZW5f ZG9tY3RsX3NjaGVkdWxlcl9vcCwgYmVjYXVzZSBpdCBpcyB1c2VkCmluIGJvdGggSU4gYW5kIE9V VCB3YXlzLgoyKSBSZW1vdmUgdGhlIGNoZWNrIGFuZCB3YXJuaW5nIGZvciB2Y3B1IHNldHRpbmdz IHdpdGggbG93IGJ1ZGdldCBvciBidWRnZXQuIE1ha2luZyB0aGlzCmZlYXR1cmUgInBlci1kb21h aW4iIG9yICJwZXItb3BlcmF0aW9uIiBpcyBvbmUgb2YgdGhlIGZ1dHVyZSB3b3JrLgozKSBJbiB0 aGUgKmNudGwoKSBmdW5jdGlvbnMgaW4gc2NoZWRfY3JlZGl0LmMgYW5kIHNjaGVkX2NyZWRpdDIu YywgY2hhbmdlIHRoZSAiaWYtZWxzZSIKc3RydWN0dXJlIHRvICJzd2l0Y2giIHN0cnVjdHVyZS4K NCkgSW4gcnRfZG9tX2NudGwoKSwgdXNlIGNvcHlfdG9fZ3Vlc3QqIGluc3RlYWQgb2YgX19jb3B5 X3RvX2d1ZXN0KiwgYmVjYXVzZSB0aGUgbGF0dGVyIG9uZQpyZXF1aXJlcyBsb2NrIHByb3RlY3Rp b24uCgoKQ2hhbmdlcyBvbiBQQVRDSCB2NToKMSkgV2hlbiBwcm9jZXNzaW5nIFhFTl9ET01DVExf U0NIRURPUF9nZXQvcHV0dmNwdWluZm8sIHdlIGRvCnByZWVtcHRpb24gY2hlY2sgaW4gYSBzaW1p bGFyIHdheSB0byBYRU5fU1lTQ1RMX3BjaXRvcG9pbmZvCgoKQ2hhbmdlcyBvbiBQQVRDSCB2NDoK MSkgQWRkIHVpbnQzMl90IHZjcHVfaW5kZXggdG8gc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVy X29wLgpXaGVuIHByb2Nlc3NpbmcgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldC9wdXR2Y3B1aW5mbywg d2UgY2FsbApoeXBlcmNhbGxfcHJlZW1wdGlvbl9jaGVjayBpbiBjYXNlIHRoZSBjdXJyZW50IGh5 cGVyY2FsbCBsYXN0cwp0b28gbG9uZy4gSWYgd2UgZGVjaWRlIHRvIHByZWVtcHQgdGhlIGN1cnJl bnQgaHlwZXJjYWxsLCB3ZSByZWNvcmQKdGhlIGluZGV4IG9mIHRoZSBtb3N0LXJlY2VudCBmaW5p c2hlZCB2Y3B1IGludG8gdGhlIHZjcHVfaW5kZXggb2YKc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1 bGVyX29wLiBTbyB3aGVuIHdlIHJlc3VtZSB0aGUgaHlwZXJjYWxsIGFmdGVyCnByZWVtcHRpb24s IHdlIHN0YXJ0IHByb2Nlc3NpbmcgZnJvbSB0aGUgcG9zaW9uIHNwZWNpZmllZCBieSB2Y3B1X2lu ZGV4LAphbmQgZG9uJ3QgbmVlZCB0byByZXBlYXQgdGhlIHdvcmsgdGhhdCBoYXMgYWxyZWFkeSBi ZWVuIGRvbmUgaW4gdGhlCmh5cGVyY2FsbCBiZWZvcmUgdGhlIHByZWVtcHRpb24uCihUaGlzIGRl c2lnbiBpcyBiYXNlZCBvbiB0aGUgZG9fZ3JhbnRfdGFibGVfb3AoKSBpbiBncmFudF90YWJsZS5j KQoKMikgQ29kaW5nIHN0eWxlIGNoYW5nZXMKCgpDaGFuZ2VzIG9uIFBBVENIIHYzOgoxKSBSZW1v dmUgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRwYXJhbV90LiAKCjIpIENoYW5nZSBzdHJ1Y3QgeGVu X2RvbWN0bF9zY2hlZHVsZXJfb3AuCgozKSBDaGVjayBpZiBwZXJpb2QvYnVkZ2V0IGlzIHdpdGhp biBhIHZhbGlkYXRlZCByYW5nZQoKCkNoYW5nZXMgb24gUEFUQ0ggdjI6CjEpIENoYW5nZSBzdHJ1 Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3AsIGZvciB0cmFuc2ZlcnJpbmcgcGVyLXZjcHUgcGFy YW1ldGVycwpiZXR3ZWVuIGxpYnhjIGFuZCBoeXBlcnZpc29yLgoKMikgSGFuZGxlciBvZiBYRU5f RE9NQ1RMX1NDSEVET1BfZ2V0aW5mbyBub3cganVzdCByZXR1cm5zIHRoZSBkZWZhdWx0IGJ1ZGdl dCBhbmQgCnBlcmlvZCB2YWx1ZXMgb2YgUlREUyBzY2hlZHVsZXIuCgozKSBIYW5kbGVyIG9mIFhF Tl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBub3cgY2FuIHJldHVybiBhIHJhbmRvbSBzdWJz ZXQgb2YgCnRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBWQ1BVcyBvZiBhIHNwZWNpZmljIGRvbWFpbgoK Q0M6IDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgpDQzogPGdlb3JnZS5kdW5sYXBAZXUuY2l0 cml4LmNvbT4KQ0M6IDxkZ29sb21iQHNlYXMudXBlbm4uZWR1PgpDQzogPG1lbmd4dUBjaXMudXBl bm4uZWR1PgpDQzogPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogPGxpY2hvbmc2NTlAZ21haWwuY29t PgotLS0KIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMgICB8IDE0ICsrKy0tLS0KIHhlbi9jb21t b24vc2NoZWRfY3JlZGl0Mi5jICB8IDEzICsrKystLS0KIHhlbi9jb21tb24vc2NoZWRfcnQuYyAg ICAgICB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQog eGVuL2NvbW1vbi9zY2hlZHVsZS5jICAgICAgIHwgMTUgKysrKysrLS0KIHhlbi9pbmNsdWRlL3B1 YmxpYy9kb21jdGwuaCB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogNSBmaWxl cyBjaGFuZ2VkLCAxNTYgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMK aW5kZXggMzA1ODg5YS4uZTVkMTVkOCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCkBAIC0xMDgwLDE1ICsxMDgwLDEz IEBAIGNzY2hlZF9kb21fY250bCgKICAgICAgKiBsb2NrLiBSdW5xIGxvY2sgbm90IG5lZWRlZCBh bnl3aGVyZSBpbiBoZXJlLiAqLwogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZs YWdzKTsKIAotICAgIGlmICggb3AtPmNtZCA9PSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbyAp CisgICAgc3dpdGNoICggb3AtPmNtZCApCiAgICAgeworICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hF RE9QX2dldGluZm86CiAgICAgICAgIG9wLT51LmNyZWRpdC53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7 CiAgICAgICAgIG9wLT51LmNyZWRpdC5jYXAgPSBzZG9tLT5jYXA7Ci0gICAgfQotICAgIGVsc2UK LSAgICB7Ci0gICAgICAgIEFTU0VSVChvcC0+Y21kID09IFhFTl9ET01DVExfU0NIRURPUF9wdXRp bmZvKTsKLQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRp bmZvOgogICAgICAgICBpZiAoIG9wLT51LmNyZWRpdC53ZWlnaHQgIT0gMCApCiAgICAgICAgIHsK ICAgICAgICAgICAgIGlmICggIWxpc3RfZW1wdHkoJnNkb20tPmFjdGl2ZV9zZG9tX2VsZW0pICkK QEAgLTExMDEsNyArMTA5OSw5IEBAIGNzY2hlZF9kb21fY250bCgKIAogICAgICAgICBpZiAoIG9w LT51LmNyZWRpdC5jYXAgIT0gKHVpbnQxNl90KX4wVSApCiAgICAgICAgICAgICBzZG9tLT5jYXAg PSBvcC0+dS5jcmVkaXQuY2FwOwotCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg ICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnBydi0+bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCA3ZGRhZDM4Li5kNDhlZDVhIDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4vY29tbW9uL3Nj aGVkX2NyZWRpdDIuYwpAQCAtMTQyMSwxNCArMTQyMSwxMiBAQCBjc2NoZWQyX2RvbV9jbnRsKAog ICAgICAqIHJ1bnEgbG9jayB0byB1cGRhdGUgY3N2Y3MuICovCiAgICAgc3Bpbl9sb2NrX2lycXNh dmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCi0gICAgaWYgKCBvcC0+Y21kID09IFhFTl9ET01DVExf U0NIRURPUF9nZXRpbmZvICkKKyAgICBzd2l0Y2ggKCBvcC0+Y21kICkKICAgICB7CisgICAgY2Fz ZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbzoKICAgICAgICAgb3AtPnUuY3JlZGl0Mi53ZWln aHQgPSBzZG9tLT53ZWlnaHQ7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIEFTU0VS VChvcC0+Y21kID09IFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvKTsKLQorICAgICAgICBicmVh azsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9w LT51LmNyZWRpdDIud2VpZ2h0ICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3Qg dmNwdSAqdjsKQEAgLTE0NTcsNiArMTQ1NSw5IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAg ICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2sobG9jaywgc3ZjLT52Y3B1KTsKICAgICAgICAg ICAgIH0KICAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYt PmxvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9j b21tb24vc2NoZWRfcnQuYwppbmRleCBkOThiZmI2Li4zMjFiMGE1IDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC05MCw2ICs5 MCwyMiBAQAogI2RlZmluZSBSVERTX0RFRkFVTFRfUEVSSU9EICAgICAoTUlDUk9TRUNTKDEwMDAw KSkKICNkZWZpbmUgUlREU19ERUZBVUxUX0JVREdFVCAgICAgKE1JQ1JPU0VDUyg0MDAwKSkKIAor LyoKKyAqIE1heCBwZXJpb2Q6IG1heCBkZWx0YSBvZiB0aW1lIHR5cGUsIGJlY2F1c2UgcGVyaW9k IGlzIGFkZGVkIHRvIHRoZSB0aW1lCisgKiBhIHZjcHUgYWN0aXZhdGVzLCBzbyB0aGlzIG11c3Qg bm90IG92ZXJmbG93LgorICogTWluIHBlcmlvZDogMTAgdXMsIGNvbnNpZGVyaW5nIHRoZSBzY2hl ZHVsaW5nIG92ZXJoZWFkICh3aGVuIHBlcmlvZCBpcworICogdG9vIGxvdywgc2NoZWR1bGluZyBp cyBpbnZva2VkIHRvbyBmcmVxdWVudGx5LCBjYXVzaW5nIGhpZ2ggb3ZlcmhlYWQpLgorICovCisj ZGVmaW5lIFJURFNfTUFYX1BFUklPRCAgICAgKFNUSU1FX0RFTFRBX01BWCkKKyNkZWZpbmUgUlRE U19NSU5fUEVSSU9EICAgICAoTUlDUk9TRUNTKDEwKSkKKworLyoKKyAqIE1pbiBidWRnZXQ6IDEw IHVzLCBjb25zaWRlcmluZyB0aGUgc2NoZWR1bGluZyBvdmVyaGVhZCAod2hlbiBidWRnZXQgaXMK KyAqIGNvbnN1bWVkIHRvbyBmYXN0LCBzY2hlZHVsaW5nIGlzIGludm9rZWQgdG9vIGZyZXF1ZW50 bHksIGNhdXNpbmcKKyAqIGhpZ2ggb3ZlcmhlYWQpLgorICovCisjZGVmaW5lIFJURFNfTUlOX0JV REdFVCAgICAgKE1JQ1JPU0VDUygxMCkpCisKICNkZWZpbmUgVVBEQVRFX0xJTUlUX1NISUZUICAg ICAgMTAKIAogLyoKQEAgLTEyNjYsMjQgKzEyODIsMTYgQEAgcnRfZG9tX2NudGwoCiAgICAgc3Ry dWN0IHZjcHUgKnY7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBpbnQgcmMgPSAwOwor ICAgIHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1X3QgbG9jYWxfc2NoZWQ7CisgICAgc190aW1l X3QgcGVyaW9kLCBidWRnZXQ7CisgICAgdWludDMyX3QgaW5kZXggPSAwOwogCiAgICAgc3dpdGNo ICggb3AtPmNtZCApCiAgICAgewogICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm86 Ci0gICAgICAgIGlmICggZC0+bWF4X3ZjcHVzID4gMCApCi0gICAgICAgIHsKLSAgICAgICAgICAg IHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKLSAgICAgICAgICAgIHN2YyA9 IHJ0X3ZjcHUoZC0+dmNwdVswXSk7Ci0gICAgICAgICAgICBvcC0+dS5ydGRzLnBlcmlvZCA9IHN2 Yy0+cGVyaW9kIC8gTUlDUk9TRUNTKDEpOwotICAgICAgICAgICAgb3AtPnUucnRkcy5idWRnZXQg PSBzdmMtPmJ1ZGdldCAvIE1JQ1JPU0VDUygxKTsKLSAgICAgICAgICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAg ICAgICAgewotICAgICAgICAgICAgLyogSWYgd2UgZG9uJ3QgaGF2ZSB2Y3B1cyB5ZXQsIGxldCdz IGp1c3QgcmV0dXJuIHRoZSBkZWZhdWx0cy4gKi8KLSAgICAgICAgICAgIG9wLT51LnJ0ZHMucGVy aW9kID0gUlREU19ERUZBVUxUX1BFUklPRDsKLSAgICAgICAgICAgIG9wLT51LnJ0ZHMuYnVkZ2V0 ID0gUlREU19ERUZBVUxUX0JVREdFVDsKLSAgICAgICAgfQorICAgICAgICAvKiBSZXR1cm4gdGhl IGRlZmF1bHQgcGFyYW1ldGVycy4gKi8KKyAgICAgICAgb3AtPnUucnRkcy5wZXJpb2QgPSBSVERT X0RFRkFVTFRfUEVSSU9EIC8gTUlDUk9TRUNTKDEpOworICAgICAgICBvcC0+dS5ydGRzLmJ1ZGdl dCA9IFJURFNfREVGQVVMVF9CVURHRVQgLyBNSUNST1NFQ1MoMSk7CiAgICAgICAgIGJyZWFrOwog ICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm86CiAgICAgICAgIGlmICggb3AtPnUu cnRkcy5wZXJpb2QgPT0gMCB8fCBvcC0+dS5ydGRzLmJ1ZGdldCA9PSAwICkKQEAgLTEzMDAsNiAr MTMwOCw2MyBAQCBydF9kb21fY250bCgKICAgICAgICAgfQogICAgICAgICBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBY RU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNwdWluZm86CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVE T1BfcHV0dmNwdWluZm86CisgICAgICAgIHdoaWxlICggaW5kZXggPCBvcC0+dS52Lm5yX3ZjcHVz ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3Rfb2Zmc2V0KCZs b2NhbF9zY2hlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+ dS52LnZjcHVzLCBpbmRleCwgMSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJj ID0gLUVGQVVMVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIGlmICggbG9jYWxfc2NoZWQudmNwdWlkID49IGQtPm1heF92Y3B1cyB8fAorICAgICAg ICAgICAgICAgICBkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0gPT0gTlVMTCApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RP TUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICAgICAg c3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0pOworICAgICAgICAgICAg ICAgIGxvY2FsX3NjaGVkLnUucnRkcy5idWRnZXQgPSBzdmMtPmJ1ZGdldCAvIE1JQ1JPU0VDUygx KTsKKyAgICAgICAgICAgICAgICBsb2NhbF9zY2hlZC51LnJ0ZHMucGVyaW9kID0gc3ZjLT5wZXJp b2QgLyBNSUNST1NFQ1MoMSk7CisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisKKyAgICAgICAgICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vl c3Rfb2Zmc2V0KG9wLT51LnYudmNwdXMsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmxvY2FsX3NjaGVkLCAxKSApCisgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwZXJpb2QgPSBNSUNST1NFQ1MobG9jYWxf c2NoZWQudS5ydGRzLnBlcmlvZCk7CisgICAgICAgICAgICAgICAgYnVkZ2V0ID0gTUlDUk9TRUNT KGxvY2FsX3NjaGVkLnUucnRkcy5idWRnZXQpOworICAgICAgICAgICAgICAgIGlmICggcGVyaW9k ID4gUlREU19NQVhfUEVSSU9EIHx8IGJ1ZGdldCA8IFJURFNfTUlOX0JVREdFVCB8fAorICAgICAg ICAgICAgICAgICAgICAgYnVkZ2V0ID4gcGVyaW9kIHx8IHBlcmlvZCA8IFJURFNfTUlOX1BFUklP RCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7 CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAg ICAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAg ICAgICAgICBzdmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CisgICAg ICAgICAgICAgICAgc3ZjLT5wZXJpb2QgPSBwZXJpb2Q7CisgICAgICAgICAgICAgICAgc3ZjLT5i dWRnZXQgPSBidWRnZXQ7CisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm cHJ2LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBQcm9jZXNz IGEgbW9zdCA2NCB2Q1BVcyB3aXRob3V0IGNoZWNraW5nIGZvciBwcmVlbXB0aW9ucy4gKi8KKyAg ICAgICAgICAgIGlmICggKCsraW5kZXggPiA2MykgJiYgaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2so KSApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCAhcmMg KQorICAgICAgICAgICAgLyogbm90aWZ5IHVwcGVyIGNhbGxlciBob3cgbWFueSB2Y3B1cyBoYXZl IGJlZW4gcHJvY2Vzc2VkLiAqLworICAgICAgICAgICAgb3AtPnUudi5ucl92Y3B1cyA9IGluZGV4 OworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICByZXR1cm4gcmM7CmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKaW5kZXggMDYyN2Vi NS4uYjdkZWUxNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jCisrKyBiL3hlbi9j b21tb24vc2NoZWR1bGUuYwpAQCAtMTIzNSwxMSArMTIzNSwyMCBAQCBsb25nIHNjaGVkX2FkanVz dChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3AgKm9wKQog ICAgIGlmICggcmV0ICkKICAgICAgICAgcmV0dXJuIHJldDsKIAotICAgIGlmICggKG9wLT5zY2hl ZF9pZCAhPSBET00yT1AoZCktPnNjaGVkX2lkKSB8fAotICAgICAgICAgKChvcC0+Y21kICE9IFhF Tl9ET01DVExfU0NIRURPUF9wdXRpbmZvKSAmJgotICAgICAgICAgIChvcC0+Y21kICE9IFhFTl9E T01DVExfU0NIRURPUF9nZXRpbmZvKSkgKQorICAgIGlmICggb3AtPnNjaGVkX2lkICE9IERPTTJP UChkKS0+c2NoZWRfaWQgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAorICAgIHN3aXRjaCAo IG9wLT5jbWQgKQorICAgIHsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgor ICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm86CisgICAgY2FzZSBYRU5fRE9NQ1RM X1NDSEVET1BfcHV0dmNwdWluZm86CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNw dWluZm86CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAtRUlO VkFMOworICAgIH0KKwogICAgIC8qIE5COiB0aGUgcGx1Z2dhYmxlIHNjaGVkdWxlciBjb2RlIG5l ZWRzIHRvIHRha2UgY2FyZQogICAgICAqIG9mIGxvY2tpbmcgYnkgaXRzZWxmLiAqLwogICAgIGlm ICggKHJldCA9IFNDSEVEX09QKERPTTJPUChkKSwgYWRqdXN0LCBkLCBvcCkpID09IDAgKQpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGlj L2RvbWN0bC5oCmluZGV4IDA3NmIxYWUuLjI0NTc2OTggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9kb21jdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTM1 MCwyNCArMzUwLDYzIEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfbWF4X3Zj cHVzX3QpOwogI2RlZmluZSBYRU5fU0NIRURVTEVSX0FSSU5DNjUzIDcKICNkZWZpbmUgWEVOX1ND SEVEVUxFUl9SVERTICAgICA4CiAKLS8qIFNldCBvciBnZXQgaW5mbz8gKi8KK3R5cGVkZWYgc3Ry dWN0IHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0IHsKKyAgICB1aW50MTZfdCB3ZWlnaHQ7CisgICAg dWludDE2X3QgY2FwOworfSB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdF90OworCit0eXBlZGVmIHN0 cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDIgeworICAgIHVpbnQxNl90IHdlaWdodDsKK30g eGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyX3Q7CisKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxf c2NoZWRfcnRkcyB7CisgICAgdWludDMyX3QgcGVyaW9kOworICAgIHVpbnQzMl90IGJ1ZGdldDsK K30geGVuX2RvbWN0bF9zY2hlZF9ydGRzX3Q7CisKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxf c2NoZWRwYXJhbV92Y3B1IHsKKyAgICB1bmlvbiB7CisgICAgICAgIHhlbl9kb21jdGxfc2NoZWRf Y3JlZGl0X3QgY3JlZGl0OworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDJfdCBjcmVk aXQyOworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHNfdCBydGRzOworICAgIH0gdTsKKyAg ICB1aW50MzJfdCB2Y3B1aWQ7Cit9IHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1X3Q7CitERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdV90KTsKKworLyoK KyAqIFNldCBvciBnZXQgaW5mbz8KKyAqIEZvciBzY2hlZHVsZXJzIHN1cHBvcnRpbmcgcGVyLXZj cHUgc2V0dGluZ3MgKGUuZy4sIFJURFMpOgorICogIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZv IHNldHMgcGFyYW1zIGZvciBhbGwgdmNwdXM7CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGlu Zm8gZ2V0cyBkZWZhdWx0IHBhcmFtczsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0KGdldCl2 Y3B1aW5mbyBzZXRzIChnZXRzKSBwYXJhbXMgb2YgdmNwdXM7CisgKgorICogRm9yIHNjaGVkdWxl cnMgbm90IHN1cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGluZ3M6CisgKiAgWEVOX0RPTUNUTF9TQ0hF RE9QX3B1dGluZm8gc2V0cyBwYXJhbXMgZm9yIGFsbCB2Y3B1czsKKyAqICBYRU5fRE9NQ1RMX1ND SEVET1BfZ2V0aW5mbyBnZXRzIGRvbWFpbi13aXNlIHBhcmFtczsKKyAqICBYRU5fRE9NQ1RMX1ND SEVET1BfcHV0KGdldCl2Y3B1aW5mbyByZXR1cm5zIGVycm9yOworICovCiAjZGVmaW5lIFhFTl9E T01DVExfU0NIRURPUF9wdXRpbmZvIDAKICNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGlu Zm8gMQorI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNwdWluZm8gMgorI2RlZmluZSBY RU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNwdWluZm8gMwogc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1 bGVyX29wIHsKICAgICB1aW50MzJfdCBzY2hlZF9pZDsgIC8qIFhFTl9TQ0hFRFVMRVJfKiAqLwog ICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogWEVOX0RPTUNUTF9TQ0hFRE9QXyogKi8KKyAgICAv KiBJTi9PVVQgKi8KICAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVk X2NyZWRpdCB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWlnaHQ7Ci0gICAgICAgICAgICB1aW50 MTZfdCBjYXA7Ci0gICAgICAgIH0gY3JlZGl0OwotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZF9jcmVkaXQyIHsKLSAgICAgICAgICAgIHVpbnQxNl90IHdlaWdodDsKLSAgICAgICAgfSBj cmVkaXQyOwotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKLSAgICAgICAg ICAgIHVpbnQzMl90IHBlcmlvZDsKLSAgICAgICAgICAgIHVpbnQzMl90IGJ1ZGdldDsKLSAgICAg ICAgfSBydGRzOworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdF90IGNyZWRpdDsKKyAg ICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyX3QgY3JlZGl0MjsKKyAgICAgICAgeGVuX2Rv bWN0bF9zY2hlZF9ydGRzX3QgcnRkczsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIFhF Tl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVfdCkgdmNwdXM7Cisg ICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSU46IE51bWJlciBvZiBlbGVtZW50cyBpbiB2 Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAqIE9VVDogTnVtYmVyIG9mIHByb2Nlc3NlZCBlbGVt ZW50cyBvZiB2Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdWludDMy X3QgbnJfdmNwdXM7CisgICAgICAgICAgICB1aW50MzJfdCBwYWRkaW5nOworICAgICAgICB9IHY7 CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wIHhl bl9kb21jdGxfc2NoZWR1bGVyX29wX3Q7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==