From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 3/5] xen: RCU/x86/ARM: discount CPUs that were idle when grace period started. Date: Thu, 27 Jul 2017 10:01:24 +0200 Message-ID: <150114248433.22910.16140726025093688678.stgit@Solace> References: <150114201043.22910.12807057883146318803.stgit@Solace> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dadjd-0000Fy-De for xen-devel@lists.xenproject.org; Thu, 27 Jul 2017 08:01:29 +0000 Received: by mail-wm0-f65.google.com with SMTP id c184so10142020wmd.1 for ; Thu, 27 Jul 2017 01:01:26 -0700 (PDT) In-Reply-To: <150114201043.22910.12807057883146318803.stgit@Solace> 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: Andrew Cooper , Julien Grall , Stefano Stabellini , Jan Beulich List-Id: xen-devel@lists.xenproject.org WGVuIGlzIGEgdGlja2xlc3MgKG1pY3JvLSlrZXJuZWwuIFRoaXMgbWVhbnMgdGhhdCwgd2hlbiBh IENQVQpiZWNvbWVzIGlkbGUsIHdlIHN0b3AgYWxsIHRoZSBhY3Rpdml0eSBvbiBpdCwgaW5jbHVk aW5nIGFueQpwZXJpb2RpYyB0aWNrIG9yIHRpbWVyLgoKV2hlbiB3ZSBpbXBvcnRlZCBSQ1UgZnJv bSBMaW51eCwgTGludXggKHg4Nikgd2FzIGEgdGlja2luZwprZXJuZWwsIGkuZS4sIHRoZXJlIHdh cyBhIHBlcmlvZGljIHRpbWVyIHRpY2sgYWx3YXlzIHJ1bm5pbmcsCmV2ZW4gb24gdG90YWxseSBp ZGxlIENQVXMuIFRoaXMgd2FzIGJhZCBmcm9tIGEgcG93ZXIgZWZmaWNpZW5jeQpwZXJzcGVjdGl2 ZSwgYnV0IGl0J3Mgd2hhdCBtYWtlZCBpdCBwb3NzaWJsZSB0byBtb25pdG9yIHRoZQpxdWllc2Nl bnQgc3RhdGVzIG9mIGFsbCB0aGUgQ1BVcywgYW5kIGhlbmNlIHRlbGwgd2hlbiBhbiBSQ1UKZ3Jh Y2UgcGVyaW9kIGVuZHMuCgpJbiBYZW4sIHRoYXQgaXMgaW1wb3NzaWJsZSwgYW5kIHRoYXQncyBw YXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMKd2hlbiBzeXN0ZW0gaXMgaWRsZSAob3IgbGlnaHRseSBs b2FkZWQpIHN5c3RlbXMsIGFzIENQVXMgdGhhdAphcmUgaWRsZSBtYXkgbmV2ZXIgaGF2ZSB0aGUg Y2hhbmNlIHRvIHRlbGwgUkNVIGFib3V0IHRoZWlyCnF1aWVzY2VuY2UsIGFuZCBncmFjZSBwZXJp b2RzIGNvdWxkIGV4dGVuZCBpbmRlZmluaXRlbHkhCgpUaGlzIGhhcyBsZWQsIG9uIHg4NiwgdG8g bG9uZyAoYW4gdW5wcmVkaWN0YWJsZSkgZGVsYXlzIGJldHdlZW4KUkNVIGNhbGxiYWNrcyBxdWV1 ZWluZyBhbmQgaW52b2thdGlvbi4gT24gQVJNLCB3ZSBhY3R1YWxseSBzZWUKaW5maW5pdGUgZ3Jh Y2UgcGVyaW9kcyAoZS5nLiwgY29tcGxhdGVfZG9tYWluX2Rlc3Ryb3koKSBtYXkKbmV2ZXIgYmUg YWN0dWFsbHkgaW52b2tlZCBvbiBhbiBpZGxlIHN5c3RlbSkuIFNlZSBoZXJlOgoKIGh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNy0wMS9tc2cw MjQ1NC5odG1sCgpUaGUgZmlyc3Qgc3RlcCBmb3IgZml4aW5nIHRoaXMgc2l0dWF0aW9uIGlzIGZv ciBSQ1UgdG8gcmVjb3JkLAphdCB0aGUgYmVnaW5uaW5nIG9mIGEgZ3JhY2UgcGVyaW9kLCB3aGlj aCBDUFVzIGFyZSBhbHJlYWR5IGlkbGUuCkluIGZhY3QsIGJlaW5nIGlkbGUsIHRoZXkgY2FuJ3Qg YmUgaW4gdGhlIG1pZGRsZSBvZiBhbnkgcmVhZC1zaWRlCmNyaXRpY2FsIHNlY3Rpb24sIGFuZCB3 ZSBkb24ndCBoYXZlIHRvIHdhaXQgZm9yIHRoZW0gdG8gZGVjbGFyZQphIGdyYWNlIHBlcmlvZCBm aW5pc2hlZC4KClRoaXMgaXMgdHJhY2tlZCBpbiBhIGNwdW1hc2ssIGluIGEgd2F5IHRoYXQgaXMg dmVyeSBzaW1pbGFyIHRvCmhvdyBMaW51eCBhbHNvIHdhcyBhY2hpZXZpbmcgdGhlIHNhbWUgb24g czM5MCAtLXdoaWNoIGluZGVlZCB3YXMKdGlja2xlc3MgYWxyZWFkeSwgZXZlbiBiYWNrIHRoZW4t LSBhbmQgdG8gd2hhdCBpdCBzdGFydGVkIHRvIGRvCmZvciB4ODYsIGZyb20gMi42LjIxIG9uIChz ZWUgY29tbWl0IDc5YmYyYmIzICJ0aWNrLW1hbmFnZW1lbnQ6CmR5bnRpY2sgLyBoaWdocmVzIGZ1 bmN0aW9uYWxpdHkiKS4KCldoaWxlIHRoZXJlLCBhbHNvIGFkb3B0IHRoZSBtZW1vcnkgYmFycmll ciBpbnRyb2R1Y2VkIGJ5IExpbnV4CmNvbW1pdCBjb21taXQgYzNmNTkwMjMgKCJGaXggUkNVIHJh Y2UgaW4gYWNjZXNzIG9mIG5vaHpfY3B1X21hc2siKS4KClNpZ25lZC1vZmYtYnk6IERhcmlvIEZh Z2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVs bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy YWxsQGFybS5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL2FybS9k b21haW4uYyAgICAgICAgIHwgICAgMiArKwogeGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyAg fCAgIDI1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbXdhaXQt aWRsZS5jIHwgICAgOSArKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgIHwg ICAgOCArKysrKysrLQogeGVuL2NvbW1vbi9yY3VwZGF0ZS5jICAgICAgICAgfCAgIDI4ICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9pbmNsdWRlL3hlbi9yY3VwZGF0ZS5oICAgIHwg ICAgMyArKysKIDYgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2Rv bWFpbi5jCmluZGV4IGZjZTI5Y2IuLjY2NmI3ZWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9k b21haW4uYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKQEAgLTUwLDggKzUwLDEwIEBAIHN0 YXRpYyB2b2lkIGRvX2lkbGUodm9pZCkKICAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOwogICAgIGlm ICggY3B1X2lzX2hhbHRhYmxlKGNwdSkgKQogICAgIHsKKyAgICAgICAgcmN1X2lkbGVfZW50ZXIo Y3B1KTsKICAgICAgICAgZHNiKHN5KTsKICAgICAgICAgd2ZpKCk7CisgICAgICAgIHJjdV9pZGxl X2V4aXQoY3B1KTsKICAgICB9CiAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk bGUuYwppbmRleCA0ODJiOGE3Li4wNGM1MmU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNw aS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQxOCwx NCArNDE4LDE2IEBAIHN0YXRpYyB2b2lkIGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIo c3RydWN0IGFjcGlfcHJvY2Vzc29yX2N4ICpjeCkKICAgICBtd2FpdF9pZGxlX3dpdGhfaGludHMo Y3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUspOwogfQogCi1zdGF0aWMgdm9p ZCBhY3BpX2lkbGVfZG9fZW50cnkoc3RydWN0IGFjcGlfcHJvY2Vzc29yX2N4ICpjeCkKK3N0YXRp YyB2b2lkIGFjcGlfaWRsZV9kb19lbnRyeSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgYWNwaV9w cm9jZXNzb3JfY3ggKmN4KQogeworICAgIHJjdV9pZGxlX2VudGVyKGNwdSk7CisKICAgICBzd2l0 Y2ggKCBjeC0+ZW50cnlfbWV0aG9kICkKICAgICB7CiAgICAgY2FzZSBBQ1BJX0NTVEFURV9FTV9G Rkg6CiAgICAgICAgIC8qIENhbGwgaW50byBhcmNoaXRlY3R1cmFsIEZGSCBiYXNlZCBDLXN0YXRl ICovCiAgICAgICAgIGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoY3gpOwotICAgICAg ICByZXR1cm47CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQUNQSV9DU1RBVEVfRU1fU1lTSU86 CiAgICAgICAgIC8qIElPIHBvcnQgYmFzZWQgQy1zdGF0ZSAqLwogICAgICAgICBpbmIoY3gtPmFk ZHJlc3MpOwpAQCAtNDMzLDEyICs0MzUsMTQgQEAgc3RhdGljIHZvaWQgYWNwaV9pZGxlX2RvX2Vu dHJ5KHN0cnVjdCBhY3BpX3Byb2Nlc3Nvcl9jeCAqY3gpCiAgICAgICAgICAgIGJlY2F1c2UgY2hp cHNldHMgY2Fubm90IGd1YXJhbnRlZSB0aGF0IFNUUENMSyMgc2lnbmFsCiAgICAgICAgICAgIGdl dHMgYXNzZXJ0ZWQgaW4gdGltZSB0byBmcmVlemUgZXhlY3V0aW9uIHByb3Blcmx5LiAqLwogICAg ICAgICBpbmwocG10bXJfaW9wb3J0KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsK ICAgICBjYXNlIEFDUElfQ1NUQVRFX0VNX0hBTFQ6CiAgICAgICAgIHNhZmVfaGFsdCgpOwogICAg ICAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFr OwogICAgIH0KKworICAgIHJjdV9pZGxlX2V4aXQoY3B1KTsKIH0KIAogc3RhdGljIGludCBhY3Bp X2lkbGVfYm1fY2hlY2sodm9pZCkKQEAgLTU0MCw3ICs1NDQsOCBAQCB2b2lkIHVwZGF0ZV9pZGxl X3N0YXRzKHN0cnVjdCBhY3BpX3Byb2Nlc3Nvcl9wb3dlciAqcG93ZXIsCiAKIHN0YXRpYyB2b2lk IGFjcGlfcHJvY2Vzc29yX2lkbGUodm9pZCkKIHsKLSAgICBzdHJ1Y3QgYWNwaV9wcm9jZXNzb3Jf cG93ZXIgKnBvd2VyID0gcHJvY2Vzc29yX3Bvd2Vyc1tzbXBfcHJvY2Vzc29yX2lkKCldOworICAg IHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisgICAgc3RydWN0IGFjcGlf cHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9wb3dlcnNbY3B1XTsKICAgICBzdHJ1 Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0gTlVMTDsKICAgICBpbnQgbmV4dF9zdGF0ZTsKICAg ICB1aW50NjRfdCB0MSwgdDIgPSAwOwpAQCAtNTYzLDcgKzU2OCwxMSBAQCBzdGF0aWMgdm9pZCBh Y3BpX3Byb2Nlc3Nvcl9pZGxlKHZvaWQpCiAgICAgICAgIGlmICggcG1faWRsZV9zYXZlICkKICAg ICAgICAgICAgIHBtX2lkbGVfc2F2ZSgpOwogICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAg ICAgICAgIHJjdV9pZGxlX2VudGVyKGNwdSk7CiAgICAgICAgICAgICBzYWZlX2hhbHQoKTsKKyAg ICAgICAgICAgIHJjdV9pZGxlX2V4aXQoY3B1KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47 CiAgICAgfQogCkBAIC01NzksNyArNTg4LDcgQEAgc3RhdGljIHZvaWQgYWNwaV9wcm9jZXNzb3Jf aWRsZSh2b2lkKQogICAgICAqLwogICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7CiAKLSAgICBpZiAo ICFjcHVfaXNfaGFsdGFibGUoc21wX3Byb2Nlc3Nvcl9pZCgpKSApCisgICAgaWYgKCAhY3B1X2lz X2hhbHRhYmxlKGNwdSkgKQogICAgIHsKICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwogICAg ICAgICBzY2hlZF90aWNrX3Jlc3VtZSgpOwpAQCAtNjEwLDcgKzYxOSw3IEBAIHN0YXRpYyB2b2lk IGFjcGlfcHJvY2Vzc29yX2lkbGUodm9pZCkKICAgICAgICAgICAgIHVwZGF0ZV9sYXN0X2N4X3N0 YXQocG93ZXIsIGN4LCB0MSk7CiAKICAgICAgICAgICAgIC8qIEludm9rZSBDMiAqLwotICAgICAg ICAgICAgYWNwaV9pZGxlX2RvX2VudHJ5KGN4KTsKKyAgICAgICAgICAgIGFjcGlfaWRsZV9kb19l bnRyeShjcHUsIGN4KTsKICAgICAgICAgICAgIC8qIEdldCBlbmQgdGltZSAodGlja3MpICovCiAg ICAgICAgICAgICB0MiA9IGNwdWlkbGVfZ2V0X3RpY2soKTsKICAgICAgICAgICAgIHRyYWNlX2V4 aXRfcmVhc29uKGlycV90cmFjZWQpOwpAQCAtNjcyLDcgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIGFj cGlfcHJvY2Vzc29yX2lkbGUodm9pZCkKICAgICAgICAgfQogCiAgICAgICAgIC8qIEludm9rZSBD MyAqLwotICAgICAgICBhY3BpX2lkbGVfZG9fZW50cnkoY3gpOworICAgICAgICBhY3BpX2lkbGVf ZG9fZW50cnkoY3B1LCBjeCk7CiAKICAgICAgICAgaWYgKCAoY3gtPnR5cGUgPT0gQUNQSV9TVEFU RV9DMykgJiYKICAgICAgICAgICAgICBwb3dlci0+ZmxhZ3MuYm1fY2hlY2sgJiYgcG93ZXItPmZs YWdzLmJtX2NvbnRyb2wgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxl LmMgYi94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYwppbmRleCA3NjJkZmYxLi5hZTllOTJi IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtNzM1LDggKzczNSwxMSBAQCBzdGF0aWMgdm9pZCBt d2FpdF9pZGxlKHZvaWQpCiAJaWYgKCFjeCkgewogCQlpZiAocG1faWRsZV9zYXZlKQogCQkJcG1f aWRsZV9zYXZlKCk7Ci0JCWVsc2UKKwkJZWxzZSB7CisJCQlyY3VfaWRsZV9lbnRlcihjcHUpOwog CQkJc2FmZV9oYWx0KCk7CisJCQlyY3VfaWRsZV9leGl0KGNwdSk7CisJCX0KIAkJcmV0dXJuOwog CX0KIApAQCAtNzU2LDYgKzc1OSw4IEBAIHN0YXRpYyB2b2lkIG13YWl0X2lkbGUodm9pZCkKIAkJ cmV0dXJuOwogCX0KIAorCXJjdV9pZGxlX2VudGVyKGNwdSk7CisKIAllYXggPSBjeC0+YWRkcmVz czsKIAljc3RhdGUgPSAoKGVheCA+PiBNV0FJVF9TVUJTVEFURV9TSVpFKSAmIE1XQUlUX0NTVEFU RV9NQVNLKSArIDE7CiAKQEAgLTc4Nyw2ICs3OTIsOCBAQCBzdGF0aWMgdm9pZCBtd2FpdF9pZGxl KHZvaWQpCiAJCWlycV90cmFjZWRbMF0sIGlycV90cmFjZWRbMV0sIGlycV90cmFjZWRbMl0sIGly cV90cmFjZWRbM10pOwogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCisJcmN1X2lkbGVfZXhpdChj cHUpOworCiAJdXBkYXRlX2lkbGVfc3RhdHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKIAls b2NhbF9pcnFfZW5hYmxlKCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYyBi L3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCBkZDhiZjEzLi5hNmMwZjY2IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCkBAIC03 Myw5ICs3MywxNSBAQCB2b2lkICgqZGVhZF9pZGxlKSAodm9pZCkgX19yZWFkX21vc3RseSA9IGRl ZmF1bHRfZGVhZF9pZGxlOwogCiBzdGF0aWMgdm9pZCBkZWZhdWx0X2lkbGUodm9pZCkKIHsKKyAg ICB1bnNpZ25lZCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCiAgICAgbG9jYWxfaXJx X2Rpc2FibGUoKTsKLSAgICBpZiAoIGNwdV9pc19oYWx0YWJsZShzbXBfcHJvY2Vzc29yX2lkKCkp ICkKKyAgICBpZiAoIGNwdV9pc19oYWx0YWJsZShjcHUpICkKKyAgICB7CisgICAgICAgIHJjdV9p ZGxlX2VudGVyKGNwdSk7CiAgICAgICAgIHNhZmVfaGFsdCgpOworICAgICAgICByY3VfaWRsZV9l eGl0KGNwdSk7CisgICAgfQogICAgIGVsc2UKICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwog fQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9yY3VwZGF0ZS5jIGIveGVuL2NvbW1vbi9yY3VwZGF0 ZS5jCmluZGV4IDhjYzVhODIuLmYwZmRjODcgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcmN1cGRh dGUuYworKysgYi94ZW4vY29tbW9uL3JjdXBkYXRlLmMKQEAgLTUyLDcgKzUyLDggQEAgc3RhdGlj IHN0cnVjdCByY3VfY3RybGJsayB7CiAgICAgaW50ICBuZXh0X3BlbmRpbmc7ICAvKiBJcyB0aGUg bmV4dCBiYXRjaCBhbHJlYWR5IHdhaXRpbmc/ICAgICAgICAgKi8KIAogICAgIHNwaW5sb2NrX3Qg IGxvY2sgX19jYWNoZWxpbmVfYWxpZ25lZDsKLSAgICBjcHVtYXNrX3QgICBjcHVtYXNrOyAvKiBD UFVzIHRoYXQgbmVlZCB0byBzd2l0Y2ggaW4gb3JkZXIgICAgKi8KKyAgICBjcHVtYXNrX3QgICBj cHVtYXNrOyAvKiBDUFVzIHRoYXQgbmVlZCB0byBzd2l0Y2ggaW4gb3JkZXIgLi4uICovCisgICAg Y3B1bWFza190ICAgaWRsZV9jcHVtYXNrOyAvKiAuLi4gdW5sZXNzIHRoZXkgYXJlIGFscmVhZHkg aWRsZSAqLwogICAgIC8qIGZvciBjdXJyZW50IGJhdGNoIHRvIHByb2NlZWQuICAgICAgICAqLwog fSBfX2NhY2hlbGluZV9hbGlnbmVkIHJjdV9jdHJsYmxrID0gewogICAgIC5jdXIgPSAtMzAwLApA QCAtMjQ4LDcgKzI0OSwxNCBAQCBzdGF0aWMgdm9pZCByY3Vfc3RhcnRfYmF0Y2goc3RydWN0IHJj dV9jdHJsYmxrICpyY3ApCiAgICAgICAgIHNtcF93bWIoKTsKICAgICAgICAgcmNwLT5jdXIrKzsK IAotICAgICAgICBjcHVtYXNrX2NvcHkoJnJjcC0+Y3B1bWFzaywgJmNwdV9vbmxpbmVfbWFwKTsK KyAgICAgICAvKgorICAgICAgICAqIEFjY2Vzc2luZyBpZGxlX2NwdW1hc2sgYmVmb3JlIGluY3Jl bWVudGluZyByY3AtPmN1ciBuZWVkcyBhCisgICAgICAgICogQmFycmllciAgT3RoZXJ3aXNlIGl0 IGNhbiBjYXVzZSB0aWNrbGVzcyBpZGxlIENQVXMgdG8gYmUKKyAgICAgICAgKiBpbmNsdWRlZCBp biByY3AtPmNwdW1hc2ssIHdoaWNoIHdpbGwgZXh0ZW5kIGdyYWNlcGVyaW9kcworICAgICAgICAq IHVubmVjZXNzYXJpbHkuCisgICAgICAgICovCisgICAgICAgIHNtcF9tYigpOworICAgICAgICBj cHVtYXNrX2FuZG5vdCgmcmNwLT5jcHVtYXNrLCAmY3B1X29ubGluZV9tYXAsICZyY3AtPmlkbGVf Y3B1bWFzayk7CiAgICAgfQogfQogCkBAIC00NzQsNyArNDgyLDIzIEBAIHN0YXRpYyBzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sgY3B1X25mYiA9IHsKIHZvaWQgX19pbml0IHJjdV9pbml0KHZvaWQpCiB7 CiAgICAgdm9pZCAqY3B1ID0gKHZvaWQgKikobG9uZylzbXBfcHJvY2Vzc29yX2lkKCk7CisKKyAg ICBjcHVtYXNrX3NldGFsbCgmcmN1X2N0cmxibGsuaWRsZV9jcHVtYXNrKTsKICAgICBjcHVfY2Fs bGJhY2soJmNwdV9uZmIsIENQVV9VUF9QUkVQQVJFLCBjcHUpOwogICAgIHJlZ2lzdGVyX2NwdV9u b3RpZmllcigmY3B1X25mYik7CiAgICAgb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJv Y2Vzc19jYWxsYmFja3MpOwogfQorCisvKgorICogVGhlIENQVSBpcyBiZWNvbWluZyBpZGxlLCBz byBubyBtb3JlIHJlYWQgc2lkZSBjcml0aWNhbAorICogc2VjdGlvbnMsIGFuZCBvbmUgbW9yZSBz dGVwIHRvd2FyZCBncmFjZSBwZXJpb2QuCisgKi8KK3ZvaWQgcmN1X2lkbGVfZW50ZXIodW5zaWdu ZWQgaW50IGNwdSkKK3sKKyAgICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmcmN1X2N0cmxibGsuaWRs ZV9jcHVtYXNrKTsKK30KKwordm9pZCByY3VfaWRsZV9leGl0KHVuc2lnbmVkIGludCBjcHUpCit7 CisgICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcmN1X2N0cmxibGsuaWRsZV9jcHVtYXNrKTsK K30KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9yY3VwZGF0ZS5oIGIveGVuL2luY2x1ZGUv eGVuL3JjdXBkYXRlLmgKaW5kZXggNTU3YTdiMS4uNTYxYWM0MyAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3JjdXBkYXRlLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3JjdXBkYXRlLmgKQEAg LTE0Niw0ICsxNDYsNyBAQCB2b2lkIGNhbGxfcmN1KHN0cnVjdCByY3VfaGVhZCAqaGVhZCwKIAog aW50IHJjdV9iYXJyaWVyKHZvaWQpOwogCit2b2lkIHJjdV9pZGxlX2VudGVyKHVuc2lnbmVkIGlu dCBjcHUpOwordm9pZCByY3VfaWRsZV9leGl0KHVuc2lnbmVkIGludCBjcHUpOworCiAjZW5kaWYg LyogX19YRU5fUkNVUERBVEVfSCAqLwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=