From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 16/16] xen: sched: implement vcpu hard affinity in Credit2 Date: Fri, 18 Mar 2016 20:06:12 +0100 Message-ID: <20160318190612.8117.79354.stgit@Solace.station> References: <20160318185524.8117.74837.stgit@Solace.station> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agzj1-00014p-B6 for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 19:06:19 +0000 Received: by mail-wm0-f68.google.com with SMTP id x188so8154048wmg.0 for ; Fri, 18 Mar 2016 12:06:18 -0700 (PDT) In-Reply-To: <20160318185524.8117.74837.stgit@Solace.station> 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: George Dunlap , Justin Weaver List-Id: xen-devel@lists.xenproject.org RnJvbTogSnVzdGluIFdlYXZlciA8anR3ZWF2ZXJAaGF3YWlpLmVkdT4KCmFzIGl0IHdhcyBzdGls bCBtaXNzaW5nLgoKTm90ZSB0aGF0IHRoaXMgcGF0Y2ggIm9ubHkiIGltcGxlbWVudHMgaGFyZCBh ZmZpbml0eSwKaS5lLiwgdGhlIHBvc3NpYmlsaXR5IG9mIHNwZWNpZnlpbmcgb24gd2hhdCBwQ1BV cyBhCmNlcnRhaW4gdkNQVSBjYW4gcnVuLiBTb2Z0IGFmZmluaXR5ICh3aGljaCBleHByZXNzIGEK cHJlZmVyZW5jZSBmb3IgdkNQVXMgdG8gcnVuIG9uIGNlcnRhaW4gcENQVXMpIGlzIHN0aWxsCm5v dCBzdXBwb3J0ZWQgYnkgQ3JlZGl0MiwgZXZlbiBhZnRlciB0aGlzIHBhdGNoLgoKU2lnbmVkLW9m Zi1ieTogSnVzdGluIFdlYXZlciA8anR3ZWF2ZXJAaGF3YWlpLmVkdT4KU2lnbmVkLW9mZi1ieTog RGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+Ci0tLQpDYzogR2Vvcmdl IER1bmxhcCA8ZHVubGFwZ0B1bWljaC5lZHU+Ci0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMgfCAgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQyLmMKaW5kZXggYTY1MDIxNi4uMzE5MGViMyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hl ZF9jcmVkaXQyLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTMyNyw2ICsz MjcsMzYgQEAgc3RydWN0IGNzY2hlZDJfZG9tIHsKICAgICB1aW50MTZfdCBucl92Y3B1czsKIH07 CiAKKy8qCisgKiBXaGVuIGEgaGFyZCBhZmZpbml0eSBjaGFuZ2Ugb2NjdXJzLCB3ZSBtYXkgbm90 IGJlIGFibGUgdG8gY2hlY2sgc29tZQorICogKGFueSEpIG9mIHRoZSBvdGhlciBydW5xdWV1ZXMs IHdoZW4gbG9va2luZyBmb3IgdGhlIGJlc3QgbmV3IHByb2Nlc3NvcgorICogZm9yIHN2YyAoYXMg dHJ5bG9jay1zIGluIGNob29zZV9jcHUoKSBjYW4gZmFpbCkuIElmIHRoYXQgaGFwcGVucywgd2UK KyAqIHBpY2ssIGluIG9yZGVyIG9mIGRlY3JlYXNpbmcgcHJlZmVyZW5jZToKKyAqICAtIHN2Yydz IGN1cnJlbnQgcGNwdTsKKyAqICAtIGFub3RoZXIgcGNwdSBmcm9tIHN2YydzIGN1cnJlbnQgcnVu cTsKKyAqICAtIGFueSBjcHUuCisgKi8KK3N0YXRpYyBpbnQgZ2V0X2ZhbGxiYWNrX2NwdShzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCit7CisgICAgaW50IGNwdTsKKworICAgIGlmICggbGlrZWx5 KGNwdW1hc2tfdGVzdF9jcHUoc3ZjLT52Y3B1LT5wcm9jZXNzb3IsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdmMtPnZjcHUtPmNwdV9oYXJkX2FmZmluaXR5KSkgKQorICAgICAg ICByZXR1cm4gc3ZjLT52Y3B1LT5wcm9jZXNzb3I7CisKKyAgICBjcHVtYXNrX2FuZChjcHVtYXNr X3NjcmF0Y2gsIHN2Yy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAg JnN2Yy0+cnFkLT5hY3RpdmUpOworICAgIGNwdSA9IGNwdW1hc2tfZmlyc3QoY3B1bWFza19zY3Jh dGNoKTsKKyAgICBpZiAoIGxpa2VseShjcHUgPCBucl9jcHVfaWRzKSApCisgICAgICAgIHJldHVy biBjcHU7CisKKyAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2gsIHN2Yy0+dmNwdS0+Y3B1 X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayhz dmMtPnZjcHUtPmRvbWFpbikpOworCisgICAgQVNTRVJUKCFjcHVtYXNrX2VtcHR5KGNwdW1hc2tf c2NyYXRjaCkpOworCisgICAgcmV0dXJuIGNwdW1hc2tfZmlyc3QoY3B1bWFza19zY3JhdGNoKTsK K30KIAogLyoKICAqIFRpbWUtdG8tY3JlZGl0LCBjcmVkaXQtdG8tdGltZS4KQEAgLTU2MCw4ICs1 OTAsOSBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHVuc2lnbmVk IGludCBjcHUsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKgogICAgICAgICBnb3RvIHRpY2tsZTsKICAg ICB9CiAgICAgCi0gICAgLyogR2V0IGEgbWFzayBvZiBpZGxlLCBidXQgbm90IHRpY2tsZWQgKi8K KyAgICAvKiBHZXQgYSBtYXNrIG9mIGlkbGUsIGJ1dCBub3QgdGlja2xlZCwgdGhhdCBuZXcgaXMg YWxsb3dlZCB0byBydW4gb24uICovCiAgICAgY3B1bWFza19hbmRub3QoJm1hc2ssICZycWQtPmlk bGUsICZycWQtPnRpY2tsZWQpOworICAgIGNwdW1hc2tfYW5kKCZtYXNrLCAmbWFzaywgbmV3LT52 Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgCiAgICAgLyogSWYgaXQncyBub3QgZW1wdHks IGNob29zZSBvbmUgKi8KICAgICBpID0gY3B1bWFza19jeWNsZShjcHUsICZtYXNrKTsKQEAgLTU3 Miw5ICs2MDMsMTEgQEAgcnVucV90aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB1 bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICoKICAgICB9CiAKICAgICAvKiBP dGhlcndpc2UsIGxvb2sgZm9yIHRoZSBub24taWRsZSBjcHUgd2l0aCB0aGUgbG93ZXN0IGNyZWRp dCwKLSAgICAgKiBza2lwcGluZyBjcHVzIHdoaWNoIGhhdmUgYmVlbiB0aWNrbGVkIGJ1dCBub3Qg c2NoZWR1bGVkIHlldCAqLworICAgICAqIHNraXBwaW5nIGNwdXMgd2hpY2ggaGF2ZSBiZWVuIHRp Y2tsZWQgYnV0IG5vdCBzY2hlZHVsZWQgeWV0LAorICAgICAqIHRoYXQgbmV3IGlzIGFsbG93ZWQg dG8gcnVuIG9uLiAqLwogICAgIGNwdW1hc2tfYW5kbm90KCZtYXNrLCAmcnFkLT5hY3RpdmUsICZy cWQtPmlkbGUpOwogICAgIGNwdW1hc2tfYW5kbm90KCZtYXNrLCAmbWFzaywgJnJxZC0+dGlja2xl ZCk7CisgICAgY3B1bWFza19hbmQoJm1hc2ssICZtYXNrLCBuZXctPnZjcHUtPmNwdV9oYXJkX2Fm ZmluaXR5KTsKIAogICAgIGZvcl9lYWNoX2NwdShpLCAmbWFzaykKICAgICB7CkBAIC0xMTI0LDkg KzExNTcsOCBAQCBjaG9vc2VfY3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHZjcHUgKnZjKQogICAgICAgICAgICAgZDJwcmludGsoIiVwdiAtXG4iLCBzdmMtPnZjcHUpOwog ICAgICAgICAgICAgY2xlYXJfYml0KF9fQ1NGTEFHX3J1bnFfbWlncmF0ZV9yZXF1ZXN0LCAmc3Zj LT5mbGFncyk7CiAgICAgICAgIH0KLSAgICAgICAgLyogTGVhdmUgaXQgd2hlcmUgaXQgaXMgZm9y IG5vdy4gIFdoZW4gd2UgYWN0dWFsbHkgcGF5IGF0dGVudGlvbgotICAgICAgICAgKiB0byBhZmZp bml0eSB3ZSdsbCBoYXZlIHRvIGZpZ3VyZSBzb21ldGhpbmcgb3V0Li4uICovCi0gICAgICAgIHJl dHVybiB2Yy0+cHJvY2Vzc29yOworCisgICAgICAgIHJldHVybiBnZXRfZmFsbGJhY2tfY3B1KHN2 Yyk7CiAgICAgfQogCiAgICAgLyogRmlyc3QgY2hlY2sgdG8gc2VlIGlmIHdlJ3JlIGhlcmUgYmVj YXVzZSBzb21lb25lIGVsc2Ugc3VnZ2VzdGVkIGEgcGxhY2UKQEAgLTExMzcsNDUgKzExNjksNTYg QEAgY2hvb3NlX2NwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2 YykKICAgICAgICAgewogICAgICAgICAgICAgcHJpbnRrKCIlczogUnVucXVldWUgbWlncmF0ZSBh Ym9ydGVkIGJlY2F1c2UgdGFyZ2V0IHJ1bnF1ZXVlIGRpc2FwcGVhcmVkIVxuIiwKICAgICAgICAg ICAgICAgICAgICBfX2Z1bmNfXyk7Ci0gICAgICAgICAgICAvKiBGYWxsLXRocm91Z2ggdG8gbm9y bWFsIGNwdSBwaWNrICovCiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAg ICAgICAgICBkMnByaW50aygiJXB2ICtcbiIsIHN2Yy0+dmNwdSk7Ci0gICAgICAgICAgICBuZXdf Y3B1ID0gY3B1bWFza19jeWNsZSh2Yy0+cHJvY2Vzc29yLCAmc3ZjLT5taWdyYXRlX3JxZC0+YWN0 aXZlKTsKLSAgICAgICAgICAgIGdvdG8gb3V0X3VwOworICAgICAgICAgICAgY3B1bWFza19hbmQo Y3B1bWFza19zY3JhdGNoLCB2Yy0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAg ICAgICAgICAmc3ZjLT5taWdyYXRlX3JxZC0+YWN0aXZlKTsKKyAgICAgICAgICAgIG5ld19jcHUg PSBjcHVtYXNrX2FueShjcHVtYXNrX3NjcmF0Y2gpOworICAgICAgICAgICAgaWYgKCBuZXdfY3B1 IDwgbnJfY3B1X2lkcyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZDJwcmludGso IiVwdiArXG4iLCBzdmMtPnZjcHUpOworICAgICAgICAgICAgICAgIGdvdG8gb3V0X3VwOworICAg ICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIC8qIEZhbGwtdGhyb3VnaCB0byBub3JtYWwg Y3B1IHBpY2sgKi8KICAgICB9CiAKLSAgICAvKiBGSVhNRTogUGF5IGF0dGVudGlvbiB0byBjcHUg YWZmaW5pdHkgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotCiAgICAgbWluX2F2Z2xv YWQgPSBNQVhfTE9BRDsKIAogICAgIC8qIEZpbmQgdGhlIHJ1bnF1ZXVlIHdpdGggdGhlIGxvd2Vz dCBpbnN0YW50YW5lb3VzIGxvYWQgKi8KICAgICBmb3JfZWFjaF9jcHUoaSwgJnBydi0+YWN0aXZl X3F1ZXVlcykKICAgICB7CiAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJx ZDsKLSAgICAgICAgc190aW1lX3QgcnFkX2F2Z2xvYWQ7CisgICAgICAgIHNfdGltZV90IHJxZF9h dmdsb2FkID0gTUFYX0xPQUQ7CiAKICAgICAgICAgcnFkID0gcHJ2LT5ycWQgKyBpOwogCi0gICAg ICAgIC8qIElmIGNoZWNraW5nIGEgZGlmZmVyZW50IHJ1bnF1ZXVlLCBncmFiIHRoZSBsb2NrLAot ICAgICAgICAgKiByZWFkIHRoZSBhdmcsIGFuZCB0aGVuIHJlbGVhc2UgdGhlIGxvY2suCisgICAg ICAgIC8qCisgICAgICAgICAqIElmIGNoZWNraW5nIGEgZGlmZmVyZW50IHJ1bnF1ZXVlLCBncmFi IHRoZSBsb2NrLCBjaGVjayBoYXJkCisgICAgICAgICAqIGFmZmluaXR5LCByZWFkIHRoZSBhdmcs IGFuZCB0aGVuIHJlbGVhc2UgdGhlIGxvY2suCiAgICAgICAgICAqCiAgICAgICAgICAqIElmIG9u IG91ciBvd24gcnVucXVldWUsIGRvbid0IGdyYWIgb3IgcmVsZWFzZSB0aGUgbG9jazsKICAgICAg ICAgICogYnV0IHN1YnRyYWN0IG91ciBvd24gbG9hZCBmcm9tIHRoZSBydW5xdWV1ZSBsb2FkIHRv IHNpbXVsYXRlCi0gICAgICAgICAqIGltcGFydGlhbGl0eSAqLworICAgICAgICAgKiBpbXBhcnRp YWxpdHkuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGUgdGhhdCwgaWYgc3ZjJ3MgaGFyZCBh ZmZpbml0eSBoYXMgY2hhbmdlZCwgdGhpcyBpcyB0aGUKKyAgICAgICAgICogZmlyc3QgdGltZSB3 aGVuIHdlIHNlZSBzdWNoIGNoYW5nZSwgc28gaXQgaXMgaW5kZWVkIHBvc3NpYmxlCisgICAgICAg ICAqIHRoYXQgbm9uZSBvZiB0aGUgY3B1cyBpbiBzdmMncyBjdXJyZW50IHJ1bnF1ZXVlIGlzIGlu IG91cgorICAgICAgICAgKiAobmV3KSBoYXJkIGFmZmluaXR5IQorICAgICAgICAgKi8KICAgICAg ICAgaWYgKCBycWQgPT0gc3ZjLT5ycWQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBycWRfYXZn bG9hZCA9IHJxZC0+Yl9hdmdsb2FkIC0gc3ZjLT5hdmdsb2FkOworICAgICAgICAgICAgaWYgKCBj cHVtYXNrX2ludGVyc2VjdHModmMtPmNwdV9oYXJkX2FmZmluaXR5LCAmcnFkLT5hY3RpdmUpICkK KyAgICAgICAgICAgICAgICBycWRfYXZnbG9hZCA9IHJxZC0+Yl9hdmdsb2FkIC0gc3ZjLT5hdmds b2FkOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCBzcGluX3RyeWxvY2soJnJxZC0+bG9j aykgKQogICAgICAgICB7Ci0gICAgICAgICAgICBycWRfYXZnbG9hZCA9IHJxZC0+Yl9hdmdsb2Fk OworICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2ludGVyc2VjdHModmMtPmNwdV9oYXJkX2FmZmlu aXR5LCAmcnFkLT5hY3RpdmUpICkKKyAgICAgICAgICAgICAgICBycWRfYXZnbG9hZCA9IHJxZC0+ Yl9hdmdsb2FkOworCiAgICAgICAgICAgICBzcGluX3VubG9jaygmcnFkLT5sb2NrKTsKICAgICAg ICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAo IHJxZF9hdmdsb2FkIDwgbWluX2F2Z2xvYWQgKQogICAgICAgICB7CkBAIC0xMTg0LDEyICsxMjI3 LDE0IEBAIGNob29zZV9jcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNw dSAqdmMpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiBXZSBkaWRuJ3QgZmluZCBhbnlvbmUg KG1vc3QgbGlrZWx5IGJlY2F1c2Ugb2Ygc3BpbmxvY2sgY29udGVudGlvbik7IGxlYXZlIGl0IHdo ZXJlIGl0IGlzICovCisgICAgLyogV2UgZGlkbid0IGZpbmQgYW55b25lIChtb3N0IGxpa2VseSBi ZWNhdXNlIG9mIHNwaW5sb2NrIGNvbnRlbnRpb24pLiAqLwogICAgIGlmICggbWluX3JxaSA9PSAt MSApCi0gICAgICAgIG5ld19jcHUgPSB2Yy0+cHJvY2Vzc29yOworICAgICAgICBuZXdfY3B1ID0g Z2V0X2ZhbGxiYWNrX2NwdShzdmMpOwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIG5ld19jcHUg PSBjcHVtYXNrX2N5Y2xlKHZjLT5wcm9jZXNzb3IsICZwcnYtPnJxZFttaW5fcnFpXS5hY3RpdmUp OworICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2gsIHZjLT5jcHVfaGFyZF9hZmZp bml0eSwKKyAgICAgICAgICAgICAgICAgICAgJnBydi0+cnFkW21pbl9ycWldLmFjdGl2ZSk7Cisg ICAgICAgIG5ld19jcHUgPSBjcHVtYXNrX2FueShjcHVtYXNrX3NjcmF0Y2gpOwogICAgICAgICBC VUdfT04obmV3X2NwdSA+PSBucl9jcHVfaWRzKTsKICAgICB9CiAKQEAgLTEyNjksNyArMTMxNCwx MiBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICAg ICAgICAgICAgIG9uX3J1bnE9MTsKICAgICAgICAgfQogICAgICAgICBfX3J1bnFfZGVhc3NpZ24o c3ZjKTsKLSAgICAgICAgc3ZjLT52Y3B1LT5wcm9jZXNzb3IgPSBjcHVtYXNrX2FueSgmdHJxZC0+ YWN0aXZlKTsKKworICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2gsIHN2Yy0+dmNw dS0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAgICAgICZ0cnFkLT5hY3RpdmUp OworICAgICAgICBzdmMtPnZjcHUtPnByb2Nlc3NvciA9IGNwdW1hc2tfYW55KGNwdW1hc2tfc2Ny YXRjaCk7CisgICAgICAgIEJVR19PTihzdmMtPnZjcHUtPnByb2Nlc3NvciA+PSBucl9jcHVfaWRz KTsKKwogICAgICAgICBfX3J1bnFfYXNzaWduKHN2YywgdHJxZCk7CiAgICAgICAgIGlmICggb25f cnVucSApCiAgICAgICAgIHsKQEAgLTEyODMsNiArMTMzMywxNyBAQCBzdGF0aWMgdm9pZCBtaWdy YXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICAgICB9CiB9CiAKKy8qCisgKiBJdCBt YWtlcyBzZW5zZSBjb25zaWRlcmluZyBtaWdyYXRpbmcgc3ZjIHRvIHJxZCwgaWY6CisgKiAgLSBz dmMgaXMgbm90IGFscmVhZHkgZmxhZ2dlZCB0byBtaWdyYXRlLAorICogIC0gaWYgc3ZjIGlzIGFs bG93ZWQgdG8gcnVuIG9uIGF0IGxlYXN0IG9uZSBvZiB0aGUgcGNwdXMgb2YgcnFkLgorICovCitz dGF0aWMgYm9vbF90IHZjcHVfaXNfbWlncmF0ZWFibGUoc3RydWN0IGNzY2hlZDJfdmNwdSAqc3Zj LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1 ZXVlX2RhdGEgKnJxZCkKK3sKKyAgICByZXR1cm4gIShzdmMtPmZsYWdzICYgQ1NGTEFHX3J1bnFf bWlncmF0ZV9yZXF1ZXN0KSAmJgorICAgICAgICAgICBjcHVtYXNrX2ludGVyc2VjdHMoc3ZjLT52 Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSwgJnJxZC0+YWN0aXZlKTsKK30KIAogc3RhdGljIHZvaWQg YmFsYW5jZV9sb2FkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSwgc190aW1l X3Qgbm93KQogewpAQCAtMTM5MSw4ICsxNDUyLDcgQEAgcmV0cnk6CiAKICAgICAgICAgX191cGRh dGVfc3ZjX2xvYWQob3BzLCBwdXNoX3N2YywgMCwgbm93KTsKIAotICAgICAgICAvKiBTa2lwIHRo aXMgb25lIGlmIGl0J3MgYWxyZWFkeSBiZWVuIGZsYWdnZWQgdG8gbWlncmF0ZSAqLwotICAgICAg ICBpZiAoIHB1c2hfc3ZjLT5mbGFncyAmIENTRkxBR19ydW5xX21pZ3JhdGVfcmVxdWVzdCApCisg ICAgICAgIGlmICggIXZjcHVfaXNfbWlncmF0ZWFibGUocHVzaF9zdmMsIHN0Lm9ycWQpICkKICAg ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGxpc3RfZm9yX2VhY2goIHB1bGxfaXRlciwg JnN0Lm9ycWQtPnN2YyApCkBAIC0xNDA0LDggKzE0NjQsNyBAQCByZXRyeToKICAgICAgICAgICAg ICAgICBfX3VwZGF0ZV9zdmNfbG9hZChvcHMsIHB1bGxfc3ZjLCAwLCBub3cpOwogICAgICAgICAg ICAgfQogICAgICAgICAKLSAgICAgICAgICAgIC8qIFNraXAgdGhpcyBvbmUgaWYgaXQncyBhbHJl YWR5IGJlZW4gZmxhZ2dlZCB0byBtaWdyYXRlICovCi0gICAgICAgICAgICBpZiAoIHB1bGxfc3Zj LT5mbGFncyAmIENTRkxBR19ydW5xX21pZ3JhdGVfcmVxdWVzdCApCisgICAgICAgICAgICBpZiAo ICF2Y3B1X2lzX21pZ3JhdGVhYmxlKHB1bGxfc3ZjLCBzdC5scnFkKSApCiAgICAgICAgICAgICAg ICAgY29udGludWU7CiAKICAgICAgICAgICAgIGNvbnNpZGVyKCZzdCwgcHVzaF9zdmMsIHB1bGxf c3ZjKTsKQEAgLTE0MjEsOCArMTQ4MCw3IEBAIHJldHJ5OgogICAgIHsKICAgICAgICAgc3RydWN0 IGNzY2hlZDJfdmNwdSAqIHB1bGxfc3ZjID0gbGlzdF9lbnRyeShwdWxsX2l0ZXIsIHN0cnVjdCBj c2NoZWQyX3ZjcHUsIHJxZF9lbGVtKTsKICAgICAgICAgCi0gICAgICAgIC8qIFNraXAgdGhpcyBv bmUgaWYgaXQncyBhbHJlYWR5IGJlZW4gZmxhZ2dlZCB0byBtaWdyYXRlICovCi0gICAgICAgIGlm ICggcHVsbF9zdmMtPmZsYWdzICYgQ1NGTEFHX3J1bnFfbWlncmF0ZV9yZXF1ZXN0ICkKKyAgICAg ICAgaWYgKCAhdmNwdV9pc19taWdyYXRlYWJsZShwdWxsX3N2Yywgc3QubHJxZCkgKQogICAgICAg ICAgICAgY29udGludWU7CiAKICAgICAgICAgLyogQ29uc2lkZXIgcHVsbCBvbmx5ICovCkBAIC0x NDYxLDExICsxNTE5LDIyIEBAIGNzY2hlZDJfdmNwdV9taWdyYXRlKAogCiAgICAgLyogQ2hlY2sg aWYgbmV3X2NwdSBpcyB2YWxpZCAqLwogICAgIEJVR19PTighY3B1bWFza190ZXN0X2NwdShuZXdf Y3B1LCAmQ1NDSEVEMl9QUklWKG9wcyktPmluaXRpYWxpemVkKSk7CisgICAgQVNTRVJUKGNwdW1h c2tfdGVzdF9jcHUobmV3X2NwdSwgdmMtPmNwdV9oYXJkX2FmZmluaXR5KSk7CiAKICAgICB0cnFk ID0gUlFEKG9wcywgbmV3X2NwdSk7CiAKKyAgICAvKgorICAgICAqIERvIHRoZSBhY3R1YWwgbW92 ZW1lbnQgdG93YXJkIG5ld19jcHUsIGFuZCB1cGRhdGUgdmMtPnByb2Nlc3Nvci4KKyAgICAgKiBJ ZiB3ZSBhcmUgY2hhbmdpbmcgcnVucXVldWUsIG1pZ3JhdGUoKSB0YWtlcyBjYXJlIG9mIGV2ZXJ5 dGhpbmcuCisgICAgICogSWYgd2UgYXJlIG5vdCBjaGFuZ2luZyBydW5xdWV1ZSwgd2UgbmVlZCB0 byB1cGRhdGUgdmMtPnByb2Nlc3NvcgorICAgICAqIGhlcmUuIEluIGZhY3QsIGlmLCBmb3IgaW5z dGFuY2UsIHdlIGFyZSBoZXJlIGJlY2F1c2UgdGhlIHZjcHUncworICAgICAqIGhhcmQgYWZmaW5p dHkgY2hhbmdlZCwgd2UgZG9uJ3Qgd2FudCB0byByaXNrIGxlYXZpbmcgdmMtPnByb2Nlc3Nvcgor ICAgICAqIHBvaW50aW5nIHRvIGEgcGNwdSB3aGVyZSB3ZSBjYW4ndCBydW4gYW55IGxvbmdlci4K KyAgICAgKi8KICAgICBpZiAoIHRycWQgIT0gc3ZjLT5ycWQgKQogICAgICAgICBtaWdyYXRlKG9w cywgc3ZjLCB0cnFkLCBOT1coKSk7CisgICAgZWxzZQorICAgICAgICB2Yy0+cHJvY2Vzc29yID0g bmV3X2NwdTsKIH0KIAogc3RhdGljIGludApAQCAtMTY4NSw2ICsxNzU0LDEwIEBAIHJ1bnFfY2Fu ZGlkYXRlKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKICAgICB7CiAgICAgICAg IHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBzdmMgPSBsaXN0X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2No ZWQyX3ZjcHUsIHJ1bnFfZWxlbSk7CiAKKyAgICAgICAgLyogT25seSBjb25zaWRlciB2Y3B1cyB0 aGF0IGFyZSBhbGxvd2VkIHRvIHJ1biBvbiB0aGlzIHByb2Nlc3Nvci4gKi8KKyAgICAgICAgaWYg KCAhY3B1bWFza190ZXN0X2NwdShjcHUsIHN2Yy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpICkK KyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIC8qIElmIHRoaXMgaXMgb24gYSBkaWZm ZXJlbnQgcHJvY2Vzc29yLCBkb24ndCBwdWxsIGl0IHVubGVzcwogICAgICAgICAgKiBpdHMgY3Jl ZGl0IGlzIGF0IGxlYXN0IENTQ0hFRDJfTUlHUkFURV9SRVNJU1QgaGlnaGVyLiAqLwogICAgICAg ICBpZiAoIHN2Yy0+dmNwdS0+cHJvY2Vzc29yICE9IGNwdQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==