From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 2/6] xen: add hypercall option to override and restore vcpu affinity Date: Thu, 3 Mar 2016 17:48:46 +0100 Message-ID: <1457023730-10997-3-git-send-email-jgross@suse.com> References: <1457023730-10997-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457023730-10997-1-git-send-email-jgross@suse.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: Juergen Gross , Wei Liu , Stefano Stabellini , George Dunlap , Andrew Cooper , Dario Faggioli , Ian Jackson , David Vrabel , Jan Beulich List-Id: xen-devel@lists.xenproject.org U29tZSBoYXJkd2FyZSAoZS5nLiBEZWxsIHN0dWRpbyAxNTU1IGxhcHRvcHMpIHJlcXVpcmUgU01J cyB0byBiZQpjYWxsZWQgb24gcGh5c2ljYWwgY3B1IDAgb25seS4gTGludXggZHJpdmVycyBsaWtl IGRjZGJhcyBvciBpOGsgdHJ5CnRvIGFjaGlldmUgdGhpcyBieSBwaW5uaW5nIHRoZSBydW5uaW5n IHRocmVhZCB0byBjcHUgMCwgYnV0IGluIERvbTAKdGhpcyBpcyBub3QgZW5vdWdoOiB0aGUgdmNw dSBtdXN0IGJlIHBpbm5lZCB0byBwaHlzaWNhbCBjcHUgMCB2aWEKWGVuLCB0b28uCgpBZGQgYSBz dGFibGUgaHlwZXJjYWxsIG9wdGlvbiBTQ0hFRE9QX3Bpbl9vdmVycmlkZSB0byB0aGUgc2NoZWRf b3AKaHlwZXJjYWxsIHRvIGFjaGlldmUgdGhpcy4gSXQgaXMgdGFraW5nIGEgcGh5c2ljYWwgY3B1 IG51bWJlciBhcwpwYXJhbWV0ZXIuIElmIHBpbm5pbmcgaXMgcG9zc2libGUgKHRoZSBjYWxsaW5n IGRvbWFpbiBoYXMgdGhlCnByaXZpbGVnZSB0byBtYWtlIHRoZSBjYWxsIGFuZCB0aGUgY3B1IGlz IGF2YWlsYWJsZSBpbiB0aGUgZG9tYWluJ3MKY3B1cG9vbCkgdGhlIGNhbGxpbmcgdmNwdSBpcyBw aW5uZWQgdG8gdGhlIHNwZWNpZmllZCBjcHUuIFRoZSBvbGQKY3B1IGFmZmluaXR5IGlzIHNhdmVk LiBUbyB1bmRvIHRoZSBvdmVycmlkZSBwaW5uaW5nIGEgbmVnYXRpdmUgY3B1CnZhbHVlIGlzIHNw ZWNpZmllZC4gVGhpcyB3aWxsIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGNwdSBhZmZpbml0eSBvZgp0 aGUgdmNwdS4KCkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ CkNjOiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KQ2M6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNv bT4KQ2M6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+CkNjOiBTdGVmYW5v IFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgpDYzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn cm9zc0BzdXNlLmNvbT4KLS0tClYyOiAtIGxpbWl0IG9wZXJhdGlvbiB0byBoYXJkd2FyZSBkb21h aW4gYXMgc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoCiAgICAtIHNvbWUgc3R5bGUgaXNzdWVzIGNv cnJlY3RlZCBhcyByZXF1ZXN0ZWQgYnkgSmFuIEJldWxpY2gKICAgIC0gdXNlIGZpeGVkIHdpZHRo IHR5cGVzIGluIGludGVyZmFjZSBhcyByZXF1ZXN0ZWQgYnkgSmFuIEJldWxpY2gKICAgIC0gYWRk IGNvbXBhdCBsYXllciBjaGVja2luZyBhcyByZXF1ZXN0ZWQgYnkgSmFuIEJldWxpY2gKClYzOiAt IGFkanVzdCBjb2Rpbmcgc3R5bGUgYXMgcmVxdWVzdGVkIGJ5IEphbiBCZXVsaWNoCiAgICAtIHJl bmFtZSBwaW5fdGVtcCB0byBwaW5fb3ZlcnJpZGUgYXMgcmVxdWVzdGVkIGJ5IEphbiBCZXVsaWNo IGFuZAogICAgICBzdWdnZXN0ZWQgYnkgRGF2aWQgVnJhYmVsCiAgICAtIGNoYW5nZSByZXR1cm4g dHlwZSBvZiBkb19waW5fdGVtcCgpIHRvIGludCBhcyByZXF1ZXN0ZWQgYnkgSmFuIEJldWxpY2gK ICAgIC0gc3dhcCBlcnJvciBjaGVja3MgaW4gZG9fc2NoZWRfb3AoKSBhcyByZXF1ZXN0ZWQgYnkg SmFuIEJldWxpY2gKICAgIC0gYWRqdXN0IGNvbW1lbnQgaW4geGVuL2luY2x1ZGUvcHVibGljL3Nj aGVkLmggYXMgcmVxdWVzdGVkIGJ5IEphbiBCZXVsaWNoCi0tLQogeGVuL2NvbW1vbi9jb21wYXQv c2NoZWR1bGUuYyB8ICA0ICsrCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICAgIHwgOTMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9pbmNsdWRlL3B1 YmxpYy9zY2hlZC5oICAgfCAxNyArKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAg ICB8ICAxICsKIHhlbi9pbmNsdWRlL3hsYXQubHN0ICAgICAgICAgfCAgMSArCiA1IGZpbGVzIGNo YW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vY29tcGF0L3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL2NvbXBhdC9zY2hlZHVsZS5j CmluZGV4IDgxMmM1NTAuLjhiNmU2ZjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L3Nj aGVkdWxlLmMKKysrIGIveGVuL2NvbW1vbi9jb21wYXQvc2NoZWR1bGUuYwpAQCAtMTAsNiArMTAs MTAgQEAKIAogI2RlZmluZSBkb19zY2hlZF9vcCBjb21wYXRfc2NoZWRfb3AKIAorI2RlZmluZSB4 ZW5fc2NoZWRfcGluX292ZXJyaWRlIHNjaGVkX3Bpbl9vdmVycmlkZQorQ0hFQ0tfc2NoZWRfcGlu X292ZXJyaWRlOworI3VuZGVmIHhlbl9zY2hlZF9waW5fb3ZlcnJpZGUKKwogI2RlZmluZSB4ZW5f c2NoZWRfc2h1dGRvd24gc2NoZWRfc2h1dGRvd24KIENIRUNLX3NjaGVkX3NodXRkb3duOwogI3Vu ZGVmIHhlbl9zY2hlZF9zaHV0ZG93bgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVsZS5j IGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IDEzODAzZWMuLmU1N2I2NTkgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAg LTI3MSw2ICsyNzEsMTIgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCBjcHVwb29sICpjKQogICAgIHN0cnVjdCBzY2hlZHVsZXIgKm9sZF9vcHM7CiAgICAg dm9pZCAqb2xkX2RvbWRhdGE7CiAKKyAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCisgICAgewor ICAgICAgICBpZiAoIHYtPmFmZmluaXR5X2Jyb2tlbiApCisgICAgICAgICAgICByZXR1cm4gLUVC VVNZOworICAgIH0KKwogICAgIGRvbWRhdGEgPSBTQ0hFRF9PUChjLT5zY2hlZCwgYWxsb2NfZG9t ZGF0YSwgZCk7CiAgICAgaWYgKCBkb21kYXRhID09IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVO T01FTTsKQEAgLTY2OSw2ICs2NzUsMTQgQEAgaW50IGNwdV9kaXNhYmxlX3NjaGVkdWxlcih1bnNp Z25lZCBpbnQgY3B1KQogICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KCZvbmxpbmVfYWZm aW5pdHkpICYmCiAgICAgICAgICAgICAgICAgIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCB2LT5jcHVf aGFyZF9hZmZpbml0eSkgKQogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICggdi0+ YWZmaW5pdHlfYnJva2VuICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg IC8qIFRoZSB2Y3B1IGlzIHRlbXBvcmFyaWx5IHBpbm5lZCwgY2FuJ3QgbW92ZSBpdC4gKi8KKyAg ICAgICAgICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBm bGFncywgdik7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FQlVTWTsKKyAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgaWYg KHN5c3RlbV9zdGF0ZSA9PSBTWVNfU1RBVEVfc3VzcGVuZCkKICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfY29weSh2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZl ZCwKQEAgLTc1MiwxNCArNzY2LDIyIEBAIHN0YXRpYyBpbnQgdmNwdV9zZXRfYWZmaW5pdHkoCiAg ICAgc3RydWN0IHZjcHUgKnYsIGNvbnN0IGNwdW1hc2tfdCAqYWZmaW5pdHksIGNwdW1hc2tfdCAq d2hpY2gpCiB7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKKyAgICBpbnQgcmV0ID0gMDsKIAogICAg IGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHYpOwogCi0gICAgY3B1bWFza19jb3B5KHdo aWNoLCBhZmZpbml0eSk7CisgICAgaWYgKCB2LT5hZmZpbml0eV9icm9rZW4gKQorICAgICAgICBy ZXQgPSAtRUJVU1k7CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgY3B1bWFza19jb3B5KHdoaWNo LCBhZmZpbml0eSk7CiAKLSAgICAvKiBBbHdheXMgYXNrIHRoZSBzY2hlZHVsZXIgdG8gcmUtZXZh bHVhdGUgcGxhY2VtZW50Ci0gICAgICogd2hlbiBjaGFuZ2luZyB0aGUgYWZmaW5pdHkgKi8KLSAg ICBzZXRfYml0KF9WUEZfbWlncmF0aW5nLCAmdi0+cGF1c2VfZmxhZ3MpOworICAgICAgICAvKgor ICAgICAgICAgKiBBbHdheXMgYXNrIHRoZSBzY2hlZHVsZXIgdG8gcmUtZXZhbHVhdGUgcGxhY2Vt ZW50CisgICAgICAgICAqIHdoZW4gY2hhbmdpbmcgdGhlIGFmZmluaXR5LgorICAgICAgICAgKi8K KyAgICAgICAgc2V0X2JpdChfVlBGX21pZ3JhdGluZywgJnYtPnBhdXNlX2ZsYWdzKTsKKyAgICB9 CiAKICAgICB2Y3B1X3NjaGVkdWxlX3VubG9ja19pcnEobG9jaywgdik7CiAKQEAgLTc3MSw3ICs3 OTMsNyBAQCBzdGF0aWMgaW50IHZjcHVfc2V0X2FmZmluaXR5KAogICAgICAgICB2Y3B1X21pZ3Jh dGUodik7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJldDsKIH0KIAogaW50 IHZjcHVfc2V0X2hhcmRfYWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIGNvbnN0IGNwdW1hc2tfdCAq YWZmaW5pdHkpCkBAIC05ODIsNiArMTAwNCw1MCBAQCB2b2lkIHdhdGNoZG9nX2RvbWFpbl9kZXN0 cm95KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIGtpbGxfdGltZXIoJmQtPndhdGNoZG9nX3Rp bWVyW2ldKTsKIH0KIAoraW50IHZjcHVfcGluX292ZXJyaWRlKHN0cnVjdCB2Y3B1ICp2LCBpbnQg Y3B1KQoreworICAgIHNwaW5sb2NrX3QgKmxvY2s7CisgICAgaW50IHJldCA9IC1FSU5WQUw7CisK KyAgICBsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2KTsKKworICAgIGlmICggY3B1IDwg MCApCisgICAgeworICAgICAgICBpZiAoIHYtPmFmZmluaXR5X2Jyb2tlbiApCisgICAgICAgIHsK KyAgICAgICAgICAgIGNwdW1hc2tfY29weSh2LT5jcHVfaGFyZF9hZmZpbml0eSwgdi0+Y3B1X2hh cmRfYWZmaW5pdHlfc2F2ZWQpOworICAgICAgICAgICAgdi0+YWZmaW5pdHlfYnJva2VuID0gMDsK KyAgICAgICAgICAgIHNldF9iaXQoX1ZQRl9taWdyYXRpbmcsICZ2LT5wYXVzZV9mbGFncyk7Cisg ICAgICAgICAgICByZXQgPSAwOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKCBjcHUg PCBucl9jcHVfaWRzICkKKyAgICB7CisgICAgICAgIGlmICggdi0+YWZmaW5pdHlfYnJva2VuICkK KyAgICAgICAgICAgIHJldCA9IC1FQlVTWTsKKyAgICAgICAgZWxzZSBpZiAoIGNwdW1hc2tfdGVz dF9jcHUoY3B1LCBWQ1BVMk9OTElORSh2KSkgKQorICAgICAgICB7CisgICAgICAgICAgICBjcHVt YXNrX2NvcHkodi0+Y3B1X2hhcmRfYWZmaW5pdHlfc2F2ZWQsIHYtPmNwdV9oYXJkX2FmZmluaXR5 KTsKKyAgICAgICAgICAgIHYtPmFmZmluaXR5X2Jyb2tlbiA9IDE7CisgICAgICAgICAgICBjcHVt YXNrX2NvcHkodi0+Y3B1X2hhcmRfYWZmaW5pdHksIGNwdW1hc2tfb2YoY3B1KSk7CisgICAgICAg ICAgICBzZXRfYml0KF9WUEZfbWlncmF0aW5nLCAmdi0+cGF1c2VfZmxhZ3MpOworICAgICAgICAg ICAgcmV0ID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZjcHVfc2NoZWR1bGVfdW5sb2Nr X2lycShsb2NrLCB2KTsKKworICAgIGRvbWFpbl91cGRhdGVfbm9kZV9hZmZpbml0eSh2LT5kb21h aW4pOworCisgICAgaWYgKCB2LT5wYXVzZV9mbGFncyAmIFZQRl9taWdyYXRpbmcgKQorICAgIHsK KyAgICAgICAgdmNwdV9zbGVlcF9ub3N5bmModik7CisgICAgICAgIHZjcHVfbWlncmF0ZSh2KTsK KyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCiB0eXBlZGVmIGxvbmcgcmV0X3Q7CiAKICNl bmRpZiAvKiAhQ09NUEFUICovCkBAIC0xMDkxLDYgKzExNTcsMjMgQEAgcmV0X3QgZG9fc2NoZWRf b3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgIGJy ZWFrOwogICAgIH0KIAorICAgIGNhc2UgU0NIRURPUF9waW5fb3ZlcnJpZGU6CisgICAgeworICAg ICAgICBzdHJ1Y3Qgc2NoZWRfcGluX292ZXJyaWRlIHNjaGVkX3Bpbl9vdmVycmlkZTsKKworICAg ICAgICByZXQgPSAtRVBFUk07CisgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJy ZW50LT5kb21haW4pICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJldCA9IC1FRkFV TFQ7CisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZzY2hlZF9waW5fb3ZlcnJpZGUsIGFy ZywgMSkgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmV0ID0gdmNwdV9waW5fb3Zl cnJpZGUoY3VycmVudCwgc2NoZWRfcGluX292ZXJyaWRlLnBjcHUpOworCisgICAgICAgIGJyZWFr OworICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldCA9IC1FTk9TWVM7CiAgICAgfQpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3NjaGVkLmggYi94ZW4vaW5jbHVkZS9wdWJs aWMvc2NoZWQuaAppbmRleCAyMjE5Njk2Li44MmMzMzhmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9wdWJsaWMvc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvc2NoZWQuaApAQCAtMTE4 LDYgKzExOCwxNyBAQAogICogV2l0aCBpZCAhPSAwIGFuZCB0aW1lb3V0ICE9IDAsIHBva2Ugd2F0 Y2hkb2cgdGltZXIgYW5kIHNldCBuZXcgdGltZW91dC4KICAqLwogI2RlZmluZSBTQ0hFRE9QX3dh dGNoZG9nICAgIDYKKworLyoKKyAqIE92ZXJyaWRlIHRoZSBjdXJyZW50IHZjcHUgYWZmaW5pdHkg YnkgcGlubmluZyBpdCB0byBvbmUgcGh5c2ljYWwgY3B1IG9yIHVuZG8KKyAqIHRoaXMgb3ZlcnJp ZGUgcmVzdG9yaW5nIHRoZSBwcmV2aW91cyBhZmZpbml0eS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0 byBzY2hlZF9waW5fb3ZlcnJpZGVfdCBzdHJ1Y3R1cmUuCisgKgorICogQSBuZWdhdGl2ZSBwY3B1 IHZhbHVlIHdpbGwgdW5kbyBhIHByZXZpb3VzIHBpbiBvdmVycmlkZSBhbmQgcmVzdG9yZSB0aGUK KyAqIHByZXZpb3VzIGNwdSBhZmZpbml0eS4KKyAqIFRoaXMgY2FsbCBpcyBhbGxvd2VkIGZvciB0 aGUgaGFyZHdhcmUgZG9tYWluIG9ubHkuCisgKi8KKyNkZWZpbmUgU0NIRURPUF9waW5fb3ZlcnJp ZGUgNwogLyogYCB9ICovCiAKIHN0cnVjdCBzY2hlZF9zaHV0ZG93biB7CkBAIC0xNDgsNiArMTU5 LDEyIEBAIHN0cnVjdCBzY2hlZF93YXRjaGRvZyB7CiB0eXBlZGVmIHN0cnVjdCBzY2hlZF93YXRj aGRvZyBzY2hlZF93YXRjaGRvZ190OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoc2NoZWRfd2F0 Y2hkb2dfdCk7CiAKK3N0cnVjdCBzY2hlZF9waW5fb3ZlcnJpZGUgeworICAgIGludDMyX3QgcGNw dTsKK307Cit0eXBlZGVmIHN0cnVjdCBzY2hlZF9waW5fb3ZlcnJpZGUgc2NoZWRfcGluX292ZXJy aWRlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShzY2hlZF9waW5fb3ZlcnJpZGVfdCk7CisK IC8qCiAgKiBSZWFzb24gY29kZXMgZm9yIFNDSEVET1Bfc2h1dGRvd24uIFRoZXNlIG1heSBiZSBp bnRlcnByZXRlZCBieSBjb250cm9sCiAgKiBzb2Z0d2FyZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJv cHJpYXRlIGFjdGlvbi4gRm9yIHRoZSBtb3N0IHBhcnQsIFhlbiBkb2VzCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCmluZGV4IGNj NzdkNzAuLjA5ZmZmNWYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCkBAIC04MTEsNiArODExLDcgQEAgaW50IGNwdV9kaXNh YmxlX3NjaGVkdWxlcih1bnNpZ25lZCBpbnQgY3B1KTsKIGludCB2Y3B1X3NldF9oYXJkX2FmZmlu aXR5KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmluaXR5KTsKIGludCB2Y3B1 X3NldF9zb2Z0X2FmZmluaXR5KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmlu aXR5KTsKIHZvaWQgcmVzdG9yZV92Y3B1X2FmZmluaXR5KHN0cnVjdCBkb21haW4gKmQpOworaW50 IHZjcHVfcGluX292ZXJyaWRlKHN0cnVjdCB2Y3B1ICp2LCBpbnQgY3B1KTsKIAogdm9pZCB2Y3B1 X3J1bnN0YXRlX2dldChzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyAq cnVuc3RhdGUpOwogdWludDY0X3QgZ2V0X2NwdV9pZGxlX3RpbWUodW5zaWduZWQgaW50IGNwdSk7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0 CmluZGV4IGZkYTExMzcuLjIzYmVmYjMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0 CisrKyBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CkBAIC0xMDQsNiArMTA0LDcgQEAKID8JcG11X2Rh dGEJCQlwbXUuaAogPwlwbXVfcGFyYW1zCQkJcG11LmgKICEJc2NoZWRfcG9sbAkJCXNjaGVkLmgK Kz8Jc2NoZWRfcGluX292ZXJyaWRlCQlzY2hlZC5oCiA/CXNjaGVkX3JlbW90ZV9zaHV0ZG93bgkJ c2NoZWQuaAogPwlzY2hlZF9zaHV0ZG93bgkJCXNjaGVkLmgKID8JdG1lbV9vaWQJCQl0bWVtLmgK LS0gCjIuNi4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK