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=-10.0 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 8F791C49ED6 for ; Sat, 14 Sep 2019 08:55:26 +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 58DD520717 for ; Sat, 14 Sep 2019 08:55:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 58DD520717 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 1i93pr-0002Xa-UN; Sat, 14 Sep 2019 08:55:15 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93pp-0002Ty-Qv for xen-devel@lists.xenproject.org; Sat, 14 Sep 2019 08:55:13 +0000 X-Inumbo-ID: 135a736c-d6cd-11e9-95c1-12813bfff9fa Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 135a736c-d6cd-11e9-95c1-12813bfff9fa; Sat, 14 Sep 2019 08:53:09 +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 02147B67E; Sat, 14 Sep 2019 08:53:09 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Sat, 14 Sep 2019 10:52:49 +0200 Message-Id: <20190914085251.18816-46-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190914085251.18816-1-jgross@suse.com> References: <20190914085251.18816-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v3 45/47] xen/sched: support core scheduling for moving cpus to/from cpupools 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 , Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Dario Faggioli , Julien Grall , Jan Beulich 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" V2l0aCBjb3JlIHNjaGVkdWxpbmcgYWN0aXZlIGl0IGlzIG5lY2Vzc2FyeSB0byBtb3ZlIG11bHRp cGxlIGNwdXMgYXQKdGhlIHNhbWUgdGltZSB0byBvciBmcm9tIGEgY3B1cG9vbCBpbiBvcmRlciB0 byBhdm9pZCBzcGxpdCBzY2hlZHVsaW5nCnJlc291cmNlcyBpbiBiZXR3ZWVuLgoKU2lnbmVkLW9m Zi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjE6IG5ldyBwYXRjaAot LS0KIHhlbi9jb21tb24vY3B1cG9vbC5jICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9zY2hlZHVsZS5jICAgICAgfCAg IDMgKy0KIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oIHwgICAxICsKIDMgZmlsZXMgY2hhbmdl ZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9jcHVwb29sLmMgYi94ZW4vY29tbW9uL2NwdXBvb2wuYwppbmRleCBhZGEzYTdlODI0Li43 ZjE3M2Y1MDk5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2NwdXBvb2wuYworKysgYi94ZW4vY29t bW9uL2NwdXBvb2wuYwpAQCAtMjYzLDIzICsyNjMsMzAgQEAgc3RhdGljIGludCBjcHVwb29sX2Fz c2lnbl9jcHVfbG9ja2VkKHN0cnVjdCBjcHVwb29sICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogewog ICAgIGludCByZXQ7CiAgICAgc3RydWN0IGRvbWFpbiAqZDsKKyAgICBjb25zdCBjcHVtYXNrX3Qg KmNwdXM7CisKKyAgICBjcHVzID0gc2NoZWRfZ2V0X29wdF9jcHVtYXNrKGMtPm9wdF9ncmFudWxh cml0eSwgY3B1KTsKIAogICAgIGlmICggKGNwdXBvb2xfbW92aW5nX2NwdSA9PSBjcHUpICYmIChj ICE9IGNwdXBvb2xfY3B1X21vdmluZykgKQogICAgICAgICByZXR1cm4gLUVBRERSTk9UQVZBSUw7 Ci0gICAgcmV0ID0gc2NoZWR1bGVfY3B1X2FkZChjcHUsIGMpOworICAgIHJldCA9IHNjaGVkdWxl X2NwdV9hZGQoY3B1bWFza19maXJzdChjcHVzKSwgYyk7CiAgICAgaWYgKCByZXQgKQogICAgICAg ICByZXR1cm4gcmV0OwogCi0gICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmY3B1cG9vbF9mcmVl X2NwdXMpOworICAgIHJjdV9yZWFkX2xvY2soJnNjaGVkX3Jlc19yY3Vsb2NrKTsKKworICAgIGNw dW1hc2tfYW5kbm90KCZjcHVwb29sX2ZyZWVfY3B1cywgJmNwdXBvb2xfZnJlZV9jcHVzLCBjcHVz KTsKICAgICBpZiAoY3B1cG9vbF9tb3ZpbmdfY3B1ID09IGNwdSkKICAgICB7CiAgICAgICAgIGNw dXBvb2xfbW92aW5nX2NwdSA9IC0xOwogICAgICAgICBjcHVwb29sX3B1dChjcHVwb29sX2NwdV9t b3ZpbmcpOwogICAgICAgICBjcHVwb29sX2NwdV9tb3ZpbmcgPSBOVUxMOwogICAgIH0KLSAgICBj cHVtYXNrX3NldF9jcHUoY3B1LCBjLT5jcHVfdmFsaWQpOworICAgIGNwdW1hc2tfb3IoYy0+Y3B1 X3ZhbGlkLCBjLT5jcHVfdmFsaWQsIGNwdXMpOwogICAgIGNwdW1hc2tfYW5kKGMtPnJlc192YWxp ZCwgYy0+Y3B1X3ZhbGlkLCBzY2hlZF9yZXNfbWFzayk7CiAKKyAgICByY3VfcmVhZF91bmxvY2so JnNjaGVkX3Jlc19yY3Vsb2NrKTsKKwogICAgIHJjdV9yZWFkX2xvY2soJmRvbWxpc3RfcmVhZF9s b2NrKTsKICAgICBmb3JfZWFjaF9kb21haW5faW5fY3B1cG9vbChkLCBjKQogICAgIHsKQEAgLTI5 Myw2ICszMDAsNyBAQCBzdGF0aWMgaW50IGNwdXBvb2xfYXNzaWduX2NwdV9sb2NrZWQoc3RydWN0 IGNwdXBvb2wgKmMsIHVuc2lnbmVkIGludCBjcHUpCiBzdGF0aWMgaW50IGNwdXBvb2xfdW5hc3Np Z25fY3B1X2ZpbmlzaChzdHJ1Y3QgY3B1cG9vbCAqYykKIHsKICAgICBpbnQgY3B1ID0gY3B1cG9v bF9tb3ZpbmdfY3B1OworICAgIGNvbnN0IGNwdW1hc2tfdCAqY3B1czsKICAgICBzdHJ1Y3QgZG9t YWluICpkOwogICAgIGludCByZXQ7CiAKQEAgLTMwNSw3ICszMTMsMTAgQEAgc3RhdGljIGludCBj cHVwb29sX3VuYXNzaWduX2NwdV9maW5pc2goc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgICovCiAg ICAgcmN1X3JlYWRfbG9jaygmZG9tbGlzdF9yZWFkX2xvY2spOwogICAgIHJldCA9IGNwdV9kaXNh YmxlX3NjaGVkdWxlcihjcHUpOwotICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVwb29sX2Zy ZWVfY3B1cyk7CisKKyAgICByY3VfcmVhZF9sb2NrKCZzY2hlZF9yZXNfcmN1bG9jayk7CisgICAg Y3B1cyA9IGdldF9zY2hlZF9yZXMoY3B1KS0+Y3B1czsKKyAgICBjcHVtYXNrX29yKCZjcHVwb29s X2ZyZWVfY3B1cywgJmNwdXBvb2xfZnJlZV9jcHVzLCBjcHVzKTsKIAogICAgIC8qCiAgICAgICog Y3B1X2Rpc2FibGVfc2NoZWR1bGVyKCkgcmV0dXJuaW5nIGFuIGVycm9yIGRvZXNuJ3QgcmVxdWly ZSByZXNldHRpbmcKQEAgLTMxOCw3ICszMjksNyBAQCBzdGF0aWMgaW50IGNwdXBvb2xfdW5hc3Np Z25fY3B1X2ZpbmlzaChzdHJ1Y3QgY3B1cG9vbCAqYykKICAgICB7CiAgICAgICAgIHJldCA9IHNj aGVkdWxlX2NwdV9ybShjcHUpOwogICAgICAgICBpZiAoIHJldCApCi0gICAgICAgICAgICBjcHVt YXNrX2NsZWFyX2NwdShjcHUsICZjcHVwb29sX2ZyZWVfY3B1cyk7CisgICAgICAgICAgICBjcHVt YXNrX2FuZG5vdCgmY3B1cG9vbF9mcmVlX2NwdXMsICZjcHVwb29sX2ZyZWVfY3B1cywgY3B1cyk7 CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgY3B1cG9vbF9tb3ZpbmdfY3B1 ID0gLTE7CkBAIC0zMjYsNiArMzM3LDcgQEAgc3RhdGljIGludCBjcHVwb29sX3VuYXNzaWduX2Nw dV9maW5pc2goc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgICAgICAgICBjcHVwb29sX2NwdV9tb3Zp bmcgPSBOVUxMOwogICAgICAgICB9CiAgICAgfQorICAgIHJjdV9yZWFkX3VubG9jaygmc2NoZWRf cmVzX3JjdWxvY2spOwogCiAgICAgZm9yX2VhY2hfZG9tYWluX2luX2NwdXBvb2woZCwgYykKICAg ICB7CkBAIC0zNDAsNiArMzUyLDcgQEAgc3RhdGljIGludCBjcHVwb29sX3VuYXNzaWduX2NwdV9z dGFydChzdHJ1Y3QgY3B1cG9vbCAqYywgdW5zaWduZWQgaW50IGNwdSkKIHsKICAgICBpbnQgcmV0 OwogICAgIHN0cnVjdCBkb21haW4gKmQ7CisgICAgY29uc3QgY3B1bWFza190ICpjcHVzOwogCiAg ICAgc3Bpbl9sb2NrKCZjcHVwb29sX2xvY2spOwogICAgIHJldCA9IC1FQUREUk5PVEFWQUlMOwpA QCAtMzQ4LDcgKzM2MSwxMSBAQCBzdGF0aWMgaW50IGNwdXBvb2xfdW5hc3NpZ25fY3B1X3N0YXJ0 KHN0cnVjdCBjcHVwb29sICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICBnb3RvIG91dDsK IAogICAgIHJldCA9IDA7Ci0gICAgaWYgKCAoYy0+bl9kb20gPiAwKSAmJiAoY3B1bWFza193ZWln aHQoYy0+Y3B1X3ZhbGlkKSA9PSAxKSAmJgorICAgIHJjdV9yZWFkX2xvY2soJnNjaGVkX3Jlc19y Y3Vsb2NrKTsKKyAgICBjcHVzID0gZ2V0X3NjaGVkX3JlcyhjcHUpLT5jcHVzOworCisgICAgaWYg KCAoYy0+bl9kb20gPiAwKSAmJgorICAgICAgICAgKGNwdW1hc2tfd2VpZ2h0KGMtPmNwdV92YWxp ZCkgPT0gY3B1bWFza193ZWlnaHQoY3B1cykpICYmCiAgICAgICAgICAoY3B1ICE9IGNwdXBvb2xf bW92aW5nX2NwdSkgKQogICAgIHsKICAgICAgICAgcmN1X3JlYWRfbG9jaygmZG9tbGlzdF9yZWFk X2xvY2spOwpAQCAtMzcwLDkgKzM4NywxMCBAQCBzdGF0aWMgaW50IGNwdXBvb2xfdW5hc3NpZ25f Y3B1X3N0YXJ0KHN0cnVjdCBjcHVwb29sICpjLCB1bnNpZ25lZCBpbnQgY3B1KQogICAgIGNwdXBv b2xfbW92aW5nX2NwdSA9IGNwdTsKICAgICBhdG9taWNfaW5jKCZjLT5yZWZjbnQpOwogICAgIGNw dXBvb2xfY3B1X21vdmluZyA9IGM7Ci0gICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCBjLT5jcHVf dmFsaWQpOworICAgIGNwdW1hc2tfYW5kbm90KGMtPmNwdV92YWxpZCwgYy0+Y3B1X3ZhbGlkLCBj cHVzKTsKICAgICBjcHVtYXNrX2FuZChjLT5yZXNfdmFsaWQsIGMtPmNwdV92YWxpZCwgc2NoZWRf cmVzX21hc2spOwogCisgICAgcmN1X3JlYWRfdW5sb2NrKCZkb21saXN0X3JlYWRfbG9jayk7CiBv dXQ6CiAgICAgc3Bpbl91bmxvY2soJmNwdXBvb2xfbG9jayk7CiAKQEAgLTQxMiwxMSArNDMwLDEz IEBAIHN0YXRpYyBpbnQgY3B1cG9vbF91bmFzc2lnbl9jcHUoc3RydWN0IGNwdXBvb2wgKmMsIHVu c2lnbmVkIGludCBjcHUpCiB7CiAgICAgaW50IHdvcmtfY3B1OwogICAgIGludCByZXQ7CisgICAg dW5zaWduZWQgaW50IG1hc3Rlcl9jcHU7CiAKICAgICBkZWJ1Z3RyYWNlX3ByaW50aygiY3B1cG9v bF91bmFzc2lnbl9jcHUocG9vbD0lZCxjcHU9JWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAg IGMtPmNwdXBvb2xfaWQsIGNwdSk7CiAKLSAgICByZXQgPSBjcHVwb29sX3VuYXNzaWduX2NwdV9z dGFydChjLCBjcHUpOworICAgIG1hc3Rlcl9jcHUgPSBzY2hlZF9nZXRfcmVzb3VyY2VfY3B1KGNw dSk7CisgICAgcmV0ID0gY3B1cG9vbF91bmFzc2lnbl9jcHVfc3RhcnQoYywgbWFzdGVyX2NwdSk7 CiAgICAgaWYgKCByZXQgKQogICAgIHsKICAgICAgICAgZGVidWd0cmFjZV9wcmludGsoImNwdXBv b2xfdW5hc3NpZ25fY3B1KHBvb2w9JWQsY3B1PSVkKSByZXQgJWRcbiIsCkBAIC00MjQsMTIgKzQ0 NCwxMiBAQCBzdGF0aWMgaW50IGNwdXBvb2xfdW5hc3NpZ25fY3B1KHN0cnVjdCBjcHVwb29sICpj LCB1bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAotICAgIHdv cmtfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotICAgIGlmICggd29ya19jcHUgPT0gY3B1ICkK KyAgICB3b3JrX2NwdSA9IHNjaGVkX2dldF9yZXNvdXJjZV9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgp KTsKKyAgICBpZiAoIHdvcmtfY3B1ID09IG1hc3Rlcl9jcHUgKQogICAgIHsKICAgICAgICAgd29y a19jcHUgPSBjcHVtYXNrX2ZpcnN0KGNwdXBvb2wwLT5jcHVfdmFsaWQpOwotICAgICAgICBpZiAo IHdvcmtfY3B1ID09IGNwdSApCi0gICAgICAgICAgICB3b3JrX2NwdSA9IGNwdW1hc2tfbmV4dChj cHUsIGNwdXBvb2wwLT5jcHVfdmFsaWQpOworICAgICAgICBpZiAoIHdvcmtfY3B1ID09IG1hc3Rl cl9jcHUgKQorICAgICAgICAgICAgd29ya19jcHUgPSBjcHVtYXNrX2xhc3QoY3B1cG9vbDAtPmNw dV92YWxpZCk7CiAgICAgfQogICAgIHJldHVybiBjb250aW51ZV9oeXBlcmNhbGxfb25fY3B1KHdv cmtfY3B1LCBjcHVwb29sX3VuYXNzaWduX2NwdV9oZWxwZXIsIGMpOwogfQpAQCAtNDk1LDYgKzUx NSw3IEBAIHZvaWQgY3B1cG9vbF9ybV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKIHN0YXRpYyBp bnQgY3B1cG9vbF9jcHVfYWRkKHVuc2lnbmVkIGludCBjcHUpCiB7CiAgICAgaW50IHJldCA9IDA7 CisgICAgY29uc3QgY3B1bWFza190ICpjcHVzOwogCiAgICAgc3Bpbl9sb2NrKCZjcHVwb29sX2xv Y2spOwogICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdXBvb2xfbG9ja2VkX2NwdXMpOwpA QCAtNTA4LDcgKzUyOSwxMSBAQCBzdGF0aWMgaW50IGNwdXBvb2xfY3B1X2FkZCh1bnNpZ25lZCBp bnQgY3B1KQogICAgICAqLwogICAgIHJjdV9yZWFkX2xvY2soJnNjaGVkX3Jlc19yY3Vsb2NrKTsK ICAgICBnZXRfc2NoZWRfcmVzKGNwdSktPmNwdXBvb2wgPSBOVUxMOwotICAgIHJldCA9IGNwdXBv b2xfYXNzaWduX2NwdV9sb2NrZWQoY3B1cG9vbDAsIGNwdSk7CisKKyAgICBjcHVzID0gc2NoZWRf Z2V0X29wdF9jcHVtYXNrKGNwdXBvb2wwLT5vcHRfZ3JhbnVsYXJpdHksIGNwdSk7CisgICAgaWYg KCBjcHVtYXNrX3N1YnNldChjcHVzLCAmY3B1cG9vbF9mcmVlX2NwdXMpICkKKyAgICAgICAgcmV0 ID0gY3B1cG9vbF9hc3NpZ25fY3B1X2xvY2tlZChjcHVwb29sMCwgY3B1KTsKKwogICAgIHJjdV9y ZWFkX3VubG9jaygmc2NoZWRfcmVzX3JjdWxvY2spOwogCiAgICAgc3Bpbl91bmxvY2soJmNwdXBv b2xfbG9jayk7CkBAIC01NDMsMjcgKzU2OCwzMyBAQCBzdGF0aWMgdm9pZCBjcHVwb29sX2NwdV9y ZW1vdmUodW5zaWduZWQgaW50IGNwdSkKIHN0YXRpYyBpbnQgY3B1cG9vbF9jcHVfcmVtb3ZlX3By b2xvZ3VlKHVuc2lnbmVkIGludCBjcHUpCiB7CiAgICAgaW50IHJldCA9IDA7CisgICAgY3B1bWFz a190ICpjcHVzOworICAgIHVuc2lnbmVkIGludCBtYXN0ZXJfY3B1OwogCiAgICAgc3Bpbl9sb2Nr KCZjcHVwb29sX2xvY2spOwogCi0gICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgJmNwdXBv b2xfbG9ja2VkX2NwdXMpICkKKyAgICByY3VfcmVhZF9sb2NrKCZzY2hlZF9yZXNfcmN1bG9jayk7 CisgICAgY3B1cyA9IGdldF9zY2hlZF9yZXMoY3B1KS0+Y3B1czsKKyAgICBtYXN0ZXJfY3B1ID0g c2NoZWRfZ2V0X3Jlc291cmNlX2NwdShjcHUpOworICAgIGlmICggY3B1bWFza19pbnRlcnNlY3Rz KGNwdXMsICZjcHVwb29sX2xvY2tlZF9jcHVzKSApCiAgICAgICAgIHJldCA9IC1FQlVTWTsKICAg ICBlbHNlCiAgICAgICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVwb29sX2xvY2tlZF9jcHVz KTsKKyAgICByY3VfcmVhZF91bmxvY2soJnNjaGVkX3Jlc19yY3Vsb2NrKTsKIAogICAgIHNwaW5f dW5sb2NrKCZjcHVwb29sX2xvY2spOwogCiAgICAgaWYgKCByZXQgKQogICAgICAgICByZXR1cm4g IHJldDsKIAotICAgIGlmICggY3B1bWFza190ZXN0X2NwdShjcHUsIGNwdXBvb2wwLT5jcHVfdmFs aWQpICkKKyAgICBpZiAoIGNwdW1hc2tfdGVzdF9jcHUobWFzdGVyX2NwdSwgY3B1cG9vbDAtPmNw dV92YWxpZCkgKQogICAgIHsKICAgICAgICAgLyogQ3B1cG9vbDAgaXMgcG9wdWxhdGVkIG9ubHkg YWZ0ZXIgYWxsIGNwdXMgYXJlIHVwLiAqLwogICAgICAgICBBU1NFUlQoc3lzdGVtX3N0YXRlID09 IFNZU19TVEFURV9hY3RpdmUpOwogCi0gICAgICAgIHJldCA9IGNwdXBvb2xfdW5hc3NpZ25fY3B1 X3N0YXJ0KGNwdXBvb2wwLCBjcHUpOworICAgICAgICByZXQgPSBjcHVwb29sX3VuYXNzaWduX2Nw dV9zdGFydChjcHVwb29sMCwgbWFzdGVyX2NwdSk7CiAgICAgfQotICAgIGVsc2UgaWYgKCAhY3B1 bWFza190ZXN0X2NwdShjcHUsICZjcHVwb29sX2ZyZWVfY3B1cykgKQorICAgIGVsc2UgaWYgKCAh Y3B1bWFza190ZXN0X2NwdShtYXN0ZXJfY3B1LCAmY3B1cG9vbF9mcmVlX2NwdXMpICkKICAgICAg ICAgcmV0ID0gLUVOT0RFVjsKIAogICAgIHJldHVybiByZXQ7CkBAIC01ODAsMTIgKzYxMSwxMyBA QCBzdGF0aWMgdm9pZCBjcHVwb29sX2NwdV9yZW1vdmVfZm9yY2VkKHVuc2lnbmVkIGludCBjcHUp CiB7CiAgICAgc3RydWN0IGNwdXBvb2wgKipjOwogICAgIGludCByZXQ7CisgICAgdW5zaWduZWQg aW50IG1hc3Rlcl9jcHUgPSBzY2hlZF9nZXRfcmVzb3VyY2VfY3B1KGNwdSk7CiAKICAgICBmb3Jf ZWFjaF9jcHVwb29sICggYyApCiAgICAgewotICAgICAgICBpZiAoIGNwdW1hc2tfdGVzdF9jcHUo Y3B1LCAoKmMpLT5jcHVfdmFsaWQpICkKKyAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KG1h c3Rlcl9jcHUsICgqYyktPmNwdV92YWxpZCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXQg PSBjcHVwb29sX3VuYXNzaWduX2NwdV9zdGFydCgqYywgY3B1KTsKKyAgICAgICAgICAgIHJldCA9 IGNwdXBvb2xfdW5hc3NpZ25fY3B1X3N0YXJ0KCpjLCBtYXN0ZXJfY3B1KTsKICAgICAgICAgICAg IEJVR19PTihyZXQpOwogICAgICAgICAgICAgcmV0ID0gY3B1cG9vbF91bmFzc2lnbl9jcHVfZmlu aXNoKCpjKTsKICAgICAgICAgICAgIEJVR19PTihyZXQpOwpAQCAtNjUzLDI5ICs2ODUsNDUgQEAg aW50IGNwdXBvb2xfZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3AgKm9wKQog ICAgIGNhc2UgWEVOX1NZU0NUTF9DUFVQT09MX09QX0FERENQVToKICAgICB7CiAgICAgICAgIHVu c2lnbmVkIGNwdTsKKyAgICAgICAgY29uc3QgY3B1bWFza190ICpjcHVzOwogCiAgICAgICAgIGNw dSA9IG9wLT5jcHU7CiAgICAgICAgIGRlYnVndHJhY2VfcHJpbnRrKCJjcHVwb29sX2Fzc2lnbl9j cHUocG9vbD0lZCxjcHU9JWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+Y3B1 cG9vbF9pZCwgY3B1KTsKKwogICAgICAgICBzcGluX2xvY2soJmNwdXBvb2xfbG9jayk7CisKKyAg ICAgICAgYyA9IGNwdXBvb2xfZmluZF9ieV9pZChvcC0+Y3B1cG9vbF9pZCk7CisgICAgICAgIHJl dCA9IC1FTk9FTlQ7CisgICAgICAgIGlmICggYyA9PSBOVUxMICkKKyAgICAgICAgICAgIGdvdG8g YWRkY3B1X291dDsKICAgICAgICAgaWYgKCBjcHUgPT0gWEVOX1NZU0NUTF9DUFVQT09MX1BBUl9B TlkgKQotICAgICAgICAgICAgY3B1ID0gY3B1bWFza19maXJzdCgmY3B1cG9vbF9mcmVlX2NwdXMp OworICAgICAgICB7CisgICAgICAgICAgICBmb3JfZWFjaF9jcHUgKCBjcHUsICZjcHVwb29sX2Zy ZWVfY3B1cyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY3B1cyA9IHNjaGVkX2dl dF9vcHRfY3B1bWFzayhjLT5vcHRfZ3JhbnVsYXJpdHksIGNwdSk7CisgICAgICAgICAgICAgICAg aWYgKCBjcHVtYXNrX3N1YnNldChjcHVzLCAmY3B1cG9vbF9mcmVlX2NwdXMpICkKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSAtRU5P REVWOworICAgICAgICAgICAgaWYgKCBjcHUgPj0gbnJfY3B1X2lkcyApCisgICAgICAgICAgICAg ICAgZ290byBhZGRjcHVfb3V0OworICAgICAgICB9CiAgICAgICAgIHJldCA9IC1FSU5WQUw7CiAg ICAgICAgIGlmICggY3B1ID49IG5yX2NwdV9pZHMgKQogICAgICAgICAgICAgZ290byBhZGRjcHVf b3V0OwogICAgICAgICByZXQgPSAtRU5PREVWOwotICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3Rf Y3B1KGNwdSwgJmNwdXBvb2xfZnJlZV9jcHVzKSB8fAotICAgICAgICAgICAgIGNwdW1hc2tfdGVz dF9jcHUoY3B1LCAmY3B1cG9vbF9sb2NrZWRfY3B1cykgKQotICAgICAgICAgICAgZ290byBhZGRj cHVfb3V0OwotICAgICAgICBjID0gY3B1cG9vbF9maW5kX2J5X2lkKG9wLT5jcHVwb29sX2lkKTsK LSAgICAgICAgcmV0ID0gLUVOT0VOVDsKLSAgICAgICAgaWYgKCBjID09IE5VTEwgKQorICAgICAg ICBjcHVzID0gc2NoZWRfZ2V0X29wdF9jcHVtYXNrKGMtPm9wdF9ncmFudWxhcml0eSwgY3B1KTsK KyAgICAgICAgaWYgKCAhY3B1bWFza19zdWJzZXQoY3B1cywgJmNwdXBvb2xfZnJlZV9jcHVzKSB8 fAorICAgICAgICAgICAgIGNwdW1hc2tfaW50ZXJzZWN0cyhjcHVzLCAmY3B1cG9vbF9sb2NrZWRf Y3B1cykgKQogICAgICAgICAgICAgZ290byBhZGRjcHVfb3V0OwogICAgICAgICByZXQgPSBjcHVw b29sX2Fzc2lnbl9jcHVfbG9ja2VkKGMsIGNwdSk7CisKICAgICBhZGRjcHVfb3V0OgogICAgICAg ICBzcGluX3VubG9jaygmY3B1cG9vbF9sb2NrKTsKICAgICAgICAgZGVidWd0cmFjZV9wcmludGso ImNwdXBvb2xfYXNzaWduX2NwdShwb29sPSVkLGNwdT0lZCkgcmV0ICVkXG4iLAogICAgICAgICAg ICAgICAgICAgICAgICAgICBvcC0+Y3B1cG9vbF9pZCwgY3B1LCByZXQpOworCiAgICAgfQogICAg IGJyZWFrOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9u L3NjaGVkdWxlLmMKaW5kZXggNGQ1NmNkOTA3Zi4uNGIyY2NiN2RkYyAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9zY2hlZHVsZS5jCisrKyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtMjU2Niw4 ICsyNTY2LDcgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBjcHVfc2NoZWR1bGVfbmZi ID0gewogICAgIC5ub3RpZmllcl9jYWxsID0gY3B1X3NjaGVkdWxlX2NhbGxiYWNrCiB9OwogCi1z dGF0aWMgY29uc3QgY3B1bWFza190ICpzY2hlZF9nZXRfb3B0X2NwdW1hc2soZW51bSBzY2hlZF9n cmFuIG9wdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgY3B1KQorY29uc3QgY3B1bWFza190ICpzY2hlZF9nZXRfb3B0X2NwdW1hc2so ZW51bSBzY2hlZF9ncmFuIG9wdCwgdW5zaWduZWQgaW50IGNwdSkKIHsKICAgICBjb25zdCBjcHVt YXNrX3QgKm1hc2s7CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oIGIv eGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKaW5kZXggMTc3MGI5YmNhMS4uZjFlOGY0NGY2MiAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3NjaGVkLWlmLmgKQEAgLTYyNSw1ICs2MjUsNiBAQCBhZmZpbml0eV9iYWxhbmNlX2NwdW1h c2soY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsIGludCBzdGVwLAogfQogCiB2b2lkIHNj aGVkX3JtX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKK2NvbnN0IGNwdW1hc2tfdCAqc2NoZWRfZ2V0 X29wdF9jcHVtYXNrKGVudW0gc2NoZWRfZ3JhbiBvcHQsIHVuc2lnbmVkIGludCBjcHUpOwogCiAj ZW5kaWYgLyogX19YRU5fU0NIRURfSUZfSF9fICovCi0tIAoyLjE2LjQKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs