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, 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 BE7CEC33CA1 for ; Wed, 8 Jan 2020 15:24:00 +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 92CFA20720 for ; Wed, 8 Jan 2020 15:24:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 92CFA20720 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 1ipDBM-0004Of-0F; Wed, 08 Jan 2020 15:23:40 +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 1ipDBK-0004OS-44 for xen-devel@lists.xenproject.org; Wed, 08 Jan 2020 15:23:38 +0000 X-Inumbo-ID: d32cf8a1-322a-11ea-b82c-12813bfff9fa Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id d32cf8a1-322a-11ea-b82c-12813bfff9fa; Wed, 08 Jan 2020 15:23:32 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 9305CB1E4; Wed, 8 Jan 2020 15:23:31 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Wed, 8 Jan 2020 16:23:21 +0100 Message-Id: <20200108152328.27194-3-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200108152328.27194-1-jgross@suse.com> References: <20200108152328.27194-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v2 2/9] xen/sched: make sched-if.h really scheduler private 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 , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Dario Faggioli , Josh Whitehead , Meng Xu , Jan Beulich , Stewart Hildebrand , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= 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" aW5jbHVkZS94ZW4vc2NoZWQtaWYuaCBzaG91bGQgYmUgcHJpdmF0ZSB0byBzY2hlZHVsZXIgY29k ZSwgc28gbW92ZSBpdAp0byBjb21tb24vc2NoZWQvcHJpdmF0ZS5oIGFuZCBtb3ZlIHRoZSByZW1h aW5pbmcgdXNlIGNhc2VzIHRvCmNwdXBvb2wuYyBhbmQgY29yZS5jLgoKU2lnbmVkLW9mZi1ieTog SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogRGFyaW8gRmFnZ2lv bGkgPGRmYWdnaW9saUBzdXNlLmNvbT4KLS0tClYyOgotIHJlbmFtZSB0byBwcml2YXRlLmggKEFu ZHJldyBDb29wZXIpCi0tLQogeGVuL2FyY2gveDg2L2RvbTBfYnVpbGQuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDUgKy0KIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDcwIC0tLS0tLS0tCiB4ZW4vY29tbW9uL2RvbWN0bC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNSArLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21t b24vc2NoZWQvYXJpbmM2NTMuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiB4ZW4v Y29tbW9uL3NjaGVkL2NvcmUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE5MSArKysr KysrKysrKysrKysrKysrKy0KIHhlbi9jb21tb24vc2NoZWQvY3B1cG9vbC5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEzICstCiB4ZW4vY29tbW9uL3NjaGVkL2NyZWRpdC5jICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2NvbW1vbi9zY2hlZC9jcmVkaXQyLmMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHhlbi9jb21tb24vc2NoZWQvbnVsbC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4veGVuL3NjaGVkLWlmLmggPT4g Y29tbW9uL3NjaGVkL3ByaXZhdGUuaH0gICAgICB8ICAgMyAtCiB4ZW4vY29tbW9uL3NjaGVkL3J0 LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogeGVuL2luY2x1ZGUveGVu L2RvbWFpbi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogeGVuL2luY2x1ZGUv eGVuL3NjaGVkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogMTMgZmlsZXMg Y2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDIxMyBkZWxldGlvbnMoLSkKIHJlbmFtZSB4ZW4v e2luY2x1ZGUveGVuL3NjaGVkLWlmLmggPT4gY29tbW9uL3NjaGVkL3ByaXZhdGUuaH0gKDk5JSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L2Rv bTBfYnVpbGQuYwppbmRleCAyOGI5NjRlMDE4Li41NmMyZGVlMGZjIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvZG9tMF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb20wX2J1aWxkLmMKQEAg LTksNyArOSw2IEBACiAjaW5jbHVkZSA8eGVuL2xpYmVsZi5oPgogI2luY2x1ZGUgPHhlbi9wZm4u aD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNp bmNsdWRlIDx4ZW4vc29mdGlycS5oPgogCiAjaW5jbHVkZSA8YXNtL2FtZC5oPgpAQCAtMjI3LDkg KzIyNiw5IEBAIHVuc2lnbmVkIGludCBfX2luaXQgZG9tMF9tYXhfdmNwdXModm9pZCkKICAgICAg ICAgZG9tMF9ub2RlcyA9IG5vZGVfb25saW5lX21hcDsKICAgICBmb3JfZWFjaF9ub2RlX21hc2sg KCBub2RlLCBkb20wX25vZGVzICkKICAgICAgICAgY3B1bWFza19vcigmZG9tMF9jcHVzLCAmZG9t MF9jcHVzLCAmbm9kZV90b19jcHVtYXNrKG5vZGUpKTsKLSAgICBjcHVtYXNrX2FuZCgmZG9tMF9j cHVzLCAmZG9tMF9jcHVzLCBjcHVwb29sMC0+Y3B1X3ZhbGlkKTsKKyAgICBjcHVtYXNrX2FuZCgm ZG9tMF9jcHVzLCAmZG9tMF9jcHVzLCBjcHVwb29sX3ZhbGlkX2NwdXMoY3B1cG9vbDApKTsKICAg ICBpZiAoIGNwdW1hc2tfZW1wdHkoJmRvbTBfY3B1cykgKQotICAgICAgICBjcHVtYXNrX2NvcHko JmRvbTBfY3B1cywgY3B1cG9vbDAtPmNwdV92YWxpZCk7CisgICAgICAgIGNwdW1hc2tfY29weSgm ZG9tMF9jcHVzLCBjcHVwb29sX3ZhbGlkX2NwdXMoY3B1cG9vbDApKTsKIAogICAgIG1heF92Y3B1 cyA9IGNwdW1hc2tfd2VpZ2h0KCZkb20wX2NwdXMpOwogICAgIGlmICggb3B0X2RvbTBfbWF4X3Zj cHVzX21pbiA+IG1heF92Y3B1cyApCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIv eGVuL2NvbW1vbi9kb21haW4uYwppbmRleCAwYjExMDNmZGIyLi43MWE3YzI3NzZmIDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMKQEAgLTEw LDcgKzEwLDYgQEAKICNpbmNsdWRlIDx4ZW4vY3R5cGUuaD4KICNpbmNsdWRlIDx4ZW4vZXJyLmg+ CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Ci0jaW5jbHVkZSA8eGVuL3NjaGVkLWlmLmg+CiAjaW5j bHVkZSA8eGVuL2RvbWFpbi5oPgogI2luY2x1ZGUgPHhlbi9tbS5oPgogI2luY2x1ZGUgPHhlbi9l dmVudC5oPgpAQCAtNTY1LDc1ICs1NjQsNiBAQCB2b2lkIF9faW5pdCBzZXR1cF9zeXN0ZW1fZG9t YWlucyh2b2lkKQogI2VuZGlmCiB9CiAKLXZvaWQgZG9tYWluX3VwZGF0ZV9ub2RlX2FmZmluaXR5 KHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgY3B1bWFza192YXJfdCBkb21fY3B1bWFzaywgZG9t X2NwdW1hc2tfc29mdDsKLSAgICBjcHVtYXNrX3QgKmRvbV9hZmZpbml0eTsKLSAgICBjb25zdCBj cHVtYXNrX3QgKm9ubGluZTsKLSAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdDsKLSAgICB1bnNp Z25lZCBpbnQgY3B1OwotCi0gICAgLyogRG8gd2UgaGF2ZSB2Y3B1cyBhbHJlYWR5PyBJZiBub3Qs IG5vIG5lZWQgdG8gdXBkYXRlIG5vZGUtYWZmaW5pdHkuICovCi0gICAgaWYgKCAhZC0+dmNwdSB8 fCAhZC0+dmNwdVswXSApCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICggIXphbGxvY19jcHVt YXNrX3ZhcigmZG9tX2NwdW1hc2spICkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICggIXphbGxv Y19jcHVtYXNrX3ZhcigmZG9tX2NwdW1hc2tfc29mdCkgKQotICAgIHsKLSAgICAgICAgZnJlZV9j cHVtYXNrX3Zhcihkb21fY3B1bWFzayk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBv bmxpbmUgPSBjcHVwb29sX2RvbWFpbl9tYXN0ZXJfY3B1bWFzayhkKTsKLQotICAgIHNwaW5fbG9j aygmZC0+bm9kZV9hZmZpbml0eV9sb2NrKTsKLQotICAgIC8qCi0gICAgICogSWYgZC0+YXV0b19u b2RlX2FmZmluaXR5IGlzIHRydWUsIGxldCdzIGNvbXB1dGUgdGhlIGRvbWFpbidzCi0gICAgICog bm9kZS1hZmZpbml0eSBhbmQgdXBkYXRlIGQtPm5vZGVfYWZmaW5pdHkgYWNjb3JkaW5nbHkuIGlm IGZhbHNlLAotICAgICAqIGp1c3QgbGVhdmUgZC0+YXV0b19ub2RlX2FmZmluaXR5IGFsb25lLgot ICAgICAqLwotICAgIGlmICggZC0+YXV0b19ub2RlX2FmZmluaXR5ICkKLSAgICB7Ci0gICAgICAg IC8qCi0gICAgICAgICAqIFdlIHdhbnQgdGhlIG5hcnJvd2VzdCBwb3NzaWJsZSBzZXQgb2YgcGNw dXMgKHRvIGdldCB0aGUgbmFyb3dlc3QKLSAgICAgICAgICogcG9zc2libGUgc2V0IG9mIG5vZGVz KS4gV2hhdCB3ZSBuZWVkIGlzIHRoZSBjcHVtYXNrIG9mIHdoZXJlIHRoZQotICAgICAgICAgKiBk b21haW4gY2FuIHJ1biAodGhlIHVuaW9uIG9mIHRoZSBoYXJkIGFmZmluaXR5IG9mIGFsbCBpdHMg dmNwdXMpLAotICAgICAgICAgKiBhbmQgdGhlIGZ1bGwgbWFzayBvZiB3aGVyZSBpdCB3b3VsZCBw cmVmZXIgdG8gcnVuICh0aGUgdW5pb24gb2YKLSAgICAgICAgICogdGhlIHNvZnQgYWZmaW5pdHkg b2YgYWxsIGl0cyB2YXJpb3VzIHZjcHVzKS4gTGV0J3MgYnVpbGQgdGhlbS4KLSAgICAgICAgICov Ci0gICAgICAgIGZvcl9lYWNoX3NjaGVkX3VuaXQgKCBkLCB1bml0ICkKLSAgICAgICAgewotICAg ICAgICAgICAgY3B1bWFza19vcihkb21fY3B1bWFzaywgZG9tX2NwdW1hc2ssIHVuaXQtPmNwdV9o YXJkX2FmZmluaXR5KTsKLSAgICAgICAgICAgIGNwdW1hc2tfb3IoZG9tX2NwdW1hc2tfc29mdCwg ZG9tX2NwdW1hc2tfc29mdCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5pdC0+Y3B1X3NvZnRf YWZmaW5pdHkpOwotICAgICAgICB9Ci0gICAgICAgIC8qIEZpbHRlciBvdXQgbm9uLW9ubGluZSBj cHVzICovCi0gICAgICAgIGNwdW1hc2tfYW5kKGRvbV9jcHVtYXNrLCBkb21fY3B1bWFzaywgb25s aW5lKTsKLSAgICAgICAgQVNTRVJUKCFjcHVtYXNrX2VtcHR5KGRvbV9jcHVtYXNrKSk7Ci0gICAg ICAgIC8qIEFuZCBjb21wdXRlIHRoZSBpbnRlcnNlY3Rpb24gYmV0d2VlbiBoYXJkLCBvbmxpbmUg YW5kIHNvZnQgKi8KLSAgICAgICAgY3B1bWFza19hbmQoZG9tX2NwdW1hc2tfc29mdCwgZG9tX2Nw dW1hc2tfc29mdCwgZG9tX2NwdW1hc2spOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIElmIG5v dCBlbXB0eSwgdGhlIGludGVyc2VjdGlvbiBvZiBoYXJkLCBzb2Z0IGFuZCBvbmxpbmUgaXMgdGhl Ci0gICAgICAgICAqIG5hcnJvd2VzdCBzZXQgd2Ugd2FudC4gSWYgZW1wdHksIHdlIGZhbGwgYmFj ayB0byBoYXJkJm9ubGluZS4KLSAgICAgICAgICovCi0gICAgICAgIGRvbV9hZmZpbml0eSA9IGNw dW1hc2tfZW1wdHkoZG9tX2NwdW1hc2tfc29mdCkgPwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgZG9tX2NwdW1hc2sgOiBkb21fY3B1bWFza19zb2Z0OwotCi0gICAgICAgIG5vZGVzX2NsZWFy KGQtPm5vZGVfYWZmaW5pdHkpOwotICAgICAgICBmb3JfZWFjaF9jcHUgKCBjcHUsIGRvbV9hZmZp bml0eSApCi0gICAgICAgICAgICBub2RlX3NldChjcHVfdG9fbm9kZShjcHUpLCBkLT5ub2RlX2Fm ZmluaXR5KTsKLSAgICB9Ci0KLSAgICBzcGluX3VubG9jaygmZC0+bm9kZV9hZmZpbml0eV9sb2Nr KTsKLQotICAgIGZyZWVfY3B1bWFza192YXIoZG9tX2NwdW1hc2tfc29mdCk7Ci0gICAgZnJlZV9j cHVtYXNrX3Zhcihkb21fY3B1bWFzayk7Ci19Ci0KLQogaW50IGRvbWFpbl9zZXRfbm9kZV9hZmZp bml0eShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBub2RlbWFza190ICphZmZpbml0eSkKIHsKICAg ICAvKiBCZWluZyBkaXNqb2ludCB3aXRoIHRoZSBzeXN0ZW0gaXMganVzdCB3cm9uZy4gKi8KZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tY3RsLmMgYi94ZW4vY29tbW9uL2RvbWN0bC5jCmluZGV4 IDY1MDMxMGU4NzQuLjhiODE5ZjU2ZTUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMK KysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwpAQCAtMTEsNyArMTEsNiBAQAogI2luY2x1ZGUgPHhl bi9lcnIuaD4KICNpbmNsdWRlIDx4ZW4vbW0uaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNp bmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vZG9tYWluLmg+CiAjaW5jbHVk ZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+CkBAIC02NSw5ICs2 NCw5IEBAIHN0YXRpYyBpbnQgYml0bWFwX3RvX3hlbmN0bF9iaXRtYXAoc3RydWN0IHhlbmN0bF9i aXRtYXAgKnhlbmN0bF9iaXRtYXAsCiAgICAgcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCB4 ZW5jdGxfYml0bWFwX3RvX2JpdG1hcCh1bnNpZ25lZCBsb25nICpiaXRtYXAsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5jdGxfYml0bWFwICp4ZW5j dGxfYml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgbmJpdHMpCitpbnQgeGVuY3RsX2JpdG1hcF90b19iaXRtYXAodW5zaWduZWQgbG9uZyAqYml0 bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5jdGxfYml0 bWFwICp4ZW5jdGxfYml0bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBuYml0cykKIHsKICAgICB1bnNpZ25lZCBpbnQgZ3Vlc3RfYnl0ZXMsIGNvcHlfYnl0ZXM7 CiAgICAgaW50IGVyciA9IDA7CkBAIC0yMDAsNyArMTk5LDcgQEAgdm9pZCBnZXRkb21haW5pbmZv KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2dldGRvbWFpbmluZm8gKmluZm8p CiAgICAgaW5mby0+c2hhcmVkX2luZm9fZnJhbWUgPSBtZm5fdG9fZ21mbihkLCB2aXJ0X3RvX21m bihkLT5zaGFyZWRfaW5mbykpOwogICAgIEJVR19PTihTSEFSRURfTTJQKGluZm8tPnNoYXJlZF9p bmZvX2ZyYW1lKSk7CiAKLSAgICBpbmZvLT5jcHVwb29sID0gZC0+Y3B1cG9vbCA/IGQtPmNwdXBv b2wtPmNwdXBvb2xfaWQgOiBDUFVQT09MSURfTk9ORTsKKyAgICBpbmZvLT5jcHVwb29sID0gY3B1 cG9vbF9nZXRfaWQoZCk7CiAKICAgICBtZW1jcHkoaW5mby0+aGFuZGxlLCBkLT5oYW5kbGUsIHNp emVvZih4ZW5fZG9tYWluX2hhbmRsZV90KSk7CiAKQEAgLTIzNCwxNiArMjMzLDYgQEAgdm9pZCBk b21jdGxfbG9ja19yZWxlYXNlKHZvaWQpCiAgICAgc3Bpbl91bmxvY2soJmN1cnJlbnQtPmRvbWFp bi0+aHlwZXJjYWxsX2RlYWRsb2NrX211dGV4KTsKIH0KIAotc3RhdGljIGlubGluZQotaW50IHZj cHVhZmZpbml0eV9wYXJhbXNfaW52YWxpZChjb25zdCBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZm aW5pdHkgKnZjcHVhZmYpCi17Ci0gICAgcmV0dXJuIHZjcHVhZmYtPmZsYWdzID09IDAgfHwKLSAg ICAgICAgICAgKCh2Y3B1YWZmLT5mbGFncyAmIFhFTl9WQ1BVQUZGSU5JVFlfSEFSRCkgJiYKLSAg ICAgICAgICAgIGd1ZXN0X2hhbmRsZV9pc19udWxsKHZjcHVhZmYtPmNwdW1hcF9oYXJkLmJpdG1h cCkpIHx8Ci0gICAgICAgICAgICgodmNwdWFmZi0+ZmxhZ3MgJiBYRU5fVkNQVUFGRklOSVRZX1NP RlQpICYmCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfaXNfbnVsbCh2Y3B1YWZmLT5jcHVtYXBf c29mdC5iaXRtYXApKTsKLX0KLQogdm9pZCB2bnVtYV9kZXN0cm95KHN0cnVjdCB2bnVtYV9pbmZv ICp2bnVtYSkKIHsKICAgICBpZiAoIHZudW1hICkKQEAgLTYwOCwxMjIgKzU5Nyw4IEBAIGxvbmcg ZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkK IAogICAgIGNhc2UgWEVOX0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHk6CiAgICAgY2FzZSBYRU5fRE9N Q1RMX2dldHZjcHVhZmZpbml0eToKLSAgICB7Ci0gICAgICAgIHN0cnVjdCB2Y3B1ICp2OwotICAg ICAgICBjb25zdCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdDsKLSAgICAgICAgc3RydWN0IHhlbl9k b21jdGxfdmNwdWFmZmluaXR5ICp2Y3B1YWZmID0gJm9wLT51LnZjcHVhZmZpbml0eTsKLQotICAg ICAgICByZXQgPSAtRUlOVkFMOwotICAgICAgICBpZiAoIHZjcHVhZmYtPnZjcHUgPj0gZC0+bWF4 X3ZjcHVzICkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHJldCA9IC1FU1JDSDsKLSAg ICAgICAgaWYgKCAodiA9IGQtPnZjcHVbdmNwdWFmZi0+dmNwdV0pID09IE5VTEwgKQotICAgICAg ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgdW5pdCA9IHYtPnNjaGVkX3VuaXQ7Ci0gICAgICAgIHJl dCA9IC1FSU5WQUw7Ci0gICAgICAgIGlmICggdmNwdWFmZmluaXR5X3BhcmFtc19pbnZhbGlkKHZj cHVhZmYpICkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmICggb3AtPmNtZCA9PSBY RU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNwdW1h c2tfdmFyX3QgbmV3X2FmZmluaXR5LCBvbGRfYWZmaW5pdHk7Ci0gICAgICAgICAgICBjcHVtYXNr X3QgKm9ubGluZSA9IGNwdXBvb2xfZG9tYWluX21hc3Rlcl9jcHVtYXNrKHYtPmRvbWFpbik7Ci0K LSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBXZSB3YW50IHRvIGJlIGFibGUgdG8gcmVz dG9yZSBoYXJkIGFmZmluaXR5IGlmIHdlIGFyZSB0cnlpbmcKLSAgICAgICAgICAgICAqIHNldHRp bmcgYm90aCBhbmQgY2hhbmdpbmcgc29mdCBhZmZpbml0eSAod2hpY2ggaGFwcGVucyBsYXRlciwK LSAgICAgICAgICAgICAqIHdoZW4gaGFyZCBhZmZpbml0eSBoYXMgYmVlbiBzdWNjZXNmdWxseSBj aGFnZWQgYWxyZWFkeSkgZmFpbHMuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICgg IWFsbG9jX2NwdW1hc2tfdmFyKCZvbGRfYWZmaW5pdHkpICkKLSAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICByZXQgPSAtRU5PTUVNOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgfQotICAgICAgICAgICAgY3B1bWFza19jb3B5KG9sZF9hZmZpbml0eSwgdW5pdC0+Y3B1 X2hhcmRfYWZmaW5pdHkpOwotCi0gICAgICAgICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3Zhcigm bmV3X2FmZmluaXR5KSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnJlZV9jcHVt YXNrX3ZhcihvbGRfYWZmaW5pdHkpOwotICAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Ci0g ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIFVu ZG8gYSBzdHVjayBTQ0hFRF9waW5fb3ZlcnJpZGU/ICovCi0gICAgICAgICAgICBpZiAoIHZjcHVh ZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9GT1JDRSApCi0gICAgICAgICAgICAgICAgdmNw dV90ZW1wb3JhcnlfYWZmaW5pdHkodiwgTlJfQ1BVUywgVkNQVV9BRkZJTklUWV9PVkVSUklERSk7 Ci0KLSAgICAgICAgICAgIHJldCA9IDA7Ci0KLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAg KiBXZSBib3RoIHNldCBhIG5ldyBhZmZpbml0eSBhbmQgcmVwb3J0IGJhY2sgdG8gdGhlIGNhbGxl ciB3aGF0Ci0gICAgICAgICAgICAgKiB0aGUgc2NoZWR1bGVyIHdpbGwgYmUgZWZmZWN0aXZlbHkg dXNpbmcuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICggdmNwdWFmZi0+ZmxhZ3Mg JiBYRU5fVkNQVUFGRklOSVRZX0hBUkQgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg IHJldCA9IHhlbmN0bF9iaXRtYXBfdG9fYml0bWFwKGNwdW1hc2tfYml0cyhuZXdfYWZmaW5pdHkp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2Y3B1YWZm LT5jcHVtYXBfaGFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBucl9jcHVfaWRzKTsKLSAgICAgICAgICAgICAgICBpZiAoICFyZXQgKQotICAgICAgICAg ICAgICAgICAgICByZXQgPSB2Y3B1X3NldF9oYXJkX2FmZmluaXR5KHYsIG5ld19hZmZpbml0eSk7 Ci0gICAgICAgICAgICAgICAgaWYgKCByZXQgKQotICAgICAgICAgICAgICAgICAgICBnb3RvIHNl dHZjcHVhZmZpbml0eV9vdXQ7Ci0KLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAg ICAqIEZvciBoYXJkIGFmZmluaXR5LCB3aGF0IHdlIHJldHVybiBpcyB0aGUgaW50ZXJzZWN0aW9u IG9mCi0gICAgICAgICAgICAgICAgICogY3B1cG9vbCdzIG9ubGluZSBtYXNrIGFuZCB0aGUgbmV3 IGhhcmQgYWZmaW5pdHkuCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgY3B1 bWFza19hbmQobmV3X2FmZmluaXR5LCBvbmxpbmUsIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsK LSAgICAgICAgICAgICAgICByZXQgPSBjcHVtYXNrX3RvX3hlbmN0bF9iaXRtYXAoJnZjcHVhZmYt PmNwdW1hcF9oYXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuZXdfYWZmaW5pdHkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCB2Y3B1 YWZmLT5mbGFncyAmIFhFTl9WQ1BVQUZGSU5JVFlfU09GVCApCi0gICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgcmV0ID0geGVuY3RsX2JpdG1hcF90b19iaXRtYXAoY3B1bWFza19iaXRzKG5l d19hZmZpbml0eSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnZjcHVhZmYtPmNwdW1hcF9zb2Z0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5yX2NwdV9pZHMpOwotICAgICAgICAgICAgICAgIGlmICggIXJldCkK LSAgICAgICAgICAgICAgICAgICAgcmV0ID0gdmNwdV9zZXRfc29mdF9hZmZpbml0eSh2LCBuZXdf YWZmaW5pdHkpOwotICAgICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICAgICAqIFNpbmNlIHdl J3JlIHJldHVybmluZyBlcnJvciwgdGhlIGNhbGxlciBleHBlY3RzIG5vdGhpbmcKLSAgICAgICAg ICAgICAgICAgICAgICogaGFwcGVuZWQsIHNvIHdlIHJvbGxiYWNrIHRoZSBjaGFuZ2VzIHRvIGhh cmQgYWZmaW5pdHkKLSAgICAgICAgICAgICAgICAgICAgICogKGlmIGFueSkuCi0gICAgICAgICAg ICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICBpZiAoIHZjcHVhZmYtPmZsYWdzICYg WEVOX1ZDUFVBRkZJTklUWV9IQVJEICkKLSAgICAgICAgICAgICAgICAgICAgICAgIHZjcHVfc2V0 X2hhcmRfYWZmaW5pdHkodiwgb2xkX2FmZmluaXR5KTsKLSAgICAgICAgICAgICAgICAgICAgZ290 byBzZXR2Y3B1YWZmaW5pdHlfb3V0OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg ICAgIC8qCi0gICAgICAgICAgICAgICAgICogRm9yIHNvZnQgYWZmaW5pdHksIHdlIHJldHVybiB0 aGUgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlCi0gICAgICAgICAgICAgICAgICogbmV3IHNvZnQg YWZmaW5pdHksIHRoZSBjcHVwb29sJ3Mgb25saW5lIG1hcCBhbmQgdGhlIChuZXcpCi0gICAgICAg ICAgICAgICAgICogaGFyZCBhZmZpbml0eS4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAg ICAgICAgICBjcHVtYXNrX2FuZChuZXdfYWZmaW5pdHksIG5ld19hZmZpbml0eSwgb25saW5lKTsK LSAgICAgICAgICAgICAgICBjcHVtYXNrX2FuZChuZXdfYWZmaW5pdHksIG5ld19hZmZpbml0eSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7Ci0g ICAgICAgICAgICAgICAgcmV0ID0gY3B1bWFza190b194ZW5jdGxfYml0bWFwKCZ2Y3B1YWZmLT5j cHVtYXBfc29mdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmV3X2FmZmluaXR5KTsKLSAgICAgICAgICAgIH0KLQotIHNldHZjcHVhZmZpbml0eV9vdXQ6 Ci0gICAgICAgICAgICBmcmVlX2NwdW1hc2tfdmFyKG5ld19hZmZpbml0eSk7Ci0gICAgICAgICAg ICBmcmVlX2NwdW1hc2tfdmFyKG9sZF9hZmZpbml0eSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxz ZQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVB RkZJTklUWV9IQVJEICkKLSAgICAgICAgICAgICAgICByZXQgPSBjcHVtYXNrX3RvX3hlbmN0bF9i aXRtYXAoJnZjcHVhZmYtPmNwdW1hcF9oYXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7Ci0gICAgICAgICAg ICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9TT0ZUICkKLSAgICAgICAg ICAgICAgICByZXQgPSBjcHVtYXNrX3RvX3hlbmN0bF9iaXRtYXAoJnZjcHVhZmYtPmNwdW1hcF9z b2Z0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0 LT5jcHVfc29mdF9hZmZpbml0eSk7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0ID0gdmNwdV9hZmZp bml0eV9kb21jdGwoZCwgb3AtPmNtZCwgJm9wLT51LnZjcHVhZmZpbml0eSk7CiAgICAgICAgIGJy ZWFrOwotICAgIH0KIAogICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6CiAgICAgICAg IHJldCA9IHNjaGVkX2FkanVzdChkLCAmb3AtPnUuc2NoZWR1bGVyX29wKTsKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vc2NoZWQvYXJpbmM2NTMuYyBiL3hlbi9jb21tb24vc2NoZWQvYXJpbmM2NTMu YwppbmRleCA1NjU1NzVjMzI2Li44ODk1ZDkyYjVlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3Nj aGVkL2FyaW5jNjUzLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZC9hcmluYzY1My5jCkBAIC0yNiw3 ICsyNiw2IEBACiAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+ Ci0jaW5jbHVkZSA8eGVuL3NjaGVkLWlmLmg+CiAjaW5jbHVkZSA8eGVuL3RpbWVyLmg+CiAjaW5j bHVkZSA8eGVuL3NvZnRpcnEuaD4KICNpbmNsdWRlIDx4ZW4vdGltZS5oPgpAQCAtMzUsNiArMzQs OCBAQAogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRlIDxwdWJsaWMvc3lz Y3RsLmg+CiAKKyNpbmNsdWRlICJwcml2YXRlLmgiCisKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICog UHJpdmF0ZSBNYWNyb3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3NjaGVkL2NvcmUuYyBiL3hlbi9jb21tb24vc2NoZWQvY29yZS5jCmluZGV4IDRkOGViNGM2 MTcuLjJmYWU5NTllOTAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWQvY29yZS5jCisrKyBi L3hlbi9jb21tb24vc2NoZWQvY29yZS5jCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8eGVu L3RpbWUuaD4KICNpbmNsdWRlIDx4ZW4vdGltZXIuaD4KICNpbmNsdWRlIDx4ZW4vcGVyZmMuaD4K LSNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2lu Y2x1ZGUgPHhlbi90cmFjZS5oPgogI2luY2x1ZGUgPHhlbi9tbS5oPgpAQCAtMzgsNiArMzcsOCBA QAogI2luY2x1ZGUgPHhzbS94c20uaD4KICNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAKKyNpbmNsdWRl ICJwcml2YXRlLmgiCisKICNpZmRlZiBDT05GSUdfWEVOX0dVRVNUCiAjaW5jbHVkZSA8YXNtL2d1 ZXN0Lmg+CiAjZWxzZQpAQCAtMTYwNyw2ICsxNjA4LDE5NCBAQCBpbnQgdmNwdV90ZW1wb3Jhcnlf YWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUsIHVpbnQ4X3QgcmVhc29u KQogICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUKK2ludCB2Y3B1YWZmaW5pdHlf cGFyYW1zX2ludmFsaWQoY29uc3Qgc3RydWN0IHhlbl9kb21jdGxfdmNwdWFmZmluaXR5ICp2Y3B1 YWZmKQoreworICAgIHJldHVybiB2Y3B1YWZmLT5mbGFncyA9PSAwIHx8CisgICAgICAgICAgICgo dmNwdWFmZi0+ZmxhZ3MgJiBYRU5fVkNQVUFGRklOSVRZX0hBUkQpICYmCisgICAgICAgICAgICBn dWVzdF9oYW5kbGVfaXNfbnVsbCh2Y3B1YWZmLT5jcHVtYXBfaGFyZC5iaXRtYXApKSB8fAorICAg ICAgICAgICAoKHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9TT0ZUKSAmJgorICAg ICAgICAgICAgZ3Vlc3RfaGFuZGxlX2lzX251bGwodmNwdWFmZi0+Y3B1bWFwX3NvZnQuYml0bWFw KSk7Cit9CisKK2ludCB2Y3B1X2FmZmluaXR5X2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCB1aW50 MzJfdCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdmNw dWFmZmluaXR5ICp2Y3B1YWZmKQoreworICAgIHN0cnVjdCB2Y3B1ICp2OworICAgIGNvbnN0IHN0 cnVjdCBzY2hlZF91bml0ICp1bml0OworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKCB2Y3B1 YWZmLT52Y3B1ID49IGQtPm1heF92Y3B1cyApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisg ICAgaWYgKCAodiA9IGQtPnZjcHVbdmNwdWFmZi0+dmNwdV0pID09IE5VTEwgKQorICAgICAgICBy ZXR1cm4gLUVTUkNIOworCisgICAgaWYgKCB2Y3B1YWZmaW5pdHlfcGFyYW1zX2ludmFsaWQodmNw dWFmZikgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHVuaXQgPSB2LT5zY2hlZF91 bml0OworCisgICAgaWYgKCBjbWQgPT0gWEVOX0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHkgKQorICAg IHsKKyAgICAgICAgY3B1bWFza192YXJfdCBuZXdfYWZmaW5pdHksIG9sZF9hZmZpbml0eTsKKyAg ICAgICAgY3B1bWFza190ICpvbmxpbmUgPSBjcHVwb29sX2RvbWFpbl9tYXN0ZXJfY3B1bWFzayh2 LT5kb21haW4pOworCisgICAgICAgIC8qCisgICAgICAgICAqIFdlIHdhbnQgdG8gYmUgYWJsZSB0 byByZXN0b3JlIGhhcmQgYWZmaW5pdHkgaWYgd2UgYXJlIHRyeWluZworICAgICAgICAgKiBzZXR0 aW5nIGJvdGggYW5kIGNoYW5naW5nIHNvZnQgYWZmaW5pdHkgKHdoaWNoIGhhcHBlbnMgbGF0ZXIs CisgICAgICAgICAqIHdoZW4gaGFyZCBhZmZpbml0eSBoYXMgYmVlbiBzdWNjZXNmdWxseSBjaGFn ZWQgYWxyZWFkeSkgZmFpbHMuCisgICAgICAgICAqLworICAgICAgICBpZiAoICFhbGxvY19jcHVt YXNrX3Zhcigmb2xkX2FmZmluaXR5KSApCisgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKKwor ICAgICAgICBjcHVtYXNrX2NvcHkob2xkX2FmZmluaXR5LCB1bml0LT5jcHVfaGFyZF9hZmZpbml0 eSk7CisKKyAgICAgICAgaWYgKCAhYWxsb2NfY3B1bWFza192YXIoJm5ld19hZmZpbml0eSkgKQor ICAgICAgICB7CisgICAgICAgICAgICBmcmVlX2NwdW1hc2tfdmFyKG9sZF9hZmZpbml0eSk7Cisg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFVuZG8g YSBzdHVjayBTQ0hFRF9waW5fb3ZlcnJpZGU/ICovCisgICAgICAgIGlmICggdmNwdWFmZi0+Zmxh Z3MgJiBYRU5fVkNQVUFGRklOSVRZX0ZPUkNFICkKKyAgICAgICAgICAgIHZjcHVfdGVtcG9yYXJ5 X2FmZmluaXR5KHYsIE5SX0NQVVMsIFZDUFVfQUZGSU5JVFlfT1ZFUlJJREUpOworCisgICAgICAg IHJldCA9IDA7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgYm90aCBzZXQgYSBuZXcgYWZm aW5pdHkgYW5kIHJlcG9ydCBiYWNrIHRvIHRoZSBjYWxsZXIgd2hhdAorICAgICAgICAgKiB0aGUg c2NoZWR1bGVyIHdpbGwgYmUgZWZmZWN0aXZlbHkgdXNpbmcuCisgICAgICAgICAqLworICAgICAg ICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9IQVJEICkKKyAgICAgICAg eworICAgICAgICAgICAgcmV0ID0geGVuY3RsX2JpdG1hcF90b19iaXRtYXAoY3B1bWFza19iaXRz KG5ld19hZmZpbml0eSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdmNwdWFmZi0+Y3B1bWFwX2hhcmQsIG5yX2NwdV9pZHMpOworICAgICAgICAgICAgaWYgKCAh cmV0ICkKKyAgICAgICAgICAgICAgICByZXQgPSB2Y3B1X3NldF9oYXJkX2FmZmluaXR5KHYsIG5l d19hZmZpbml0eSk7CisgICAgICAgICAgICBpZiAoIHJldCApCisgICAgICAgICAgICAgICAgZ290 byBzZXR2Y3B1YWZmaW5pdHlfb3V0OworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICog Rm9yIGhhcmQgYWZmaW5pdHksIHdoYXQgd2UgcmV0dXJuIGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YK KyAgICAgICAgICAgICAqIGNwdXBvb2wncyBvbmxpbmUgbWFzayBhbmQgdGhlIG5ldyBoYXJkIGFm ZmluaXR5LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjcHVtYXNrX2FuZChuZXdfYWZm aW5pdHksIG9ubGluZSwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgcmV0 ID0gY3B1bWFza190b194ZW5jdGxfYml0bWFwKCZ2Y3B1YWZmLT5jcHVtYXBfaGFyZCwgbmV3X2Fm ZmluaXR5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZD UFVBRkZJTklUWV9TT0ZUICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0ID0geGVuY3RsX2Jp dG1hcF90b19iaXRtYXAoY3B1bWFza19iaXRzKG5ld19hZmZpbml0eSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmNwdWFmZi0+Y3B1bWFwX3NvZnQsIG5yX2Nw dV9pZHMpOworICAgICAgICAgICAgaWYgKCAhcmV0KQorICAgICAgICAgICAgICAgIHJldCA9IHZj cHVfc2V0X3NvZnRfYWZmaW5pdHkodiwgbmV3X2FmZmluaXR5KTsKKyAgICAgICAgICAgIGlmICgg cmV0ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAg ICAqIFNpbmNlIHdlJ3JlIHJldHVybmluZyBlcnJvciwgdGhlIGNhbGxlciBleHBlY3RzIG5vdGhp bmcKKyAgICAgICAgICAgICAgICAgKiBoYXBwZW5lZCwgc28gd2Ugcm9sbGJhY2sgdGhlIGNoYW5n ZXMgdG8gaGFyZCBhZmZpbml0eQorICAgICAgICAgICAgICAgICAqIChpZiBhbnkpLgorICAgICAg ICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmICggdmNwdWFmZi0+ZmxhZ3MgJiBYRU5f VkNQVUFGRklOSVRZX0hBUkQgKQorICAgICAgICAgICAgICAgICAgICB2Y3B1X3NldF9oYXJkX2Fm ZmluaXR5KHYsIG9sZF9hZmZpbml0eSk7CisgICAgICAgICAgICAgICAgZ290byBzZXR2Y3B1YWZm aW5pdHlfb3V0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICogRm9yIHNvZnQgYWZmaW5pdHksIHdlIHJldHVybiB0aGUgaW50ZXJzZWN0aW9uIGJldHdlZW4g dGhlCisgICAgICAgICAgICAgKiBuZXcgc29mdCBhZmZpbml0eSwgdGhlIGNwdXBvb2wncyBvbmxp bmUgbWFwIGFuZCB0aGUgKG5ldykKKyAgICAgICAgICAgICAqIGhhcmQgYWZmaW5pdHkuCisgICAg ICAgICAgICAgKi8KKyAgICAgICAgICAgIGNwdW1hc2tfYW5kKG5ld19hZmZpbml0eSwgbmV3X2Fm ZmluaXR5LCBvbmxpbmUpOworICAgICAgICAgICAgY3B1bWFza19hbmQobmV3X2FmZmluaXR5LCBu ZXdfYWZmaW5pdHksIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAgICAgIHJldCA9 IGNwdW1hc2tfdG9feGVuY3RsX2JpdG1hcCgmdmNwdWFmZi0+Y3B1bWFwX3NvZnQsIG5ld19hZmZp bml0eSk7CisgICAgICAgIH0KKworIHNldHZjcHVhZmZpbml0eV9vdXQ6CisgICAgICAgIGZyZWVf Y3B1bWFza192YXIobmV3X2FmZmluaXR5KTsKKyAgICAgICAgZnJlZV9jcHVtYXNrX3ZhcihvbGRf YWZmaW5pdHkpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBpZiAoIHZjcHVhZmYt PmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9IQVJEICkKKyAgICAgICAgICAgIHJldCA9IGNwdW1h c2tfdG9feGVuY3RsX2JpdG1hcCgmdmNwdWFmZi0+Y3B1bWFwX2hhcmQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwor ICAgICAgICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9TT0ZUICkKKyAg ICAgICAgICAgIHJldCA9IGNwdW1hc2tfdG9feGVuY3RsX2JpdG1hcCgmdmNwdWFmZi0+Y3B1bWFw X3NvZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdC0+ Y3B1X3NvZnRfYWZmaW5pdHkpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQg ZG9tYWluX3VwZGF0ZV9ub2RlX2FmZmluaXR5KHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgY3B1 bWFza192YXJfdCBkb21fY3B1bWFzaywgZG9tX2NwdW1hc2tfc29mdDsKKyAgICBjcHVtYXNrX3Qg KmRvbV9hZmZpbml0eTsKKyAgICBjb25zdCBjcHVtYXNrX3QgKm9ubGluZTsKKyAgICBzdHJ1Y3Qg c2NoZWRfdW5pdCAqdW5pdDsKKyAgICB1bnNpZ25lZCBpbnQgY3B1OworCisgICAgLyogRG8gd2Ug aGF2ZSB2Y3B1cyBhbHJlYWR5PyBJZiBub3QsIG5vIG5lZWQgdG8gdXBkYXRlIG5vZGUtYWZmaW5p dHkuICovCisgICAgaWYgKCAhZC0+dmNwdSB8fCAhZC0+dmNwdVswXSApCisgICAgICAgIHJldHVy bjsKKworICAgIGlmICggIXphbGxvY19jcHVtYXNrX3ZhcigmZG9tX2NwdW1hc2spICkKKyAgICAg ICAgcmV0dXJuOworICAgIGlmICggIXphbGxvY19jcHVtYXNrX3ZhcigmZG9tX2NwdW1hc2tfc29m dCkgKQorICAgIHsKKyAgICAgICAgZnJlZV9jcHVtYXNrX3Zhcihkb21fY3B1bWFzayk7CisgICAg ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBvbmxpbmUgPSBjcHVwb29sX2RvbWFpbl9tYXN0ZXJf Y3B1bWFzayhkKTsKKworICAgIHNwaW5fbG9jaygmZC0+bm9kZV9hZmZpbml0eV9sb2NrKTsKKwor ICAgIC8qCisgICAgICogSWYgZC0+YXV0b19ub2RlX2FmZmluaXR5IGlzIHRydWUsIGxldCdzIGNv bXB1dGUgdGhlIGRvbWFpbidzCisgICAgICogbm9kZS1hZmZpbml0eSBhbmQgdXBkYXRlIGQtPm5v ZGVfYWZmaW5pdHkgYWNjb3JkaW5nbHkuIGlmIGZhbHNlLAorICAgICAqIGp1c3QgbGVhdmUgZC0+ YXV0b19ub2RlX2FmZmluaXR5IGFsb25lLgorICAgICAqLworICAgIGlmICggZC0+YXV0b19ub2Rl X2FmZmluaXR5ICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIHdhbnQgdGhlIG5h cnJvd2VzdCBwb3NzaWJsZSBzZXQgb2YgcGNwdXMgKHRvIGdldCB0aGUgbmFyb3dlc3QKKyAgICAg ICAgICogcG9zc2libGUgc2V0IG9mIG5vZGVzKS4gV2hhdCB3ZSBuZWVkIGlzIHRoZSBjcHVtYXNr IG9mIHdoZXJlIHRoZQorICAgICAgICAgKiBkb21haW4gY2FuIHJ1biAodGhlIHVuaW9uIG9mIHRo ZSBoYXJkIGFmZmluaXR5IG9mIGFsbCBpdHMgdmNwdXMpLAorICAgICAgICAgKiBhbmQgdGhlIGZ1 bGwgbWFzayBvZiB3aGVyZSBpdCB3b3VsZCBwcmVmZXIgdG8gcnVuICh0aGUgdW5pb24gb2YKKyAg ICAgICAgICogdGhlIHNvZnQgYWZmaW5pdHkgb2YgYWxsIGl0cyB2YXJpb3VzIHZjcHVzKS4gTGV0 J3MgYnVpbGQgdGhlbS4KKyAgICAgICAgICovCisgICAgICAgIGZvcl9lYWNoX3NjaGVkX3VuaXQg KCBkLCB1bml0ICkKKyAgICAgICAgeworICAgICAgICAgICAgY3B1bWFza19vcihkb21fY3B1bWFz aywgZG9tX2NwdW1hc2ssIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAgICAgIGNw dW1hc2tfb3IoZG9tX2NwdW1hc2tfc29mdCwgZG9tX2NwdW1hc2tfc29mdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgdW5pdC0+Y3B1X3NvZnRfYWZmaW5pdHkpOworICAgICAgICB9CisgICAgICAg IC8qIEZpbHRlciBvdXQgbm9uLW9ubGluZSBjcHVzICovCisgICAgICAgIGNwdW1hc2tfYW5kKGRv bV9jcHVtYXNrLCBkb21fY3B1bWFzaywgb25saW5lKTsKKyAgICAgICAgQVNTRVJUKCFjcHVtYXNr X2VtcHR5KGRvbV9jcHVtYXNrKSk7CisgICAgICAgIC8qIEFuZCBjb21wdXRlIHRoZSBpbnRlcnNl Y3Rpb24gYmV0d2VlbiBoYXJkLCBvbmxpbmUgYW5kIHNvZnQgKi8KKyAgICAgICAgY3B1bWFza19h bmQoZG9tX2NwdW1hc2tfc29mdCwgZG9tX2NwdW1hc2tfc29mdCwgZG9tX2NwdW1hc2spOworCisg ICAgICAgIC8qCisgICAgICAgICAqIElmIG5vdCBlbXB0eSwgdGhlIGludGVyc2VjdGlvbiBvZiBo YXJkLCBzb2Z0IGFuZCBvbmxpbmUgaXMgdGhlCisgICAgICAgICAqIG5hcnJvd2VzdCBzZXQgd2Ug d2FudC4gSWYgZW1wdHksIHdlIGZhbGwgYmFjayB0byBoYXJkJm9ubGluZS4KKyAgICAgICAgICov CisgICAgICAgIGRvbV9hZmZpbml0eSA9IGNwdW1hc2tfZW1wdHkoZG9tX2NwdW1hc2tfc29mdCkg PworICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tX2NwdW1hc2sgOiBkb21fY3B1bWFza19z b2Z0OworCisgICAgICAgIG5vZGVzX2NsZWFyKGQtPm5vZGVfYWZmaW5pdHkpOworICAgICAgICBm b3JfZWFjaF9jcHUgKCBjcHUsIGRvbV9hZmZpbml0eSApCisgICAgICAgICAgICBub2RlX3NldChj cHVfdG9fbm9kZShjcHUpLCBkLT5ub2RlX2FmZmluaXR5KTsKKyAgICB9CisKKyAgICBzcGluX3Vu bG9jaygmZC0+bm9kZV9hZmZpbml0eV9sb2NrKTsKKworICAgIGZyZWVfY3B1bWFza192YXIoZG9t X2NwdW1hc2tfc29mdCk7CisgICAgZnJlZV9jcHVtYXNrX3Zhcihkb21fY3B1bWFzayk7Cit9CisK IHR5cGVkZWYgbG9uZyByZXRfdDsKIAogI2VuZGlmIC8qICFDT01QQVQgKi8KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vc2NoZWQvY3B1cG9vbC5jIGIveGVuL2NvbW1vbi9zY2hlZC9jcHVwb29sLmMK aW5kZXggZDY2YjU0MWE5NC4uN2IzMWFiMGQ2MSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hl ZC9jcHVwb29sLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZC9jcHVwb29sLmMKQEAgLTE2LDExICsx NiwxMiBAQAogI2luY2x1ZGUgPHhlbi9jcHVtYXNrLmg+CiAjaW5jbHVkZSA8eGVuL3BlcmNwdS5o PgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2lu Y2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8eGVuL2tleWhhbmRsZXIuaD4KICNpbmNs dWRlIDx4ZW4vY3B1Lmg+CiAKKyNpbmNsdWRlICJwcml2YXRlLmgiCisKICNkZWZpbmUgZm9yX2Vh Y2hfY3B1cG9vbChwdHIpICAgIFwKICAgICBmb3IgKChwdHIpID0gJmNwdXBvb2xfbGlzdDsgKihw dHIpICE9IE5VTEw7IChwdHIpID0gJigoKihwdHIpKS0+bmV4dCkpCiAKQEAgLTg3NSw2ICs4NzYs MTYgQEAgaW50IGNwdXBvb2xfZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3Ag Km9wKQogICAgIHJldHVybiByZXQ7CiB9CiAKK2ludCBjcHVwb29sX2dldF9pZChjb25zdCBzdHJ1 Y3QgZG9tYWluICpkKQoreworICAgIHJldHVybiBkLT5jcHVwb29sID8gZC0+Y3B1cG9vbC0+Y3B1 cG9vbF9pZCA6IENQVVBPT0xJRF9OT05FOworfQorCitjcHVtYXNrX3QgKmNwdXBvb2xfdmFsaWRf Y3B1cyhzdHJ1Y3QgY3B1cG9vbCAqcG9vbCkKK3sKKyAgICByZXR1cm4gcG9vbC0+Y3B1X3ZhbGlk OworfQorCiB2b2lkIGR1bXBfcnVucSh1bnNpZ25lZCBjaGFyIGtleSkKIHsKICAgICB1bnNpZ25l ZCBsb25nICAgIGZsYWdzOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZC9jcmVkaXQuYyBi L3hlbi9jb21tb24vc2NoZWQvY3JlZGl0LmMKaW5kZXggYWE0MWEzMzAxYi4uNDMyOWQ5ZGY1NiAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9jcmVkaXQuYworKysgYi94ZW4vY29tbW9uL3Nj aGVkL2NyZWRpdC5jCkBAIC0xNSw3ICsxNSw2IEBACiAjaW5jbHVkZSA8eGVuL2RlbGF5Lmg+CiAj aW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8eGVuL3RpbWUuaD4KLSNpbmNsdWRlIDx4 ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPGFzbS9h dG9taWMuaD4KICNpbmNsdWRlIDxhc20vZGl2NjQuaD4KQEAgLTI0LDYgKzIzLDcgQEAKICNpbmNs dWRlIDx4ZW4vdHJhY2UuaD4KICNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAKKyNpbmNsdWRlICJwcml2 YXRlLmgiCiAKIC8qCiAgKiBMb2NraW5nOgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZC9j cmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkL2NyZWRpdDIuYwppbmRleCBmN2M0NzcwNTNjLi42 NWU4YWIwNTJlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NyZWRpdDIuYworKysgYi94 ZW4vY29tbW9uL3NjaGVkL2NyZWRpdDIuYwpAQCAtMTgsNyArMTgsNiBAQAogI2luY2x1ZGUgPHhl bi9ldmVudC5oPgogI2luY2x1ZGUgPHhlbi90aW1lLmg+CiAjaW5jbHVkZSA8eGVuL3BlcmZjLmg+ Ci0jaW5jbHVkZSA8eGVuL3NjaGVkLWlmLmg+CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KICNp bmNsdWRlIDxhc20vZGl2NjQuaD4KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KQEAgLTI2LDYgKzI1 LDggQEAKICNpbmNsdWRlIDx4ZW4vY3B1Lmg+CiAjaW5jbHVkZSA8eGVuL2tleWhhbmRsZXIuaD4K IAorI2luY2x1ZGUgInByaXZhdGUuaCIKKwogLyogTWVhbnQgb25seSBmb3IgaGVscGluZyBkZXZl bG9wZXJzIGR1cmluZyBkZWJ1Z2dpbmcuICovCiAvKiAjZGVmaW5lIGQycHJpbnRrIHByaW50ayAq LwogI2RlZmluZSBkMnByaW50ayh4Li4uKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZC9u dWxsLmMgYi94ZW4vY29tbW9uL3NjaGVkL251bGwuYwppbmRleCAzZjM0MThjOWIxLi5iOTlmMWUz YzY1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkL251bGwuYworKysgYi94ZW4vY29tbW9u L3NjaGVkL251bGwuYwpAQCAtMjksMTAgKzI5LDExIEBACiAgKi8KIAogI2luY2x1ZGUgPHhlbi9z Y2hlZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9zb2Z0aXJx Lmg+CiAjaW5jbHVkZSA8eGVuL3RyYWNlLmg+CiAKKyNpbmNsdWRlICJwcml2YXRlLmgiCisKIC8q CiAgKiBudWxsIHRyYWNpbmcgZXZlbnRzLiBDaGVjayBpbmNsdWRlL3B1YmxpYy90cmFjZS5oIGZv ciBtb3JlIGRldGFpbHMuCiAgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1p Zi5oIGIveGVuL2NvbW1vbi9zY2hlZC9wcml2YXRlLmgKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVu YW1lIGZyb20geGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKcmVuYW1lIHRvIHhlbi9jb21tb24v c2NoZWQvcHJpdmF0ZS5oCmluZGV4IGIwYWM1NGU2M2QuLmE3MDJmZDIzYjEgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCisrKyBiL3hlbi9jb21tb24vc2NoZWQvcHJpdmF0 ZS5oCkBAIC0xMiw5ICsxMiw2IEBACiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhl bi9yY3VwZGF0ZS5oPgogCi0vKiBBIGdsb2JhbCBwb2ludGVyIHRvIHRoZSBpbml0aWFsIGNwdXBv b2wgKFBPT0wwKS4gKi8KLWV4dGVybiBzdHJ1Y3QgY3B1cG9vbCAqY3B1cG9vbDA7Ci0KIC8qIGNw dXMgY3VycmVudGx5IGluIG5vIGNwdXBvb2wgKi8KIGV4dGVybiBjcHVtYXNrX3QgY3B1cG9vbF9m cmVlX2NwdXM7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWQvcnQuYyBiL3hlbi9jb21t b24vc2NoZWQvcnQuYwppbmRleCBiMmIyOTQ4MWYzLi44MjAzYjYzYTlkIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL3NjaGVkL3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZC9ydC5jCkBAIC0yMCw3 ICsyMCw2IEBACiAjaW5jbHVkZSA8eGVuL3RpbWUuaD4KICNpbmNsdWRlIDx4ZW4vdGltZXIuaD4K ICNpbmNsdWRlIDx4ZW4vcGVyZmMuaD4KLSNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNs dWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDx4 ZW4vZXJybm8uaD4KQEAgLTMxLDYgKzMwLDggQEAKICNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAjaW5j bHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgogCisjaW5jbHVkZSAicHJpdmF0ZS5oIgorCiAvKgog ICogVE9ETzoKICAqCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmggYi94ZW4v aW5jbHVkZS94ZW4vZG9tYWluLmgKaW5kZXggMWNiMjA1ZDk3Ny4uN2U1MWQzNjFkZSAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9kb21h aW4uaApAQCAtMjcsNiArMjcsOSBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRkb21haW5pbmZvOwog dm9pZCBnZXRkb21haW5pbmZvKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2dl dGRvbWFpbmluZm8gKmluZm8pOwogdm9pZCBhcmNoX2dldF9kb21haW5faW5mbyhjb25zdCBzdHJ1 Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0 bF9nZXRkb21haW5pbmZvICppbmZvKTsKK2ludCB4ZW5jdGxfYml0bWFwX3RvX2JpdG1hcCh1bnNp Z25lZCBsb25nICpiaXRtYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHhlbmN0bF9iaXRtYXAgKnhlbmN0bF9iaXRtYXAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG5iaXRzKTsKIAogLyoKICAqIEFyY2gtc3BlY2lmaWNzLgpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aAppbmRleCBjYzk0MmEzNjIxLi5kM2FkYzY5YWI5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtNTAsNiArNTAsOSBA QCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh2Y3B1X3J1bnN0YXRlX2luZm9fY29tcGF0X3QpOwog LyogQSBnbG9iYWwgcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgZG9tYWluICh1c3VhbGx5IERPTTAp LiAqLwogZXh0ZXJuIHN0cnVjdCBkb21haW4gKmhhcmR3YXJlX2RvbWFpbjsKIAorLyogQSBnbG9i YWwgcG9pbnRlciB0byB0aGUgaW5pdGlhbCBjcHVwb29sIChQT09MMCkuICovCitleHRlcm4gc3Ry dWN0IGNwdXBvb2wgKmNwdXBvb2wwOworCiAjaWZkZWYgQ09ORklHX0xBVEVfSFdET00KIGV4dGVy biBkb21pZF90IGhhcmR3YXJlX2RvbWlkOwogI2Vsc2UKQEAgLTkzMSw2ICs5MzQsOCBAQCBpbnQg dmNwdV90ZW1wb3JhcnlfYWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUs IHVpbnQ4X3QgcmVhc29uKTsKIGludCB2Y3B1X3NldF9oYXJkX2FmZmluaXR5KHN0cnVjdCB2Y3B1 ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmluaXR5KTsKIGludCB2Y3B1X3NldF9zb2Z0X2FmZmlu aXR5KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmluaXR5KTsKIHZvaWQgcmVz dG9yZV92Y3B1X2FmZmluaXR5KHN0cnVjdCBkb21haW4gKmQpOworaW50IHZjcHVfYWZmaW5pdHlf ZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IGNtZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgKnZjcHVhZmYpOwogCiB2b2lk IHZjcHVfcnVuc3RhdGVfZ2V0KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9p bmZvICpydW5zdGF0ZSk7CiB1aW50NjRfdCBnZXRfY3B1X2lkbGVfdGltZSh1bnNpZ25lZCBpbnQg Y3B1KTsKQEAgLTEwNjgsNiArMTA3Myw4IEBAIGludCBjcHVwb29sX2FkZF9kb21haW4oc3RydWN0 IGRvbWFpbiAqZCwgaW50IHBvb2xpZCk7CiB2b2lkIGNwdXBvb2xfcm1fZG9tYWluKHN0cnVjdCBk b21haW4gKmQpOwogaW50IGNwdXBvb2xfbW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IGNwdXBvb2wgKmMpOwogaW50IGNwdXBvb2xfZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3Rs X2NwdXBvb2xfb3AgKm9wKTsKK2ludCBjcHVwb29sX2dldF9pZChjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkKTsKK2NwdW1hc2tfdCAqY3B1cG9vbF92YWxpZF9jcHVzKHN0cnVjdCBjcHVwb29sICpwb29s KTsKIHZvaWQgc2NoZWR1bGVfZHVtcChzdHJ1Y3QgY3B1cG9vbCAqYyk7CiBleHRlcm4gdm9pZCBk dW1wX3J1bnEodW5zaWduZWQgY2hhciBrZXkpOwogCi0tIAoyLjE2LjQKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs