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 DBC46C41514 for ; Fri, 9 Aug 2019 14:59:04 +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 ADB3C20B7C for ; Fri, 9 Aug 2019 14:59:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ADB3C20B7C 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 1hw6Lx-0006Tu-PU; Fri, 09 Aug 2019 14:58:49 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hw6Lv-0006RW-Kc for xen-devel@lists.xenproject.org; Fri, 09 Aug 2019 14:58:47 +0000 X-Inumbo-ID: 2ee527a1-bab6-11e9-8980-bc764e045a96 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 2ee527a1-bab6-11e9-8980-bc764e045a96; Fri, 09 Aug 2019 14:58:45 +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 F3CB0B0B3; Fri, 9 Aug 2019 14:58:43 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Fri, 9 Aug 2019 16:58:03 +0200 Message-Id: <20190809145833.1020-19-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 18/48] xen/sched: make arinc653 scheduler vcpu agnostic. 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 , George Dunlap , Josh Whitehead , Robert VanVossen , 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" U3dpdGNoIGFyaW5jNjUzIHNjaGVkdWxlciBjb21wbGV0ZWx5IGZyb20gdmNwdSB0byBzY2hlZF91 bml0IHVzYWdlLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgotLS0KIHhlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYyB8IDIwOCArKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMSBpbnNlcnRp b25zKCspLCAxMDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9h cmluYzY1My5jIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCmluZGV4IDQxMzZjMzNlMmQu LjIxM2JjOTYwZWYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYworKysg Yi94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKQEAgLTQ1LDE1ICs0NSwxNSBAQAogI2RlZmlu ZSBERUZBVUxUX1RJTUVTTElDRSBNSUxMSVNFQ1MoMTApCiAKIC8qKgotICogUmV0cmlldmUgdGhl IGlkbGUgVkNQVSBmb3IgYSBnaXZlbiBwaHlzaWNhbCBDUFUKKyAqIFJldHJpZXZlIHRoZSBpZGxl IFVOSVQgZm9yIGEgZ2l2ZW4gcGh5c2ljYWwgQ1BVCiAgKi8KLSNkZWZpbmUgSURMRVRBU0soY3B1 KSAgKGlkbGVfdmNwdVtjcHVdKQorI2RlZmluZSBJRExFVEFTSyhjcHUpICAoc2NoZWRfaWRsZV91 bml0KGNwdSkpCiAKIC8qKgogICogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgQVJJTkMgNjUzLXNw ZWNpZmljIHNjaGVkdWxlciBkYXRhIGluZm9ybWF0aW9uCi0gKiBhc3NvY2lhdGVkIHdpdGggdGhl IGdpdmVuIFZDUFUgKHZjKQorICogYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBVTklUICh1bml0 KQogICovCi0jZGVmaW5lIEFWQ1BVKHZjKSAoKGFyaW5jNjUzX3ZjcHVfdCAqKSh2YyktPnNjaGVk X3VuaXQtPnByaXYpCisjZGVmaW5lIEFVTklUKHVuaXQpICgoYXJpbmM2NTNfdW5pdF90ICopKHVu aXQpLT5wcml2KQogCiAvKioKICAqIFJldHVybiB0aGUgZ2xvYmFsIHNjaGVkdWxlciBwcml2YXRl IGRhdGEgZ2l2ZW4gdGhlIHNjaGVkdWxlciBvcHMgcG9pbnRlcgpAQCAtNjUsMjAgKzY1LDIwIEBA CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCiAKIC8qKgotICogVGhlIGFyaW5jNjUzX3ZjcHVfdCBzdHJ1 Y3R1cmUgaG9sZHMgQVJJTkMgNjUzLXNjaGVkdWxlci1zcGVjaWZpYwotICogaW5mb3JtYXRpb24g Zm9yIGFsbCBub24taWRsZSBWQ1BVcworICogVGhlIGFyaW5jNjUzX3VuaXRfdCBzdHJ1Y3R1cmUg aG9sZHMgQVJJTkMgNjUzLXNjaGVkdWxlci1zcGVjaWZpYworICogaW5mb3JtYXRpb24gZm9yIGFs bCBub24taWRsZSBVTklUcwogICovCi10eXBlZGVmIHN0cnVjdCBhcmluYzY1M192Y3B1X3MKK3R5 cGVkZWYgc3RydWN0IGFyaW5jNjUzX3VuaXRfcwogewotICAgIC8qIHZjIHBvaW50cyB0byBYZW4n cyBzdHJ1Y3QgdmNwdSBzbyB3ZSBjYW4gZ2V0IHRvIGl0IGZyb20gYW4KLSAgICAgKiBhcmluYzY1 M192Y3B1X3QgcG9pbnRlci4gKi8KLSAgICBzdHJ1Y3QgdmNwdSAqICAgICAgIHZjOwotICAgIC8q IGF3YWtlIGhvbGRzIHdoZXRoZXIgdGhlIFZDUFUgaGFzIGJlZW4gd29rZW4gd2l0aCB2Y3B1X3dh a2UoKSAqLworICAgIC8qIHVuaXQgcG9pbnRzIHRvIFhlbidzIHN0cnVjdCBzY2hlZF91bml0IHNv IHdlIGNhbiBnZXQgdG8gaXQgZnJvbSBhbgorICAgICAqIGFyaW5jNjUzX3VuaXRfdCBwb2ludGVy LiAqLworICAgIHN0cnVjdCBzY2hlZF91bml0ICogdW5pdDsKKyAgICAvKiBhd2FrZSBob2xkcyB3 aGV0aGVyIHRoZSBVTklUIGhhcyBiZWVuIHdva2VuIHdpdGggdmNwdV93YWtlKCkgKi8KICAgICBi b29sX3QgICAgICAgICAgICAgIGF3YWtlOwotICAgIC8qIGxpc3QgaG9sZHMgdGhlIGxpbmtlZCBs aXN0IGluZm9ybWF0aW9uIGZvciB0aGUgbGlzdCB0aGlzIFZDUFUKKyAgICAvKiBsaXN0IGhvbGRz IHRoZSBsaW5rZWQgbGlzdCBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpc3QgdGhpcyBVTklUCiAgICAg ICogaXMgc3RvcmVkIGluICovCiAgICAgc3RydWN0IGxpc3RfaGVhZCAgICBsaXN0OwotfSBhcmlu YzY1M192Y3B1X3Q7Cit9IGFyaW5jNjUzX3VuaXRfdDsKIAogLyoqCiAgKiBUaGUgc2NoZWRfZW50 cnlfdCBzdHJ1Y3R1cmUgaG9sZHMgYSBzaW5nbGUgZW50cnkgb2YgdGhlCkBAIC04OSwxNCArODks MTQgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2NoZWRfZW50cnlfcwogICAgIC8qIGRvbV9oYW5kbGUgaG9s ZHMgdGhlIGhhbmRsZSAoIlVVSUQiKSBmb3IgdGhlIGRvbWFpbiB0aGF0IHRoaXMKICAgICAgKiBz Y2hlZHVsZSBlbnRyeSByZWZlcnMgdG8uICovCiAgICAgeGVuX2RvbWFpbl9oYW5kbGVfdCBkb21f aGFuZGxlOwotICAgIC8qIHZjcHVfaWQgaG9sZHMgdGhlIFZDUFUgbnVtYmVyIGZvciB0aGUgVkNQ VSB0aGF0IHRoaXMgc2NoZWR1bGUKKyAgICAvKiB1bml0X2lkIGhvbGRzIHRoZSBVTklUIG51bWJl ciBmb3IgdGhlIFVOSVQgdGhhdCB0aGlzIHNjaGVkdWxlCiAgICAgICogZW50cnkgcmVmZXJzIHRv LiAqLwotICAgIGludCAgICAgICAgICAgICAgICAgdmNwdV9pZDsKLSAgICAvKiBydW50aW1lIGhv bGRzIHRoZSBudW1iZXIgb2YgbmFub3NlY29uZHMgdGhhdCB0aGUgVkNQVSBmb3IgdGhpcworICAg IGludCAgICAgICAgICAgICAgICAgdW5pdF9pZDsKKyAgICAvKiBydW50aW1lIGhvbGRzIHRoZSBu dW1iZXIgb2YgbmFub3NlY29uZHMgdGhhdCB0aGUgVU5JVCBmb3IgdGhpcwogICAgICAqIHNjaGVk dWxlIGVudHJ5IHNob3VsZCBiZSBhbGxvd2VkIHRvIHJ1biBwZXIgbWFqb3IgZnJhbWUuICovCiAg ICAgc190aW1lX3QgICAgICAgICAgICBydW50aW1lOwotICAgIC8qIHZjIGhvbGRzIGEgcG9pbnRl ciB0byB0aGUgWGVuIFZDUFUgc3RydWN0dXJlICovCi0gICAgc3RydWN0IHZjcHUgKiAgICAgICB2 YzsKKyAgICAvKiB1bml0IGhvbGRzIGEgcG9pbnRlciB0byB0aGUgWGVuIHNjaGVkX3VuaXQgc3Ry dWN0dXJlICovCisgICAgc3RydWN0IHNjaGVkX3VuaXQgKiB1bml0OwogfSBzY2hlZF9lbnRyeV90 OwogCiAvKioKQEAgLTExMCw5ICsxMTAsOSBAQCB0eXBlZGVmIHN0cnVjdCBhNjUzc2NoZWRfcHJp dl9zCiAgICAgLyoqCiAgICAgICogVGhpcyBhcnJheSBob2xkcyB0aGUgYWN0aXZlIEFSSU5DIDY1 MyBzY2hlZHVsZS4KICAgICAgKgotICAgICAqIFdoZW4gdGhlIHN5c3RlbSB0cmllcyB0byBzdGFy dCBhIG5ldyBWQ1BVLCB0aGlzIHNjaGVkdWxlIGlzIHNjYW5uZWQKLSAgICAgKiB0byBsb29rIGZv ciBhIG1hdGNoaW5nIChoYW5kbGUsIFZDUFUgIykgcGFpci4gSWYgYm90aCB0aGUgaGFuZGxlIChV VUlEKQotICAgICAqIGFuZCBWQ1BVIG51bWJlciBtYXRjaCwgdGhlbiB0aGUgVkNQVSBpcyBhbGxv d2VkIHRvIHJ1bi4gSXRzIHJ1biB0aW1lCisgICAgICogV2hlbiB0aGUgc3lzdGVtIHRyaWVzIHRv IHN0YXJ0IGEgbmV3IFVOSVQsIHRoaXMgc2NoZWR1bGUgaXMgc2Nhbm5lZAorICAgICAqIHRvIGxv b2sgZm9yIGEgbWF0Y2hpbmcgKGhhbmRsZSwgVU5JVCAjKSBwYWlyLiBJZiBib3RoIHRoZSBoYW5k bGUgKFVVSUQpCisgICAgICogYW5kIFVOSVQgbnVtYmVyIG1hdGNoLCB0aGVuIHRoZSBVTklUIGlz IGFsbG93ZWQgdG8gcnVuLiBJdHMgcnVuIHRpbWUKICAgICAgKiAocGVyIG1ham9yIGZyYW1lKSBp cyBnaXZlbiBpbiB0aGUgdGhpcmQgZW50cnkgb2YgdGhlIHNjaGVkdWxlLgogICAgICAqLwogICAg IHNjaGVkX2VudHJ5X3Qgc2NoZWR1bGVbQVJJTkM2NTNfTUFYX0RPTUFJTlNfUEVSX1NDSEVEVUxF XTsKQEAgLTEyMyw4ICsxMjMsOCBAQCB0eXBlZGVmIHN0cnVjdCBhNjUzc2NoZWRfcHJpdl9zCiAg ICAgICoKICAgICAgKiBUaGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgbnVt YmVyIG9mIGRvbWFpbnMgaW4gdGhlCiAgICAgICogc2NoZWR1bGUuIEEgZG9tYWluIGNvdWxkIGJl IGxpc3RlZCBtdWx0aXBsZSB0aW1lcyB3aXRoaW4gdGhlIHNjaGVkdWxlLAotICAgICAqIG9yIGEg ZG9tYWluIHdpdGggbXVsdGlwbGUgVkNQVXMgY291bGQgaGF2ZSBhIGRpZmZlcmVudAotICAgICAq IHNjaGVkdWxlIGVudHJ5IGZvciBlYWNoIFZDUFUuCisgICAgICogb3IgYSBkb21haW4gd2l0aCBt dWx0aXBsZSBVTklUcyBjb3VsZCBoYXZlIGEgZGlmZmVyZW50CisgICAgICogc2NoZWR1bGUgZW50 cnkgZm9yIGVhY2ggVU5JVC4KICAgICAgKi8KICAgICB1bnNpZ25lZCBpbnQgbnVtX3NjaGVkdWxl X2VudHJpZXM7CiAKQEAgLTEzOSw5ICsxMzksOSBAQCB0eXBlZGVmIHN0cnVjdCBhNjUzc2NoZWRf cHJpdl9zCiAgICAgc190aW1lX3QgbmV4dF9tYWpvcl9mcmFtZTsKIAogICAgIC8qKgotICAgICAq IHBvaW50ZXJzIHRvIGFsbCBYZW4gVkNQVSBzdHJ1Y3R1cmVzIGZvciBpdGVyYXRpbmcgdGhyb3Vn aAorICAgICAqIHBvaW50ZXJzIHRvIGFsbCBYZW4gVU5JVCBzdHJ1Y3R1cmVzIGZvciBpdGVyYXRp bmcgdGhyb3VnaAogICAgICAqLwotICAgIHN0cnVjdCBsaXN0X2hlYWQgdmNwdV9saXN0OworICAg IHN0cnVjdCBsaXN0X2hlYWQgdW5pdF9saXN0OwogfSBhNjUzc2NoZWRfcHJpdl90OwogCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKQEAgLTE2Nyw1MCArMTY3LDUwIEBAIHN0YXRpYyBpbnQgZG9tX2hhbmRs ZV9jbXAoY29uc3QgeGVuX2RvbWFpbl9oYW5kbGVfdCBoMSwKIH0KIAogLyoqCi0gKiBUaGlzIGZ1 bmN0aW9uIHNlYXJjaGVzIHRoZSB2Y3B1IGxpc3QgdG8gZmluZCBhIFZDUFUgdGhhdCBtYXRjaGVz Ci0gKiB0aGUgZG9tYWluIGhhbmRsZSBhbmQgVkNQVSBJRCBzcGVjaWZpZWQuCisgKiBUaGlzIGZ1 bmN0aW9uIHNlYXJjaGVzIHRoZSB1bml0IGxpc3QgdG8gZmluZCBhIFVOSVQgdGhhdCBtYXRjaGVz CisgKiB0aGUgZG9tYWluIGhhbmRsZSBhbmQgVU5JVCBJRCBzcGVjaWZpZWQuCiAgKgogICogQHBh cmFtIG9wcyAgICAgICBQb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBz dHJ1Y3R1cmUKICAqIEBwYXJhbSBoYW5kbGUgICAgUG9pbnRlciB0byBoYW5kbGVyCi0gKiBAcGFy YW0gdmNwdV9pZCAgIFZDUFUgSUQKKyAqIEBwYXJhbSB1bml0X2lkICAgVU5JVCBJRAogICoKICAq IEByZXR1cm4gICAgICAgICAgPHVsPgotICogICAgICAgICAgICAgICAgICA8bGk+IFBvaW50ZXIg dG8gdGhlIG1hdGNoaW5nIFZDUFUgaWYgb25lIGlzIGZvdW5kCisgKiAgICAgICAgICAgICAgICAg IDxsaT4gUG9pbnRlciB0byB0aGUgbWF0Y2hpbmcgVU5JVCBpZiBvbmUgaXMgZm91bmQKICAqICAg ICAgICAgICAgICAgICAgPGxpPiBOVUxMIG90aGVyd2lzZQogICogICAgICAgICAgICAgICAgICA8 L3VsPgogICovCi1zdGF0aWMgc3RydWN0IHZjcHUgKmZpbmRfdmNwdSgKK3N0YXRpYyBzdHJ1Y3Qg c2NoZWRfdW5pdCAqZmluZF91bml0KAogICAgIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywK ICAgICB4ZW5fZG9tYWluX2hhbmRsZV90IGhhbmRsZSwKLSAgICBpbnQgdmNwdV9pZCkKKyAgICBp bnQgdW5pdF9pZCkKIHsKLSAgICBhcmluYzY1M192Y3B1X3QgKmF2Y3B1OworICAgIGFyaW5jNjUz X3VuaXRfdCAqYXVuaXQ7CiAKLSAgICAvKiBsb29wIHRocm91Z2ggdGhlIHZjcHVfbGlzdCBsb29r aW5nIGZvciB0aGUgc3BlY2lmaWVkIFZDUFUgKi8KLSAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICgg YXZjcHUsICZTQ0hFRF9QUklWKG9wcyktPnZjcHVfbGlzdCwgbGlzdCApCi0gICAgICAgIGlmICgg KGRvbV9oYW5kbGVfY21wKGF2Y3B1LT52Yy0+ZG9tYWluLT5oYW5kbGUsIGhhbmRsZSkgPT0gMCkK LSAgICAgICAgICAgICAmJiAodmNwdV9pZCA9PSBhdmNwdS0+dmMtPnZjcHVfaWQpICkKLSAgICAg ICAgICAgIHJldHVybiBhdmNwdS0+dmM7CisgICAgLyogbG9vcCB0aHJvdWdoIHRoZSB1bml0X2xp c3QgbG9va2luZyBmb3IgdGhlIHNwZWNpZmllZCBVTklUICovCisgICAgbGlzdF9mb3JfZWFjaF9l bnRyeSAoIGF1bml0LCAmU0NIRURfUFJJVihvcHMpLT51bml0X2xpc3QsIGxpc3QgKQorICAgICAg ICBpZiAoIChkb21faGFuZGxlX2NtcChhdW5pdC0+dW5pdC0+ZG9tYWluLT5oYW5kbGUsIGhhbmRs ZSkgPT0gMCkKKyAgICAgICAgICAgICAmJiAodW5pdF9pZCA9PSBhdW5pdC0+dW5pdC0+dW5pdF9p ZCkgKQorICAgICAgICAgICAgcmV0dXJuIGF1bml0LT51bml0OwogCiAgICAgcmV0dXJuIE5VTEw7 CiB9CiAKIC8qKgotICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBwb2ludGVyIHRvIHRoZSBY ZW4gVkNQVSBzdHJ1Y3R1cmUgZm9yIGVhY2ggZW50cnkKKyAqIFRoaXMgZnVuY3Rpb24gdXBkYXRl cyB0aGUgcG9pbnRlciB0byB0aGUgWGVuIFVOSVQgc3RydWN0dXJlIGZvciBlYWNoIGVudHJ5CiAg KiBpbiB0aGUgQVJJTkMgNjUzIHNjaGVkdWxlLgogICoKICAqIEBwYXJhbSBvcHMgICAgICAgUG9p bnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCiAgKiBAcmV0 dXJuICAgICAgICAgIDxOb25lPgogICovCi1zdGF0aWMgdm9pZCB1cGRhdGVfc2NoZWR1bGVfdmNw dXMoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQorc3RhdGljIHZvaWQgdXBkYXRlX3NjaGVk dWxlX3VuaXRzKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKIHsKICAgICB1bnNpZ25lZCBp bnQgaSwgbl9lbnRyaWVzID0gU0NIRURfUFJJVihvcHMpLT5udW1fc2NoZWR1bGVfZW50cmllczsK IAogICAgIGZvciAoIGkgPSAwOyBpIDwgbl9lbnRyaWVzOyBpKysgKQotICAgICAgICBTQ0hFRF9Q UklWKG9wcyktPnNjaGVkdWxlW2ldLnZjID0KLSAgICAgICAgICAgIGZpbmRfdmNwdShvcHMsCisg ICAgICAgIFNDSEVEX1BSSVYob3BzKS0+c2NoZWR1bGVbaV0udW5pdCA9CisgICAgICAgICAgICBm aW5kX3VuaXQob3BzLAogICAgICAgICAgICAgICAgICAgICAgIFNDSEVEX1BSSVYob3BzKS0+c2No ZWR1bGVbaV0uZG9tX2hhbmRsZSwKLSAgICAgICAgICAgICAgICAgICAgICBTQ0hFRF9QUklWKG9w cyktPnNjaGVkdWxlW2ldLnZjcHVfaWQpOworICAgICAgICAgICAgICAgICAgICAgIFNDSEVEX1BS SVYob3BzKS0+c2NoZWR1bGVbaV0udW5pdF9pZCk7CiB9CiAKIC8qKgpAQCAtMjY4LDEyICsyNjgs MTIgQEAgYXJpbmM2NTNfc2NoZWRfc2V0KAogICAgICAgICBtZW1jcHkoc2NoZWRfcHJpdi0+c2No ZWR1bGVbaV0uZG9tX2hhbmRsZSwKICAgICAgICAgICAgICAgIHNjaGVkdWxlLT5zY2hlZF9lbnRy aWVzW2ldLmRvbV9oYW5kbGUsCiAgICAgICAgICAgICAgICBzaXplb2Yoc2NoZWRfcHJpdi0+c2No ZWR1bGVbaV0uZG9tX2hhbmRsZSkpOwotICAgICAgICBzY2hlZF9wcml2LT5zY2hlZHVsZVtpXS52 Y3B1X2lkID0KKyAgICAgICAgc2NoZWRfcHJpdi0+c2NoZWR1bGVbaV0udW5pdF9pZCA9CiAgICAg ICAgICAgICBzY2hlZHVsZS0+c2NoZWRfZW50cmllc1tpXS52Y3B1X2lkOwogICAgICAgICBzY2hl ZF9wcml2LT5zY2hlZHVsZVtpXS5ydW50aW1lID0KICAgICAgICAgICAgIHNjaGVkdWxlLT5zY2hl ZF9lbnRyaWVzW2ldLnJ1bnRpbWU7CiAgICAgfQotICAgIHVwZGF0ZV9zY2hlZHVsZV92Y3B1cyhv cHMpOworICAgIHVwZGF0ZV9zY2hlZHVsZV91bml0cyhvcHMpOwogCiAgICAgLyoKICAgICAgKiBU aGUgbmV3bHktaW5zdGFsbGVkIHNjaGVkdWxlIHRha2VzIGVmZmVjdCBpbW1lZGlhdGVseS4gV2Ug ZG8gbm90IGV2ZW4KQEAgLTMxOSw3ICszMTksNyBAQCBhcmluYzY1M19zY2hlZF9nZXQoCiAgICAg ICAgIG1lbWNweShzY2hlZHVsZS0+c2NoZWRfZW50cmllc1tpXS5kb21faGFuZGxlLAogICAgICAg ICAgICAgICAgc2NoZWRfcHJpdi0+c2NoZWR1bGVbaV0uZG9tX2hhbmRsZSwKICAgICAgICAgICAg ICAgIHNpemVvZihzY2hlZF9wcml2LT5zY2hlZHVsZVtpXS5kb21faGFuZGxlKSk7Ci0gICAgICAg IHNjaGVkdWxlLT5zY2hlZF9lbnRyaWVzW2ldLnZjcHVfaWQgPSBzY2hlZF9wcml2LT5zY2hlZHVs ZVtpXS52Y3B1X2lkOworICAgICAgICBzY2hlZHVsZS0+c2NoZWRfZW50cmllc1tpXS52Y3B1X2lk ID0gc2NoZWRfcHJpdi0+c2NoZWR1bGVbaV0udW5pdF9pZDsKICAgICAgICAgc2NoZWR1bGUtPnNj aGVkX2VudHJpZXNbaV0ucnVudGltZSA9IHNjaGVkX3ByaXYtPnNjaGVkdWxlW2ldLnJ1bnRpbWU7 CiAgICAgfQogCkBAIC0zNTUsNyArMzU1LDcgQEAgYTY1M3NjaGVkX2luaXQoc3RydWN0IHNjaGVk dWxlciAqb3BzKQogCiAgICAgcHJ2LT5uZXh0X21ham9yX2ZyYW1lID0gMDsKICAgICBzcGluX2xv Y2tfaW5pdCgmcHJ2LT5sb2NrKTsKLSAgICBJTklUX0xJU1RfSEVBRCgmcHJ2LT52Y3B1X2xpc3Qp OworICAgIElOSVRfTElTVF9IRUFEKCZwcnYtPnVuaXRfbGlzdCk7CiAKICAgICByZXR1cm4gMDsK IH0KQEAgLTM3Myw3ICszNzMsNyBAQCBhNjUzc2NoZWRfZGVpbml0KHN0cnVjdCBzY2hlZHVsZXIg Km9wcykKIH0KIAogLyoqCi0gKiBUaGlzIGZ1bmN0aW9uIGFsbG9jYXRlcyBzY2hlZHVsZXItc3Bl Y2lmaWMgZGF0YSBmb3IgYSBWQ1BVCisgKiBUaGlzIGZ1bmN0aW9uIGFsbG9jYXRlcyBzY2hlZHVs ZXItc3BlY2lmaWMgZGF0YSBmb3IgYSBVTklUCiAgKgogICogQHBhcmFtIG9wcyAgICAgICBQb2lu dGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBzdHJ1Y3R1cmUKICAqIEBwYXJh bSB1bml0ICAgICAgUG9pbnRlciB0byBzdHJ1Y3Qgc2NoZWRfdW5pdApAQCAtMzg1LDM1ICszODUs MzQgQEAgYTY1M3NjaGVkX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg c3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGQp CiB7CiAgICAgYTY1M3NjaGVkX3ByaXZfdCAqc2NoZWRfcHJpdiA9IFNDSEVEX1BSSVYob3BzKTsK LSAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgYXJpbmM2NTNfdmNw dV90ICpzdmM7CisgICAgYXJpbmM2NTNfdW5pdF90ICpzdmM7CiAgICAgdW5zaWduZWQgaW50IGVu dHJ5OwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKICAgICAvKgogICAgICAqIEFsbG9jYXRl IG1lbW9yeSBmb3IgdGhlIEFSSU5DIDY1My1zcGVjaWZpYyBzY2hlZHVsZXIgZGF0YSBpbmZvcm1h dGlvbgotICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gVkNQVSAodmMpLgorICAgICAq IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gVU5JVCAodW5pdCkuCiAgICAgICovCi0gICAgc3Zj ID0geG1hbGxvYyhhcmluYzY1M192Y3B1X3QpOworICAgIHN2YyA9IHhtYWxsb2MoYXJpbmM2NTNf dW5pdF90KTsKICAgICBpZiAoIHN2YyA9PSBOVUxMICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAK ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWRfcHJpdi0+bG9jaywgZmxhZ3MpOwogCi0gICAg LyogCi0gICAgICogQWRkIGV2ZXJ5IG9uZSBvZiBkb20wJ3MgdmNwdXMgdG8gdGhlIHNjaGVkdWxl LCBhcyBsb25nIGFzIHRoZXJlIGFyZQorICAgIC8qCisgICAgICogQWRkIGV2ZXJ5IG9uZSBvZiBk b20wJ3MgdW5pdHMgdG8gdGhlIHNjaGVkdWxlLCBhcyBsb25nIGFzIHRoZXJlIGFyZQogICAgICAq IHNsb3RzIGF2YWlsYWJsZS4KICAgICAgKi8KLSAgICBpZiAoIHZjLT5kb21haW4tPmRvbWFpbl9p ZCA9PSAwICkKKyAgICBpZiAoIHVuaXQtPmRvbWFpbi0+ZG9tYWluX2lkID09IDAgKQogICAgIHsK ICAgICAgICAgZW50cnkgPSBzY2hlZF9wcml2LT5udW1fc2NoZWR1bGVfZW50cmllczsKIAogICAg ICAgICBpZiAoIGVudHJ5IDwgQVJJTkM2NTNfTUFYX0RPTUFJTlNfUEVSX1NDSEVEVUxFICkKICAg ICAgICAgewogICAgICAgICAgICAgc2NoZWRfcHJpdi0+c2NoZWR1bGVbZW50cnldLmRvbV9oYW5k bGVbMF0gPSAnXDAnOwotICAgICAgICAgICAgc2NoZWRfcHJpdi0+c2NoZWR1bGVbZW50cnldLnZj cHVfaWQgPSB2Yy0+dmNwdV9pZDsKKyAgICAgICAgICAgIHNjaGVkX3ByaXYtPnNjaGVkdWxlW2Vu dHJ5XS51bml0X2lkID0gdW5pdC0+dW5pdF9pZDsKICAgICAgICAgICAgIHNjaGVkX3ByaXYtPnNj aGVkdWxlW2VudHJ5XS5ydW50aW1lID0gREVGQVVMVF9USU1FU0xJQ0U7Ci0gICAgICAgICAgICBz Y2hlZF9wcml2LT5zY2hlZHVsZVtlbnRyeV0udmMgPSB2YzsKKyAgICAgICAgICAgIHNjaGVkX3By aXYtPnNjaGVkdWxlW2VudHJ5XS51bml0ID0gdW5pdDsKIAogICAgICAgICAgICAgc2NoZWRfcHJp di0+bWFqb3JfZnJhbWUgKz0gREVGQVVMVF9USU1FU0xJQ0U7CiAgICAgICAgICAgICArK3NjaGVk X3ByaXYtPm51bV9zY2hlZHVsZV9lbnRyaWVzOwpAQCAtNDIxLDE2ICs0MjAsMTYgQEAgYTY1M3Nj aGVkX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVk X3VuaXQgKnVuaXQsCiAgICAgfQogCiAgICAgLyoKLSAgICAgKiBJbml0aWFsaXplIG91ciBBUklO QyA2NTMgc2NoZWR1bGVyLXNwZWNpZmljIGluZm9ybWF0aW9uIGZvciB0aGUgVkNQVS4KLSAgICAg KiBUaGUgVkNQVSBzdGFydHMgImFzbGVlcC4iIFdoZW4gWGVuIGlzIHJlYWR5IGZvciB0aGUgVkNQ VSB0byBydW4sIGl0CisgICAgICogSW5pdGlhbGl6ZSBvdXIgQVJJTkMgNjUzIHNjaGVkdWxlci1z cGVjaWZpYyBpbmZvcm1hdGlvbiBmb3IgdGhlIFVOSVQuCisgICAgICogVGhlIFVOSVQgc3RhcnRz ICJhc2xlZXAuIiBXaGVuIFhlbiBpcyByZWFkeSBmb3IgdGhlIFVOSVQgdG8gcnVuLCBpdAogICAg ICAqIHdpbGwgY2FsbCB0aGUgdmNwdV93YWtlIHNjaGVkdWxlciBjYWxsYmFjayBmdW5jdGlvbiBh bmQgb3VyIHNjaGVkdWxlcgotICAgICAqIHdpbGwgbWFyayB0aGUgVkNQVSBhd2FrZS4KKyAgICAg KiB3aWxsIG1hcmsgdGhlIFVOSVQgYXdha2UuCiAgICAgICovCi0gICAgc3ZjLT52YyA9IHZjOwor ICAgIHN2Yy0+dW5pdCA9IHVuaXQ7CiAgICAgc3ZjLT5hd2FrZSA9IDA7Ci0gICAgaWYgKCAhaXNf aWRsZV92Y3B1KHZjKSApCi0gICAgICAgIGxpc3RfYWRkKCZzdmMtPmxpc3QsICZTQ0hFRF9QUklW KG9wcyktPnZjcHVfbGlzdCk7Ci0gICAgdXBkYXRlX3NjaGVkdWxlX3ZjcHVzKG9wcyk7CisgICAg aWYgKCAhaXNfaWRsZV91bml0KHVuaXQpICkKKyAgICAgICAgbGlzdF9hZGQoJnN2Yy0+bGlzdCwg JlNDSEVEX1BSSVYob3BzKS0+dW5pdF9saXN0KTsKKyAgICB1cGRhdGVfc2NoZWR1bGVfdW5pdHMo b3BzKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkX3ByaXYtPmxvY2ssIGZs YWdzKTsKIApAQCAtNDM4LDI3ICs0MzcsMjcgQEAgYTY1M3NjaGVkX2FsbG9jX3ZkYXRhKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiB9CiAKIC8q KgotICogVGhpcyBmdW5jdGlvbiBmcmVlcyBzY2hlZHVsZXItc3BlY2lmaWMgVkNQVSBkYXRhCisg KiBUaGlzIGZ1bmN0aW9uIGZyZWVzIHNjaGVkdWxlci1zcGVjaWZpYyBVTklUIGRhdGEKICAqCiAg KiBAcGFyYW0gb3BzICAgICAgIFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1 bGVyIHN0cnVjdHVyZQogICovCiBzdGF0aWMgdm9pZAogYTY1M3NjaGVkX2ZyZWVfdmRhdGEoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogewotICAgIGFyaW5jNjUzX3Zj cHVfdCAqYXYgPSBwcml2OworICAgIGFyaW5jNjUzX3VuaXRfdCAqYXYgPSBwcml2OwogCiAgICAg aWYgKGF2ID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICggIWlzX2lkbGVfdmNw dShhdi0+dmMpICkKKyAgICBpZiAoICFpc19pZGxlX3VuaXQoYXYtPnVuaXQpICkKICAgICAgICAg bGlzdF9kZWwoJmF2LT5saXN0KTsKIAogICAgIHhmcmVlKGF2KTsKLSAgICB1cGRhdGVfc2NoZWR1 bGVfdmNwdXMob3BzKTsKKyAgICB1cGRhdGVfc2NoZWR1bGVfdW5pdHMob3BzKTsKIH0KIAogLyoq Ci0gKiBYZW4gc2NoZWR1bGVyIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHNsZWVwIGEgVkNQVQorICog WGVuIHNjaGVkdWxlciBjYWxsYmFjayBmdW5jdGlvbiB0byBzbGVlcCBhIFVOSVQKICAqCiAgKiBA cGFyYW0gb3BzICAgICAgIFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVy IHN0cnVjdHVyZQogICogQHBhcmFtIHVuaXQgICAgICBQb2ludGVyIHRvIHN0cnVjdCBzY2hlZF91 bml0CkBAIC00NjYsMjEgKzQ2NSwxOSBAQCBhNjUzc2NoZWRfZnJlZV92ZGF0YShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKnByaXYpCiBzdGF0aWMgdm9pZAogYTY1M3NjaGVkX3Vu aXRfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAq dW5pdCkKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0KLSAgICBp ZiAoIEFWQ1BVKHZjKSAhPSBOVUxMICkKLSAgICAgICAgQVZDUFUodmMpLT5hd2FrZSA9IDA7Cisg ICAgaWYgKCBBVU5JVCh1bml0KSAhPSBOVUxMICkKKyAgICAgICAgQVVOSVQodW5pdCktPmF3YWtl ID0gMDsKIAogICAgIC8qCi0gICAgICogSWYgdGhlIFZDUFUgYmVpbmcgcHV0IHRvIHNsZWVwIGlz IHRoZSBzYW1lIG9uZSB0aGF0IGlzIGN1cnJlbnRseQorICAgICAqIElmIHRoZSBVTklUIGJlaW5n IHB1dCB0byBzbGVlcCBpcyB0aGUgc2FtZSBvbmUgdGhhdCBpcyBjdXJyZW50bHkKICAgICAgKiBy dW5uaW5nLCByYWlzZSBhIHNvZnRpcnEgdG8gaW52b2tlIHRoZSBzY2hlZHVsZXIgdG8gc3dpdGNo IGRvbWFpbnMuCiAgICAgICovCi0gICAgaWYgKCBnZXRfc2NoZWRfcmVzKHZjLT5wcm9jZXNzb3Ip LT5jdXJyID09IHVuaXQgKQotICAgICAgICBjcHVfcmFpc2Vfc29mdGlycSh2Yy0+cHJvY2Vzc29y LCBTQ0hFRFVMRV9TT0ZUSVJRKTsKKyAgICBpZiAoIGdldF9zY2hlZF9yZXMoc2NoZWRfdW5pdF9j cHUodW5pdCkpLT5jdXJyID09IHVuaXQgKQorICAgICAgICBjcHVfcmFpc2Vfc29mdGlycShzY2hl ZF91bml0X2NwdSh1bml0KSwgU0NIRURVTEVfU09GVElSUSk7CiB9CiAKIC8qKgotICogWGVuIHNj aGVkdWxlciBjYWxsYmFjayBmdW5jdGlvbiB0byB3YWtlIHVwIGEgVkNQVQorICogWGVuIHNjaGVk dWxlciBjYWxsYmFjayBmdW5jdGlvbiB0byB3YWtlIHVwIGEgVU5JVAogICoKICAqIEBwYXJhbSBv cHMgICAgICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0 dXJlCiAgKiBAcGFyYW0gdW5pdCAgICAgIFBvaW50ZXIgdG8gc3RydWN0IHNjaGVkX3VuaXQKQEAg LTQ4OCwyNCArNDg1LDIyIEBAIGE2NTNzY2hlZF91bml0X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiBzdGF0aWMgdm9pZAogYTY1M3Nj aGVkX3VuaXRfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91 bml0ICp1bml0KQogewotICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKKyAg ICBpZiAoIEFVTklUKHVuaXQpICE9IE5VTEwgKQorICAgICAgICBBVU5JVCh1bml0KS0+YXdha2Ug PSAxOwogCi0gICAgaWYgKCBBVkNQVSh2YykgIT0gTlVMTCApCi0gICAgICAgIEFWQ1BVKHZjKS0+ YXdha2UgPSAxOwotCi0gICAgY3B1X3JhaXNlX3NvZnRpcnEodmMtPnByb2Nlc3NvciwgU0NIRURV TEVfU09GVElSUSk7CisgICAgY3B1X3JhaXNlX3NvZnRpcnEoc2NoZWRfdW5pdF9jcHUodW5pdCks IFNDSEVEVUxFX1NPRlRJUlEpOwogfQogCiAvKioKLSAqIFhlbiBzY2hlZHVsZXIgY2FsbGJhY2sg ZnVuY3Rpb24gdG8gc2VsZWN0IGEgVkNQVSB0byBydW4uCisgKiBYZW4gc2NoZWR1bGVyIGNhbGxi YWNrIGZ1bmN0aW9uIHRvIHNlbGVjdCBhIFVOSVQgdG8gcnVuLgogICogVGhpcyBpcyB0aGUgbWFp biBzY2hlZHVsZXIgcm91dGluZS4KICAqCiAgKiBAcGFyYW0gb3BzICAgICAgIFBvaW50ZXIgdG8g dGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQogICogQHBhcmFtIG5vdyAg ICAgICBDdXJyZW50IHRpbWUKICAqCi0gKiBAcmV0dXJuICAgICAgICAgIEFkZHJlc3Mgb2YgdGhl IFZDUFUgc3RydWN0dXJlIHNjaGVkdWxlZCB0byBiZSBydW4gbmV4dAotICogICAgICAgICAgICAg ICAgICBBbW91bnQgb2YgdGltZSB0byBleGVjdXRlIHRoZSByZXR1cm5lZCBWQ1BVCi0gKiAgICAg ICAgICAgICAgICAgIEZsYWcgZm9yIHdoZXRoZXIgdGhlIFZDUFUgd2FzIG1pZ3JhdGVkCisgKiBA cmV0dXJuICAgICAgICAgIEFkZHJlc3Mgb2YgdGhlIFVOSVQgc3RydWN0dXJlIHNjaGVkdWxlZCB0 byBiZSBydW4gbmV4dAorICogICAgICAgICAgICAgICAgICBBbW91bnQgb2YgdGltZSB0byBleGVj dXRlIHRoZSByZXR1cm5lZCBVTklUCisgKiAgICAgICAgICAgICAgICAgIEZsYWcgZm9yIHdoZXRo ZXIgdGhlIFVOSVQgd2FzIG1pZ3JhdGVkCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgdGFza19zbGljZQog YTY1M3NjaGVkX2RvX3NjaGVkdWxlKApAQCAtNTE0LDcgKzUwOSw3IEBAIGE2NTNzY2hlZF9kb19z Y2hlZHVsZSgKICAgICBib29sX3QgdGFza2xldF93b3JrX3NjaGVkdWxlZCkKIHsKICAgICBzdHJ1 Y3QgdGFza19zbGljZSByZXQ7ICAgICAgICAgICAgICAgICAgICAgIC8qIGhvbGQgdGhlIGNob3Nl biBkb21haW4gKi8KLSAgICBzdHJ1Y3QgdmNwdSAqIG5ld190YXNrID0gTlVMTDsKKyAgICBzdHJ1 Y3Qgc2NoZWRfdW5pdCAqbmV3X3Rhc2sgPSBOVUxMOwogICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg c2NoZWRfaW5kZXggPSAwOwogICAgIHN0YXRpYyBzX3RpbWVfdCBuZXh0X3N3aXRjaF90aW1lOwog ICAgIGE2NTNzY2hlZF9wcml2X3QgKnNjaGVkX3ByaXYgPSBTQ0hFRF9QUklWKG9wcyk7CkBAIC01 NTksMTQgKzU1NCwxNCBAQCBhNjUzc2NoZWRfZG9fc2NoZWR1bGUoCiAgICAgICogc2NoZWRfdW5p dCBzdHJ1Y3R1cmUuCiAgICAgICovCiAgICAgbmV3X3Rhc2sgPSAoc2NoZWRfaW5kZXggPCBzY2hl ZF9wcml2LT5udW1fc2NoZWR1bGVfZW50cmllcykKLSAgICAgICAgPyBzY2hlZF9wcml2LT5zY2hl ZHVsZVtzY2hlZF9pbmRleF0udmMKKyAgICAgICAgPyBzY2hlZF9wcml2LT5zY2hlZHVsZVtzY2hl ZF9pbmRleF0udW5pdAogICAgICAgICA6IElETEVUQVNLKGNwdSk7CiAKICAgICAvKiBDaGVjayB0 byBzZWUgaWYgdGhlIG5ldyB0YXNrIGNhbiBiZSBydW4gKGF3YWtlICYgcnVubmFibGUpLiAqLwog ICAgIGlmICggISgobmV3X3Rhc2sgIT0gTlVMTCkKLSAgICAgICAgICAgJiYgKEFWQ1BVKG5ld190 YXNrKSAhPSBOVUxMKQotICAgICAgICAgICAmJiBBVkNQVShuZXdfdGFzayktPmF3YWtlCi0gICAg ICAgICAgICYmIHZjcHVfcnVubmFibGUobmV3X3Rhc2spKSApCisgICAgICAgICAgICYmIChBVU5J VChuZXdfdGFzaykgIT0gTlVMTCkKKyAgICAgICAgICAgJiYgQVVOSVQobmV3X3Rhc2spLT5hd2Fr ZQorICAgICAgICAgICAmJiB1bml0X3J1bm5hYmxlKG5ld190YXNrKSkgKQogICAgICAgICBuZXdf dGFzayA9IElETEVUQVNLKGNwdSk7CiAgICAgQlVHX09OKG5ld190YXNrID09IE5VTEwpOwogCkBA IC01NzgsMjEgKzU3MywyMSBAQCBhNjUzc2NoZWRfZG9fc2NoZWR1bGUoCiAKICAgICBzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZzY2hlZF9wcml2LT5sb2NrLCBmbGFncyk7CiAKLSAgICAvKiBUYXNr bGV0IHdvcmsgKHdoaWNoIHJ1bnMgaW4gaWRsZSBWQ1BVIGNvbnRleHQpIG92ZXJyaWRlcyBhbGwg ZWxzZS4gKi8KKyAgICAvKiBUYXNrbGV0IHdvcmsgKHdoaWNoIHJ1bnMgaW4gaWRsZSBVTklUIGNv bnRleHQpIG92ZXJyaWRlcyBhbGwgZWxzZS4gKi8KICAgICBpZiAoIHRhc2tsZXRfd29ya19zY2hl ZHVsZWQgKQogICAgICAgICBuZXdfdGFzayA9IElETEVUQVNLKGNwdSk7CiAKICAgICAvKiBSdW5u aW5nIHRoaXMgdGFzayB3b3VsZCByZXN1bHQgaW4gYSBtaWdyYXRpb24gKi8KLSAgICBpZiAoICFp c19pZGxlX3ZjcHUobmV3X3Rhc2spCi0gICAgICAgICAmJiAobmV3X3Rhc2stPnByb2Nlc3NvciAh PSBjcHUpICkKKyAgICBpZiAoICFpc19pZGxlX3VuaXQobmV3X3Rhc2spCisgICAgICAgICAmJiAo c2NoZWRfdW5pdF9jcHUobmV3X3Rhc2spICE9IGNwdSkgKQogICAgICAgICBuZXdfdGFzayA9IElE TEVUQVNLKGNwdSk7CiAKICAgICAvKgogICAgICAqIFJldHVybiB0aGUgYW1vdW50IG9mIHRpbWUg dGhlIG5leHQgZG9tYWluIGhhcyB0byBydW4gYW5kIHRoZSBhZGRyZXNzCi0gICAgICogb2YgdGhl IHNlbGVjdGVkIHRhc2sncyBWQ1BVIHN0cnVjdHVyZS4KKyAgICAgKiBvZiB0aGUgc2VsZWN0ZWQg dGFzaydzIFVOSVQgc3RydWN0dXJlLgogICAgICAqLwogICAgIHJldC50aW1lID0gbmV4dF9zd2l0 Y2hfdGltZSAtIG5vdzsKLSAgICByZXQudGFzayA9IG5ld190YXNrLT5zY2hlZF91bml0OworICAg IHJldC50YXNrID0gbmV3X3Rhc2s7CiAgICAgcmV0Lm1pZ3JhdGVkID0gMDsKIAogICAgIEJVR19P TihyZXQudGltZSA8PSAwKTsKQEAgLTYwMSw3ICs1OTYsNyBAQCBhNjUzc2NoZWRfZG9fc2NoZWR1 bGUoCiB9CiAKIC8qKgotICogWGVuIHNjaGVkdWxlciBjYWxsYmFjayBmdW5jdGlvbiB0byBzZWxl Y3QgYSByZXNvdXJjZSBmb3IgdGhlIFZDUFUgdG8gcnVuIG9uCisgKiBYZW4gc2NoZWR1bGVyIGNh bGxiYWNrIGZ1bmN0aW9uIHRvIHNlbGVjdCBhIHJlc291cmNlIGZvciB0aGUgVU5JVCB0byBydW4g b24KICAqCiAgKiBAcGFyYW0gb3BzICAgICAgIFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0 aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQogICogQHBhcmFtIHVuaXQgICAgICBQb2ludGVyIHRvIHN0 cnVjdCBzY2hlZF91bml0CkBAIC02MTEsMjEgKzYwNiwyMCBAQCBhNjUzc2NoZWRfZG9fc2NoZWR1 bGUoCiBzdGF0aWMgc3RydWN0IHNjaGVkX3Jlc291cmNlICoKIGE2NTNzY2hlZF9waWNrX3Jlc291 cmNlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7Ci0gICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIGNwdW1hc2tf dCAqb25saW5lOwogICAgIHVuc2lnbmVkIGludCBjcHU7CiAKLSAgICAvKiAKLSAgICAgKiBJZiBw cmVzZW50LCBwcmVmZXIgdmMncyBjdXJyZW50IHByb2Nlc3NvciwgZWxzZQotICAgICAqIGp1c3Qg ZmluZCB0aGUgZmlyc3QgdmFsaWQgdmNwdSAuCisgICAgLyoKKyAgICAgKiBJZiBwcmVzZW50LCBw cmVmZXIgdW5pdCdzIGN1cnJlbnQgcHJvY2Vzc29yLCBlbHNlCisgICAgICoganVzdCBmaW5kIHRo ZSBmaXJzdCB2YWxpZCB1bml0LgogICAgICAqLwotICAgIG9ubGluZSA9IGNwdXBvb2xfZG9tYWlu X2NwdW1hc2sodmMtPmRvbWFpbik7CisgICAgb25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1bWFz ayh1bml0LT5kb21haW4pOwogCiAgICAgY3B1ID0gY3B1bWFza19maXJzdChvbmxpbmUpOwogCi0g ICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KHZjLT5wcm9jZXNzb3IsIG9ubGluZSkKKyAgICBpZiAo IGNwdW1hc2tfdGVzdF9jcHUoc2NoZWRfdW5pdF9jcHUodW5pdCksIG9ubGluZSkKICAgICAgICAg IHx8IChjcHUgPj0gbnJfY3B1X2lkcykgKQotICAgICAgICBjcHUgPSB2Yy0+cHJvY2Vzc29yOwor ICAgICAgICBjcHUgPSBzY2hlZF91bml0X2NwdSh1bml0KTsKIAogICAgIHJldHVybiBnZXRfc2No ZWRfcmVzKGNwdSk7CiB9CkBAIC02MzYsMTggKzYzMCwxOCBAQCBhNjUzc2NoZWRfcGlja19yZXNv dXJjZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 KQogICogQHBhcmFtIG5ld19vcHMgICBQb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNj aGVkdWxlciBzdHJ1Y3R1cmUKICAqIEBwYXJhbSBjcHUgICAgICAgVGhlIGNwdSB0aGF0IGlzIGNo YW5naW5nIHNjaGVkdWxlcgogICogQHBhcmFtIHBkYXRhICAgICBzY2hlZHVsZXIgc3BlY2lmaWMg UENQVSBkYXRhICh3ZSBkb24ndCBoYXZlIGFueSkKLSAqIEBwYXJhbSB2ZGF0YSAgICAgc2NoZWR1 bGVyIHNwZWNpZmljIFZDUFUgZGF0YSBvZiB0aGUgaWRsZSB2Y3B1CisgKiBAcGFyYW0gdmRhdGEg ICAgIHNjaGVkdWxlciBzcGVjaWZpYyBVTklUIGRhdGEgb2YgdGhlIGlkbGUgdW5pdAogICovCiBz dGF0aWMgc3BpbmxvY2tfdCAqCiBhNjUzX3N3aXRjaF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpu ZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEs IHZvaWQgKnZkYXRhKQogewogICAgIHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAqc2QgPSBnZXRfc2No ZWRfcmVzKGNwdSk7Ci0gICAgYXJpbmM2NTNfdmNwdV90ICpzdmMgPSB2ZGF0YTsKKyAgICBhcmlu YzY1M191bml0X3QgKnN2YyA9IHZkYXRhOwogCi0gICAgQVNTRVJUKCFwZGF0YSAmJiBzdmMgJiYg aXNfaWRsZV92Y3B1KHN2Yy0+dmMpKTsKKyAgICBBU1NFUlQoIXBkYXRhICYmIHN2YyAmJiBpc19p ZGxlX3VuaXQoc3ZjLT51bml0KSk7CiAKLSAgICBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfdW5pdC0+ cHJpdiA9IHZkYXRhOworICAgIHNjaGVkX2lkbGVfdW5pdChjcHUpLT5wcml2ID0gdmRhdGE7CiAK ICAgICByZXR1cm4gJnNkLT5fbG9jazsKIH0KLS0gCjIuMTYuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=