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 18F73C4CEC5 for ; Sat, 14 Sep 2019 08:54:36 +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 D9D9C20717 for ; Sat, 14 Sep 2019 08:54:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9D9C20717 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 1i93p2-00011N-7l; Sat, 14 Sep 2019 08:54:24 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93p0-0000z5-W7 for xen-devel@lists.xenproject.org; Sat, 14 Sep 2019 08:54:23 +0000 X-Inumbo-ID: 12df8652-d6cd-11e9-b76c-bc764e2007e4 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 12df8652-d6cd-11e9-b76c-bc764e2007e4; 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 C31B3B67C; Sat, 14 Sep 2019 08:53:07 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Sat, 14 Sep 2019 10:52:45 +0200 Message-Id: <20190914085251.18816-42-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 41/47] xen/sched: split schedule_cpu_switch() 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" SW5zdGVhZCBvZiBsZXR0aW5nIHNjaGVkdWxlX2NwdV9zd2l0Y2goKSBoYW5kbGUgbW92aW5nIGNw dXMgZnJvbSBhbmQKdG8gY3B1cG9vbHMsIHNwbGl0IGl0IGludG8gc2NoZWR1bGVfY3B1X2FkZCgp IGFuZCBzY2hlZHVsZV9jcHVfcm0oKS4KClRoaXMgd2lsbCBhbGxvdyB1cyB0byBkcm9wIGFsbG9j YXRpbmcvZnJlZWluZyBzY2hlZHVsZXIgZGF0YSBmb3IgZnJlZQpjcHVzIGFzIHRoZSBpZGxlIHNj aGVkdWxlciBkb2Vzbid0IG5lZWQgc3VjaCBkYXRhLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBH cm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjE6IG5ldyBwYXRjaAotLS0KIHhlbi9jb21tb24v Y3B1cG9vbC5jICAgIHwgICA0ICstCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICB8IDEyNSArKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRl L3hlbi9zY2hlZC5oIHwgICAzICstCiAzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyks IDU4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY3B1cG9vbC5jIGIveGVu L2NvbW1vbi9jcHVwb29sLmMKaW5kZXggYzdkOGE3NDhkNC4uYzNjMTEwOWJlOSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9jcHVwb29sLmMKKysrIGIveGVuL2NvbW1vbi9jcHVwb29sLmMKQEAgLTI2 Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGNwdXBvb2xfYXNzaWduX2NwdV9sb2NrZWQoc3RydWN0 IGNwdXBvb2wgKmMsIHVuc2lnbmVkIGludCBjcHUpCiAKICAgICBpZiAoIChjcHVwb29sX21vdmlu Z19jcHUgPT0gY3B1KSAmJiAoYyAhPSBjcHVwb29sX2NwdV9tb3ZpbmcpICkKICAgICAgICAgcmV0 dXJuIC1FQUREUk5PVEFWQUlMOwotICAgIHJldCA9IHNjaGVkdWxlX2NwdV9zd2l0Y2goY3B1LCBj KTsKKyAgICByZXQgPSBzY2hlZHVsZV9jcHVfYWRkKGNwdSwgYyk7CiAgICAgaWYgKCByZXQgKQog ICAgICAgICByZXR1cm4gcmV0OwogCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIGludCBjcHVw b29sX3VuYXNzaWduX2NwdV9maW5pc2goc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgICovCiAgICAg aWYgKCAhcmV0ICkKICAgICB7Ci0gICAgICAgIHJldCA9IHNjaGVkdWxlX2NwdV9zd2l0Y2goY3B1 LCBOVUxMKTsKKyAgICAgICAgcmV0ID0gc2NoZWR1bGVfY3B1X3JtKGNwdSk7CiAgICAgICAgIGlm ICggcmV0ICkKICAgICAgICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdXBvb2xfZnJl ZV9jcHVzKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVsZS5j IGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IGIzYzFhYTA4MjEuLjg2ZGRjYTgzZTkgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxl LmMKQEAgLTg2LDE1ICs4Niw2IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpfX3N0 YXJ0X3NjaGVkdWxlcnNfYXJyYXlbXSwgKl9fZW5kX3NjaGVkdWxlcnNfYXJyCiAKIHN0YXRpYyBz dHJ1Y3Qgc2NoZWR1bGVyIF9fcmVhZF9tb3N0bHkgb3BzOwogCi1zdGF0aWMgc3BpbmxvY2tfdCAq Ci1zY2hlZF9pZGxlX3N3aXRjaF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNp Z25lZCBpbnQgY3B1LAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQg KnZkYXRhKQotewotICAgIHNjaGVkX2lkbGVfdW5pdChjcHUpLT5wcml2ID0gTlVMTDsKLQotICAg IHJldHVybiAmc2NoZWRfZnJlZV9jcHVfbG9jazsKLX0KLQogc3RhdGljIHN0cnVjdCBzY2hlZF9y ZXNvdXJjZSAqCiBzY2hlZF9pZGxlX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CkBAIC0xMzQsNyArMTI1LDYgQEAg c3RhdGljIHN0cnVjdCBzY2hlZHVsZXIgc2NoZWRfaWRsZV9vcHMgPSB7CiAKICAgICAuYWxsb2Nf dmRhdGEgICAgPSBzY2hlZF9pZGxlX2FsbG9jX3ZkYXRhLAogICAgIC5mcmVlX3ZkYXRhICAgICA9 IHNjaGVkX2lkbGVfZnJlZV92ZGF0YSwKLSAgICAuc3dpdGNoX3NjaGVkICAgPSBzY2hlZF9pZGxl X3N3aXRjaF9zY2hlZCwKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKnVuaXQydmNw dV9jcHUoc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCkBAIC0yNTA5LDM2ICsyNDk5LDIyIEBAIHZv aWQgX19pbml0IHNjaGVkdWxlcl9pbml0KHZvaWQpCiB9CiAKIC8qCi0gKiBNb3ZlIGEgcENQVSBv dXRzaWRlIG9mIHRoZSBpbmZsdWVuY2Ugb2YgdGhlIHNjaGVkdWxlciBvZiBpdHMgY3VycmVudAot ICogY3B1cG9vbCwgb3Igc3ViamVjdCBpdCB0byB0aGUgc2NoZWR1bGVyIG9mIGEgbmV3IGNwdXBv b2wuCi0gKgotICogRm9yIHRoZSBwQ1BVcyB0aGF0IGFyZSByZW1vdmVkIGZyb20gdGhlaXIgY3B1 cG9vbCwgdGhlaXIgc2NoZWR1bGVyIGJlY29tZXMKLSAqICZzY2hlZF9pZGxlX29wcyAodGhlIGlk bGUgc2NoZWR1bGVyKS4KKyAqIE1vdmUgYSBwQ1BVIGZyb20gZnJlZSBjcHVzIChydW5uaW5nIHRo ZSBpZGxlIHNjaGVkdWxlcikgdG8gYSBjcHVwb29sCisgKiB1c2luZyBhbnkgInJlYWwiIHNjaGVk dWxlci4KKyAqIFRoZSBjcHUgaXMgc3RpbGwgbWFya2VkIGFzICJmcmVlIiBhbmQgbm90IHlldCB2 YWxpZCBmb3IgaXRzIGNwdXBvb2wuCiAgKi8KLWludCBzY2hlZHVsZV9jcHVfc3dpdGNoKHVuc2ln bmVkIGludCBjcHUsIHN0cnVjdCBjcHVwb29sICpjKQoraW50IHNjaGVkdWxlX2NwdV9hZGQodW5z aWduZWQgaW50IGNwdSwgc3RydWN0IGNwdXBvb2wgKmMpCiB7CiAgICAgc3RydWN0IHZjcHUgKmlk bGU7Ci0gICAgdm9pZCAqcHByaXYsICpwcHJpdl9vbGQsICp2cHJpdiwgKnZwcml2X29sZDsKLSAg ICBzdHJ1Y3Qgc2NoZWR1bGVyICpvbGRfb3BzID0gZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVs ZXI7Ci0gICAgc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcyA9IChjID09IE5VTEwpID8gJnNjaGVk X2lkbGVfb3BzIDogYy0+c2NoZWQ7CisgICAgdm9pZCAqcHByaXYsICp2cHJpdjsKKyAgICBzdHJ1 Y3Qgc2NoZWR1bGVyICpuZXdfb3BzID0gYy0+c2NoZWQ7CiAgICAgc3RydWN0IHNjaGVkX3Jlc291 cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsKLSAgICBzdHJ1Y3QgY3B1cG9vbCAqb2xkX3Bv b2wgPSBzZC0+Y3B1cG9vbDsKICAgICBzcGlubG9ja190ICpvbGRfbG9jaywgKm5ld19sb2NrOwog ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSAgICAvKgotICAgICAqIHBDUFVzIG9ubHkgbW92 ZSBmcm9tIGEgdmFsaWQgY3B1cG9vbCB0byBmcmVlIChpLmUuLCBvdXQgb2YgYW55IHBvb2wpLAot ICAgICAqIG9yIGZyb20gZnJlZSB0byBhIHZhbGlkIGNwdXBvb2wuIEluIHRoZSBmb3JtZXIgY2Fz ZSAod2hpY2ggaGFwcGVucyB3aGVuCi0gICAgICogYyBpcyBOVUxMKSwgd2Ugd2FudCB0aGUgQ1BV IHRvIGhhdmUgYmVlbiBtYXJrZWQgYXMgZnJlZSBhbHJlYWR5LCBhcwotICAgICAqIHdlbGwgYXMg dG8gbm90IGJlIHZhbGlkIGZvciB0aGUgc291cmNlIHBvb2wgYW55IGxvbmdlciwgd2hlbiB3ZSBn ZXQgdG8KLSAgICAgKiBoZXJlLiBJbiB0aGUgbGF0dGVyIGNhc2UgKHdoaWNoIGhhcHBlbnMgd2hl biBjIGlzIGEgdmFsaWQgY3B1cG9vbCksIHdlCi0gICAgICogd2FudCB0aGUgQ1BVIHRvIHN0aWxs IGJlIG1hcmtlZCBhcyBmcmVlLCBhcyB3ZWxsIGFzIHRvIG5vdCB5ZXQgYmUgdmFsaWQKLSAgICAg KiBmb3IgdGhlIGRlc3RpbmF0aW9uIHBvb2wuCi0gICAgICovCi0gICAgQVNTRVJUKGMgIT0gb2xk X3Bvb2wgJiYgKGMgIT0gTlVMTCB8fCBvbGRfcG9vbCAhPSBOVUxMKSk7CiAgICAgQVNTRVJUKGNw dW1hc2tfdGVzdF9jcHUoY3B1LCAmY3B1cG9vbF9mcmVlX2NwdXMpKTsKLSAgICBBU1NFUlQoKGMg PT0gTlVMTCAmJiAhY3B1bWFza190ZXN0X2NwdShjcHUsIG9sZF9wb29sLT5jcHVfdmFsaWQpKSB8 fAotICAgICAgICAgICAoYyAhPSBOVUxMICYmICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgYy0+Y3B1 X3ZhbGlkKSkpOworICAgIEFTU0VSVCghY3B1bWFza190ZXN0X2NwdShjcHUsIGMtPmNwdV92YWxp ZCkpOworICAgIEFTU0VSVChnZXRfc2NoZWRfcmVzKGNwdSktPmNwdXBvb2wgPT0gTlVMTCk7CiAK ICAgICAvKgogICAgICAqIFRvIHNldHVwIHRoZSBjcHUgZm9yIHRoZSBuZXcgc2NoZWR1bGVyIHdl IG5lZWQ6CkBAIC0yNTYzLDUyICsyNTM5LDkxIEBAIGludCBzY2hlZHVsZV9jcHVfc3dpdGNoKHVu c2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVwb29sICpjKQogICAgICAgICByZXR1cm4gLUVOT01F TTsKICAgICB9CiAKLSAgICBzY2hlZF9kb190aWNrX3N1c3BlbmQob2xkX29wcywgY3B1KTsKLQog ICAgIC8qCi0gICAgICogVGhlIGFjdHVhbCBzd2l0Y2gsIGluY2x1ZGluZyAoaWYgbmVjZXNzYXJ5 KSB0aGUgcmVyb3V0aW5nIG9mIHRoZQotICAgICAqIHNjaGVkdWxlciBsb2NrIHRvIHdoYXRldmVy IG5ld19vcHMgcHJlZmVycywgIG5lZWRzIHRvIGhhcHBlbiBpbiBvbmUKLSAgICAgKiBjcml0aWNh bCBzZWN0aW9uLCBwcm90ZWN0ZWQgYnkgb2xkX29wcycgbG9jaywgb3IgcmFjZXMgYXJlIHBvc3Np YmxlLgotICAgICAqIEl0IGlzLCBpbiBmYWN0LCB0aGUgbG9jayBvZiBhbm90aGVyIHNjaGVkdWxl ciB0aGF0IHdlIGFyZSB0YWtpbmcgKHRoZQotICAgICAqIHNjaGVkdWxlciBvZiB0aGUgY3B1cG9v bCB0aGF0IGNwdSBzdGlsbCBiZWxvbmdzIHRvKS4gQnV0IHRoYXQgaXMgb2sKLSAgICAgKiBhcywg YW55b25lIHRyeWluZyB0byBzY2hlZHVsZSBvbiB0aGlzIGNwdSB3aWxsIHNwaW4gdW50aWwgd2hl biB3ZQotICAgICAqIHJlbGVhc2UgdGhhdCBsb2NrIChib3R0b20gb2YgdGhpcyBmdW5jdGlvbiku IFdoZW4gaGUnbGwgZ2V0IHRoZSBsb2NrCi0gICAgICogLS10aGFua3MgdG8gdGhlIGxvb3AgaW5z aWRlICpfc2NoZWR1bGVfbG9jaygpIGZ1bmN0aW9ucy0tIGhlJ2xsIG5vdGljZQotICAgICAqIHRo YXQgdGhlIGxvY2sgaXRzZWxmIGNoYW5nZWQsIGFuZCByZXRyeSBhY3F1aXJpbmcgdGhlIG5ldyBv bmUgKHdoaWNoCi0gICAgICogd2lsbCBiZSB0aGUgY29ycmVjdCwgcmVtYXBwZWQgb25lLCBhdCB0 aGF0IHBvaW50KS4KKyAgICAgKiBUaGUgYWN0dWFsIHN3aXRjaCwgaW5jbHVkaW5nIHRoZSByZXJv dXRpbmcgb2YgdGhlIHNjaGVkdWxlciBsb2NrIHRvCisgICAgICogd2hhdGV2ZXIgbmV3X29wcyBw cmVmZXJzLCBuZWVkcyB0byBoYXBwZW4gaW4gb25lIGNyaXRpY2FsIHNlY3Rpb24sCisgICAgICog cHJvdGVjdGVkIGJ5IG9sZF9vcHMnIGxvY2ssIG9yIHJhY2VzIGFyZSBwb3NzaWJsZS4KKyAgICAg KiBJdCBpcywgaW4gZmFjdCwgdGhlIGxvY2sgb2YgdGhlIGlkbGUgc2NoZWR1bGVyIHRoYXQgd2Ug YXJlIHRha2luZy4KKyAgICAgKiBCdXQgdGhhdCBpcyBvayBhcyBhbnlvbmUgdHJ5aW5nIHRvIHNj aGVkdWxlIG9uIHRoaXMgY3B1IHdpbGwgc3BpbiB1bnRpbAorICAgICAqIHdoZW4gd2UgcmVsZWFz ZSB0aGF0IGxvY2sgKGJvdHRvbSBvZiB0aGlzIGZ1bmN0aW9uKS4gV2hlbiBoZSdsbCBnZXQgdGhl CisgICAgICogbG9jayAtLXRoYW5rcyB0byB0aGUgbG9vcCBpbnNpZGUgKl9zY2hlZHVsZV9sb2Nr KCkgZnVuY3Rpb25zLS0gaGUnbGwKKyAgICAgKiBub3RpY2UgdGhhdCB0aGUgbG9jayBpdHNlbGYg Y2hhbmdlZCwgYW5kIHJldHJ5IGFjcXVpcmluZyB0aGUgbmV3IG9uZQorICAgICAqICh3aGljaCB3 aWxsIGJlIHRoZSBjb3JyZWN0LCByZW1hcHBlZCBvbmUsIGF0IHRoYXQgcG9pbnQpLgogICAgICAq LwogICAgIG9sZF9sb2NrID0gcGNwdV9zY2hlZHVsZV9sb2NrX2lycXNhdmUoY3B1LCAmZmxhZ3Mp OwogCi0gICAgdnByaXZfb2xkID0gaWRsZS0+c2NoZWRfdW5pdC0+cHJpdjsKLSAgICBwcHJpdl9v bGQgPSBzZC0+c2NoZWRfcHJpdjsKICAgICBuZXdfbG9jayA9IHNjaGVkX3N3aXRjaF9zY2hlZChu ZXdfb3BzLCBjcHUsIHBwcml2LCB2cHJpdik7CiAKICAgICBzZC0+c2NoZWR1bGVyID0gbmV3X29w czsKICAgICBzZC0+c2NoZWRfcHJpdiA9IHBwcml2OwogCiAgICAgLyoKLSAgICAgKiBUaGUgZGF0 YSBhYm92ZSBpcyBwcm90ZWN0ZWQgdW5kZXIgbmV3X2xvY2ssIHdoaWNoIG1heSBiZSB1bmxvY2tl ZC4KLSAgICAgKiBBbm90aGVyIENQVSBjYW4gdGFrZSBuZXdfbG9jayBhcyBzb29uIGFzIHNkLT5z Y2hlZHVsZV9sb2NrIGlzIHZpc2libGUsCi0gICAgICogYW5kIG11c3Qgb2JzZXJ2ZSBhbGwgcHJp b3IgaW5pdGlhbGlzYXRpb24uCisgICAgICogUmVyb3V0ZSB0aGUgbG9jayB0byB0aGUgcGVyIHBD UFUgbG9jayBhcyAvbGFzdC8gdGhpbmcuIEluIGZhY3QsCisgICAgICogaWYgaXQgaXMgZnJlZSAo YW5kIGl0IGNhbiBiZSkgd2Ugd2FudCB0aGF0IGFueW9uZSB0aGF0IG1hbmFnZXMKKyAgICAgKiB0 YWtpbmcgaXQsIGZpbmRzIGFsbCB0aGUgaW5pdGlhbGl6YXRpb25zIHdlJ3ZlIGRvbmUgYWJvdmUg aW4gcGxhY2UuCiAgICAgICovCiAgICAgc21wX3dtYigpOwogICAgIHNkLT5zY2hlZHVsZV9sb2Nr ID0gbmV3X2xvY2s7CiAKLSAgICAvKiBfTm90XyBwY3B1X3NjaGVkdWxlX3VubG9jaygpOiBzY2hl ZHVsZV9sb2NrIG1heSBoYXZlIGNoYW5nZWQhICovCisgICAgLyogX05vdF8gcGNwdV9zY2hlZHVs ZV91bmxvY2soKTogc2NoZWR1bGVfbG9jayBoYXMgY2hhbmdlZCEgKi8KICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKG9sZF9sb2NrLCBmbGFncyk7CiAKICAgICBzY2hlZF9kb190aWNrX3Jlc3Vt ZShuZXdfb3BzLCBjcHUpOwogCisgICAgc2QtPmdyYW51bGFyaXR5ID0gYy0+Z3JhbnVsYXJpdHk7 CisgICAgc2QtPmNwdXBvb2wgPSBjOworICAgIC8qIFRoZSAgY3B1IGlzIGFkZGVkIHRvIGEgcG9v bCwgdHJpZ2dlciBpdCB0byBnbyBwaWNrIHVwIHNvbWUgd29yayAqLworICAgIGNwdV9yYWlzZV9z b2Z0aXJxKGNwdSwgU0NIRURVTEVfU09GVElSUSk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoK KyAqIFJlbW92ZSBhIHBDUFUgZnJvbSBpdHMgY3B1cG9vbC4gSXRzIHNjaGVkdWxlciBiZWNvbWVz ICZzY2hlZF9pZGxlX29wcworICogKHRoZSBpZGxlIHNjaGVkdWxlcikuCisgKiBUaGUgY3B1IGlz IGFscmVhZHkgbWFya2VkIGFzICJmcmVlIiBhbmQgbm90IHZhbGlkIGFueSBsb25nZXIgZm9yIGl0 cworICogY3B1cG9vbC4KKyAqLworaW50IHNjaGVkdWxlX2NwdV9ybSh1bnNpZ25lZCBpbnQgY3B1 KQoreworICAgIHN0cnVjdCB2Y3B1ICppZGxlOworICAgIHZvaWQgKnBwcml2X29sZCwgKnZwcml2 X29sZDsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUp OworICAgIHN0cnVjdCBzY2hlZHVsZXIgKm9sZF9vcHMgPSBzZC0+c2NoZWR1bGVyOworICAgIHNw aW5sb2NrX3QgKm9sZF9sb2NrOworICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKyAgICBBU1NF UlQoc2QtPmNwdXBvb2wgIT0gTlVMTCk7CisgICAgQVNTRVJUKGNwdW1hc2tfdGVzdF9jcHUoY3B1 LCAmY3B1cG9vbF9mcmVlX2NwdXMpKTsKKyAgICBBU1NFUlQoIWNwdW1hc2tfdGVzdF9jcHUoY3B1 LCBzZC0+Y3B1cG9vbC0+Y3B1X3ZhbGlkKSk7CisKKyAgICBpZGxlID0gaWRsZV92Y3B1W2NwdV07 CisKKyAgICBzY2hlZF9kb190aWNrX3N1c3BlbmQob2xkX29wcywgY3B1KTsKKworICAgIC8qIFNl ZSBjb21tZW50IGluIHNjaGVkdWxlX2NwdV9hZGQoKSByZWdhcmRpbmcgbG9jayBzd2l0Y2hpbmcu ICovCisgICAgb2xkX2xvY2sgPSBwY3B1X3NjaGVkdWxlX2xvY2tfaXJxc2F2ZShjcHUsICZmbGFn cyk7CisKKyAgICB2cHJpdl9vbGQgPSBpZGxlLT5zY2hlZF91bml0LT5wcml2OworICAgIHBwcml2 X29sZCA9IHNkLT5zY2hlZF9wcml2OworCisgICAgaWRsZS0+c2NoZWRfdW5pdC0+cHJpdiA9IE5V TEw7CisgICAgc2QtPnNjaGVkdWxlciA9ICZzY2hlZF9pZGxlX29wczsKKyAgICBzZC0+c2NoZWRf cHJpdiA9IE5VTEw7CisKKyAgICBzbXBfbWIoKTsKKyAgICBzZC0+c2NoZWR1bGVfbG9jayA9ICZz Y2hlZF9mcmVlX2NwdV9sb2NrOworCisgICAgLyogX05vdF8gcGNwdV9zY2hlZHVsZV91bmxvY2so KTogc2NoZWR1bGVfbG9jayBtYXkgaGF2ZSBjaGFuZ2VkISAqLworICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUob2xkX2xvY2ssIGZsYWdzKTsKKwogICAgIHNjaGVkX2RlaW5pdF9wZGF0YShvbGRf b3BzLCBwcHJpdl9vbGQsIGNwdSk7CiAKICAgICBzY2hlZF9mcmVlX3ZkYXRhKG9sZF9vcHMsIHZw cml2X29sZCk7CiAgICAgc2NoZWRfZnJlZV9wZGF0YShvbGRfb3BzLCBwcHJpdl9vbGQsIGNwdSk7 CiAKLSAgICBnZXRfc2NoZWRfcmVzKGNwdSktPmdyYW51bGFyaXR5ID0gYyA/IGMtPmdyYW51bGFy aXR5IDogMTsKLSAgICBnZXRfc2NoZWRfcmVzKGNwdSktPmNwdXBvb2wgPSBjOwotICAgIC8qIFdo ZW4gYSBjcHUgaXMgYWRkZWQgdG8gYSBwb29sLCB0cmlnZ2VyIGl0IHRvIGdvIHBpY2sgdXAgc29t ZSB3b3JrICovCi0gICAgaWYgKCBjICE9IE5VTEwgKQotICAgICAgICBjcHVfcmFpc2Vfc29mdGly cShjcHUsIFNDSEVEVUxFX1NPRlRJUlEpOworICAgIHNkLT5ncmFudWxhcml0eSA9IDE7CisgICAg c2QtPmNwdXBvb2wgPSBOVUxMOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCmluZGV4IGU5NDNi MDY2NDYuLmNjNjU5MjJiODggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCisr KyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCkBAIC05MTgsNyArOTE4LDggQEAgc3RydWN0IHNj aGVkdWxlcjsKIHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVkdWxlcl9nZXRfZGVmYXVsdCh2b2lkKTsK IHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVkdWxlcl9hbGxvYyh1bnNpZ25lZCBpbnQgc2NoZWRfaWQs IGludCAqcGVycik7CiB2b2lkIHNjaGVkdWxlcl9mcmVlKHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVk KTsKLWludCBzY2hlZHVsZV9jcHVfc3dpdGNoKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVw b29sICpjKTsKK2ludCBzY2hlZHVsZV9jcHVfYWRkKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBj cHVwb29sICpjKTsKK2ludCBzY2hlZHVsZV9jcHVfcm0odW5zaWduZWQgaW50IGNwdSk7CiB2b2lk IHZjcHVfc2V0X3BlcmlvZGljX3RpbWVyKHN0cnVjdCB2Y3B1ICp2LCBzX3RpbWVfdCB2YWx1ZSk7 CiBpbnQgY3B1X2Rpc2FibGVfc2NoZWR1bGVyKHVuc2lnbmVkIGludCBjcHUpOwogLyogV2UgbmVl ZCBpdCBpbiBkb20wX3NldHVwX3ZjcHUgKi8KLS0gCjIuMTYuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=