From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v2 11/11] xen: credit2: implement true SMT support Date: Fri, 15 Jul 2016 16:50:25 +0200 Message-ID: <146859422592.10217.3035174208345104624.stgit@Solace.fritz.box> References: <146859397891.10217.10155969474613302167.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bO4Ri-0006gq-D1 for xen-devel@lists.xenproject.org; Fri, 15 Jul 2016 14:50:30 +0000 Received: by mail-wm0-f65.google.com with SMTP id o80so2476931wme.0 for ; Fri, 15 Jul 2016 07:50:28 -0700 (PDT) In-Reply-To: <146859397891.10217.10155969474613302167.stgit@Solace.fritz.box> 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: Anshul Makkar , George Dunlap , Jan Beulich , David Vrabel List-Id: xen-devel@lists.xenproject.org SW4gZmFjdCwgcmlnaHQgbm93LCB3ZSByZWNvbW1lbmQga2VlcGVpbmcgcnVucXVldWVzCmFycmFu Z2VkIHBlci1jb3JlLCBzbyB0aGF0IGl0IGlzIHRoZSBpbnRlci1ydW5xdWV1ZSBsb2FkCmJhbGFu Y2luZyBjb2RlIHRoYXQgYXV0b21hdGljYWxseSBzcHJlYWRzIHRoZSB3b3JrIGluIGFuClNNVCBm cmllbmRseSB3YXkuIFRoaXMgbWVhbnMgdGhhdCBhbnkgb3RoZXIgcnVucQphcnJhbmdlbWVudCBv bmUgbWF5IHdhbnQgdG8gdXNlIGZhbGxzIHNob3J0IG9mIFNNVApzY2hlZHVsaW5nIG9wdGltaXph dGlvbnMuCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIFNNVCBhd2FyZW5lc3MgLS1zaW1pbGFyIHRv IHRoZQpvbmUgd2UgaGF2ZSBpbiBDcmVkaXQxLS0gZm9yIGFueSBwb3NzaWJsZSBydW5xCmFycmFu Z2VtZW50LiBUaGlzIHR1cm5lZCBvdXQgdG8gYmUgcHJldHR5IGVhc3kgdG8gZG8sCmFzIHRoZSBs b2dpYyBjYW4gbGl2ZSBlbnRpcmVseSBpbiBydW5xX3RpY2tsZSgpCihhbHRob3VnaCwgaW4gb3Jk ZXIgdG8gYXZvaWQgZm9yX2VhY2hfY3B1IGxvb3BzIGluCnRoYXQgZnVuY3Rpb24sIHdlIHVzZSBh IG5ldyBjcHVtYXNrIHdoaWNoIGluZGVlZCBuZWVkcwp0byBiZSB1cGRhdGVkIGluIG90aGVyIHBs YWNlcykuCgpJbiBhZGRpdGlvbiB0byBkaXNlbnRhbmdsaW5nIFNNVCBhd2FyZW5lc3MgZnJvbSBs b2FkCmJhbGFuY2luZywgdGhpcyBhbHNvIGFsbG93cyB1cyB0byBzdXBwb3J0IHRoZQpzY2hlZF9z bXRfcG93ZXJfc2F2aW5ncyBwYXJhbWV0YXIgaW4gQ3JlZGl0MiBhcyB3ZWxsLgoKU2lnbmVkLW9m Zi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+ClJldmlld2Vk LWJ5OiBBbnNodWwgTWFra2FyIDxhbnNodWwubWFra2FyQGNpdHJpeC5jb20+Ci0tLQpDYzogR2Vv cmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDYzogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4LmNv bT4KLS0tCkNoYW5nZXMgZnJvbSB2MToKICogbWFrZSBzbXRfaWRsZV9tYXNrX3NldCgpIGNvbnN0 IGNvcnJlY3QsIGFuZCB1c2UgYSBsb2NhbCB2YXJpYWJsZSBmb3IKICAgcGVyX2NwdShjcHVfc2li bGluZ19tYXNrcykgaW4gdGhlcmUsIGFzIHN1Z2dlc3RlZCBkdXJpbmcgcmV2aWV3OwogKiByZW1v dmVkIGEgc3RyYXkgWFhYLCBhcyBwb2ludGVkIG91dCBkdXJpbmcgcmV2aWV3OwogKiBmdWxsIHN0 b3AgaW4gYSBjb21tZW50LCBhcyByZXF1ZXN0ZWQgZHVyaW5nIHJldmlldy4KLS0tCiB4ZW4vY29t bW9uL3NjaGVkX2NyZWRpdDIuYyB8ICAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMTQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4v Y29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCBiMzNiYTdhLi42Y2NjNmYwIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRp dDIuYwpAQCAtMzU0LDcgKzM1NCw4IEBAIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgewog ICAgIHVuc2lnbmVkIGludCBtYXhfd2VpZ2h0OwogCiAgICAgY3B1bWFza190IGlkbGUsICAgICAg ICAvKiBDdXJyZW50bHkgaWRsZSAqLwotICAgICAgICB0aWNrbGVkOyAgICAgICAgICAgLyogQW5v dGhlciBjcHUgaW4gdGhlIHF1ZXVlIGlzIGFscmVhZHkgdGFyZ2V0ZWQgZm9yIHRoaXMgb25lICov CisgICAgICAgIHNtdF9pZGxlLCAgICAgICAgICAvKiBGdWxseSBpZGxlIGNvcmVzIChhcyBpbiBh bGwgdGhlIHNpYmxpbmdzIGFyZSBpZGxlKSAqLworICAgICAgICB0aWNrbGVkOyAgICAgICAgICAg LyogSGF2ZSBiZWVuIGFza2VkIHRvIGdvIHRocm91Z2ggc2NoZWR1bGUgKi8KICAgICBpbnQgbG9h ZDsgICAgICAgICAgICAgIC8qIEluc3RhbnRhbmVvdXMgbG9hZDogTGVuZ3RoIG9mIHF1ZXVlICAr IG51bSBub24taWRsZSB0aHJlYWRzICovCiAgICAgc190aW1lX3QgbG9hZF9sYXN0X3VwZGF0ZTsg IC8qIExhc3QgdGltZSBhdmVyYWdlIHdhcyB1cGRhdGVkICovCiAgICAgc190aW1lX3QgYXZnbG9h ZDsgICAgICAgICAgIC8qIERlY2F5aW5nIHF1ZXVlIGxvYWQgKi8KQEAgLTQxNSw2ICs0MTYsNzYg QEAgc3RydWN0IGNzY2hlZDJfZG9tIHsKIH07CiAKIC8qCisgKiBIeXBlcnRocmVhZGluZyAoU01U KSBzdXBwb3J0LgorICoKKyAqIFdlIHVzZSBhIHNwZWNpYWwgcGVyLXJ1bnEgbWFzayAoc210X2lk bGUpIGFuZCB1cGRhdGUgaXQgYWNjb3JkaW5nIHRvIHRoZQorICogZm9sbG93aW5nIGxvZ2ljOgor ICogIC0gd2hlbiBfYWxsXyB0aGUgU01UIHNpYmxpbmcgaW4gYSBjb3JlIGFyZSBpZGxlLCBhbGwg dGhlaXIgY29ycmVzcG9uZGluZworICogICAgYml0cyBhcmUgc2V0IGluIHRoZSBzbXRfaWRsZSBt YXNrOworICogIC0gd2hlbiBldmVuIF9qdXN0X29uZV8gb2YgdGhlIFNNVCBzaWJsaW5ncyBpbiBh IGNvcmUgaXMgbm90IGlkbGUsIGFsbCB0aGUKKyAqICAgIGJpdHMgY29ycmVzcG9uZGluZ3MgdG8g aXQgYW5kIHRvIGFsbCBpdHMgc2libGluZ3MgYXJlIGNsZWFyIGluIHRoZQorICogICAgc210X2lk bGUgbWFzay4KKyAqCisgKiBPbmNlIHdlIGhhdmUgc3VjaCBhIG1hc2ssIGl0IGlzIGVhc3kgdG8g aW1wbGVtZW50IGEgcG9saWN5IHRoYXQsIGVpdGhlcjoKKyAqICAtIHVzZXMgZnVsbHkgaWRsZSBj b3JlcyBmaXJzdDogaXQgaXMgZW5vdWdoIHRvIHRyeSB0byBzY2hlZHVsZSB0aGUgdmNwdXMKKyAq ICAgIG9uIHBjcHVzIGZyb20gc210X2lkbGUgbWFzayBmaXJzdC4gVGhpcyBpcyB3aGF0IGhhcHBl bnMgaWYKKyAqICAgIHNjaGVkX3NtdF9wb3dlcl9zYXZpbmdzIHdhcyBub3Qgc2V0IGF0IGJvb3Qg KGRlZmF1bHQpLCBhbmQgaXQgbWF4aW1pemVzCisgKiAgICB0cnVlIHBhcmFsbGVsaXNtLCBhbmQg aGVuY2UgcGVyZm9ybWFuY2U7CisgKiAgLSB1c2VzIGFscmVhZHkgYnVzeSBjb3JlcyBmaXJzdDog aXQgaXMgZW5vdWdoIHRvIHRyeSB0byBzY2hlZHVsZSB0aGUgdmNwdXMKKyAqICAgIG9uIHBjcHVz IHRoYXQgYXJlIGlkbGUsIGJ1dCBhcmUgbm90IGluIHNtdF9pZGxlLiBUaGlzIGlzIHdoYXQgaGFw cGVucyBpZgorICogICAgc2NoZWRfc210X3Bvd2VyX3NhdmluZ3MgaXMgc2V0IGF0IGJvb3QsIGFu ZCBpdCBhbGxvd3MgYXMgbW9yZSBjb3JlcyBhcworICogICAgcG9zc2libGUgdG8gc3RheSBpbiBs b3cgcG93ZXIgc3RhdGVzLCBtaW5pbWl6aW5nIHBvd2VyIGNvbnN1bXB0aW9uLgorICoKKyAqIFRo aXMgbG9naWMgaXMgZW50aXJlbHkgaW1wbGVtZW50ZWQgaW4gcnVucV90aWNrbGUoKSwgYW5kIHRo YXQgaXMgZW5vdWdoLgorICogSW4gZmFjdCwgaW4gdGhpcyBzY2hlZHVsZXIsIHBsYWNlbWVudCBv ZiBhIHZjcHUgb24gb25lIG9mIHRoZSBwY3B1cyBvZiBhCisgKiBydW5xLCBfYWx3YXlzXyBoYXBw ZW5zIGJ5IG1lYW5zIG9mIHRpY2tsaW5nOgorICogIC0gd2hlbiBhIHZjcHUgd2FrZXMgdXAsIGl0 IGNhbGxzIGNzY2hlZDJfdmNwdV93YWtlKCksIHdoaWNoIGNhbGxzCisgKiAgICBydW5xX3RpY2ts ZSgpOworICogIC0gd2hlbiBhIG1pZ3JhdGlvbiBpcyBpbml0aWF0ZWQgaW4gc2NoZWR1bGUuYywg d2UgY2FsbCBjc2NoZWQyX2NwdV9waWNrKCksCisgKiAgICBjc2NoZWQyX3ZjcHVfbWlncmF0ZSgp ICh3aGljaCBjYWxscyBtaWdyYXRlKCkpIGFuZCBjc2NoZWQyX3ZjcHVfd2FrZSgpLgorICogICAg Y3NjaGVkMl9jcHVfcGljaygpIGxvb2tzIGZvciB0aGUgbGVhc3QgbG9hZGVkIHJ1bnEgYW5kIHJl dHVybiBqdXN0IGFueQorICogICAgb2YgaXRzIHByb2Nlc3NvcnMuIFRoZW4sIGNzY2hlZDJfdmNw dV9taWdyYXRlKCkganVzdCBtb3ZlcyB0aGUgdmNwdSB0bworICogICAgdGhlIGNob3NlbiBydW5x LCBhbmQgaXQgaXMgYWdhaW4gcnVucV90aWNrbGUoKSwgY2FsbGVkIGJ5CisgKiAgICBjc2NoZWQy X3ZjcHVfd2FrZSgpIHRoYXQgYWN0dWFsbHkgZGVjaWRlcyB3aGF0IHBjcHUgdG8gdXNlIHdpdGhp biB0aGUKKyAqICAgIGNob3NlbiBydW5xOworICogIC0gd2hlbiBhIG1pZ3JhdGlvbiBpcyBpbml0 aWF0ZWQgaW4gc2NoZWRfY3JlZGl0Mi5jLCBieSBjYWxsaW5nICBtaWdyYXRlKCkKKyAqICAgIGRp cmVjdGx5LCB0aGF0IGFnYWluIHRlbXBvcmFyaWx5IHVzZSBhIHJhbmRvbSBwY3B1IGZyb20gdGhl IG5ldyBydW5xLAorICogICAgYW5kIHRoZW4gY2FsbHMgcnVucV90aWNrbGUoKSwgYnkgaXRzZWxm LgorICovCisKKy8qCisgKiBJZiBhbGwgdGhlIHNpYmxpbmdzIG9mIGNwdSAoaW5jbHVkaW5nIGNw dSBpdHNlbGYpIGFyZSBpbiBpZGxlcnMsCisgKiBzZXQgYWxsIHRoZWlyIGJpdHMgaW4gbWFzay4K KyAqCisgKiBJbiBvcmRlciB0byBwcm9wZXJseSB0YWtlIGludG8gYWNjb3VudCB0aWNrbGluZywg aWRsZXJzIG5lZWRzIHRvIGJlCisgKiBzZXQgcWV1YWwgdG8gc29tZXRoaW5nIGxpa2U6CisgKgor ICogIHJxZC0+aWRsZSAmICh+cnFkLT50aWNrbGVkKQorICoKKyAqIFRoaXMgaXMgYmVjYXVzZSBj cHVzIHRoYXQgaGF2ZSBiZWVuIHRpY2tsZWQgd2lsbCB2ZXJ5IGxpa2VseSBwaWNrIHVwIHNvbWUK KyAqIHdvcmsgYXMgc29vbiBhcyB0aGUgbWFuYWdlIHRvIHNjaGVkdWxlLCBhbmQgaGVuY2Ugd2Ug c2hvdWxkIHJlYWxseSBjb25zaWRlcgorICogdGhlbSBhcyBidXN5LgorICovCitzdGF0aWMgaW5s aW5lCit2b2lkIHNtdF9pZGxlX21hc2tfc2V0KHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IGNwdW1h c2tfdCAqaWRsZXJzLAorICAgICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX3QgKm1hc2spCit7 CisgICAgY29uc3QgY3B1bWFza190ICpjcHVfc2libGluZ3MgPSBwZXJfY3B1KGNwdV9zaWJsaW5n X21hc2ssIGNwdSk7CisKKyAgICBpZiAoIGNwdW1hc2tfc3Vic2V0KGNwdV9zaWJsaW5ncywgaWRs ZXJzKSApCisgICAgICAgIGNwdW1hc2tfb3IobWFzaywgbWFzaywgY3B1X3NpYmxpbmdzKTsKK30K KworLyoKKyAqIENsZWFyIHRoZSBiaXRzIG9mIGFsbCB0aGUgc2libGluZ3Mgb2YgY3B1IGZyb20g bWFzay4KKyAqLworc3RhdGljIGlubGluZQordm9pZCBzbXRfaWRsZV9tYXNrX2NsZWFyKHVuc2ln bmVkIGludCBjcHUsIGNwdW1hc2tfdCAqbWFzaykKK3sKKyAgICBjcHVtYXNrX2FuZG5vdChtYXNr LCBtYXNrLCBwZXJfY3B1KGNwdV9zaWJsaW5nX21hc2ssIGNwdSkpOworfQorCisvKgogICogV2hl biBhIGhhcmQgYWZmaW5pdHkgY2hhbmdlIG9jY3Vycywgd2UgbWF5IG5vdCBiZSBhYmxlIHRvIGNo ZWNrIHNvbWUKICAqIChhbnkhKSBvZiB0aGUgb3RoZXIgcnVucXVldWVzLCB3aGVuIGxvb2tpbmcg Zm9yIHRoZSBiZXN0IG5ldyBwcm9jZXNzb3IKICAqIGZvciBzdmMgKGFzIHRyeWxvY2stcyBpbiBj c2NoZWQyX2NwdV9waWNrKCkgY2FuIGZhaWwpLiBJZiB0aGF0IGhhcHBlbnMsIHdlCkBAIC04NTMs OSArOTI0LDMwIEBAIHJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IGNzY2hlZDJfdmNwdSAqbmV3LCBzX3RpbWVfdCBub3cpCiAgICAgfQogCiAgICAgLyoKLSAg ICAgKiBHZXQgYSBtYXNrIG9mIGlkbGUsIGJ1dCBub3QgdGlja2xlZCwgcHJvY2Vzc29ycyB0aGF0 IG5ldyBpcwotICAgICAqIGFsbG93ZWQgdG8gcnVuIG9uLiBJZiB0aGF0J3Mgbm90IGVtcHR5LCBj aG9vc2Ugc29tZW9uZSBmcm9tIHRoZXJlCi0gICAgICogKHByZWZlcnJhYmx5LCB0aGUgb25lIHdl cmUgbmV3IHdhcyBydW5uaW5nIG9uIGFscmVhZHkpLgorICAgICAqIEZpcnN0IG9mIGFsbCwgY29u c2lkZXIgaWRsZSBjcHVzLCBjaGVja2luZyBpZiB3ZSBjYW4ganVzdAorICAgICAqIHJlLXVzZSB0 aGUgcGNwdSB3aGVyZSB3ZSB3ZXJlIHJ1bm5pbmcgYmVmb3JlLgorICAgICAqCisgICAgICogSWYg dGhlcmUgYXJlIGNvcmVzIHdoZXJlIGFsbCB0aGUgc2libGluZ3MgYXJlIGlkbGUsIGNvbnNpZGVy CisgICAgICogdGhlbSBmaXJzdCwgaG9ub3Jpbmcgd2hhdGV2ZXIgdGhlIHNwcmVhZGluZy12cy1j b25zb2xpZGF0aW9uCisgICAgICogU01UIHBvbGljeSB3YW50cyB1cyB0byBkby4KKyAgICAgKi8K KyAgICBpZiAoIHVubGlrZWx5KHNjaGVkX3NtdF9wb3dlcl9zYXZpbmdzKSApCisgICAgICAgIGNw dW1hc2tfYW5kbm90KCZtYXNrLCAmcnFkLT5pZGxlLCAmcnFkLT5zbXRfaWRsZSk7CisgICAgZWxz ZQorICAgICAgICBjcHVtYXNrX2NvcHkoJm1hc2ssICZycWQtPnNtdF9pZGxlKTsKKyAgICBjcHVt YXNrX2FuZCgmbWFzaywgJm1hc2ssIG5ldy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAg IGkgPSBjcHVtYXNrX3Rlc3Rfb3JfY3ljbGUoY3B1LCAmbWFzayk7CisgICAgaWYgKCBpIDwgbnJf Y3B1X2lkcyApCisgICAgeworICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfaWRsZV9j cHUpOworICAgICAgICBpcGlkID0gaTsKKyAgICAgICAgZ290byB0aWNrbGU7CisgICAgfQorCisg ICAgLyoKKyAgICAgKiBJZiB0aGVyZSBhcmUgbm8gZnVsbHkgaWRsZSBjb3JlcywgY2hlY2sgYWxs IGlkbGVycywgYWZ0ZXIKKyAgICAgKiBoYXZpbmcgZmlsdGVyZWQgb3V0IHBjcHVzIHRoYXQgaGF2 ZSBiZWVuIHRpY2tsZWQgYnV0IGhhdmVuJ3QKKyAgICAgKiBnb25lIHRocm91Z2ggdGhlIHNjaGVk dWxlciB5ZXQuCiAgICAgICovCiAgICAgY3B1bWFza19hbmRub3QoJm1hc2ssICZycWQtPmlkbGUs ICZycWQtPnRpY2tsZWQpOwogICAgIGNwdW1hc2tfYW5kKCZtYXNrLCAmbWFzaywgbmV3LT52Y3B1 LT5jcHVfaGFyZF9hZmZpbml0eSk7CkBAIC05NDcsNiArMTAzOSw3IEBAIHJ1bnFfdGlja2xlKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdmNwdSAqbmV3LCBzX3Rp bWVfdCBub3cpCiAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopJmQpOwogICAg IH0KICAgICBfX2NwdW1hc2tfc2V0X2NwdShpcGlkLCAmcnFkLT50aWNrbGVkKTsKKyAgICBzbXRf aWRsZV9tYXNrX2NsZWFyKGlwaWQsICZycWQtPnNtdF9pZGxlKTsKICAgICBjcHVfcmFpc2Vfc29m dGlycShpcGlkLCBTQ0hFRFVMRV9TT0ZUSVJRKTsKIH0KIApAQCAtMTQ0Miw4ICsxNTM1LDEwIEBA IGNzY2hlZDJfY3B1X3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNw dSAqdmMpCiAgICAgICAgIHJldHVybiBnZXRfZmFsbGJhY2tfY3B1KHN2Yyk7CiAgICAgfQogCi0g ICAgLyogRmlyc3QgY2hlY2sgdG8gc2VlIGlmIHdlJ3JlIGhlcmUgYmVjYXVzZSBzb21lb25lIGVs c2Ugc3VnZ2VzdGVkIGEgcGxhY2UKLSAgICAgKiBmb3IgdXMgdG8gbW92ZS4gKi8KKyAgICAvKgor ICAgICAqIEZpcnN0IGNoZWNrIHRvIHNlZSBpZiB3ZSdyZSBoZXJlIGJlY2F1c2Ugc29tZW9uZSBl bHNlIHN1Z2dlc3RlZCBhIHBsYWNlCisgICAgICogZm9yIHVzIHRvIG1vdmUuCisgICAgICovCiAg ICAgaWYgKCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChfX0NTRkxBR19ydW5xX21pZ3JhdGVfcmVxdWVz dCwgJnN2Yy0+ZmxhZ3MpICkKICAgICB7CiAgICAgICAgIGlmICggdW5saWtlbHkoc3ZjLT5taWdy YXRlX3JxZC0+aWQgPCAwKSApCkBAIC0xNDY0LDcgKzE1NTksNyBAQCBjc2NoZWQyX2NwdV9waWNr KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogCiAgICAgbWlu X2F2Z2xvYWQgPSBNQVhfTE9BRDsKIAotICAgIC8qIEZpbmQgdGhlIHJ1bnF1ZXVlIHdpdGggdGhl IGxvd2VzdCBpbnN0YW50YW5lb3VzIGxvYWQgKi8KKyAgICAvKiBGaW5kIHRoZSBydW5xdWV1ZSB3 aXRoIHRoZSBsb3dlc3QgYXZlcmFnZSBsb2FkLiAqLwogICAgIGZvcl9lYWNoX2NwdShpLCAmcHJ2 LT5hY3RpdmVfcXVldWVzKQogICAgIHsKICAgICAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVf ZGF0YSAqcnFkOwpAQCAtMTUwNywxNiArMTYwMiwxNyBAQCBjc2NoZWQyX2NwdV9waWNrKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogCiAgICAgLyogV2UgZGlk bid0IGZpbmQgYW55b25lIChtb3N0IGxpa2VseSBiZWNhdXNlIG9mIHNwaW5sb2NrIGNvbnRlbnRp b24pLiAqLwogICAgIGlmICggbWluX3JxaSA9PSAtMSApCi0gICAgICAgIG5ld19jcHUgPSBnZXRf ZmFsbGJhY2tfY3B1KHN2Yyk7Ci0gICAgZWxzZQogICAgIHsKLSAgICAgICAgY3B1bWFza19hbmQo Y3B1bWFza19zY3JhdGNoLCB2Yy0+Y3B1X2hhcmRfYWZmaW5pdHksCi0gICAgICAgICAgICAgICAg ICAgICZwcnYtPnJxZFttaW5fcnFpXS5hY3RpdmUpOwotICAgICAgICBuZXdfY3B1ID0gY3B1bWFz a19hbnkoY3B1bWFza19zY3JhdGNoKTsKLSAgICAgICAgQlVHX09OKG5ld19jcHUgPj0gbnJfY3B1 X2lkcyk7CisgICAgICAgIG5ld19jcHUgPSBnZXRfZmFsbGJhY2tfY3B1KHN2Yyk7CisgICAgICAg IGdvdG8gb3V0X3VwOwogICAgIH0KIAotb3V0X3VwOgorICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tf c2NyYXRjaCwgdmMtPmNwdV9oYXJkX2FmZmluaXR5LAorICAgICAgICAgICAgICAgICZwcnYtPnJx ZFttaW5fcnFpXS5hY3RpdmUpOworICAgIG5ld19jcHUgPSBjcHVtYXNrX2FueShjcHVtYXNrX3Nj cmF0Y2gpOworICAgIEJVR19PTihuZXdfY3B1ID49IG5yX2NwdV9pZHMpOworCisgb3V0X3VwOgog ICAgIHJlYWRfdW5sb2NrKCZwcnYtPmxvY2spOwogCiAgICAgaWYgKCB1bmxpa2VseSh0Yl9pbml0 X2RvbmUpICkKQEAgLTIxNDAsNyArMjIzNiwxMSBAQCBjc2NoZWQyX3NjaGVkdWxlKAogCiAgICAg LyogQ2xlYXIgInRpY2tsZWQiIGJpdCBub3cgdGhhdCB3ZSd2ZSBiZWVuIHNjaGVkdWxlZCAqLwog ICAgIGlmICggY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQtPnRpY2tsZWQpICkKKyAgICB7CiAg ICAgICAgIF9fY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT50aWNrbGVkKTsKKyAgICAgICAg Y3B1bWFza19hbmRub3QoY3B1bWFza19zY3JhdGNoLCAmcnFkLT5pZGxlLCAmcnFkLT50aWNrbGVk KTsKKyAgICAgICAgc210X2lkbGVfbWFza19zZXQoY3B1LCBjcHVtYXNrX3NjcmF0Y2gsICZycWQt PnNtdF9pZGxlKTsKKyAgICB9CiAKICAgICAvKiBVcGRhdGUgY3JlZGl0cyAqLwogICAgIGJ1cm5f Y3JlZGl0cyhycWQsIHNjdXJyLCBub3cpOwpAQCAtMjIwMiw3ICsyMzAyLDEwIEBAIGNzY2hlZDJf c2NoZWR1bGUoCiAKICAgICAgICAgLyogQ2xlYXIgdGhlIGlkbGUgbWFzayBpZiBuZWNlc3Nhcnkg Ki8KICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgJnJxZC0+aWRsZSkgKQorICAg ICAgICB7CiAgICAgICAgICAgICBfX2NwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJnJxZC0+aWRsZSk7 CisgICAgICAgICAgICBzbXRfaWRsZV9tYXNrX2NsZWFyKGNwdSwgJnJxZC0+c210X2lkbGUpOwor ICAgICAgICB9CiAKICAgICAgICAgc25leHQtPnN0YXJ0X3RpbWUgPSBub3c7CiAKQEAgLTIyMjQs MTAgKzIzMjcsMTcgQEAgY3NjaGVkMl9zY2hlZHVsZSgKICAgICAgICAgaWYgKCB0YXNrbGV0X3dv cmtfc2NoZWR1bGVkICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3Rf Y3B1KGNwdSwgJnJxZC0+aWRsZSkgKQorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIF9f Y3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKKyAgICAgICAgICAgICAgICBzbXRf aWRsZV9tYXNrX2NsZWFyKGNwdSwgJnJxZC0+c210X2lkbGUpOworICAgICAgICAgICAgfQogICAg ICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCAhY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQtPmlk bGUpICkKKyAgICAgICAgewogICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCAmcnFk LT5pZGxlKTsKKyAgICAgICAgICAgIGNwdW1hc2tfYW5kbm90KGNwdW1hc2tfc2NyYXRjaCwgJnJx ZC0+aWRsZSwgJnJxZC0+dGlja2xlZCk7CisgICAgICAgICAgICBzbXRfaWRsZV9tYXNrX3NldChj cHUsIGNwdW1hc2tfc2NyYXRjaCwgJnJxZC0+c210X2lkbGUpOworICAgICAgICB9CiAgICAgICAg IC8qIE1ha2Ugc3VyZSBhdmdsb2FkIGdldHMgdXBkYXRlZCBwZXJpb2RpY2FsbHkgZXZlbgogICAg ICAgICAgKiBpZiB0aGVyZSdzIG5vIGFjdGl2aXR5ICovCiAgICAgICAgIHVwZGF0ZV9sb2FkKG9w cywgcnFkLCBOVUxMLCAwLCBub3cpOwpAQCAtMjM1Nyw2ICsyNDY3LDggQEAgY3NjaGVkMl9kdW1w KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICAgICAgcHJpbnRrKCJcdGlkbGVyczog JXNcbiIsIGNwdXN0cik7CiAgICAgICAgIGNwdW1hc2tfc2NucHJpbnRmKGNwdXN0ciwgc2l6ZW9m KGNwdXN0ciksICZwcnYtPnJxZFtpXS50aWNrbGVkKTsKICAgICAgICAgcHJpbnRrKCJcdHRpY2ts ZWQ6ICVzXG4iLCBjcHVzdHIpOworICAgICAgICBjcHVtYXNrX3NjbnByaW50ZihjcHVzdHIsIHNp emVvZihjcHVzdHIpLCAmcHJ2LT5ycWRbaV0uc210X2lkbGUpOworICAgICAgICBwcmludGsoIlx0 ZnVsbHkgaWRsZSBjb3JlczogJXNcbiIsIGNwdXN0cik7CiAgICAgfQogCiAgICAgcHJpbnRrKCJE b21haW4gaW5mbzpcbiIpOwpAQCAtMjUxMCw2ICsyNjIyLDcgQEAgaW5pdF9wZGF0YShzdHJ1Y3Qg Y3NjaGVkMl9wcml2YXRlICpwcnYsIHVuc2lnbmVkIGludCBjcHUpCiAgICAgX19jcHVtYXNrX3Nl dF9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKICAgICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZycWQt PmFjdGl2ZSk7CiAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCAmcHJ2LT5pbml0aWFsaXplZCk7 CisgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCAmcnFkLT5zbXRfaWRsZSk7CiAKICAgICByZXR1 cm4gcnFpOwogfQpAQCAtMjYxNSw2ICsyNzI4LDcgQEAgY3NjaGVkMl9kZWluaXRfcGRhdGEoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQogICAgIHByaW50 ayhYRU5MT0dfSU5GTyAiUmVtb3ZpbmcgY3B1ICVkIGZyb20gcnVucXVldWUgJWRcbiIsIGNwdSwg cnFpKTsKIAogICAgIF9fY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKKyAgICBf X2NwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJnJxZC0+c210X2lkbGUpOwogICAgIF9fY3B1bWFza19j bGVhcl9jcHUoY3B1LCAmcnFkLT5hY3RpdmUpOwogCiAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KCZy cWQtPmFjdGl2ZSkgKQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=