From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 036B0C433FF for ; Fri, 9 Aug 2019 14:59:23 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB15D208C4 for ; Fri, 9 Aug 2019 14:59:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB15D208C4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hw6MI-00079v-Cx; Fri, 09 Aug 2019 14:59:10 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hw6M3-0006dm-Fr for xen-devel@lists.xenproject.org; Fri, 09 Aug 2019 14:58:55 +0000 X-Inumbo-ID: 32095c19-bab6-11e9-8980-bc764e045a96 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 32095c19-bab6-11e9-8980-bc764e045a96; Fri, 09 Aug 2019 14:58:50 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 12AAAB016; Fri, 9 Aug 2019 14:58:49 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Fri, 9 Aug 2019 16:58:16 +0200 Message-Id: <20190809145833.1020-32-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190809145833.1020-1-jgross@suse.com> References: <20190809145833.1020-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v2 31/48] xen/sched: add support for multiple vcpus per sched unit where missing X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Dario Faggioli MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SW4gc2V2ZXJhbCBwbGFjZXMgdGhlcmUgaXMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgdmNwdXMgcGVy IHNjaGVkIHVuaXQKbWlzc2luZy4gQWRkIHRoYXQgbWlzc2luZyBzdXBwb3J0ICh3aXRoIHRoZSBl eGNlcHRpb24gb2YgaW5pdGlhbAphbGxvY2F0aW9uKSBhbmQgbWlzc2luZyBoZWxwZXJzIGZvciB0 aGF0LgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0K UkZDIFYyOgotIGZpeCB2Y3B1X3J1bnN0YXRlX2hlbHBlcigpClYxOgotIGFkZCBzcGVjaWFsIGhh bmRsaW5nIGZvciBpZGxlIHVuaXQgaW4gdW5pdF9ydW5uYWJsZSgpIGFuZAogIHVuaXRfcnVubmFi bGVfc3RhdGUoKQpWMjoKLSBoYW5kbGUgYWZmaW5pdHlfYnJva2VuIGNvcnJlY3RseSAoSmFuIEJl dWxpY2gpCi0tLQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgfCAgNSArKy0KIHhlbi9jb21t b24vc2NoZWR1bGUuYyAgICAgIHwgMzYgKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2luY2x1ZGUv eGVuL3NjaGVkLWlmLmggfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFp bi5jCmluZGV4IDM3OTdmOTU0ZjUuLjBjNzYzY2ViMjUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v ZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtMTI1NSw3ICsxMjU1LDEwIEBA IGludCB2Y3B1X3Jlc2V0KHN0cnVjdCB2Y3B1ICp2KQogICAgIHYtPmFzeW5jX2V4Y2VwdGlvbl9t YXNrID0gMDsKICAgICBtZW1zZXQodi0+YXN5bmNfZXhjZXB0aW9uX3N0YXRlLCAwLCBzaXplb2Yo di0+YXN5bmNfZXhjZXB0aW9uX3N0YXRlKSk7CiAjZW5kaWYKLSAgICB2LT5hZmZpbml0eV9icm9r ZW4gPSAwOworICAgIGlmICggdi0+YWZmaW5pdHlfYnJva2VuICYgVkNQVV9BRkZJTklUWV9PVkVS UklERSApCisgICAgICAgIHZjcHVfdGVtcG9yYXJ5X2FmZmluaXR5KHYsIE5SX0NQVVMsIFZDUFVf QUZGSU5JVFlfT1ZFUlJJREUpOworICAgIGlmICggdi0+YWZmaW5pdHlfYnJva2VuICYgVkNQVV9B RkZJTklUWV9XQUlUICkKKyAgICAgICAgdmNwdV90ZW1wb3JhcnlfYWZmaW5pdHkodiwgTlJfQ1BV UywgVkNQVV9BRkZJTklUWV9XQUlUKTsKICAgICBjbGVhcl9iaXQoX1ZQRl9ibG9ja2VkLCAmdi0+ cGF1c2VfZmxhZ3MpOwogICAgIGNsZWFyX2JpdChfVlBGX2luX3Jlc2V0LCAmdi0+cGF1c2VfZmxh Z3MpOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3Nj aGVkdWxlLmMKaW5kZXggMmVjYjc2ZTNiOS4uMWY0NWZjNzM3MyAxMDA2NDQKLS0tIGEveGVuL2Nv bW1vbi9zY2hlZHVsZS5jCisrKyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtMjQwLDggKzI0 MCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2Y3B1X3J1bnN0YXRlX2NoYW5nZSgKICAgICBzX3Rp bWVfdCBkZWx0YTsKICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCA9IHYtPnNjaGVkX3VuaXQ7 CiAKLSAgICBBU1NFUlQodi0+cnVuc3RhdGUuc3RhdGUgIT0gbmV3X3N0YXRlKTsKICAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpLT5zY2hlZHVsZV9s b2NrKSk7CisgICAgaWYgKCB2LT5ydW5zdGF0ZS5zdGF0ZSA9PSBuZXdfc3RhdGUgKQorICAgICAg ICByZXR1cm47CiAKICAgICB2Y3B1X3VyZ2VudF9jb3VudF91cGRhdGUodik7CiAKQEAgLTI2Mywx NSArMjY0LDE2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2Y3B1X3J1bnN0YXRlX2NoYW5nZSgKIHN0 YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF91bml0X3J1bnN0YXRlX2NoYW5nZShzdHJ1Y3Qgc2NoZWRf dW5pdCAqdW5pdCwKICAgICBib29sIHJ1bm5pbmcsIHNfdGltZV90IG5ld19lbnRyeV90aW1lKQog ewotICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNwdV9saXN0OworICAgIHN0cnVjdCB2Y3B1 ICp2OwogCi0gICAgaWYgKCBydW5uaW5nICkKLSAgICAgICAgdmNwdV9ydW5zdGF0ZV9jaGFuZ2Uo diwgdi0+bmV3X3N0YXRlLCBuZXdfZW50cnlfdGltZSk7Ci0gICAgZWxzZQotICAgICAgICB2Y3B1 X3J1bnN0YXRlX2NoYW5nZSh2LAotICAgICAgICAgICAgKCh2LT5wYXVzZV9mbGFncyAmIFZQRl9i bG9ja2VkKSA/IFJVTlNUQVRFX2Jsb2NrZWQgOgotICAgICAgICAgICAgICh2Y3B1X3J1bm5hYmxl KHYpID8gUlVOU1RBVEVfcnVubmFibGUgOiBSVU5TVEFURV9vZmZsaW5lKSksCi0gICAgICAgICAg ICBuZXdfZW50cnlfdGltZSk7CisgICAgZm9yX2VhY2hfc2NoZWRfdW5pdF92Y3B1ICggdW5pdCwg diApCisgICAgICAgIGlmICggcnVubmluZyApCisgICAgICAgICAgICB2Y3B1X3J1bnN0YXRlX2No YW5nZSh2LCB2LT5uZXdfc3RhdGUsIG5ld19lbnRyeV90aW1lKTsKKyAgICAgICAgZWxzZQorICAg ICAgICAgICAgdmNwdV9ydW5zdGF0ZV9jaGFuZ2UodiwKKyAgICAgICAgICAgICAgICAoKHYtPnBh dXNlX2ZsYWdzICYgVlBGX2Jsb2NrZWQpID8gUlVOU1RBVEVfYmxvY2tlZCA6CisgICAgICAgICAg ICAgICAgICh2Y3B1X3J1bm5hYmxlKHYpID8gUlVOU1RBVEVfcnVubmFibGUgOiBSVU5TVEFURV9v ZmZsaW5lKSksCisgICAgICAgICAgICAgICAgbmV3X2VudHJ5X3RpbWUpOwogfQogCiB2b2lkIHZj cHVfcnVuc3RhdGVfZ2V0KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZv ICpydW5zdGF0ZSkKQEAgLTEwMzUsOSArMTAzNyw5IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVs ZXIodW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgICAgIGlmICggY3B1bWFza19lbXB0eSgmb25s aW5lX2FmZmluaXR5KSAmJgogICAgICAgICAgICAgICAgICBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwg dW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBpZiAoIHVuaXQtPnZjcHVfbGlzdC0+YWZmaW5pdHlfYnJva2VuICkKKyAgICAgICAgICAgICAg ICBpZiAoIHNjaGVkX2NoZWNrX2FmZmluaXR5X2Jyb2tlbih1bml0KSApCiAgICAgICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgICAgICAvKiBUaGUgdmNwdSBpcyB0ZW1wb3JhcmlseSBwaW5u ZWQsIGNhbid0IG1vdmUgaXQuICovCisgICAgICAgICAgICAgICAgICAgIC8qIFRoZSB1bml0IGlz IHRlbXBvcmFyaWx5IHBpbm5lZCwgY2FuJ3QgbW92ZSBpdC4gKi8KICAgICAgICAgICAgICAgICAg ICAgdW5pdF9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBmbGFncywgdW5pdCk7CiAg ICAgICAgICAgICAgICAgICAgIHJldCA9IC1FQUREUklOVVNFOwogICAgICAgICAgICAgICAgICAg ICBicmVhazsKQEAgLTEzOTUsMTcgKzEzOTcsMTcgQEAgaW50IHZjcHVfdGVtcG9yYXJ5X2FmZmlu aXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1LCB1aW50OF90IHJlYXNvbikKICAg ICAgICAgICAgIHJldCA9IDA7CiAgICAgICAgICAgICB2LT5hZmZpbml0eV9icm9rZW4gJj0gfnJl YXNvbjsKICAgICAgICAgfQotICAgICAgICBpZiAoICFyZXQgJiYgIXYtPmFmZmluaXR5X2Jyb2tl biApCisgICAgICAgIGlmICggIXJldCAmJiAhc2NoZWRfY2hlY2tfYWZmaW5pdHlfYnJva2VuKHVu aXQpICkKICAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCB1bml0LT5jcHVfaGFyZF9h ZmZpbml0eV9zYXZlZCwgTlVMTCk7CiAgICAgfQogICAgIGVsc2UgaWYgKCBjcHUgPCBucl9jcHVf aWRzICkKICAgICB7CiAgICAgICAgIGlmICggKHYtPmFmZmluaXR5X2Jyb2tlbiAmIHJlYXNvbikg fHwKLSAgICAgICAgICAgICAodi0+YWZmaW5pdHlfYnJva2VuICYmIHYtPnByb2Nlc3NvciAhPSBj cHUpICkKKyAgICAgICAgICAgICAoc2NoZWRfY2hlY2tfYWZmaW5pdHlfYnJva2VuKHVuaXQpICYm IHYtPnByb2Nlc3NvciAhPSBjcHUpICkKICAgICAgICAgICAgIHJldCA9IC1FQlVTWTsKICAgICAg ICAgZWxzZSBpZiAoIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCBWQ1BVMk9OTElORSh2KSkgKQogICAg ICAgICB7Ci0gICAgICAgICAgICBpZiAoICF2LT5hZmZpbml0eV9icm9rZW4gKQorICAgICAgICAg ICAgaWYgKCAhc2NoZWRfY2hlY2tfYWZmaW5pdHlfYnJva2VuKHVuaXQpICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBjcHVtYXNrX2NvcHkodW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHlf c2F2ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQtPmNwdV9oYXJkX2FmZmlu aXR5KTsKQEAgLTE3MDEsMTQgKzE3MDMsMTQgQEAgc3RhdGljIHZvaWQgc2NoZWRfc3dpdGNoX3Vu aXRzKHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAqc2QsCiAgICAgICAgICAgICAgKG5leHQtPnZjcHVf bGlzdC0+cnVuc3RhdGUuc3RhdGUgPT0gUlVOU1RBVEVfcnVubmFibGUpID8KICAgICAgICAgICAg ICAobm93IC0gbmV4dC0+c3RhdGVfZW50cnlfdGltZSkgOiAwLCBwcmV2LT5uZXh0X3RpbWUpOwog Ci0gICAgQVNTRVJUKHByZXYtPnZjcHVfbGlzdC0+cnVuc3RhdGUuc3RhdGUgPT0gUlVOU1RBVEVf cnVubmluZyk7CisgICAgQVNTRVJUKHVuaXRfcnVubmluZyhwcmV2KSk7CiAKICAgICBUUkFDRV80 RChUUkNfU0NIRURfU1dJVENILCBwcmV2LT5kb21haW4tPmRvbWFpbl9pZCwgcHJldi0+dW5pdF9p ZCwKICAgICAgICAgICAgICBuZXh0LT5kb21haW4tPmRvbWFpbl9pZCwgbmV4dC0+dW5pdF9pZCk7 CiAKICAgICBzY2hlZF91bml0X3J1bnN0YXRlX2NoYW5nZShwcmV2LCBmYWxzZSwgbm93KTsKIAot ICAgIEFTU0VSVChuZXh0LT52Y3B1X2xpc3QtPnJ1bnN0YXRlLnN0YXRlICE9IFJVTlNUQVRFX3J1 bm5pbmcpOworICAgIEFTU0VSVCghdW5pdF9ydW5uaW5nKG5leHQpKTsKICAgICBzY2hlZF91bml0 X3J1bnN0YXRlX2NoYW5nZShuZXh0LCB0cnVlLCBub3cpOwogCiAgICAgLyoKQEAgLTE4MjksNyAr MTgzMSw3IEBAIHZvaWQgc2NoZWRfY29udGV4dF9zd2l0Y2hlZChzdHJ1Y3QgdmNwdSAqdnByZXYs IHN0cnVjdCB2Y3B1ICp2bmV4dCkKICAgICAgICAgICAgIHdoaWxlICggYXRvbWljX3JlYWQoJm5l eHQtPnJlbmRlenZvdXNfb3V0X2NudCkgKQogICAgICAgICAgICAgICAgIGNwdV9yZWxheCgpOwog ICAgIH0KLSAgICBlbHNlIGlmICggdnByZXYgIT0gdm5leHQgKQorICAgIGVsc2UgaWYgKCB2cHJl diAhPSB2bmV4dCAmJiBzY2hlZF9ncmFudWxhcml0eSA9PSAxICkKICAgICAgICAgY29udGV4dF9z YXZlZCh2cHJldik7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5o IGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKaW5kZXggYWE4OTZmNDllZi4uZTFkNjFhMDVi NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL3NjaGVkLWlmLmgKQEAgLTY3LDMyICs2Nyw3MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wg aXNfaWRsZV91bml0KGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogCiBzdGF0aWMgaW5s aW5lIGJvb2wgaXNfdW5pdF9vbmxpbmUoY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7 Ci0gICAgcmV0dXJuIGlzX3ZjcHVfb25saW5lKHVuaXQtPnZjcHVfbGlzdCk7CisgICAgc3RydWN0 IHZjcHUgKnY7CisKKyAgICBmb3JfZWFjaF9zY2hlZF91bml0X3ZjcHUgKCB1bml0LCB2ICkKKyAg ICAgICAgaWYgKCBpc192Y3B1X29ubGluZSh2KSApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdW5p dF9ydW5uaW5nKGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQoreworICAgIHJldHVybiB1 bml0LT5ydW5zdGF0ZV9jbnRbUlVOU1RBVEVfcnVubmluZ107CiB9CiAKIHN0YXRpYyBpbmxpbmUg Ym9vbCB1bml0X3J1bm5hYmxlKGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewotICAg IHJldHVybiB2Y3B1X3J1bm5hYmxlKHVuaXQtPnZjcHVfbGlzdCk7CisgICAgc3RydWN0IHZjcHUg KnY7CisKKyAgICBpZiAoIGlzX2lkbGVfdW5pdCh1bml0KSApCisgICAgICAgIHJldHVybiB0cnVl OworCisgICAgZm9yX2VhY2hfc2NoZWRfdW5pdF92Y3B1ICggdW5pdCwgdiApCisgICAgICAgIGlm ICggdmNwdV9ydW5uYWJsZSh2KSApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJl dHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIHVuaXRfcnVubmFibGVfc3RhdGUo Y29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnY7Ci0g ICAgYm9vbCBydW5uYWJsZTsKKyAgICBib29sIHJ1bm5hYmxlLCByZXQgPSBmYWxzZTsKKworICAg IGlmICggaXNfaWRsZV91bml0KHVuaXQpICkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBm b3JfZWFjaF9zY2hlZF91bml0X3ZjcHUgKCB1bml0LCB2ICkKKyAgICB7CisgICAgICAgIHJ1bm5h YmxlID0gdmNwdV9ydW5uYWJsZSh2KTsKKworICAgICAgICB2LT5uZXdfc3RhdGUgPSBydW5uYWJs ZSA/IFJVTlNUQVRFX3J1bm5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAo di0+cGF1c2VfZmxhZ3MgJiBWUEZfYmxvY2tlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/IFJVTlNUQVRFX2Jsb2NrZWQgOiBSVU5TVEFURV9vZmZsaW5lOwogCi0gICAgdiA9 IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBydW5uYWJsZSA9IHZjcHVfcnVubmFibGUodik7CisgICAg ICAgIGlmICggcnVubmFibGUgKQorICAgICAgICAgICAgcmV0ID0gdHJ1ZTsKKyAgICB9CiAKLSAg ICB2LT5uZXdfc3RhdGUgPSBydW5uYWJsZSA/IFJVTlNUQVRFX3J1bm5pbmcKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6ICh2LT5wYXVzZV9mbGFncyAmIFZQRl9ibG9ja2VkKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPyBSVU5TVEFURV9ibG9ja2VkIDogUlVOU1RBVEVfb2Zm bGluZTsKLSAgICByZXR1cm4gcnVubmFibGU7CisgICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGlj IGlubGluZSB2b2lkIHNjaGVkX3NldF9yZXMoc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnJlcykK IHsKLSAgICB1bml0LT52Y3B1X2xpc3QtPnByb2Nlc3NvciA9IHJlcy0+cHJvY2Vzc29yOworICAg IGludCBjcHUgPSBjcHVtYXNrX2ZpcnN0KHJlcy0+Y3B1cyk7CisgICAgc3RydWN0IHZjcHUgKnY7 CisKKyAgICBmb3JfZWFjaF9zY2hlZF91bml0X3ZjcHUgKCB1bml0LCB2ICkKKyAgICB7CisgICAg ICAgIEFTU0VSVChjcHUgPCBucl9jcHVfaWRzKTsKKyAgICAgICAgdi0+cHJvY2Vzc29yID0gY3B1 OworICAgICAgICBjcHUgPSBjcHVtYXNrX25leHQoY3B1LCByZXMtPmNwdXMpOworICAgIH0KKwog ICAgIHVuaXQtPnJlcyA9IHJlczsKIH0KIApAQCAtMTA0LDI1ICsxNDIsMzcgQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBpbnQgc2NoZWRfdW5pdF9jcHUoc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfc2V0X3BhdXNlX2ZsYWdzKHN0cnVjdCBzY2hlZF91 bml0ICp1bml0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgYml0KQogewotICAgIF9fc2V0X2JpdChiaXQsICZ1bml0LT52Y3B1X2xpc3QtPnBh dXNlX2ZsYWdzKTsKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAgIGZvcl9lYWNoX3NjaGVkX3Vu aXRfdmNwdSAoIHVuaXQsIHYgKQorICAgICAgICBfX3NldF9iaXQoYml0LCAmdi0+cGF1c2VfZmxh Z3MpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xlYXJfcGF1c2VfZmxhZ3Moc3Ry dWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGJpdCkKIHsKLSAgICBfX2NsZWFyX2JpdChiaXQsICZ1bml0 LT52Y3B1X2xpc3QtPnBhdXNlX2ZsYWdzKTsKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAgIGZv cl9lYWNoX3NjaGVkX3VuaXRfdmNwdSAoIHVuaXQsIHYgKQorICAgICAgICBfX2NsZWFyX2JpdChi aXQsICZ2LT5wYXVzZV9mbGFncyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9zZXRf cGF1c2VfZmxhZ3NfYXRvbWljKHN0cnVjdCBzY2hlZF91bml0ICp1bml0LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJpdCkKIHsK LSAgICBzZXRfYml0KGJpdCwgJnVuaXQtPnZjcHVfbGlzdC0+cGF1c2VfZmxhZ3MpOworICAgIHN0 cnVjdCB2Y3B1ICp2OworCisgICAgZm9yX2VhY2hfc2NoZWRfdW5pdF92Y3B1ICggdW5pdCwgdiAp CisgICAgICAgIHNldF9iaXQoYml0LCAmdi0+cGF1c2VfZmxhZ3MpOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgc2NoZWRfY2xlYXJfcGF1c2VfZmxhZ3NfYXRvbWljKHN0cnVjdCBzY2hlZF91bml0 ICp1bml0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgYml0KQogewotICAgIGNsZWFyX2JpdChiaXQsICZ1bml0LT52Y3B1X2xp c3QtPnBhdXNlX2ZsYWdzKTsKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAgIGZvcl9lYWNoX3Nj aGVkX3VuaXRfdmNwdSAoIHVuaXQsIHYgKQorICAgICAgICBjbGVhcl9iaXQoYml0LCAmdi0+cGF1 c2VfZmxhZ3MpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBzY2hlZF91bml0ICpzY2hlZF9p ZGxlX3VuaXQodW5zaWduZWQgaW50IGNwdSkKQEAgLTQ0OCwxMiArNDk4LDE4IEBAIHN0YXRpYyBp bmxpbmUgaW50IHNjaGVkX2FkanVzdF9jcHVwb29sKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMs CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF91bml0X3BhdXNlX25vc3luYyhzdHJ1Y3Qgc2No ZWRfdW5pdCAqdW5pdCkKIHsKLSAgICB2Y3B1X3BhdXNlX25vc3luYyh1bml0LT52Y3B1X2xpc3Qp OworICAgIHN0cnVjdCB2Y3B1ICp2OworCisgICAgZm9yX2VhY2hfc2NoZWRfdW5pdF92Y3B1ICgg dW5pdCwgdiApCisgICAgICAgIHZjcHVfcGF1c2Vfbm9zeW5jKHYpOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgc2NoZWRfdW5pdF91bnBhdXNlKHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewot ICAgIHZjcHVfdW5wYXVzZSh1bml0LT52Y3B1X2xpc3QpOworICAgIHN0cnVjdCB2Y3B1ICp2Owor CisgICAgZm9yX2VhY2hfc2NoZWRfdW5pdF92Y3B1ICggdW5pdCwgdiApCisgICAgICAgIHZjcHVf dW5wYXVzZSh2KTsKIH0KIAogI2RlZmluZSBSRUdJU1RFUl9TQ0hFRFVMRVIoeCkgc3RhdGljIGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKngjI19lbnRyeSBcCi0tIAoyLjE2LjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs