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 256A1CAC582 for ; Mon, 8 Sep 2025 23:53:24 +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=Jgp2JmtVLpQaaLFmCMqjM3qx1DykLs5qmcVPGoYzz1c=; b=2anilebqY3wFRr tNHCm7e6qZ8cDePFCk6iaYr6sRpfqS2tdGTyY/7O41G4MxM7Gyh7RuJuw5mMaij/5GTpVer5jLyKY eiqPjUV35UvSvVyluks16qunScesWgRRP+GEjjpNO9IfBRvpEhBM5xVhDknO77U1JJsFtmf3dDytP QXbx0vY0pR64ypfPwOJ6k6FQv0E88PFHJGpsLyUD/7ZzbWta8d+A/V4vyzWSvXsujXGh/x5aN39QU JzeJ7nnlRnz2YsNxaqRZveiIy9RFc0g6+e1LIke5bnfpLroZhIPXaKtQwymbrFU7g5cWDoZAulFxT ARMP6BsnjZuj+r/oolLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uvlfe-000000034pl-3VJx; Mon, 08 Sep 2025 23:53:14 +0000 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uvgSW-00000001UAC-2Xu2 for linux-riscv@lists.infradead.org; Mon, 08 Sep 2025 18:19:21 +0000 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2445824dc27so46887595ad.3 for ; Mon, 08 Sep 2025 11:19:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757355560; x=1757960360; 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=u7CgrCpAXtwvxj184IPVAedAN5ZhgiyGNSxHotqmsI4=; b=Av+vkm0En5OhkYSs3HUFn28jPhEdWRVt3yFrISakRHFsYcegA7Yd7zyTCr+8tuGibr qllVlvlmm2z/IMNoqYWhfx2/fJNLOAk4u1VbfmOewHDAz0igjqpqpjlf6hL6vOeAKN9J YG4ekM4DrK0jresiWryJfiY0hAS0kjHzkGs2v7B46DhK5No3aadB7ks2z8bAzGYjRbi5 3/BB/6ohpXPmHRlhcQHLNxzMAiDxL2hR63CWCITWw+v7MaKWFljoLRttpSOgbUvD8SsZ cTfEDftddmOQO6b3f7yX3xRY3JAImnhbSkkf/nqnEO7UfFEX01FbGWNPm/lx0DMSvA38 o3BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757355560; x=1757960360; 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=u7CgrCpAXtwvxj184IPVAedAN5ZhgiyGNSxHotqmsI4=; b=dZ4har1eBo0HAwcpibsswuF0kXsczkhcbGRB+Ctp7/9aMo3OEeNMhe3iWt74bcP5i6 2MIEDnM3v3sWOn7SRV1O7L326lEzVCyOlAkO90Krk/BsbehjQyEJWkbYlDzRghuZCdSY avr9YzCvSeELC7yTLBBvA5cnxauh+e5aTCXjzm072csbQu3K17ZJ4hFvOZPIfwy6t5Gz Sq6ic3UQ4MK6lBrCIcVUFcqELnaFYhX8IigGpSxOrelDdP8yshfOAKvvfClIufS3E7I4 NsA3R8Uv4T9zjTBMkABVf6JF3oAERU++c0s961JnbOA784jLnOs3iDfiJGu83Hw3vYqj fq+A== X-Forwarded-Encrypted: i=1; AJvYcCVBKkwl2n/wHDAOvNr5YKCGkFZVjubaHaSBgSfR2LWlkH9grcRIKpbVr2RtoojlpH5E+db0ZhbY3/OuMQ==@lists.infradead.org X-Gm-Message-State: AOJu0YyqoFlDdkqVJQErzof7WbJUvLOaIruZrWHhuCsM9iFgleuQxAyP y8u9tP/QYEWq9mPVUUDL9h7xpLLDA3WQ+raqZzkxpqllZvAbwjlrcO12OJOMb7RnmXA= X-Gm-Gg: ASbGncvxww+RopxLggNH1Ty+K4hBgyOaF/Rz9VCyU4bz1UaZLYJ+izTqmk9FHZUCKsN +t/XPLPOLk8xGtZhxWwNjf5bryp3oCrOkcScmcuI3pYexnuFV/M3JxWZbL/3ybs0zF4YFJFzm9k PJxyF6TCQwHGFBX68C5aNrqCgz4t7ccyRox7LbKyw4OylIqluv3JF4kLrl3+yYAGv8pcMPXskzl 2vvX9zPK6viF/h9VPGQRXmSzUoI8jAOTlyhiQ77HEXbnW+dx5uQ80BgBlb1cqy3O/Bbkeg8o0CM w/Hkz94hLlgLx0gPS3AyTxIaIzXruT4ju2MiD3tlNcPAHdkjxUnNe6XiUTERypj8gnJfj97Xsm9 wFNs= X-Google-Smtp-Source: AGHT+IEujdl0Sktg/jp2LHTsYjqX54DH2o9zLjp/MqoUneS6TiqWgAv2IGjYGCJLWLRIPNWCr6NiXw== X-Received: by 2002:a17:903:240b:b0:250:a6ae:f4aa with SMTP id d9443c01a7336-2516f24000cmr114954925ad.25.1757355559741; Mon, 08 Sep 2025 11:19:19 -0700 (PDT) Received: from cleger.eu.int ([2001:41d0:420:f300::]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24ccd763948sm117012755ad.118.2025.09.08.11.19.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Sep 2025 11:19:18 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Paul Walmsley , Palmer Dabbelt , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Himanshu Chauhan , Anup Patel , Xu Lu , Atish Patra , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Yunhui Cui Subject: [PATCH v7 2/5] riscv: add support for SBI Supervisor Software Events extension Date: Mon, 8 Sep 2025 18:17:04 +0000 Message-ID: <20250908181717.1997461-3-cleger@rivosinc.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250908181717.1997461-1-cleger@rivosinc.com> References: <20250908181717.1997461-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250908_111920_661248_F221895B X-CRM114-Status: GOOD ( 32.34 ) 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 VGhlIFNCSSBTU0UgZXh0ZW5zaW9uIGFsbG93cyB0aGUgc3VwZXJ2aXNvciBzb2Z0d2FyZSB0byBi ZSBub3RpZmllZCBieQp0aGUgU0JJIG9mIHNwZWNpZmljIGV2ZW50cyB0aGF0IGFyZSBub3QgbWFz a2FibGUuIFRoZSBjb250ZXh0IHN3aXRjaCBpcwpoYW5kbGVkIHBhcnRpYWxseSBieSB0aGUgZmly bXdhcmUgd2hpY2ggd2lsbCBzYXZlIHJlZ2lzdGVycyBhNiBhbmQgYTcuCldoZW4gZW50ZXJpbmcg a2VybmVsIHdlIGNhbiByZWx5IG9uIHRoZXNlIDIgcmVnaXN0ZXJzIHRvIHNldHVwIHRoZSBzdGFj awphbmQgc2F2ZSBhbGwgdGhlIHJlZ2lzdGVycy4KClNpbmNlIFNTRSBldmVudHMgY2FuIGJlIGRl bGl2ZXJlZCBhdCBhbnkgdGltZSB0byB0aGUga2VybmVsIChpbmNsdWRpbmcKZHVyaW5nIGV4Y2Vw dGlvbiBoYW5kbGluZywgd2UgbmVlZCBhIHdheSB0byBsb2NhdGUgdGhlIGN1cnJlbnRfdGFzayBm b3IKY29udGV4dCB0cmFja2luZy4gT24gUklTQy1WLCBpdCBpcyBzb3RyZWQgaW4gc2NyYXRjaCB3 aGVuIGluIHVzZXIgc3BhY2UKb3IgdHAgd2hlbiBpbiBrZXJuZWwgc3BhY2UgKGluIHdoaWNoIGNh c2UgU1NDUkFUQ0ggaXMgemVybykuIEJ1dCBhdCBhCmF0IHRoZSBiZWdpbm5pbmcgb2YgZXhjZXB0 aW9uIGhhbmRsaW5nLCBTU0NSQVRDSCBpcyB1c2VkIHRvIHN3YXAgdHAgYW5kCmNoZWNrIHRoZSBv cmlnaW4gb2YgdGhlIGV4Y2VwdGlvbi4gSWYgaW50ZXJydXB0ZWQgYXQgdGhhdCBwb2ludCwgdGhl biwKdGhlcmUgaXMgbm8gd2F5IHRvIHJlbGlhYmx5IGtub3cgd2VyZSBpcyBsb2NhdGVkIHRoZSBj dXJyZW50CnRhc2tfc3RydWN0LiBFdmVuIGNoZWNraW5nIHRoZSBpbnRlcnJ1cHRpb24gbG9jYXRp b24gd29uJ3Qgd29yayBhcyBTU0UKZXZlbnQgY2FuIGJlIG5lc3RlZCBvbiB0b3Agb2YgZWFjaCBv dGhlciBzbyB0aGUgb3JpZ2luYWwgaW50ZXJydXB0aW9uCnNpdGUgbWlnaHQgYmUgbG9zdCBhdCBz b21lIHBvaW50LiBJbiBvcmRlciB0byByZXRyaWV2ZSBpdCByZWxpYWJseSwKc3RvcmUgdGhlIGN1 cnJlbnQgdGFzayBpbiBhbiBhZGRpdGlvbmFsIF9fc3NlX2VudHJ5X3Rhc2sgcGVyX2NwdSBhcnJh eS4KVGhpcyBhcnJheSBpcyB0aGVuIHVzZWQgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQgdGFzayBi YXNlZCBvbiB0aGUKaGFydCBJRCB0aGF0IGlzIHBhc3NlZCB0byB0aGUgU1NFIGV2ZW50IGhhbmRs ZXIgaW4gYTYuCgpUaGF0IGJlaW5nIHNhaWQsIHRoZSB3YXkgdGhlIGN1cnJlbnQgdGFzayBzdHJ1 Y3QgaXMgc3RvcmVkIHNob3VsZApwcm9iYWJseSBiZSByZXdvcmtlZCB0byBmaW5kIGEgYmV0dGVy IHJlbGlhYmxlIGFsdGVybmF0aXZlLgoKU2luY2UgZWFjaCBldmVudHMgKGFuZCBlYWNoIENQVSBm b3IgbG9jYWwgZXZlbnRzKSBoYXZlIHRoZWlyIG93bgpjb250ZXh0IGFuZCBjYW4gcHJlZW1wdCBl YWNoIG90aGVyLCBhbGxvY2F0ZSBhIHN0YWNrIChhbmQgYSBzaGFkb3cgc3RhY2sKaWYgbmVlZGVk IGZvciBlYWNoIG9mIHRoZW0gKGFuZCBmb3IgZWFjaCBjcHUgZm9yIGxvY2FsIGV2ZW50cykuCgpX aGVuIGNvbXBsZXRpbmcgdGhlIGV2ZW50LCBpZiB3ZSB3ZXJlIGNvbWluZyBmcm9tIGtlcm5lbCB3 aXRoIGludGVycnVwdHMKZGlzYWJsZWQsIHNpbXBseSByZXR1cm4gdGhlcmUuIElmIGNvbWluZyBm cm9tIHVzZXJzcGFjZSBvciBrZXJuZWwgd2l0aAppbnRlcnJ1cHRzIGVuYWJsZWQsIHNpbXVsYXRl IGFuIGludGVycnVwdCBleGNlcHRpb24gYnkgc2V0dGluZyBJRV9TSUUgaW4KQ1NSX0lQIHRvIGFs bG93IGRlbGl2ZXJ5IG9mIHNpZ25hbHMgdG8gdXNlciB0YXNrLiBGb3IgaW5zdGFuY2UgdGhpcyBj YW4KaGFwcGVuLCB3aGVuIGEgUkFTIGV2ZW50IGhhcyBiZWVuIGdlbmVyYXRlZCBieSBhIHVzZXIg YXBwbGljYXRpb24gYW5kIGEKU0lHQlVTIGhhcyBiZWVuIHNlbnQgdG8gYSB0YXNrLgoKU2lnbmVk LW9mZi1ieTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgotLS0KIGFyY2gv cmlzY3YvaW5jbHVkZS9hc20vYXNtLmggICAgICAgICB8ICAxNCArKy0KIGFyY2gvcmlzY3YvaW5j bHVkZS9hc20vc2NzLmggICAgICAgICB8ICAgNyArKwogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9z c2UuaCAgICAgICAgIHwgIDQ3ICsrKysrKysKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3dpdGNo X3RvLmggICB8ICAxNCArKysKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCB8 ICAgMSArCiBhcmNoL3Jpc2N2L2tlcm5lbC9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogYXJj aC9yaXNjdi9rZXJuZWwvYXNtLW9mZnNldHMuYyAgICAgIHwgIDE0ICsrKwogYXJjaC9yaXNjdi9r ZXJuZWwvc2JpX3NzZS5jICAgICAgICAgIHwgMTc0ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBhcmNoL3Jpc2N2L2tlcm5lbC9zYmlfc3NlX2VudHJ5LlMgICAgfCAxNzggKysrKysrKysrKysr KysrKysrKysrKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDQ0NyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3Nl LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2tlcm5lbC9zYmlfc3NlLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2tlcm5lbC9zYmlfc3NlX2VudHJ5LlMKCmRpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2FzbS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9hc20uaAppbmRleCAyYTE2ZTg4ZTEzZGUuLjQxNmRkZGQzN2Q2NyAxMDA2NDQKLS0tIGEvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9hc20uaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Fz bS5oCkBAIC05MCwxNiArOTAsMjQgQEAKICNkZWZpbmUgUEVSX0NQVV9PRkZTRVRfU0hJRlQgMwog I2VuZGlmCiAKLS5tYWNybyBhc21fcGVyX2NwdSBkc3Qgc3ltIHRtcAotCWx3ICAgIFx0bXAsIFRB U0tfVElfQ1BVX05VTSh0cCkKLQlzbGxpICBcdG1wLCBcdG1wLCBQRVJfQ1BVX09GRlNFVF9TSElG VAorLm1hY3JvIGFzbV9wZXJfY3B1X3dpdGhfY3B1IGRzdCBzeW0gdG1wIGNwdQorCXNsbGkgIFx0 bXAsIFxjcHUsIFBFUl9DUFVfT0ZGU0VUX1NISUZUCiAJbGEgICAgXGRzdCwgX19wZXJfY3B1X29m ZnNldAogCWFkZCAgIFxkc3QsIFxkc3QsIFx0bXAKIAlSRUdfTCBcdG1wLCAwKFxkc3QpCiAJbGEg ICAgXGRzdCwgXHN5bQogCWFkZCAgIFxkc3QsIFxkc3QsIFx0bXAKIC5lbmRtCisKKy5tYWNybyBh c21fcGVyX2NwdSBkc3Qgc3ltIHRtcAorCWx3IFx0bXAsIFRBU0tfVElfQ1BVX05VTSh0cCkKKwlh c21fcGVyX2NwdV93aXRoX2NwdSBcZHN0IFxzeW0gXHRtcCBcdG1wCisuZW5kbQogI2Vsc2UgLyog Q09ORklHX1NNUCAqLworLm1hY3JvIGFzbV9wZXJfY3B1X3dpdGhfY3B1IGRzdCBzeW0gdG1wIGNw dQorCWxhICAgIFxkc3QsIFxzeW0KKy5lbmRtCisKIC5tYWNybyBhc21fcGVyX2NwdSBkc3Qgc3lt IHRtcAogCWxhICAgIFxkc3QsIFxzeW0KIC5lbmRtCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL3Njcy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zY3MuaAppbmRleCAwZTQ1 ZGI3OGIyNGIuLjYyMzQ0ZGFhZDczZCAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9zY3MuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Njcy5oCkBAIC0xOCw2ICsxOCwx MSBAQAogCWxvYWRfcGVyX2NwdSBncCwgaXJxX3NoYWRvd19jYWxsX3N0YWNrX3B0ciwgXHRtcAog LmVuZG0KIAorLyogTG9hZCB0aGUgcGVyLUNQVSBJUlEgc2hhZG93IGNhbGwgc3RhY2sgdG8gZ3Au ICovCisubWFjcm8gc2NzX2xvYWRfc3NlX3N0YWNrIHJlZ19ldnQKKwlSRUdfTCBncCwgU1NFX1JF R19FVlRfU0hBRE9XX1NUQUNLKFxyZWdfZXZ0KQorLmVuZG0KKwogLyogTG9hZCB0YXNrX3Njc19z cChjdXJyZW50KSB0byBncC4gKi8KIC5tYWNybyBzY3NfbG9hZF9jdXJyZW50CiAJUkVHX0wJZ3As IFRBU0tfVElfU0NTX1NQKHRwKQpAQCAtNDEsNiArNDYsOCBAQAogLmVuZG0KIC5tYWNybyBzY3Nf bG9hZF9pcnFfc3RhY2sgdG1wCiAuZW5kbQorLm1hY3JvIHNjc19sb2FkX3NzZV9zdGFjayByZWdf ZXZ0CisuZW5kbQogLm1hY3JvIHNjc19sb2FkX2N1cnJlbnQKIC5lbmRtCiAubWFjcm8gc2NzX2xv YWRfY3VycmVudF9pZl90YXNrX2NoYW5nZWQgcHJldgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9zc2UuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3NlLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kM2NlOGMyYjUyMjEKLS0tIC9kZXYvbnVs bAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NzZS5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KKy8qCisgKiBDb3B5cmln aHQgKEMpIDIwMjQgUml2b3MgSW5jLgorICovCisjaWZuZGVmIF9fQVNNX1NTRV9ICisjZGVmaW5l IF9fQVNNX1NTRV9ICisKKyNpbmNsdWRlIDxhc20vc2JpLmg+CisKKyNpZmRlZiBDT05GSUdfUklT Q1ZfU0JJX1NTRQorCitzdHJ1Y3Qgc3NlX2V2ZW50X2ludGVycnVwdGVkX3N0YXRlIHsKKwl1bnNp Z25lZCBsb25nIGE2OworCXVuc2lnbmVkIGxvbmcgYTc7Cit9OworCitzdHJ1Y3Qgc3NlX2V2ZW50 X2FyY2hfZGF0YSB7CisJdm9pZCAqc3RhY2s7CisJdm9pZCAqc2hhZG93X3N0YWNrOworCXVuc2ln bmVkIGxvbmcgdG1wOworCXN0cnVjdCBzc2VfZXZlbnRfaW50ZXJydXB0ZWRfc3RhdGUgaW50ZXJy dXB0ZWQ7CisJdW5zaWduZWQgbG9uZyBpbnRlcnJ1cHRlZF9waHlzOworCXUzMiBldnRfaWQ7CisJ dW5zaWduZWQgaW50IGhhcnRfaWQ7CisJdW5zaWduZWQgaW50IGNwdV9pZDsKK307CisKK3N0YXRp YyBpbmxpbmUgYm9vbCBzc2VfZXZlbnRfaXNfZ2xvYmFsKHUzMiBldnQpCit7CisJcmV0dXJuICEh KGV2dCAmIFNCSV9TU0VfRVZFTlRfR0xPQkFMKTsKK30KKwordm9pZCBhcmNoX3NzZV9ldmVudF91 cGRhdGVfY3B1KHN0cnVjdCBzc2VfZXZlbnRfYXJjaF9kYXRhICphcmNoX2V2dCwgaW50IGNwdSk7 CitpbnQgYXJjaF9zc2VfaW5pdF9ldmVudChzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hfZGF0YSAqYXJj aF9ldnQsIHUzMiBldnRfaWQsCisJCQlpbnQgY3B1KTsKK3ZvaWQgYXJjaF9zc2VfZnJlZV9ldmVu dChzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hfZGF0YSAqYXJjaF9ldnQpOworaW50IGFyY2hfc3NlX3Jl Z2lzdGVyX2V2ZW50KHN0cnVjdCBzc2VfZXZlbnRfYXJjaF9kYXRhICphcmNoX2V2dCk7CisKK3Zv aWQgc3NlX2hhbmRsZV9ldmVudChzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hfZGF0YSAqYXJjaF9ldnQs CisJCSAgICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK2FzbWxpbmthZ2Ugdm9pZCBoYW5kbGVf c3NlKHZvaWQpOworYXNtbGlua2FnZSB2b2lkIGRvX3NzZShzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hf ZGF0YSAqYXJjaF9ldnQsCisJCSAgICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVnKTsKKworI2VuZGlm CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8u aCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKaW5kZXggMGU3MWViODJmOTIw Li43MGU2OGU2MzAyMTYgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3dpdGNo X3RvLmgKKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaApAQCAtODgsNiAr ODgsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fc3dpdGNoX3RvX2VudmNmZyhzdHJ1Y3QgdGFz a19zdHJ1Y3QgKm5leHQpCiAJCQk6OiAiciIgKG5leHQtPnRocmVhZC5lbnZjZmcpIDogIm1lbW9y eSIpOwogfQogCisjaWZkZWYgQ09ORklHX1JJU0NWX1NCSV9TU0UKK0RFQ0xBUkVfUEVSX0NQVShz dHJ1Y3QgdGFza19zdHJ1Y3QgKiwgX19zYmlfc3NlX2VudHJ5X3Rhc2spOworCitzdGF0aWMgaW5s aW5lIHZvaWQgX19zd2l0Y2hfc2JpX3NzZV9lbnRyeV90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAq bmV4dCkKK3sKKwlfX3RoaXNfY3B1X3dyaXRlKF9fc2JpX3NzZV9lbnRyeV90YXNrLCBuZXh0KTsK K30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgX19zd2l0Y2hfc2JpX3NzZV9lbnRyeV90YXNr KHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCkKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gc3RydWN0 IHRhc2tfc3RydWN0ICpfX3N3aXRjaF90byhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwKIAkJCQkgICAg ICAgc3RydWN0IHRhc2tfc3RydWN0ICopOwogCkBAIC0xMjIsNiArMTM1LDcgQEAgZG8gewkJCQkJ CQlcCiAJaWYgKHN3aXRjaF90b19zaG91bGRfZmx1c2hfaWNhY2hlKF9fbmV4dCkpCVwKIAkJbG9j YWxfZmx1c2hfaWNhY2hlX2FsbCgpOwkJXAogCV9fc3dpdGNoX3RvX2VudmNmZyhfX25leHQpOwkJ CVwKKwlfX3N3aXRjaF9zYmlfc3NlX2VudHJ5X3Rhc2soX19uZXh0KTsJCQlcCiAJKChsYXN0KSA9 IF9fc3dpdGNoX3RvKF9fcHJldiwgX19uZXh0KSk7CQlcCiB9IHdoaWxlICgwKQogCmRpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggYi9hcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKaW5kZXggZjU5MTZhNzA4NzlhLi4yOGU5ODA1ZTYxZmMg MTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAorKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNk ZWZpbmUgT1ZFUkZMT1dfU1RBQ0tfU0laRSAgICAgU1pfNEsKIAogI2RlZmluZSBJUlFfU1RBQ0tf U0laRQkJVEhSRUFEX1NJWkUKKyNkZWZpbmUgU1NFX1NUQUNLX1NJWkUJCVRIUkVBRF9TSVpFCiAK ICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL01h a2VmaWxlIGIvYXJjaC9yaXNjdi9rZXJuZWwvTWFrZWZpbGUKaW5kZXggYzdiNTQyNTczNDA3Li4x NjYzN2UwMWE2YjMgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCisrKyBi L2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCkBAIC05OSw2ICs5OSw3IEBAIG9iai0kKENPTkZJ R19EWU5BTUlDX0ZUUkFDRSkJKz0gbWNvdW50LWR5bi5vCiBvYmotJChDT05GSUdfUEVSRl9FVkVO VFMpCSs9IHBlcmZfY2FsbGNoYWluLm8KIG9iai0kKENPTkZJR19IQVZFX1BFUkZfUkVHUykJKz0g cGVyZl9yZWdzLm8KIG9iai0kKENPTkZJR19SSVNDVl9TQkkpCQkrPSBzYmkubyBzYmlfZWNhbGwu bworb2JqLSQoQ09ORklHX1JJU0NWX1NCSV9TU0UpCSs9IHNiaV9zc2UubyBzYmlfc3NlX2VudHJ5 Lm8KIGlmZXEgKCQoQ09ORklHX1JJU0NWX1NCSSksIHkpCiBvYmotJChDT05GSUdfU01QKQkJKz0g c2JpLWlwaS5vCiBvYmotJChDT05GSUdfU01QKSArPSBjcHVfb3BzX3NiaS5vCmRpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvYXNt LW9mZnNldHMuYwppbmRleCA2ZThjMGQ2ZmVhZTkuLjFiMGQ4NjI0ZWY2ZSAxMDA2NDQKLS0tIGEv YXJjaC9yaXNjdi9rZXJuZWwvYXNtLW9mZnNldHMuYworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9h c20tb2Zmc2V0cy5jCkBAIC0xNCw2ICsxNCw4IEBACiAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgog I2luY2x1ZGUgPGFzbS9jcHVfb3BzX3NiaS5oPgogI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+ CisjaW5jbHVkZSA8YXNtL3NiaS5oPgorI2luY2x1ZGUgPGFzbS9zc2UuaD4KICNpbmNsdWRlIDxh c20vc3VzcGVuZC5oPgogCiB2b2lkIGFzbV9vZmZzZXRzKHZvaWQpOwpAQCAtNTI4LDQgKzUzMCwx NiBAQCB2b2lkIGFzbV9vZmZzZXRzKHZvaWQpCiAJREVGSU5FKEZSRUdTX0E2LAkgICAgb2Zmc2V0 b2Yoc3RydWN0IF9fYXJjaF9mdHJhY2VfcmVncywgYTYpKTsKIAlERUZJTkUoRlJFR1NfQTcsCSAg ICBvZmZzZXRvZihzdHJ1Y3QgX19hcmNoX2Z0cmFjZV9yZWdzLCBhNykpOwogI2VuZGlmCisKKyNp ZmRlZiBDT05GSUdfUklTQ1ZfU0JJX1NTRQorCU9GRlNFVChTU0VfUkVHX0VWVF9TVEFDSywgc3Nl X2V2ZW50X2FyY2hfZGF0YSwgc3RhY2spOworCU9GRlNFVChTU0VfUkVHX0VWVF9TSEFET1dfU1RB Q0ssIHNzZV9ldmVudF9hcmNoX2RhdGEsIHNoYWRvd19zdGFjayk7CisJT0ZGU0VUKFNTRV9SRUdf RVZUX1RNUCwgc3NlX2V2ZW50X2FyY2hfZGF0YSwgdG1wKTsKKwlPRkZTRVQoU1NFX1JFR19IQVJU X0lELCBzc2VfZXZlbnRfYXJjaF9kYXRhLCBoYXJ0X2lkKTsKKwlPRkZTRVQoU1NFX1JFR19DUFVf SUQsIHNzZV9ldmVudF9hcmNoX2RhdGEsIGNwdV9pZCk7CisKKwlERUZJTkUoU0JJX0VYVF9TU0Us IFNCSV9FWFRfU1NFKTsKKwlERUZJTkUoU0JJX1NTRV9FVkVOVF9DT01QTEVURSwgU0JJX1NTRV9F VkVOVF9DT01QTEVURSk7CisJREVGSU5FKEFTTV9OUl9DUFVTLCBOUl9DUFVTKTsKKyNlbmRpZgog fQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvc2JpX3NzZS5jIGIvYXJjaC9yaXNjdi9r ZXJuZWwvc2JpX3NzZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NjI2OTEyYTA5MjdkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvc2JpX3Nz ZS5jCkBAIC0wLDAgKzEsMTc0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vci1sYXRlcgorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyNCBSaXZvcyBJbmMuCisgKi8KKyNp bmNsdWRlIDxsaW51eC9ubWkuaD4KKyNpbmNsdWRlIDxsaW51eC9zY3MuaD4KKyNpbmNsdWRlIDxs aW51eC9iaXRmaWVsZC5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS1kZWZzLmg+CisKKyNpbmNs dWRlIDxhc20vYXNtLXByb3RvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vc3dpdGNoX3RvLmg+Cisj aW5jbHVkZSA8YXNtL2lycV9zdGFjay5oPgorI2luY2x1ZGUgPGFzbS9zYmkuaD4KKyNpbmNsdWRl IDxhc20vc3NlLmg+CisKK0RFRklORV9QRVJfQ1BVKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBfX3Ni aV9zc2VfZW50cnlfdGFzayk7CisKK3ZvaWQgX193ZWFrIHNzZV9oYW5kbGVfZXZlbnQoc3RydWN0 IHNzZV9ldmVudF9hcmNoX2RhdGEgKmFyY2hfZXZ0LCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sK K30KKwordm9pZCBkb19zc2Uoc3RydWN0IHNzZV9ldmVudF9hcmNoX2RhdGEgKmFyY2hfZXZ0LCBz dHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlubWlfZW50ZXIoKTsKKworCS8qIFJldHJpZXZlIG1p c3NpbmcgR1BScyBmcm9tIFNCSSAqLworCXNiaV9lY2FsbChTQklfRVhUX1NTRSwgU0JJX1NTRV9F VkVOVF9BVFRSX1JFQUQsIGFyY2hfZXZ0LT5ldnRfaWQsCisJCSAgU0JJX1NTRV9BVFRSX0lOVEVS UlVQVEVEX0E2LAorCQkgIChTQklfU1NFX0FUVFJfSU5URVJSVVBURURfQTcgLSBTQklfU1NFX0FU VFJfSU5URVJSVVBURURfQTYpICsgMSwKKwkJICBhcmNoX2V2dC0+aW50ZXJydXB0ZWRfcGh5cywg MCwgMCk7CisKKwltZW1jcHkoJnJlZ3MtPmE2LCAmYXJjaF9ldnQtPmludGVycnVwdGVkLCBzaXpl b2YoYXJjaF9ldnQtPmludGVycnVwdGVkKSk7CisKKwlzc2VfaGFuZGxlX2V2ZW50KGFyY2hfZXZ0 LCByZWdzKTsKKworCS8qCisJICogVGhlIFNTRSBkZWxpdmVyeSBwYXRoIGRvZXMgbm90IHVzZXMg dGhlICJzdGFuZGFyZCIgZXhjZXB0aW9uIHBhdGgKKwkgKiAoc2VlIHNzZV9lbnRyeS5TKSBhbmQg ZG9lcyBub3QgcHJvY2VzcyBhbnkgcGVuZGluZyBzaWduYWwvc29mdGlycXMKKwkgKiBkdWUgdG8g YmVpbmcgc2ltaWxhciB0byBhIE5NSS4KKwkgKiBTb21lIGRyaXZlcnMgKFBNVSwgUkFTKSBlbnF1 ZXVlIHBlbmRpbmcgd29yayB0aGF0IG5lZWRzIHRvIGJlIGhhbmRsZWQKKwkgKiBhcyBzb29uIGFz IHBvc3NpYmxlIGJ5IGJvdHRvbSBoYWx2ZXMuIEZvciB0aGF0IHB1cnBvc2UsIHNldCB0aGUgU0lQ CisJICogc29mdHdhcmUgaW50ZXJydXB0IHBlbmRpbmcgYml0IHdoaWNoIHdpbGwgZm9yY2UgYSBz b2Z0d2FyZSBpbnRlcnJ1cHQKKwkgKiB0byBiZSBzZXJ2aWNlZCBvbmNlIGludGVycnVwdHMgYXJl IHJlZW5hYmxlZCBpbiB0aGUgaW50ZXJydXB0ZWQKKwkgKiBjb250ZXh0IGlmIHRoZXkgd2VyZSBt YXNrZWQgb3IgZGlyZWN0bHkgaWYgdW5tYXNrZWQuCisJICovCisJY3NyX3NldChDU1JfSVAsIElF X1NJRSk7CisKKwlubWlfZXhpdCgpOworfQorCitzdGF0aWMgdm9pZCAqYWxsb2NfdG9fc3RhY2tf cG9pbnRlcih2b2lkICphbGxvYykKK3sKKwlyZXR1cm4gYWxsb2MgPyBhbGxvYyArIFNTRV9TVEFD S19TSVpFIDogTlVMTDsKK30KKworc3RhdGljIHZvaWQgKnN0YWNrX3BvaW50ZXJfdG9fYWxsb2Mo dm9pZCAqc3RhY2spCit7CisJcmV0dXJuIHN0YWNrIC0gU1NFX1NUQUNLX1NJWkU7Cit9CisKKyNp ZmRlZiBDT05GSUdfVk1BUF9TVEFDSworc3RhdGljIHZvaWQgKnNzZV9zdGFja19hbGxvYyh1bnNp Z25lZCBpbnQgY3B1KQoreworCXZvaWQgKnN0YWNrID0gYXJjaF9hbGxvY192bWFwX3N0YWNrKFNT RV9TVEFDS19TSVpFLCBjcHVfdG9fbm9kZShjcHUpKTsKKworCXJldHVybiBhbGxvY190b19zdGFj a19wb2ludGVyKHN0YWNrKTsKK30KKworc3RhdGljIHZvaWQgc3NlX3N0YWNrX2ZyZWUodm9pZCAq c3RhY2spCit7CisJdmZyZWUoc3RhY2tfcG9pbnRlcl90b19hbGxvYyhzdGFjaykpOworfQorCitz dGF0aWMgdm9pZCBhcmNoX3NzZV9zdGFja19jcHVfc3luYyhzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hf ZGF0YSAqYXJjaF9ldnQpCit7CisJdm9pZCAqcF9zdGFjayA9IGFyY2hfZXZ0LT5zdGFjazsKKwl1 bnNpZ25lZCBsb25nIHN0YWNrID0gKHVuc2lnbmVkIGxvbmcpIHN0YWNrX3BvaW50ZXJfdG9fYWxs b2MocF9zdGFjayk7CisJdW5zaWduZWQgbG9uZyBzdGFja19lbmQgPSBzdGFjayArIFNTRV9TVEFD S19TSVpFOworCisJLyoKKwkgKiBGbHVzaCB0aGUgdGxiIHRvIGF2b2lkIHRha2luZyBhbnkgZXhj ZXB0aW9uIHdoZW4gYWNjZXNzaW5nIHRoZQorCSAqIHZtYXBwZWQgc3RhY2sgaW5zaWRlIHRoZSBT U0UgaGFuZGxlcgorCSAqLworCWlmIChzc2VfZXZlbnRfaXNfZ2xvYmFsKGFyY2hfZXZ0LT5ldnRf aWQpKQorCQlmbHVzaF90bGJfa2VybmVsX3JhbmdlKHN0YWNrLCBzdGFja19lbmQpOworCWVsc2UK KwkJbG9jYWxfZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShzdGFjaywgKHVuc2lnbmVkIGxvbmcpIHN0 YWNrX2VuZCk7Cit9CisjZWxzZSAvKiBDT05GSUdfVk1BUF9TVEFDSyAqLworc3RhdGljIHZvaWQg KnNzZV9zdGFja19hbGxvYyh1bnNpZ25lZCBpbnQgY3B1KQoreworCXZvaWQgKnN0YWNrID0ga21h bGxvYyhTU0VfU1RBQ0tfU0laRSwgR0ZQX0tFUk5FTCk7CisKKwlyZXR1cm4gYWxsb2NfdG9fc3Rh Y2tfcG9pbnRlcihzdGFjayk7Cit9CisKK3N0YXRpYyB2b2lkIHNzZV9zdGFja19mcmVlKHZvaWQg KnN0YWNrKQoreworCWtmcmVlKHN0YWNrX3BvaW50ZXJfdG9fYWxsb2Moc3RhY2spKTsKK30KKwor c3RhdGljIHZvaWQgYXJjaF9zc2Vfc3RhY2tfY3B1X3N5bmMoc3RydWN0IHNzZV9ldmVudF9hcmNo X2RhdGEgKmFyY2hfZXZ0KSB7fQorI2VuZGlmIC8qIENPTkZJR19WTUFQX1NUQUNLICovCisKK3N0 YXRpYyBpbnQgc3NlX2luaXRfc2NzKGludCBjcHUsIHN0cnVjdCBzc2VfZXZlbnRfYXJjaF9kYXRh ICphcmNoX2V2dCkKK3sKKwl2b2lkICpzdGFjazsKKworCWlmICghc2NzX2lzX2VuYWJsZWQoKSkK KwkJcmV0dXJuIDA7CisKKwlzdGFjayA9IHNjc19hbGxvYyhjcHVfdG9fbm9kZShjcHUpKTsKKwlp ZiAoIXN0YWNrKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFyY2hfZXZ0LT5zaGFkb3dfc3RhY2sg PSBzdGFjazsKKworCXJldHVybiAwOworfQorCit2b2lkIGFyY2hfc3NlX2V2ZW50X3VwZGF0ZV9j cHUoc3RydWN0IHNzZV9ldmVudF9hcmNoX2RhdGEgKmFyY2hfZXZ0LCBpbnQgY3B1KQoreworCWFy Y2hfZXZ0LT5jcHVfaWQgPSBjcHU7CisJYXJjaF9ldnQtPmhhcnRfaWQgPSBjcHVpZF90b19oYXJ0 aWRfbWFwKGNwdSk7Cit9CisKK2ludCBhcmNoX3NzZV9pbml0X2V2ZW50KHN0cnVjdCBzc2VfZXZl bnRfYXJjaF9kYXRhICphcmNoX2V2dCwgdTMyIGV2dF9pZCwKKwkJCWludCBjcHUpCit7CisJdm9p ZCAqc3RhY2s7CisKKwlhcmNoX2V2dC0+ZXZ0X2lkID0gZXZ0X2lkOworCXN0YWNrID0gc3NlX3N0 YWNrX2FsbG9jKGNwdSk7CisJaWYgKCFzdGFjaykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhcmNo X2V2dC0+c3RhY2sgPSBzdGFjazsKKworCWlmIChzc2VfaW5pdF9zY3MoY3B1LCBhcmNoX2V2dCkp IHsKKwkJc3NlX3N0YWNrX2ZyZWUoYXJjaF9ldnQtPnN0YWNrKTsKKwkJcmV0dXJuIC1FTk9NRU07 CisJfQorCisJaWYgKHNzZV9ldmVudF9pc19nbG9iYWwoZXZ0X2lkKSkgeworCQlhcmNoX2V2dC0+ aW50ZXJydXB0ZWRfcGh5cyA9CisJCQkJCXZpcnRfdG9fcGh5cygmYXJjaF9ldnQtPmludGVycnVw dGVkKTsKKwl9IGVsc2UgeworCQlhcmNoX2V2dC0+aW50ZXJydXB0ZWRfcGh5cyA9CisJCQkJcGVy X2NwdV9wdHJfdG9fcGh5cygmYXJjaF9ldnQtPmludGVycnVwdGVkKTsKKwl9CisKKwlhcmNoX3Nz ZV9ldmVudF91cGRhdGVfY3B1KGFyY2hfZXZ0LCBjcHUpOworCisJcmV0dXJuIDA7Cit9CisKK3Zv aWQgYXJjaF9zc2VfZnJlZV9ldmVudChzdHJ1Y3Qgc3NlX2V2ZW50X2FyY2hfZGF0YSAqYXJjaF9l dnQpCit7CisJc2NzX2ZyZWUoYXJjaF9ldnQtPnNoYWRvd19zdGFjayk7CisJc3NlX3N0YWNrX2Zy ZWUoYXJjaF9ldnQtPnN0YWNrKTsKK30KKworaW50IGFyY2hfc3NlX3JlZ2lzdGVyX2V2ZW50KHN0 cnVjdCBzc2VfZXZlbnRfYXJjaF9kYXRhICphcmNoX2V2dCkKK3sKKwlzdHJ1Y3Qgc2JpcmV0IHNy ZXQ7CisKKwlhcmNoX3NzZV9zdGFja19jcHVfc3luYyhhcmNoX2V2dCk7CisKKwlzcmV0ID0gc2Jp X2VjYWxsKFNCSV9FWFRfU1NFLCBTQklfU1NFX0VWRU5UX1JFR0lTVEVSLCBhcmNoX2V2dC0+ZXZ0 X2lkLAorCQkJICh1bnNpZ25lZCBsb25nKWhhbmRsZV9zc2UsICh1bnNpZ25lZCBsb25nKWFyY2hf ZXZ0LCAwLAorCQkJIDAsIDApOworCisJcmV0dXJuIHNiaV9lcnJfbWFwX2xpbnV4X2Vycm5vKHNy ZXQuZXJyb3IpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvc2JpX3NzZV9lbnRy eS5TIGIvYXJjaC9yaXNjdi9rZXJuZWwvc2JpX3NzZV9lbnRyeS5TCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjEyNTEwYjk4NDQ1Ci0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9yaXNjdi9rZXJuZWwvc2JpX3NzZV9lbnRyeS5TCkBAIC0wLDAgKzEsMTc4IEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICogQ29weXJpZ2h0 IChDKSAyMDI0IFJpdm9zIEluYy4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2lu Y2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKworI2luY2x1ZGUgPGFzbS9hc20uaD4KKyNpbmNsdWRl IDxhc20vY3NyLmg+CisjaW5jbHVkZSA8YXNtL3Njcy5oPgorCisvKiBXaGVuIGVudGVyaW5nIGhh bmRsZV9zc2UsIHRoZSBmb2xsb3dpbmcgcmVnaXN0ZXJzIGFyZSBzZXQ6CisgKiBhNjogY29udGFp bnMgdGhlIGhhcnRpZAorICogYTc6IGNvbnRhaW5zIGEgc3NlX2V2ZW50X2FyY2hfZGF0YSBzdHJ1 Y3QgcG9pbnRlcgorICovCitTWU1fQ09ERV9TVEFSVChoYW5kbGVfc3NlKQorCS8qIFNhdmUgc3Rh Y2sgdGVtcG9yYXJpbHkgKi8KKwlSRUdfUyBzcCwgU1NFX1JFR19FVlRfVE1QKGE3KQorCS8qIFNl dCBlbnRyeSBzdGFjayAqLworCVJFR19MIHNwLCBTU0VfUkVHX0VWVF9TVEFDSyhhNykKKworCWFk ZGkgc3AsIHNwLCAtKFBUX1NJWkVfT05fU1RBQ0spCisJUkVHX1MgcmEsIFBUX1JBKHNwKQorCVJF R19TIHMwLCBQVF9TMChzcCkKKwlSRUdfUyBzMSwgUFRfUzEoc3ApCisJUkVHX1MgczIsIFBUX1My KHNwKQorCVJFR19TIHMzLCBQVF9TMyhzcCkKKwlSRUdfUyBzNCwgUFRfUzQoc3ApCisJUkVHX1Mg czUsIFBUX1M1KHNwKQorCVJFR19TIHM2LCBQVF9TNihzcCkKKwlSRUdfUyBzNywgUFRfUzcoc3Ap CisJUkVHX1MgczgsIFBUX1M4KHNwKQorCVJFR19TIHM5LCBQVF9TOShzcCkKKwlSRUdfUyBzMTAs IFBUX1MxMChzcCkKKwlSRUdfUyBzMTEsIFBUX1MxMShzcCkKKwlSRUdfUyB0cCwgUFRfVFAoc3Ap CisJUkVHX1MgdDAsIFBUX1QwKHNwKQorCVJFR19TIHQxLCBQVF9UMShzcCkKKwlSRUdfUyB0Miwg UFRfVDIoc3ApCisJUkVHX1MgdDMsIFBUX1QzKHNwKQorCVJFR19TIHQ0LCBQVF9UNChzcCkKKwlS RUdfUyB0NSwgUFRfVDUoc3ApCisJUkVHX1MgdDYsIFBUX1Q2KHNwKQorCVJFR19TIGdwLCBQVF9H UChzcCkKKwlSRUdfUyBhMCwgUFRfQTAoc3ApCisJUkVHX1MgYTEsIFBUX0ExKHNwKQorCVJFR19T IGEyLCBQVF9BMihzcCkKKwlSRUdfUyBhMywgUFRfQTMoc3ApCisJUkVHX1MgYTQsIFBUX0E0KHNw KQorCVJFR19TIGE1LCBQVF9BNShzcCkKKworCS8qIFJldHJpZXZlIGVudHJ5IHNwICovCisJUkVH X0wgYTQsIFNTRV9SRUdfRVZUX1RNUChhNykKKwkvKiBTYXZlIENTUnMgKi8KKwljc3JyIGEwLCBD U1JfRVBDCisJY3NyciBhMSwgQ1NSX1NTVEFUVVMKKwljc3JyIGEyLCBDU1JfU1RWQUwKKwljc3Jy IGEzLCBDU1JfU0NBVVNFCisKKwlSRUdfUyBhMCwgUFRfRVBDKHNwKQorCVJFR19TIGExLCBQVF9T VEFUVVMoc3ApCisJUkVHX1MgYTIsIFBUX0JBREFERFIoc3ApCisJUkVHX1MgYTMsIFBUX0NBVVNF KHNwKQorCVJFR19TIGE0LCBQVF9TUChzcCkKKworCS8qIERpc2FibGUgdXNlciBtZW1vcnkgYWNj ZXNzIGFuZCBmbG9hdGluZy92ZWN0b3IgY29tcHV0aW5nICovCisJbGkgdDAsIFNSX1NVTSB8IFNS X0ZTX1ZTCisJY3NyYyBDU1JfU1RBVFVTLCB0MAorCisJbG9hZF9nbG9iYWxfcG9pbnRlcgorCXNj c19sb2FkX3NzZV9zdGFjayBhNworCisjaWZkZWYgQ09ORklHX1NNUAorCWx3IHQ0LCBTU0VfUkVH X0hBUlRfSUQoYTcpCisJbHcgdDMsIFNTRV9SRUdfQ1BVX0lEKGE3KQorCisJYm5lIHQ0LCBhNiwg LkxmaW5kX2hhcnRfaWRfc2xvd3BhdGgKKworLkxjcHVfaWRfZm91bmQ6CisjZWxzZQorCW12IHQz LCB6ZXJvCisjZW5kaWYKKworCWFzbV9wZXJfY3B1X3dpdGhfY3B1IHQyIF9fc2JpX3NzZV9lbnRy eV90YXNrIHQxIHQzCisJUkVHX0wgdHAsIDAodDIpCisKKwltdiBhMSwgc3AgLyogcHRfcmVncyBv biBzdGFjayAqLworCisJLyoKKwkgKiBTYXZlIHNzY3JhdGNoIGZvciByZXN0b3JhdGlvbiBzaW5j ZSB3ZSBtaWdodCBoYXZlIGludGVycnVwdGVkIHRoZQorCSAqIGtlcm5lbCBpbiBlYXJseSBleGNl cHRpb24gcGF0aCBhbmQgdGh1cywgd2UgZG9uJ3Qga25vdyB0aGUgY29udGVudCBvZgorCSAqIHNz Y3JhdGNoLgorCSAqLworCWNzcnJ3IHM0LCBDU1JfU1NDUkFUQ0gsIHgwCisKKwltdiBhMCwgYTcK KworCWNhbGwgZG9fc3NlCisKKwljc3J3IENTUl9TU0NSQVRDSCwgczQKKworCVJFR19MIGEwLCBQ VF9TVEFUVVMoc3ApCisJUkVHX0wgYTEsIFBUX0VQQyhzcCkKKwlSRUdfTCBhMiwgUFRfQkFEQURE UihzcCkKKwlSRUdfTCBhMywgUFRfQ0FVU0Uoc3ApCisJY3NydyBDU1JfU1NUQVRVUywgYTAKKwlj c3J3IENTUl9FUEMsIGExCisJY3NydyBDU1JfU1RWQUwsIGEyCisJY3NydyBDU1JfU0NBVVNFLCBh MworCisJUkVHX0wgcmEsIFBUX1JBKHNwKQorCVJFR19MIHMwLCBQVF9TMChzcCkKKwlSRUdfTCBz MSwgUFRfUzEoc3ApCisJUkVHX0wgczIsIFBUX1MyKHNwKQorCVJFR19MIHMzLCBQVF9TMyhzcCkK KwlSRUdfTCBzNCwgUFRfUzQoc3ApCisJUkVHX0wgczUsIFBUX1M1KHNwKQorCVJFR19MIHM2LCBQ VF9TNihzcCkKKwlSRUdfTCBzNywgUFRfUzcoc3ApCisJUkVHX0wgczgsIFBUX1M4KHNwKQorCVJF R19MIHM5LCBQVF9TOShzcCkKKwlSRUdfTCBzMTAsIFBUX1MxMChzcCkKKwlSRUdfTCBzMTEsIFBU X1MxMShzcCkKKwlSRUdfTCB0cCwgUFRfVFAoc3ApCisJUkVHX0wgdDAsIFBUX1QwKHNwKQorCVJF R19MIHQxLCBQVF9UMShzcCkKKwlSRUdfTCB0MiwgUFRfVDIoc3ApCisJUkVHX0wgdDMsIFBUX1Qz KHNwKQorCVJFR19MIHQ0LCBQVF9UNChzcCkKKwlSRUdfTCB0NSwgUFRfVDUoc3ApCisJUkVHX0wg dDYsIFBUX1Q2KHNwKQorCVJFR19MIGdwLCBQVF9HUChzcCkKKwlSRUdfTCBhMCwgUFRfQTAoc3Ap CisJUkVHX0wgYTEsIFBUX0ExKHNwKQorCVJFR19MIGEyLCBQVF9BMihzcCkKKwlSRUdfTCBhMywg UFRfQTMoc3ApCisJUkVHX0wgYTQsIFBUX0E0KHNwKQorCVJFR19MIGE1LCBQVF9BNShzcCkKKwor CVJFR19MIHNwLCBQVF9TUChzcCkKKworCWxpIGE3LCBTQklfRVhUX1NTRQorCWxpIGE2LCBTQklf U1NFX0VWRU5UX0NPTVBMRVRFCisJZWNhbGwKKworI2lmZGVmIENPTkZJR19TTVAKKy5MZmluZF9o YXJ0X2lkX3Nsb3dwYXRoOgorCisJLyogUmVzdG9yZSBjdXJyZW50IHRhc2sgc3RydWN0IGZyb20g X19zYmlfc3NlX2VudHJ5X3Rhc2sgKi8KKwlsaSB0MSwgQVNNX05SX0NQVVMKKwkvKiBTbG93cGF0 aCB0byBmaW5kIHRoZSBDUFUgaWQgYXNzb2NpYXRlZCB0byB0aGUgaGFydCBpZCAqLworCWxhIHQw LCBfX2NwdWlkX3RvX2hhcnRpZF9tYXAKKworLkxoYXJ0X2lkX2xvb3A6CisJUkVHX0wgdDIsIDAo dDApCisJYmVxIHQyLCBhNiwgLkxjcHVfaWRfZm91bmQKKworCS8qIEluY3JlbWVudCBwb2ludGVy IGFuZCBDUFUgbnVtYmVyICovCisJYWRkaSB0MywgdDMsIDEKKwlhZGRpIHQwLCB0MCwgUklTQ1Zf U1pQVFIKKwlibHR1IHQzLCB0MSwgLkxoYXJ0X2lkX2xvb3AKKworCS8qCisJICogVGhpcyBzaG91 bGQgbmV2ZXIgaGFwcGVuIHNpbmNlIHdlIGV4cGVjdCB0aGUgaGFydF9pZCB0byBtYXRjaCBvbmUK KwkgKiBvZiBvdXIgQ1BVLCBidXQgYmV0dGVyIGJlIHNhZmUgdGhhbiBzb3JyeQorCSAqLworCWxh IHRwLCBpbml0X3Rhc2sKKwlsYSBhMCwgc3NlX2hhcnRfaWRfcGFuaWNfc3RyaW5nCisJbGEgdDAs IHBhbmljCisJamFsciB0MAorI2VuZGlmCisKK1NZTV9DT0RFX0VORChoYW5kbGVfc3NlKQorCitT WU1fREFUQV9TVEFSVF9MT0NBTChzc2VfaGFydF9pZF9wYW5pY19zdHJpbmcpCisgICAgLmFzY2lp ICJVbmFibGUgdG8gbWF0Y2ggaGFydF9pZCB3aXRoIGNwdVwwIgorU1lNX0RBVEFfRU5EKHNzZV9o YXJ0X2lkX3BhbmljX3N0cmluZykKLS0gCjIuNDMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1y aXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcmlzY3YK