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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E5547CDB465 for ; Thu, 19 Oct 2023 15:47:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pz5+n4HN+a7DTY+Xq5ZZGTdYzfToLsOZg4F+HRK+q14=; b=BbBwxIWKl8tu76 jm2xSpUIvcB4Ge6W6Yt9ijcuFLKdMeTbEAsaoxbY/yguAdnINkTJnHkPBWD0ttnmnjW/J2U+w+oNX f6mEYwq9z3ARfV9g54EnqfTlB2PnmOCRLsecRTE9u+6oOmVlnwV1q0iGNtlkQRUWAePXEArxo6lX/ nopGJenvf0VjljtZQFb7rib5EFmhV8/A+jaADtBeyYkKixS3z3hrapdd5qKRBjY7/8RDoBhR9LR8T 1RSu2VrXhb6FPXOd9fi1T0kNEWHc1VkkiJ2Nv7pvuU7r4TFw3yq0cjI4u9Jfrk38jtITmzto9ncec H1I8rersWSuBTrJKmBow==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qtVEr-000FDf-0E; Thu, 19 Oct 2023 15:47:09 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qtVEl-000FAe-2z for linux-riscv@lists.infradead.org; Thu, 19 Oct 2023 15:47:07 +0000 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1c9bf22fe05so55150395ad.2 for ; Thu, 19 Oct 2023 08:47:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1697730420; x=1698335220; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dnUns77zbo50ic9FLAsOKmJNJbGCHs/qvuOYjD56H80=; b=BdUMXcjcFgYMvsWT/Se+/FHRp2gyO6L+OP/nLF1YJyD4XksOfzuD9gMV4n637VoTtb EiVK4rvRKYJR1klSSAHSjIohYkPyK+mIAREQHVysQO2RE4XLdpp4QcRZwDfbKts8gISN AwsJyaYdrOf/Kd2Eved+lIZTLast1Lb9rAILV2/mLCtdE5DTL6Z6NaWp4KignrBXhdws PFU0OjonrVH3rdTmVIN/HdiwagV1YE41O2r4kDgyklVHwtHe+D0fIcCQQMSxS+IDkJFA IITxWmbyYUaWTn9mUe76RHi3EKkFqgOpdtAKlNEEsbvcXZBUH4wnFtHmIlD5Vuxw2icZ ZGzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697730420; x=1698335220; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dnUns77zbo50ic9FLAsOKmJNJbGCHs/qvuOYjD56H80=; b=PANcz5Qv9kwE4v+1/OvWKcZxG/3UgH7rThYzPjaoABeJdFplk1kFOt36uAo3vHfzy1 67J4+IuBm2mdHRDy4nJCQeCv1lFyFkCHLso5diDZUKlDzkRg42s7S6oI6ha3HwJT7ORu kvkEr45eXGQ8eJxbMPuUpP6wT1niw1q73fzB4zhno5P1GwKd1EMEoDgkHLTDSQgOUdnM hfsxIc1AUJ2N/4XyDLyC/bxWSZ5dnQvjfPcvQCJRnwDBPsZL5ta5+TA7DahIZZ4d6znN bygJrHTucSObVAUS1Dxkud7jB7OTOm+j63KDW/SsWL1vPbLmh05eNeio+ou+i5GdTjSl 9yYQ== X-Gm-Message-State: AOJu0YzP/u/plYPcmPeOIbw39lkY/aTl1TwPH8AlvDU57VUrPqsTR/EP Sk47ie0ZpXCG1TxNCP5a3OXcQC1qpOSOOdwDyzSQw0muyFO7mDApWbhu6n1wIPm3lPmFSeowxEw ugH/8Va37knUaNQFNGJJLm5rTse7za7qTHM8A1r0Iafk8b2yw6N3B6U74GXdIo0cBrwlQ09/k5n eT92N3VQevx+soMIs= X-Google-Smtp-Source: AGHT+IEyK93YSzT+Nl7itIguA0b8i0GFxEr449MpjrrcYY20qUGDYlAELclh8ZJJXGlb8aAnYbyCTA== X-Received: by 2002:a17:902:e5cb:b0:1c6:ec8:4c67 with SMTP id u11-20020a170902e5cb00b001c60ec84c67mr3067729plf.18.1697730419775; Thu, 19 Oct 2023 08:46:59 -0700 (PDT) Received: from hsinchu26.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id u8-20020a17090282c800b001c75d7f2597sm2084710plz.141.2023.10.19.08.46.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 08:46:58 -0700 (PDT) From: Andy Chiu To: linux-riscv@lists.infradead.org, palmer@dabbelt.com Cc: paul.walmsley@sifive.com, greentime.hu@sifive.com, guoren@linux.alibaba.com, bjorn@kernel.org, peterz@infradead.org, tglx@linutronix.de, Andy Chiu , Albert Ou , Heiko Stuebner , Vincent Chen , Conor Dooley , Charlie Jenkins , Guo Ren , Jisheng Zhang , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Andrew Jones , Ley Foon Tan , Sia Jee Heng , Han-Kuan Chen , Andrew Bresticker , Fangrui Song , Nick Knight Subject: [v3, 5/5] riscv: vector: allow kernel-mode Vector with preemption Date: Thu, 19 Oct 2023 15:45:52 +0000 Message-Id: <20231019154552.23351-6-andy.chiu@sifive.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20231019154552.23351-1-andy.chiu@sifive.com> References: <20231019154552.23351-1-andy.chiu@sifive.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231019_084703_966870_3CC3D1E4 X-CRM114-Status: GOOD ( 28.12 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org QWRkIGtlcm5lbF92c3RhdGUgdG8ga2VlcCB0cmFjayBvZiBrZXJuZWwtbW9kZSBWZWN0b3IgcmVn aXN0ZXJzIHdoZW4KdHJhcCBpbnRyb2R1Y2VkIGNvbnRleHQgc3dpdGNoIGhhcHBlbnMuIEFsc28s IHByb3ZpZGUgdHJhcF9wdF9yZWdzIHRvCmxldCBjb250ZXh0IHNhdmUvcmVzdG9yZSByb3V0aW5l IHJlZmVyZW5jZSBzdGF0dXMuVlMgYXQgd2hpY2ggdGhlIHRyYXAKdGFrZXMgcGxhY2UuIFRoZSB0 aHJlYWQgZmxhZyBUSUZfUklTQ1ZfVl9LRVJORUxfTU9ERSBpbmRpY2F0ZXMgd2hldGhlcgphIHRh c2sgaXMgcnVubmluZyBpbiBrZXJuZWwtbW9kZSBWZWN0b3Igd2l0aCBwcmVlbXB0aW9uICdPTicu IFNvIGNvbnRleHQKc3dpdGNoIHJvdXRpbmVzIGtub3cgYW5kIHdvdWxkIHNhdmUgVi1yZWdzIHRv IGtlcm5lbF92c3RhdGUgYW5kIHJlc3RvcmUKVi1yZWdzIGltbWVkaWF0ZWx5IGZyb20ga2VybmVs X3ZzdGF0ZSBpZiB0aGUgYml0IGlzIHNldC4KCkFwYXJ0IGZyb20gYSB0YXNrJ3MgcHJlZW1wdGlv biBzdGF0dXMsIHRoZSBjYXBhYmlsaXR5IG9mCnJ1bm5pbmcgcHJlZW1wdGl2ZSBrZXJuZWwtbW9k ZSBWZWN0b3IgaXMgYXMgd2VsbCBjb250cm9sbGVkIGJ5IHRoZQpSSVNDVl9WX1ZTVEFURV9DVFJM X1BSRUVNUFRJQkxFIG1hc2sgaW4gdGhlIHRhc2sncwp0aHJlYWQudnN0YXRlX2N0cmwuIFRoaXMg Yml0IGlzIG1hc2tlZCB3aGVuZXZlciBhIHRyYXAgdGFrZXMgcGxhY2UgaW4Ka2VybmVsIG1vZGUg d2hpbGUgZXhlY3V0aW5nIHByZWVtcHRpdmUgVmVjdG9yIGNvZGUuCgpBbHNvLCBwcm92aWRlIGEg Y29uZmlnIENPTkZJR19SSVNDVl9JU0FfVl9QUkVFTVBUSVZFIHRvIGdpdmUgdXNlcnMgYW4Kb3B0 aW9uIHRvIGRpc2FibGUgcHJlZW1wdGlibGUga2VybmVsLW1vZGUgVmVjdG9yIGF0IGJ1aWxkIHRp bWUuIFVzZXJzCndpdGggY29uc3RyYWludCBtZW1vcnkgbWF5IHdhbnQgdG8gZGlzYWJsZSB0aGlz IGNvbmZpZyBhcyBwcmVlbXB0aWJsZQprZXJuZWwtbW9kZSBWZWN0b3IgbmVlZHMgZXh0cmEgc3Bh Y2UgZm9yIHRyYWNraW5nIHBlciB0aHJlYWQncwprZXJuZWwtbW9kZSBWIGNvbnRleHQuIE9yLCB1 c2VycyBtaWdodCBhcyB3ZWxsIHdhbnQgdG8gZGlzYWJsZSBpdCBpZiBhbGwKa2VybmVsLW1vZGUg VmVjdG9yIGNvZGUgaXMgdGltZSBzZW5zaXRpdmUgYW5kIGNhbm5vdCB0b2xlcmF0ZSBjb250ZXh0 CnN3aXRjaCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IEFuZHkgQ2hpdSA8YW5keS5jaGl1QHNp Zml2ZS5jb20+Ci0tLQpDaGFuZ2Vsb2cgdjM6CiAtIEd1YXJkIHZzdGF0ZV9zYXZlIHdpdGgge2dl dCxzZXR9X2NwdV92ZWN0b3JfY29udGV4dAogLSBBZGQgY29tbWVudHMgb24gcHJldmVudGlvbnMg b2YgbmVzdGluZyBWIGNvbnRleHRzCiAtIHJlbW92ZSB3YXJuaW5ncyBpbiBjb250ZXh0IHN3aXRj aCB3aGVuIHRyYXAncyByZWcgaXMgbm90IHByZXNzZW50IChDb25vcikKIC0gcmVmYWN0b3IgY29k ZSAoQmrDtnJuKQpDaGFuZ2Vsb2cgdjI6CiAtIGZpeCBidWlsZCBmYWlsIHdoZW4gY29tcGlsaW5n IHdpdGhvdXQgUklTQ1ZfSVNBX1YgKENvbm9yKQogLSAncy9USUZfUklTQ1ZfVl9LTVYvVElGX1JJ U0NWX1ZfS0VSTkVMX01PREUnIGFuZCBhZGQgY29tbWVudCAoQ29ub3IpCiAtIG1lcmdlIEtjb25m aWcgcGF0Y2ggaW50byB0aGlzIG9pbmUgKENvbm9yKS4KIC0gJ3MvQ09ORklHX1JJU0NWX0lTQV9W X1BSRUVNUFRJVkVfS01WL0NPTkZJR19SSVNDVl9JU0FfVl9QUkVFTVBUSVZFLycKICAgKENvbm9y KQogLSBmaXggc29tZSB0eXBvcyAoQ29ub3IpCiAtIGVuY2xvc2UgYXNzZW1ibHkgd2l0aCBSSVND Vl9JU0FfVl9QUkVFTVBUSVZFLgogLSBjaGFuZ2UgcmlzY3Zfdl92c3RhdGVfY3RybF9jb25maWdf a212KCkgdG8KICAga2VybmVsX3ZlY3Rvcl9hbGxvd19wcmVlbXB0aW9uKCkgZm9yIGJldHRlciB1 bmRlcnN0YW5kaW5nLiAoQ29ub3IpCiAtICdzL3Jpc2N2X3Zfa212X3ByZWVtcGl0YmxlL2tlcm5l bF92ZWN0b3JfcHJlZW1wdGlibGUvJwotLS0KIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAg ICAgICAgICAgIHwgMTAgKysrKysKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgg ICAgIHwgIDIgKwogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zaW1kLmggICAgICAgICAgfCAgOSAr KystCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggICB8ICA0ICsrCiBhcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3ZlY3Rvci5oICAgICAgICB8IDI1ICsrKysrKysrKy0tCiBhcmNo L3Jpc2N2L2tlcm5lbC9hc20tb2Zmc2V0cy5jICAgICAgICB8ICAyICsKIGFyY2gvcmlzY3Yva2Vy bmVsL2VudHJ5LlMgICAgICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKwogYXJj aC9yaXNjdi9rZXJuZWwva2VybmVsX21vZGVfdmVjdG9yLmMgfCA1NyArKysrKysrKysrKysrKysr KysrKysrKystLQogYXJjaC9yaXNjdi9rZXJuZWwvcHJvY2Vzcy5jICAgICAgICAgICAgfCAgOCAr KystCiBhcmNoL3Jpc2N2L2tlcm5lbC92ZWN0b3IuYyAgICAgICAgICAgICB8ICAzICstCiAxMCBm aWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvYXJjaC9yaXNjdi9LY29uZmlnIGIvYXJjaC9yaXNjdi9LY29uZmlnCmluZGV4IGQ2MDdh YjBmN2M2ZC4uZGM1MTE2NGI4ZmQ0IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L0tjb25maWcKKysr IGIvYXJjaC9yaXNjdi9LY29uZmlnCkBAIC01MjAsNiArNTIwLDE2IEBAIGNvbmZpZyBSSVNDVl9J U0FfVl9ERUZBVUxUX0VOQUJMRQogCiAJICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIGhl cmUsIHNheSBZLgogCitjb25maWcgUklTQ1ZfSVNBX1ZfUFJFRU1QVElWRQorCWJvb2wgIlJ1biBr ZXJuZWwtbW9kZSBWZWN0b3Igd2l0aCBrZXJuZWwgcHJlZW1wdGlvbiIKKwlkZXBlbmRzIG9uIFBS RUVNUFRJT04KKwlkZXBlbmRzIG9uIFJJU0NWX0lTQV9WCisJZGVmYXVsdCB5CisJaGVscAorCSAg T3JkaW5hcmlseSB0aGUga2VybmVsIGRpc2FibGVzIHByZWVtcHRpb24gYmVmb3JlIHJ1bm5pbmcg aW4ta2VybmVsCisJICBWZWN0b3IgY29kZS4gVGhpcyBjb25maWcgZnJlZXMgdGhlIGtlcm5lbCBm cm9tIGRpc2FibGluZyBwcmVlbXB0aW9uCisJICBieSBhZGRpbmcgbWVtb3J5IG9uIGRlbWFuZCBm b3IgdHJhY2tpbmcga2VybmVsJ3MgVi1jb250ZXh0LgorCiBjb25maWcgVE9PTENIQUlOX0hBU19a QkIKIAlib29sCiAJZGVmYXVsdCB5CmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L3Byb2Nlc3Nvci5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAppbmRleCAz ZTIzZTE3ODZkMDUuLmY5Yjg1ZTM3ZTYyNCAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9wcm9jZXNzb3IuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5o CkBAIC04Miw2ICs4Miw4IEBAIHN0cnVjdCB0aHJlYWRfc3RydWN0IHsKIAl1bnNpZ25lZCBsb25n IGJhZF9jYXVzZTsKIAl1bnNpZ25lZCBsb25nIHZzdGF0ZV9jdHJsOwogCXN0cnVjdCBfX3Jpc2N2 X3ZfZXh0X3N0YXRlIHZzdGF0ZTsKKwlzdHJ1Y3QgcHRfcmVncyAqdHJhcF9wdF9yZWdzOworCXN0 cnVjdCBfX3Jpc2N2X3ZfZXh0X3N0YXRlIGtlcm5lbF92c3RhdGU7CiB9OwogCiAvKiBXaGl0ZWxp c3QgdGhlIGZzdGF0ZSBmcm9tIHRoZSB0YXNrX3N0cnVjdCBmb3IgaGFyZGVuZWQgdXNlcmNvcHkg Ki8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc2ltZC5oIGIvYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9zaW1kLmgKaW5kZXggMGM1YmE1NTViNDYwLi45M2Q5MDE1YjQ3NTEgMTAw NjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc2ltZC5oCisrKyBiL2FyY2gvcmlzY3Yv aW5jbHVkZS9hc20vc2ltZC5oCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvcGVy Y3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJlZW1wdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CisjaW5jbHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KIAogI2lmZGVmIENPTkZJR19SSVND Vl9JU0FfVgogCkBAIC0zMyw4ICszNCwxNCBAQCBzdGF0aWMgX19tdXN0X2NoZWNrIGlubGluZSBi b29sIG1heV91c2Vfc2ltZCh2b2lkKQogCSAqIGNhbm5vdCBjaGFuZ2UgdW5kZXIgb3VyIGZlZXQg LS0gaWYgaXQncyBzZXQgd2UgY2Fubm90IGJlCiAJICogbWlncmF0ZWQsIGFuZCBpZiBpdCdzIGNs ZWFyIHdlIGNhbm5vdCBiZSBtaWdyYXRlZCB0byBhIENQVQogCSAqIHdoZXJlIGl0IGlzIHNldC4K KwkgKgorCSAqIFRoZSBUSUZfUklTQ1ZfVl9LRVJORUxfTU9ERSBjaGVjayBoZXJlIHByZXZlbnQg dXMgZnJvbSBuZXN0aW5nIGEKKwkgKiBub24tcHJlZW1wdGlibGUgViBjb250ZXh0IG9uIHRvcCBv ZiBhIHByZWVtcHRpYmxlIG9uZS4gRm9yIGV4YW1wbGUsCisJICogZXhlY3V0aW5nIFYgaW4gYSBz b2Z0aXJxIGNvbnRleHQgaXMgcHJldmVudGVkIGlmIHRoZSBjb3JlIGlzCisJICogaW50ZXJydXB0 ZWQgZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgcHJlZW1wdGlibGUgVi4KIAkgKi8KLQlyZXR1cm4g IWluX2hhcmRpcnEoKSAmJiAhaW5fbm1pKCkgJiYgIXRoaXNfY3B1X3JlYWQodmVjdG9yX2NvbnRl eHRfYnVzeSk7CisJcmV0dXJuICFpbl9oYXJkaXJxKCkgJiYgIWluX25taSgpICYmICF0aGlzX2Nw dV9yZWFkKHZlY3Rvcl9jb250ZXh0X2J1c3kpICYmCisJICAgICAgICF0ZXN0X3RocmVhZF9mbGFn KFRJRl9SSVNDVl9WX0tFUk5FTF9NT0RFKTsKIH0KIAogI2Vsc2UgLyogISBDT05GSUdfUklTQ1Zf SVNBX1YgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8u aCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAppbmRleCBiMTgyZjJkMDNl MjUuLjg3OTdkNTIwZThlZiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS90aHJl YWRfaW5mby5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaApAQCAt OTQsNiArOTQsNyBAQCBpbnQgYXJjaF9kdXBfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0 ICpkc3QsIHN0cnVjdCB0YXNrX3N0cnVjdCAqc3JjKTsKICNkZWZpbmUgVElGX1VQUk9CRQkJMTAJ LyogdXByb2JlIGJyZWFrcG9pbnQgb3Igc2luZ2xlc3RlcCAqLwogI2RlZmluZSBUSUZfMzJCSVQJ CTExCS8qIGNvbXBhdC1tb2RlIDMyYml0IHByb2Nlc3MgKi8KICNkZWZpbmUgVElGX1JJU0NWX1Zf REVGRVJfUkVTVE9SRQkxMiAvKiByZXN0b3JlIFZlY3RvciBiZWZvcmUgcmV0dXJpbmcgdG8gdXNl ciAqLworI2RlZmluZSBUSUZfUklTQ1ZfVl9LRVJORUxfTU9ERQkJCTEzIC8qIGtlcm5lbC1tb2Rl IFZlY3RvciBydW4gd2l0aCBwcmVlbXB0aW9uLW9uICovCiAKICNkZWZpbmUgX1RJRl9OT1RJRllf UkVTVU1FCSgxIDw8IFRJRl9OT1RJRllfUkVTVU1FKQogI2RlZmluZSBfVElGX1NJR1BFTkRJTkcJ CSgxIDw8IFRJRl9TSUdQRU5ESU5HKQpAQCAtMTAxLDkgKzEwMiwxMiBAQCBpbnQgYXJjaF9kdXBf dGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICpkc3QsIHN0cnVjdCB0YXNrX3N0cnVjdCAq c3JjKTsKICNkZWZpbmUgX1RJRl9OT1RJRllfU0lHTkFMCSgxIDw8IFRJRl9OT1RJRllfU0lHTkFM KQogI2RlZmluZSBfVElGX1VQUk9CRQkJKDEgPDwgVElGX1VQUk9CRSkKICNkZWZpbmUgX1RJRl9S SVNDVl9WX0RFRkVSX1JFU1RPUkUJKDEgPDwgVElGX1JJU0NWX1ZfREVGRVJfUkVTVE9SRSkKKyNk ZWZpbmUgX1RJRl9SSVNDVl9WX0tFUk5FTF9NT0RFCSgxIDw8IFRJRl9SSVNDVl9WX0tFUk5FTF9N T0RFKQogCiAjZGVmaW5lIF9USUZfV09SS19NQVNLIFwKIAkoX1RJRl9OT1RJRllfUkVTVU1FIHwg X1RJRl9TSUdQRU5ESU5HIHwgX1RJRl9ORUVEX1JFU0NIRUQgfCBcCiAJIF9USUZfTk9USUZZX1NJ R05BTCB8IF9USUZfVVBST0JFKQogCisjZGVmaW5lIFJJU0NWX1ZfVlNUQVRFX0NUUkxfUFJFRU1Q VElCTEUJMHgyMAorCiAjZW5kaWYgLyogX0FTTV9SSVNDVl9USFJFQURfSU5GT19IICovCmRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3ZlY3Rvci5oIGIvYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS92ZWN0b3IuaAppbmRleCBkMzU2ZWFjOGMwYjQuLjI3YmI0OWU5N2FmOCAxMDA2NDQK LS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS92ZWN0b3IuaAorKysgYi9hcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL3ZlY3Rvci5oCkBAIC0xOTgsOSArMTk4LDIyIEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBfX3N3aXRjaF90b192ZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAogewogCXN0cnVj dCBwdF9yZWdzICpyZWdzOwogCi0JcmVncyA9IHRhc2tfcHRfcmVncyhwcmV2KTsKLQlyaXNjdl92 X3ZzdGF0ZV9zYXZlKCZwcmV2LT50aHJlYWQudnN0YXRlLCByZWdzKTsKLQlyaXNjdl92X3ZzdGF0 ZV9zZXRfcmVzdG9yZShuZXh0LCB0YXNrX3B0X3JlZ3MobmV4dCkpOworCWlmIChJU19FTkFCTEVE KENPTkZJR19SSVNDVl9JU0FfVl9QUkVFTVBUSVZFKSAmJgorCSAgICB0ZXN0X3Rza190aHJlYWRf ZmxhZyhwcmV2LCBUSUZfUklTQ1ZfVl9LRVJORUxfTU9ERSkpIHsKKwkJcmVncyA9IHByZXYtPnRo cmVhZC50cmFwX3B0X3JlZ3M7CisJCXJpc2N2X3ZfdnN0YXRlX3NhdmUoJnByZXYtPnRocmVhZC5r ZXJuZWxfdnN0YXRlLCByZWdzKTsKKwl9IGVsc2UgeworCQlyZWdzID0gdGFza19wdF9yZWdzKHBy ZXYpOworCQlyaXNjdl92X3ZzdGF0ZV9zYXZlKCZwcmV2LT50aHJlYWQudnN0YXRlLCByZWdzKTsK Kwl9CisKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUklTQ1ZfSVNBX1ZfUFJFRU1QVElWRSkgJiYK KwkgICAgdGVzdF90c2tfdGhyZWFkX2ZsYWcobmV4dCwgVElGX1JJU0NWX1ZfS0VSTkVMX01PREUp KSB7CisJCXJlZ3MgPSBuZXh0LT50aHJlYWQudHJhcF9wdF9yZWdzOworCQlyaXNjdl92X3ZzdGF0 ZV9yZXN0b3JlKCZuZXh0LT50aHJlYWQua2VybmVsX3ZzdGF0ZSwgcmVncyk7CisJfSBlbHNlIHsK KwkJcmlzY3Zfdl92c3RhdGVfc2V0X3Jlc3RvcmUobmV4dCwgdGFza19wdF9yZWdzKG5leHQpKTsK Kwl9CiB9CiAKIHZvaWQgcmlzY3Zfdl92c3RhdGVfY3RybF9pbml0KHN0cnVjdCB0YXNrX3N0cnVj dCAqdHNrKTsKQEAgLTIyNSw0ICsyMzgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHJpc2N2X3Zf dnN0YXRlX2N0cmxfdXNlcl9hbGxvd2VkKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICNlbmRp ZiAvKiBDT05GSUdfUklTQ1ZfSVNBX1YgKi8KIAorI2lmZGVmIENPTkZJR19SSVNDVl9JU0FfVl9Q UkVFTVBUSVZFCit2b2lkIGtlcm5lbF92ZWN0b3JfYWxsb3dfcHJlZW1wdGlvbih2b2lkKTsKKyNl bHNlCisjZGVmaW5lIGtlcm5lbF92ZWN0b3JfYWxsb3dfcHJlZW1wdGlvbigpCWRvIHt9IHdoaWxl ICgwKQorI2VuZGlmCisKICNlbmRpZiAvKiAhIF9fQVNNX1JJU0NWX1ZFQ1RPUl9IICovCmRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC9yaXNjdi9rZXJu ZWwvYXNtLW9mZnNldHMuYwppbmRleCBkNmE3NWFhYzFkMjcuLjRiMDYyZjc3NDFiMiAxMDA2NDQK LS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvYXNtLW9mZnNldHMuYworKysgYi9hcmNoL3Jpc2N2L2tl cm5lbC9hc20tb2Zmc2V0cy5jCkBAIC0zOCw2ICszOCw4IEBAIHZvaWQgYXNtX29mZnNldHModm9p ZCkKIAlPRkZTRVQoVEFTS19USV9QUkVFTVBUX0NPVU5ULCB0YXNrX3N0cnVjdCwgdGhyZWFkX2lu Zm8ucHJlZW1wdF9jb3VudCk7CiAJT0ZGU0VUKFRBU0tfVElfS0VSTkVMX1NQLCB0YXNrX3N0cnVj dCwgdGhyZWFkX2luZm8ua2VybmVsX3NwKTsKIAlPRkZTRVQoVEFTS19USV9VU0VSX1NQLCB0YXNr X3N0cnVjdCwgdGhyZWFkX2luZm8udXNlcl9zcCk7CisJT0ZGU0VUKFRBU0tfVEhSRUFEX1RSQVBf UkVHUCwgdGFza19zdHJ1Y3QsIHRocmVhZC50cmFwX3B0X3JlZ3MpOworCU9GRlNFVChUQVNLX1RI UkVBRF9WU1RBVEVfQ1RSTCwgdGFza19zdHJ1Y3QsIHRocmVhZC52c3RhdGVfY3RybCk7CiAKIAlP RkZTRVQoVEFTS19USFJFQURfRjAsICB0YXNrX3N0cnVjdCwgdGhyZWFkLmZzdGF0ZS5mWzBdKTsK IAlPRkZTRVQoVEFTS19USFJFQURfRjEsICB0YXNrX3N0cnVjdCwgdGhyZWFkLmZzdGF0ZS5mWzFd KTsKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMgYi9hcmNoL3Jpc2N2L2tl cm5lbC9lbnRyeS5TCmluZGV4IDE0M2EyYmIzZTY5Ny4uZWM4YmFhZGE2MDhmIDEwMDY0NAotLS0g YS9hcmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5 LlMKQEAgLTY2LDYgKzY2LDMzIEBAIF9zYXZlX2NvbnRleHQ6CiAJUkVHX1MgczQsIFBUX0NBVVNF KHNwKQogCVJFR19TIHM1LCBQVF9UUChzcCkKIAorI2lmZGVmIENPTkZJR19SSVNDVl9JU0FfVl9Q UkVFTVBUSVZFCisJLyoKKwkgKiBSZWNvcmQgdGhlIHJlZ2lzdGVyIHNldCBhdCB0aGUgZnJhbWUg d2hlcmUgaW4ta2VybmVsIFYgcmVnaXN0ZXJzIGFyZQorCSAqIGxhc3QgYWxpdmUuCisJICovCisJ UkVHX0wgczAsIFRBU0tfVElfRkxBR1ModHApCisJbGkgczEsIDEgPDwgVElGX1JJU0NWX1ZfS0VS TkVMX01PREUKKwlhbmQgczAsIHMwLCBzMQorCWJlcXogczAsIDFmCisJbGkgczAsIFRBU0tfVEhS RUFEX1RSQVBfUkVHUAorCWFkZCBzMCwgczAsIHRwCisJUkVHX0wgczEsIChzMCkKKwlibmV6IHMx LCAxZgorCVJFR19TIHNwLCAoczApCisJbGkgczAsIFRBU0tfVEhSRUFEX1ZTVEFURV9DVFJMCisJ YWRkIHMwLCBzMCwgdHAKKwlSRUdfTCBzMSwgKHMwKQorCS8qCisJICogTmVzdGluZyBwcmVlbXB0 aWJsZSBWZWN0b3IgY29udGV4dCBpcyBwcmV2ZW50ZWQgYnkgdW5zZXR0aW5nCisJICogUklTQ1Zf Vl9WU1RBVEVfQ1RSTF9QUkVFTVBUSUJMRSBoZXJlLgorCSAqLworCWxpIHMyLCB+UklTQ1ZfVl9W U1RBVEVfQ1RSTF9QUkVFTVBUSUJMRQorCWFuZCBzMSwgczEsIHMyCisJUkVHX1MgczEsIChzMCkK KzE6CisjZW5kaWYKKwogCS8qCiAJICogU2V0IHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHRvIDAsIHNv IHRoYXQgaWYgYSByZWN1cnNpdmUgZXhjZXB0aW9uCiAJICogb2NjdXJzLCB0aGUgZXhjZXB0aW9u IHZlY3RvciBrbm93cyBpdCBjYW1lIGZyb20gdGhlIGtlcm5lbApAQCAtMTI5LDYgKzE1NiwyOCBA QCBTWU1fQ09ERV9TVEFSVF9OT0FMSUdOKHJldF9mcm9tX2V4Y2VwdGlvbikKIAkgKi8KIAljc3J3 IENTUl9TQ1JBVENILCB0cAogMToKKyNpZmRlZiBDT05GSUdfUklTQ1ZfSVNBX1ZfUFJFRU1QVElW RQorCS8qCisJICogQ2xlYXIgdHJhY2tpbmcgb2YgdGhlIHRyYXAgcmVnaXN0ZXJzIHdoZW4gd2Ug cmV0dXJuIHRvIHRoZSBmcmFtZQorCSAqIHRoYXQgdXNlcyBrZXJuZWwgbW9kZSBWZWN0b3IuCisJ ICovCisJUkVHX0wgczAsIFRBU0tfVElfRkxBR1ModHApCisJbGkgczEsIDEgPDwgVElGX1JJU0NW X1ZfS0VSTkVMX01PREUKKwlhbmQgczAsIHMwLCBzMQorCWJlcXogczAsIDFmCisJbGkgczAsIFRB U0tfVEhSRUFEX1RSQVBfUkVHUAorCWFkZCBzMCwgczAsIHRwCisJUkVHX0wgczEsIChzMCkKKwli bmUgczEsIHNwLCAxZgorCVJFR19TIHgwLCAoczApCisJbGkgczAsIFRBU0tfVEhSRUFEX1ZTVEFU RV9DVFJMCisJYWRkIHMwLCBzMCwgdHAKKwlSRUdfTCBzMSwgKHMwKQorCW9yaSBzMSwgczEsIFJJ U0NWX1ZfVlNUQVRFX0NUUkxfUFJFRU1QVElCTEUKKwlSRUdfUyBzMSwgKHMwKQorMToKKyNlbmRp ZgorCiAJUkVHX0wgYTAsIFBUX1NUQVRVUyhzcCkKIAkvKgogCSAqIFRoZSBjdXJyZW50IGxvYWQg cmVzZXJ2YXRpb24gaXMgZWZmZWN0aXZlbHkgcGFydCBvZiB0aGUgcHJvY2Vzc29yJ3MKZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2tlcm5lbF9tb2RlX3ZlY3Rvci5jIGIvYXJjaC9yaXNj di9rZXJuZWwva2VybmVsX21vZGVfdmVjdG9yLmMKaW5kZXggMjM0NDgxN2Y4NjQwLi42MjAzOTkw NDc2YjMgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL2tlcm5lbF9tb2RlX3ZlY3Rvci5j CisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2tlcm5lbF9tb2RlX3ZlY3Rvci5jCkBAIC0xMCw2ICsx MCw3IEBACiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJlZW1w dC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgog CiAjaW5jbHVkZSA8YXNtL3ZlY3Rvci5oPgogI2luY2x1ZGUgPGFzbS9zd2l0Y2hfdG8uaD4KQEAg LTQ4LDYgKzQ5LDUwIEBAIHZvaWQgcHV0X2NwdV92ZWN0b3JfY29udGV4dCh2b2lkKQogCXByZWVt cHRfZW5hYmxlKCk7CiB9CiAKKyNpZmRlZiBDT05GSUdfUklTQ1ZfSVNBX1ZfUFJFRU1QVElWRQor dm9pZCBrZXJuZWxfdmVjdG9yX2FsbG93X3ByZWVtcHRpb24odm9pZCkKK3sKKwljdXJyZW50LT50 aHJlYWQudnN0YXRlX2N0cmwgfD0gUklTQ1ZfVl9WU1RBVEVfQ1RSTF9QUkVFTVBUSUJMRTsKK30K Kworc3RhdGljIGJvb2wga2VybmVsX3ZlY3Rvcl9wcmVlbXB0aWJsZSh2b2lkKQoreworCXJldHVy biAhIShjdXJyZW50LT50aHJlYWQudnN0YXRlX2N0cmwgJiBSSVNDVl9WX1ZTVEFURV9DVFJMX1BS RUVNUFRJQkxFKTsKK30KKworc3RhdGljIGludCByaXNjdl92X3N0YXJ0X2tlcm5lbF9jb250ZXh0 KHZvaWQpCit7CisJc3RydWN0IF9fcmlzY3Zfdl9leHRfc3RhdGUgKnZzdGF0ZTsKKworCWlmICgh a2VybmVsX3ZlY3Rvcl9wcmVlbXB0aWJsZSgpKQorCQlyZXR1cm4gLUVCVVNZOworCisJdnN0YXRl ID0gJmN1cnJlbnQtPnRocmVhZC5rZXJuZWxfdnN0YXRlOworCWlmICghdnN0YXRlLT5kYXRhcCkg eworCQl2c3RhdGUtPmRhdGFwID0ga21hbGxvYyhyaXNjdl92X3ZzaXplLCBHRlBfS0VSTkVMKTsK KwkJaWYgKCF2c3RhdGUtPmRhdGFwKQorCQkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJZ2V0X2Nw dV92ZWN0b3JfY29udGV4dCgpOworCXJpc2N2X3ZfdnN0YXRlX3NhdmUoJmN1cnJlbnQtPnRocmVh ZC52c3RhdGUsIHRhc2tfcHRfcmVncyhjdXJyZW50KSk7CisJcHV0X2NwdV92ZWN0b3JfY29udGV4 dCgpOworCisJY3VycmVudC0+dGhyZWFkLnRyYXBfcHRfcmVncyA9IE5VTEw7CisJV0FSTl9PTih0 ZXN0X2FuZF9zZXRfdGhyZWFkX2ZsYWcoVElGX1JJU0NWX1ZfS0VSTkVMX01PREUpKTsKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmlzY3Zfdl9zdG9wX2tlcm5lbF9jb250ZXh0KHZvaWQp Cit7CisJV0FSTl9PTighdGVzdF9hbmRfY2xlYXJfdGhyZWFkX2ZsYWcoVElGX1JJU0NWX1ZfS0VS TkVMX01PREUpKTsKKwljdXJyZW50LT50aHJlYWQudHJhcF9wdF9yZWdzID0gTlVMTDsKK30KKyNl bHNlCisjZGVmaW5lIHJpc2N2X3Zfc3RhcnRfa2VybmVsX2NvbnRleHQoKQkoMCkKKyNkZWZpbmUg cmlzY3Zfdl9zdG9wX2tlcm5lbF9jb250ZXh0KCkJZG8ge30gd2hpbGUgKDApCisjZW5kaWYgLyog Q09ORklHX1JJU0NWX0lTQV9WX1BSRUVNUFRJVkUgKi8KKwogLyoKICAqIGtlcm5lbF92ZWN0b3Jf YmVnaW4oKTogb2J0YWluIHRoZSBDUFUgdmVjdG9yIHJlZ2lzdGVycyBmb3IgdXNlIGJ5IHRoZSBj YWxsaW5nCiAgKiBjb250ZXh0CkBAIC02OCw5ICsxMTMsMTAgQEAgdm9pZCBrZXJuZWxfdmVjdG9y X2JlZ2luKHZvaWQpCiAKIAlCVUdfT04oIW1heV91c2Vfc2ltZCgpKTsKIAotCWdldF9jcHVfdmVj dG9yX2NvbnRleHQoKTsKLQotCXJpc2N2X3ZfdnN0YXRlX3NhdmUoJmN1cnJlbnQtPnRocmVhZC52 c3RhdGUsIHRhc2tfcHRfcmVncyhjdXJyZW50KSk7CisJaWYgKCFwcmVlbXB0aWJsZSgpIHx8IHJp c2N2X3Zfc3RhcnRfa2VybmVsX2NvbnRleHQoKSkgeworCQlnZXRfY3B1X3ZlY3Rvcl9jb250ZXh0 KCk7CisJCXJpc2N2X3ZfdnN0YXRlX3NhdmUoJmN1cnJlbnQtPnRocmVhZC52c3RhdGUsIHRhc2tf cHRfcmVncyhjdXJyZW50KSk7CisJfQogCiAJcmlzY3Zfdl9lbmFibGUoKTsKIH0KQEAgLTk0LDYg KzE0MCw5IEBAIHZvaWQga2VybmVsX3ZlY3Rvcl9lbmQodm9pZCkKIAogCXJpc2N2X3ZfZGlzYWJs ZSgpOwogCi0JcHV0X2NwdV92ZWN0b3JfY29udGV4dCgpOworCWlmICghdGVzdF90aHJlYWRfZmxh ZyhUSUZfUklTQ1ZfVl9LRVJORUxfTU9ERSkpCisJCXB1dF9jcHVfdmVjdG9yX2NvbnRleHQoKTsK KwllbHNlCisJCXJpc2N2X3Zfc3RvcF9rZXJuZWxfY29udGV4dCgpOwogfQogRVhQT1JUX1NZTUJP TF9HUEwoa2VybmVsX3ZlY3Rvcl9lbmQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwv cHJvY2Vzcy5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IGVjODllN2VkYjZm ZC4uMThjYjM3YzMwNWFiIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9wcm9jZXNzLmMK KysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvcHJvY2Vzcy5jCkBAIC0xNjAsOCArMTYwLDExIEBAIHZv aWQgZmx1c2hfdGhyZWFkKHZvaWQpCiB2b2lkIGFyY2hfcmVsZWFzZV90YXNrX3N0cnVjdChzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnRzaykKIHsKIAkvKiBGcmVlIHRoZSB2ZWN0b3IgY29udGV4dCBvZiBk YXRhcC4gKi8KLQlpZiAoaGFzX3ZlY3RvcigpKQorCWlmIChoYXNfdmVjdG9yKCkpIHsKIAkJa2Zy ZWUodHNrLT50aHJlYWQudnN0YXRlLmRhdGFwKTsKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1JJ U0NWX0lTQV9WX1BSRUVNUFRJVkUpKQorCQkJa2ZyZWUodHNrLT50aHJlYWQua2VybmVsX3ZzdGF0 ZS5kYXRhcCk7CisJfQogfQogCiBpbnQgYXJjaF9kdXBfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tf c3RydWN0ICpkc3QsIHN0cnVjdCB0YXNrX3N0cnVjdCAqc3JjKQpAQCAtMTcwLDcgKzE3Myw5IEBA IGludCBhcmNoX2R1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmRzdCwgc3RydWN0 IHRhc2tfc3RydWN0ICpzcmMpCiAJKmRzdCA9ICpzcmM7CiAJLyogY2xlYXIgZW50aXJlIFYgY29u dGV4dCwgaW5jbHVkaW5nIGRhdGFwIGZvciBhIG5ldyB0YXNrICovCiAJbWVtc2V0KCZkc3QtPnRo cmVhZC52c3RhdGUsIDAsIHNpemVvZihzdHJ1Y3QgX19yaXNjdl92X2V4dF9zdGF0ZSkpOworCW1l bXNldCgmZHN0LT50aHJlYWQua2VybmVsX3ZzdGF0ZSwgMCwgc2l6ZW9mKHN0cnVjdCBfX3Jpc2N2 X3ZfZXh0X3N0YXRlKSk7CiAJY2xlYXJfdHNrX3RocmVhZF9mbGFnKGRzdCwgVElGX1JJU0NWX1Zf REVGRVJfUkVTVE9SRSk7CisJY2xlYXJfdHNrX3RocmVhZF9mbGFnKGRzdCwgVElGX1JJU0NWX1Zf S0VSTkVMX01PREUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMDUsNiArMjEwLDcgQEAgaW50IGNv cHlfdGhyZWFkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3Qgc3RydWN0IGtlcm5lbF9jbG9u ZV9hcmdzICphcmdzKQogCQljaGlsZHJlZ3MtPmEwID0gMDsgLyogUmV0dXJuIHZhbHVlIG9mIGZv cmsoKSAqLwogCQlwLT50aHJlYWQuc1swXSA9IDA7CiAJfQorCWtlcm5lbF92ZWN0b3JfYWxsb3df cHJlZW1wdGlvbigpOwogCXAtPnRocmVhZC5yYSA9ICh1bnNpZ25lZCBsb25nKXJldF9mcm9tX2Zv cms7CiAJcC0+dGhyZWFkLnNwID0gKHVuc2lnbmVkIGxvbmcpY2hpbGRyZWdzOyAvKiBrZXJuZWwg c3AgKi8KIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3ZlY3Rvci5j IGIvYXJjaC9yaXNjdi9rZXJuZWwvdmVjdG9yLmMKaW5kZXggOWQ1ODNiNzYwZGI0Li40MmYyMjcw NzdlZTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3ZlY3Rvci5jCisrKyBiL2FyY2gv cmlzY3Yva2VybmVsL3ZlY3Rvci5jCkBAIC0xMjIsNyArMTIyLDggQEAgc3RhdGljIGlubGluZSB2 b2lkIHJpc2N2X3ZfY3RybF9zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjdXIsIGlu dCBueHQsCiAJY3RybCB8PSBWU1RBVEVfQ1RSTF9NQUtFX05FWFQobnh0KTsKIAlpZiAoaW5oZXJp dCkKIAkJY3RybCB8PSBQUl9SSVNDVl9WX1ZTVEFURV9DVFJMX0lOSEVSSVQ7Ci0JdHNrLT50aHJl YWQudnN0YXRlX2N0cmwgPSBjdHJsOworCXRzay0+dGhyZWFkLnZzdGF0ZV9jdHJsICY9IH5QUl9S SVNDVl9WX1ZTVEFURV9DVFJMX01BU0s7CisJdHNrLT50aHJlYWQudnN0YXRlX2N0cmwgfD0gY3Ry bDsKIH0KIAogYm9vbCByaXNjdl92X3ZzdGF0ZV9jdHJsX3VzZXJfYWxsb3dlZCh2b2lkKQotLSAK Mi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=