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 4C1D4C32771 for ; Sun, 18 Sep 2022 08:27:21 +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:Cc:To:From:Subject:References: Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=l3rb6F6OavOF4SXoLZBeYJvRUhc0Idr+rBBiJHnfu+U=; b=BmBcXnsfkjDzTPUzKDQUjKJWWG jxo0KEoZUhZcmiWJAm33pYxqOYxy7uq7JSq0pLb87rI75KhbxqYDWY7lEvKVDpfdSRqWRg4RwWNTt GC3JoKXkjQls6jG0/Bj7l2Qrfmi/q26eNXng1C2jOZLpLTXFyGqg9jiSXG5RqZ/1m1UYAyAeRsAvf 3M8c8v6binjdklaZuVQqqDW7EVobsMh3CcyS7Z5rKYQok8rv6SJ61aLnnjn2jraZKIgzrdvIWkVUr WAEHF9VzzLUib8hEuA4pU80H8LEmahUu/YUSUM7JHbbw8jK93E4h99UUKYGX1yETdDKqykLXsqqDH D+1sJiSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZpcn-00DmS9-AJ; Sun, 18 Sep 2022 08:26:01 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZpc8-00Dm7w-0u for linux-arm-kernel@bombadil.infradead.org; Sun, 18 Sep 2022 08:25:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: Cc:To:From:Subject:References:Mime-Version:Message-Id:In-Reply-To:Date:Sender :Reply-To:Content-ID:Content-Description; bh=EXgSguLZRobiNroyWI2fBVAqC0Qss/26Rhq8qK6YDnc=; b=D868vuotqn+0Di/NeKsLagJcfc FEuA/0Iky1AgitlSDvpuOao5ApGrNZkMkr4bkqP326riWaK8XPRiXRR+SG1rMmi0JRKrCCm69sgub MQKS02ZJKb/XqCYw5a/pl9q6YQ8PbuWdwLuHtyev5r4f0HFIaiU2Vr58QqhR3pq2z5OHAgVHVTemf UJ2cXyrY7fK8DFinC/8X1XFjmFNuGWTlami6If4W2feq4mxK9HZAxS4hCEVAU1WmcID9FpOj7zX1/ Pty9OgzbpT6WkJ8VGBkxTzcah/YmizlWez64LKuS3jF7yVsgp5kGJc9QZOG1f7wXvCaygVpHv/5jB 510EO8aQ==; Received: from mail-io1-xd49.google.com ([2607:f8b0:4864:20::d49]) by casper.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZpEw-003s88-5N for linux-arm-kernel@lists.infradead.org; Sun, 18 Sep 2022 08:01:25 +0000 Received: by mail-io1-xd49.google.com with SMTP id b16-20020a5d8950000000b006891a850acfso13719439iot.19 for ; Sun, 18 Sep 2022 01:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:from:to:cc:subject:date; bh=EXgSguLZRobiNroyWI2fBVAqC0Qss/26Rhq8qK6YDnc=; b=llRmi0Os3YHma20iSdKa8ePymL93BOIFj37sUcmCGRt0DbvoAczQExbPPkDlXFs6YH P2L48gOqnAq5g0YUO5EtGMzG0WIqV1zS1PzoAroKaXNIHKUCqk7dPPZwjJhWgX1B0BX2 4sRCLoAy9aGfXEVMvbDuqvArHNjRLyp0cC6839dKb0/vVTlQUtzoxw3/1oOXIr5vfWzb jJvQSiL3tw0AU4A7AUzjW766Xb5WcHL/2BILeZZU5tTorsGpdvi1q6R5i0DyfpYjMSRT CElOnBxxjhbXz6gShHQK9bM7cL7OWnzKFPj2/M7HW0aumHBf0JT343lo4V6r8QmrtKPP 6aYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:x-gm-message-state:from:to :cc:subject:date; bh=EXgSguLZRobiNroyWI2fBVAqC0Qss/26Rhq8qK6YDnc=; b=jGq2+U1qsptLsO6LA9gnkEBKpgTs4YnlzC+Bk4ICiLUzt6iVsssW7ZNxjKw+CSS5oO mGLHKr29LuHBQffHmWffF4+mUXWO3UqMAj9zrQinTtIiF476A5yxmDeJ66cS48asN3aH 5FdawOzgigxZINNbBDOWPsek0LG/tSxm4MrQD4iAU97bV3rH7YEb89kyhKZo+Nd8a8VY 1uLyERSfqbcy5mhddvJQX0EjXx/FuCSd37vHZLnImj9vE0DIRSDgH6Bwtv0vNzflxcN4 lXVFYhXftXeMoI9/sCi0sq9BJixnH9/6wCjA08gsv4HNOW71gv+yDfl7DcgV8fWkaC2T akpQ== X-Gm-Message-State: ACrzQf3LuY0XxQFHJjIXwO48ULXot3ALgdmePDjTfKJTwZn+XNGq1Jib +NXH4xizNqWPXcIX5wjDIuRQINX0ucQ= X-Google-Smtp-Source: AMsMyM6QyOf9srlrwgCmoxKklddNTWk0zPTK7jfVWSVOprIq1fquKr7a+MN8qW5AkhXXVxw37pTHK9mQxnQ= X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:c05a:2e99:29cd:d157]) (user=yuzhao job=sendgmr) by 2002:a92:cdaa:0:b0:2f5:8f98:3ec2 with SMTP id g10-20020a92cdaa000000b002f58f983ec2mr569649ild.93.1663488076207; Sun, 18 Sep 2022 01:01:16 -0700 (PDT) Date: Sun, 18 Sep 2022 02:00:07 -0600 In-Reply-To: <20220918080010.2920238-1-yuzhao@google.com> Message-Id: <20220918080010.2920238-11-yuzhao@google.com> Mime-Version: 1.0 References: <20220918080010.2920238-1-yuzhao@google.com> X-Mailer: git-send-email 2.37.3.968.ga6b4b080e4-goog Subject: [PATCH mm-unstable v15 10/14] mm: multi-gen LRU: kill switch From: Yu Zhao To: Andrew Morton Cc: Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Peter Zijlstra , Tejun Heo , Vlastimil Babka , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, page-reclaim@google.com, Yu Zhao , Brian Geffon , Jan Alexander Steffens , Oleksandr Natalenko , Steven Barrett , Suleiman Souhlal , Daniel Byrne , Donald Carr , "=?UTF-8?q?Holger=20Hoffst=C3=A4tte?=" , Konstantin Kharlamov , Shuang Zhai , Sofia Trinh , Vaibhav Jain X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220918_090122_324005_2B0EA3C3 X-CRM114-Status: GOOD ( 24.81 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIC9zeXMva2VybmVsL21tL2xydV9nZW4vZW5hYmxlZCBhcyBhIGtpbGwgc3dpdGNoLiBDb21w b25lbnRzIHRoYXQKY2FuIGJlIGRpc2FibGVkIGluY2x1ZGU6CiAgMHgwMDAxOiB0aGUgbXVsdGkt Z2VuIExSVSBjb3JlCiAgMHgwMDAyOiB3YWxraW5nIHBhZ2UgdGFibGUsIHdoZW4gYXJjaF9oYXNf aHdfcHRlX3lvdW5nKCkgcmV0dXJucwogICAgICAgICAgdHJ1ZQogIDB4MDAwNDogY2xlYXJpbmcg dGhlIGFjY2Vzc2VkIGJpdCBpbiBub24tbGVhZiBQTUQgZW50cmllcywgd2hlbgogICAgICAgICAg Q09ORklHX0FSQ0hfSEFTX05PTkxFQUZfUE1EX1lPVU5HPXkKICBbeVluTl06IGFwcGx5IHRvIGFs bCB0aGUgY29tcG9uZW50cyBhYm92ZQpFLmcuLAogIGVjaG8geSA+L3N5cy9rZXJuZWwvbW0vbHJ1 X2dlbi9lbmFibGVkCiAgY2F0IC9zeXMva2VybmVsL21tL2xydV9nZW4vZW5hYmxlZAogIDB4MDAw NwogIGVjaG8gNSA+L3N5cy9rZXJuZWwvbW0vbHJ1X2dlbi9lbmFibGVkCiAgY2F0IC9zeXMva2Vy bmVsL21tL2xydV9nZW4vZW5hYmxlZAogIDB4MDAwNQoKTkI6IHRoZSBwYWdlIHRhYmxlIHdhbGtz IGhhcHBlbiBvbiB0aGUgc2NhbGUgb2Ygc2Vjb25kcyB1bmRlciBoZWF2eQptZW1vcnkgcHJlc3N1 cmUsIGluIHdoaWNoIGNhc2UgdGhlIG1tYXBfbG9jayBjb250ZW50aW9uIGlzIGEgbGVzc2VyCmNv bmNlcm4sIGNvbXBhcmVkIHdpdGggdGhlIExSVSBsb2NrIGNvbnRlbnRpb24gYW5kIHRoZSBJL08g Y29uZ2VzdGlvbi4KU28gZmFyIHRoZSBvbmx5IHdlbGwta25vd24gY2FzZSBvZiB0aGUgbW1hcF9s b2NrIGNvbnRlbnRpb24gaGFwcGVucyBvbgpBbmRyb2lkLCBkdWUgdG8gU2N1ZG8gWzFdIHdoaWNo IGFsbG9jYXRlcyBzZXZlcmFsIHRob3VzYW5kIFZNQXMgZm9yCm1lcmVseSBhIGZldyBodW5kcmVk IE1Ccy4gVGhlIFNQRiBhbmQgdGhlIE1hcGxlIFRyZWUgYWxzbyBoYXZlCnByb3ZpZGVkIHRoZWly IG93biBhc3Nlc3NtZW50cyBbMl1bM10uIEhvd2V2ZXIsIGlmIHdhbGtpbmcgcGFnZSB0YWJsZXMK ZG9lcyB3b3JzZW4gdGhlIG1tYXBfbG9jayBjb250ZW50aW9uLCB0aGUga2lsbCBzd2l0Y2ggY2Fu IGJlIHVzZWQgdG8KZGlzYWJsZSBpdC4gSW4gdGhpcyBjYXNlIHRoZSBtdWx0aS1nZW4gTFJVIHdp bGwgc3VmZmVyIGEgbWlub3IKcGVyZm9ybWFuY2UgZGVncmFkYXRpb24sIGFzIHNob3duIHByZXZp b3VzbHkuCgpDbGVhcmluZyB0aGUgYWNjZXNzZWQgYml0IGluIG5vbi1sZWFmIFBNRCBlbnRyaWVz IGNhbiBhbHNvIGJlCmRpc2FibGVkLCBzaW5jZSB0aGlzIGJlaGF2aW9yIHdhcyBub3QgdGVzdGVk IG9uIHg4NiB2YXJpZXRpZXMgb3RoZXIKdGhhbiBJbnRlbCBhbmQgQU1ELgoKWzFdIGh0dHBzOi8v c291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvdGVjaC9kZWJ1Zy9zY3VkbwpbMl0gaHR0cHM6Ly9s b3JlLmtlcm5lbC5vcmcvci8yMDIyMDEyODEzMTAwNi42NzcxMi0xLW1pY2hlbEBsZXNwaW5hc3Nl Lm9yZy8KWzNdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyMjA0MjYxNTA2MTYuMzkzNzU3 MS0xLUxpYW0uSG93bGV0dEBvcmFjbGUuY29tLwoKU2lnbmVkLW9mZi1ieTogWXUgWmhhbyA8eXV6 aGFvQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBCcmlhbiBHZWZmb24gPGJnZWZmb25AZ29vZ2xlLmNv bT4KQWNrZWQtYnk6IEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGhlZnRpZ0BhcmNo bGludXgub3JnPgpBY2tlZC1ieTogT2xla3NhbmRyIE5hdGFsZW5rbyA8b2xla3NhbmRyQG5hdGFs ZW5rby5uYW1lPgpBY2tlZC1ieTogU3RldmVuIEJhcnJldHQgPHN0ZXZlbkBsaXF1b3JpeC5uZXQ+ CkFja2VkLWJ5OiBTdWxlaW1hbiBTb3VobGFsIDxzdWxlaW1hbkBnb29nbGUuY29tPgpUZXN0ZWQt Ynk6IERhbmllbCBCeXJuZSA8ZGpieXJuZUBtdHUuZWR1PgpUZXN0ZWQtYnk6IERvbmFsZCBDYXJy IDxkQGNoYW9zLXJlaW5zLmNvbT4KVGVzdGVkLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdl ckBhcHBsaWVkLWFzeW5jaHJvbnkuY29tPgpUZXN0ZWQtYnk6IEtvbnN0YW50aW4gS2hhcmxhbW92 IDxIaS1BbmdlbEB5YW5kZXgucnU+ClRlc3RlZC1ieTogU2h1YW5nIFpoYWkgPHN6aGFpMkBjcy5y b2NoZXN0ZXIuZWR1PgpUZXN0ZWQtYnk6IFNvZmlhIFRyaW5oIDxzb2ZpYS50cmluaEBlZGkud29y a3M+ClRlc3RlZC1ieTogVmFpYmhhdiBKYWluIDx2YWliaGF2QGxpbnV4LmlibS5jb20+Ci0tLQog aW5jbHVkZS9saW51eC9jZ3JvdXAuaCAgICAgICAgICB8ICAxNSArKy0KIGluY2x1ZGUvbGludXgv bW1faW5saW5lLmggICAgICAgfCAgMTUgKystCiBpbmNsdWRlL2xpbnV4L21tem9uZS5oICAgICAg ICAgIHwgICA5ICsrCiBrZXJuZWwvY2dyb3VwL2Nncm91cC1pbnRlcm5hbC5oIHwgICAxIC0KIG1t L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogbW0vdm1zY2FuLmMgICAgICAg ICAgICAgICAgICAgICB8IDIyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogNiBm aWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cC5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaAppbmRl eCBhYzVkMDUxNTY4MGUuLjkxNzk0NjNjM2M5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9j Z3JvdXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cC5oCkBAIC00MzIsNiArNDMyLDE4IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBjZ3JvdXBfcHV0KHN0cnVjdCBjZ3JvdXAgKmNncnApCiAJY3Nz X3B1dCgmY2dycC0+c2VsZik7CiB9CiAKK2V4dGVybiBzdHJ1Y3QgbXV0ZXggY2dyb3VwX211dGV4 OworCitzdGF0aWMgaW5saW5lIHZvaWQgY2dyb3VwX2xvY2sodm9pZCkKK3sKKwltdXRleF9sb2Nr KCZjZ3JvdXBfbXV0ZXgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY2dyb3VwX3VubG9jayh2 b2lkKQoreworCW11dGV4X3VubG9jaygmY2dyb3VwX211dGV4KTsKK30KKwogLyoqCiAgKiB0YXNr X2Nzc19zZXRfY2hlY2sgLSBvYnRhaW4gYSB0YXNrJ3MgY3NzX3NldCB3aXRoIGV4dHJhIGFjY2Vz cyBjb25kaXRpb25zCiAgKiBAdGFzazogdGhlIHRhc2sgdG8gb2J0YWluIGNzc19zZXQgZm9yCkBA IC00NDYsNyArNDU4LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGNncm91cF9wdXQoc3RydWN0IGNn cm91cCAqY2dycCkKICAqIGFzIGxvY2tzIHVzZWQgZHVyaW5nIHRoZSBjZ3JvdXBfc3Vic3lzOjph dHRhY2goKSBtZXRob2RzLgogICovCiAjaWZkZWYgQ09ORklHX1BST1ZFX1JDVQotZXh0ZXJuIHN0 cnVjdCBtdXRleCBjZ3JvdXBfbXV0ZXg7CiBleHRlcm4gc3BpbmxvY2tfdCBjc3Nfc2V0X2xvY2s7 CiAjZGVmaW5lIHRhc2tfY3NzX3NldF9jaGVjayh0YXNrLCBfX2MpCQkJCQlcCiAJcmN1X2RlcmVm ZXJlbmNlX2NoZWNrKCh0YXNrKS0+Y2dyb3VwcywJCQkJXApAQCAtNzA4LDYgKzcxOSw4IEBAIHN0 cnVjdCBjZ3JvdXA7CiBzdGF0aWMgaW5saW5lIHU2NCBjZ3JvdXBfaWQoY29uc3Qgc3RydWN0IGNn cm91cCAqY2dycCkgeyByZXR1cm4gMTsgfQogc3RhdGljIGlubGluZSB2b2lkIGNzc19nZXQoc3Ry dWN0IGNncm91cF9zdWJzeXNfc3RhdGUgKmNzcykge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBjc3Nf cHV0KHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpIHt9CitzdGF0aWMgaW5saW5lIHZv aWQgY2dyb3VwX2xvY2sodm9pZCkge30KK3N0YXRpYyBpbmxpbmUgdm9pZCBjZ3JvdXBfdW5sb2Nr KHZvaWQpIHt9CiBzdGF0aWMgaW5saW5lIGludCBjZ3JvdXBfYXR0YWNoX3Rhc2tfYWxsKHN0cnVj dCB0YXNrX3N0cnVjdCAqZnJvbSwKIAkJCQkJIHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkgeyByZXR1 cm4gMDsgfQogc3RhdGljIGlubGluZSBpbnQgY2dyb3Vwc3RhdHNfYnVpbGQoc3RydWN0IGNncm91 cHN0YXRzICpzdGF0cywKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1faW5saW5lLmggYi9p bmNsdWRlL2xpbnV4L21tX2lubGluZS5oCmluZGV4IGYyYjIyOTZhNDJmOS4uNDk0OWVkYTlhOWEy IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tX2lubGluZS5oCisrKyBiL2luY2x1ZGUvbGlu dXgvbW1faW5saW5lLmgKQEAgLTEwNiwxMCArMTA2LDIxIEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxp bmUgZW51bSBscnVfbGlzdCBmb2xpb19scnVfbGlzdChzdHJ1Y3QgZm9saW8gKmZvbGlvKQogCiAj aWZkZWYgQ09ORklHX0xSVV9HRU4KIAorI2lmZGVmIENPTkZJR19MUlVfR0VOX0VOQUJMRUQKIHN0 YXRpYyBpbmxpbmUgYm9vbCBscnVfZ2VuX2VuYWJsZWQodm9pZCkKIHsKLQlyZXR1cm4gdHJ1ZTsK KwlERUNMQVJFX1NUQVRJQ19LRVlfVFJVRShscnVfZ2VuX2NhcHNbTlJfTFJVX0dFTl9DQVBTXSk7 CisKKwlyZXR1cm4gc3RhdGljX2JyYW5jaF9saWtlbHkoJmxydV9nZW5fY2Fwc1tMUlVfR0VOX0NP UkVdKTsKIH0KKyNlbHNlCitzdGF0aWMgaW5saW5lIGJvb2wgbHJ1X2dlbl9lbmFibGVkKHZvaWQp Cit7CisJREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKGxydV9nZW5fY2Fwc1tOUl9MUlVfR0VOX0NB UFNdKTsKKworCXJldHVybiBzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZscnVfZ2VuX2NhcHNbTFJV X0dFTl9DT1JFXSk7Cit9CisjZW5kaWYKIAogc3RhdGljIGlubGluZSBib29sIGxydV9nZW5faW5f ZmF1bHQodm9pZCkKIHsKQEAgLTIyMiw3ICsyMzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbHJ1 X2dlbl9hZGRfZm9saW8oc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBzdHJ1Y3QgZm9saW8gKmZvbGlv LAogCiAJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGdlbiAhPSAtMSwgZm9saW8pOwogCi0JaWYgKGZv bGlvX3Rlc3RfdW5ldmljdGFibGUoZm9saW8pKQorCWlmIChmb2xpb190ZXN0X3VuZXZpY3RhYmxl KGZvbGlvKSB8fCAhbHJ1Z2VuLT5lbmFibGVkKQogCQlyZXR1cm4gZmFsc2U7CiAJLyoKIAkgKiBU aGVyZSBhcmUgdGhyZWUgY29tbW9uIGNhc2VzIGZvciB0aGlzIHBhZ2U6CmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5jbHVkZS9saW51eC9tbXpvbmUuaAppbmRleCBiMTYz NWM0MDIwZGMuLjk1YzU4YzdmYmRmZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbXpvbmUu aAorKysgYi9pbmNsdWRlL2xpbnV4L21tem9uZS5oCkBAIC0zODcsNiArMzg3LDEzIEBAIGVudW0g ewogCUxSVV9HRU5fRklMRSwKIH07CiAKK2VudW0geworCUxSVV9HRU5fQ09SRSwKKwlMUlVfR0VO X01NX1dBTEssCisJTFJVX0dFTl9OT05MRUFGX1lPVU5HLAorCU5SX0xSVV9HRU5fQ0FQUworfTsK KwogI2RlZmluZSBNSU5fTFJVX0JBVENICQlCSVRTX1BFUl9MT05HCiAjZGVmaW5lIE1BWF9MUlVf QkFUQ0gJCShNSU5fTFJVX0JBVENIICogNjQpCiAKQEAgLTQyOCw2ICs0MzUsOCBAQCBzdHJ1Y3Qg bHJ1X2dlbl9zdHJ1Y3QgewogCS8qIGNhbiBiZSBtb2RpZmllZCB3aXRob3V0IGhvbGRpbmcgdGhl IExSVSBsb2NrICovCiAJYXRvbWljX2xvbmdfdCBldmljdGVkW05SX0hJU1RfR0VOU11bQU5PTl9B TkRfRklMRV1bTUFYX05SX1RJRVJTXTsKIAlhdG9taWNfbG9uZ190IHJlZmF1bHRlZFtOUl9ISVNU X0dFTlNdW0FOT05fQU5EX0ZJTEVdW01BWF9OUl9USUVSU107CisJLyogd2hldGhlciB0aGUgbXVs dGktZ2VuIExSVSBpcyBlbmFibGVkICovCisJYm9vbCBlbmFibGVkOwogfTsKIAogZW51bSB7CmRp ZmYgLS1naXQgYS9rZXJuZWwvY2dyb3VwL2Nncm91cC1pbnRlcm5hbC5oIGIva2VybmVsL2Nncm91 cC9jZ3JvdXAtaW50ZXJuYWwuaAppbmRleCAzNmI3NDBjYjNkNTkuLjYzZGMzZTgyYmU0ZiAxMDA2 NDQKLS0tIGEva2VybmVsL2Nncm91cC9jZ3JvdXAtaW50ZXJuYWwuaAorKysgYi9rZXJuZWwvY2dy b3VwL2Nncm91cC1pbnRlcm5hbC5oCkBAIC0xNjQsNyArMTY0LDYgQEAgc3RydWN0IGNncm91cF9t Z2N0eCB7CiAjZGVmaW5lIERFRklORV9DR1JPVVBfTUdDVFgobmFtZSkJCQkJCQlcCiAJc3RydWN0 IGNncm91cF9tZ2N0eCBuYW1lID0gQ0dST1VQX01HQ1RYX0lOSVQobmFtZSkKIAotZXh0ZXJuIHN0 cnVjdCBtdXRleCBjZ3JvdXBfbXV0ZXg7CiBleHRlcm4gc3BpbmxvY2tfdCBjc3Nfc2V0X2xvY2s7 CiBleHRlcm4gc3RydWN0IGNncm91cF9zdWJzeXMgKmNncm91cF9zdWJzeXNbXTsKIGV4dGVybiBz dHJ1Y3QgbGlzdF9oZWFkIGNncm91cF9yb290czsKZGlmZiAtLWdpdCBhL21tL0tjb25maWcgYi9t bS9LY29uZmlnCmluZGV4IDVjNWRjYmRjZmUzNC4uYWI2ZWY1MTE1ZWI4IDEwMDY0NAotLS0gYS9t bS9LY29uZmlnCisrKyBiL21tL0tjb25maWcKQEAgLTExMjcsNiArMTEyNywxMiBAQCBjb25maWcg TFJVX0dFTgogCWhlbHAKIAkgIEEgaGlnaCBwZXJmb3JtYW5jZSBMUlUgaW1wbGVtZW50YXRpb24g dG8gb3ZlcmNvbW1pdCBtZW1vcnkuCiAKK2NvbmZpZyBMUlVfR0VOX0VOQUJMRUQKKwlib29sICJF bmFibGUgYnkgZGVmYXVsdCIKKwlkZXBlbmRzIG9uIExSVV9HRU4KKwloZWxwCisJICBUaGlzIG9w dGlvbiBlbmFibGVzIHRoZSBtdWx0aS1nZW4gTFJVIGJ5IGRlZmF1bHQuCisKIGNvbmZpZyBMUlVf R0VOX1NUQVRTCiAJYm9vbCAiRnVsbCBzdGF0cyBmb3IgZGVidWdnaW5nIgogCWRlcGVuZHMgb24g TFJVX0dFTgpkaWZmIC0tZ2l0IGEvbW0vdm1zY2FuLmMgYi9tbS92bXNjYW4uYwppbmRleCAzZjgz MzI1ZmRjNzEuLjEwZjMxZjNjNTA1NCAxMDA2NDQKLS0tIGEvbW0vdm1zY2FuLmMKKysrIGIvbW0v dm1zY2FuLmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wc2kuaD4KICNpbmNs dWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisjaW5j bHVkZSA8bGludXgvY3R5cGUuaD4KIAogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1 ZGUgPGFzbS9kaXY2NC5oPgpAQCAtMzA3MCw2ICszMDcxLDE0IEBAIHN0YXRpYyBib29sIGNhbl9h Z2VfYW5vbl9wYWdlcyhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LAogCiAjaWZkZWYgQ09ORklH X0xSVV9HRU4KIAorI2lmZGVmIENPTkZJR19MUlVfR0VOX0VOQUJMRUQKK0RFRklORV9TVEFUSUNf S0VZX0FSUkFZX1RSVUUobHJ1X2dlbl9jYXBzLCBOUl9MUlVfR0VOX0NBUFMpOworI2RlZmluZSBn ZXRfY2FwKGNhcCkJc3RhdGljX2JyYW5jaF9saWtlbHkoJmxydV9nZW5fY2Fwc1tjYXBdKQorI2Vs c2UKK0RFRklORV9TVEFUSUNfS0VZX0FSUkFZX0ZBTFNFKGxydV9nZW5fY2FwcywgTlJfTFJVX0dF Tl9DQVBTKTsKKyNkZWZpbmUgZ2V0X2NhcChjYXApCXN0YXRpY19icmFuY2hfdW5saWtlbHkoJmxy dV9nZW5fY2Fwc1tjYXBdKQorI2VuZGlmCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICAg ICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGhhbmQgaGVscGVycwogICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KQEAgLTM5NDYsNyArMzk1NSw4IEBAIHN0YXRpYyB2b2lkIHdhbGtfcG1kX3Jhbmdl X2xvY2tlZChwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIG5leHQsIHN0cnVjdCB2bV9hcmVhCiAJ CQlnb3RvIG5leHQ7CiAKIAkJaWYgKCFwbWRfdHJhbnNfaHVnZShwbWRbaV0pKSB7Ci0JCQlpZiAo SVNfRU5BQkxFRChDT05GSUdfQVJDSF9IQVNfTk9OTEVBRl9QTURfWU9VTkcpKQorCQkJaWYgKElT X0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX05PTkxFQUZfUE1EX1lPVU5HKSAmJgorCQkJICAgIGdl dF9jYXAoTFJVX0dFTl9OT05MRUFGX1lPVU5HKSkKIAkJCQlwbWRwX3Rlc3RfYW5kX2NsZWFyX3lv dW5nKHZtYSwgYWRkciwgcG1kICsgaSk7CiAJCQlnb3RvIG5leHQ7CiAJCX0KQEAgLTQwNDQsMTAg KzQwNTQsMTIgQEAgc3RhdGljIHZvaWQgd2Fsa19wbWRfcmFuZ2UocHVkX3QgKnB1ZCwgdW5zaWdu ZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJCXdhbGstPm1tX3N0YXRzW01NX05P TkxFQUZfVE9UQUxdKys7CiAKICNpZmRlZiBDT05GSUdfQVJDSF9IQVNfTk9OTEVBRl9QTURfWU9V TkcKLQkJaWYgKCFwbWRfeW91bmcodmFsKSkKLQkJCWNvbnRpbnVlOworCQlpZiAoZ2V0X2NhcChM UlVfR0VOX05PTkxFQUZfWU9VTkcpKSB7CisJCQlpZiAoIXBtZF95b3VuZyh2YWwpKQorCQkJCWNv bnRpbnVlOwogCi0JCXdhbGtfcG1kX3JhbmdlX2xvY2tlZChwdWQsIGFkZHIsIHZtYSwgYXJncywg Yml0bWFwLCAmcG9zKTsKKwkJCXdhbGtfcG1kX3JhbmdlX2xvY2tlZChwdWQsIGFkZHIsIHZtYSwg YXJncywgYml0bWFwLCAmcG9zKTsKKwkJfQogI2VuZGlmCiAJCWlmICghd2Fsay0+Zm9yY2Vfc2Nh biAmJiAhdGVzdF9ibG9vbV9maWx0ZXIod2Fsay0+bHJ1dmVjLCB3YWxrLT5tYXhfc2VxLCBwbWQg KyBpKSkKIAkJCWNvbnRpbnVlOwpAQCAtNDMwOSw3ICs0MzIxLDcgQEAgc3RhdGljIGJvb2wgdHJ5 X3RvX2luY19tYXhfc2VxKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgdW5zaWduZWQgbG9uZyBtYXhf c2VxLAogCSAqIGhhbmRmdWwgb2YgUFRFcy4gU3ByZWFkaW5nIHRoZSB3b3JrIG91dCBvdmVyIGEg cGVyaW9kIG9mIHRpbWUgdXN1YWxseQogCSAqIGlzIGxlc3MgZWZmaWNpZW50LCBidXQgaXQgYXZv aWRzIGJ1cnN0eSBwYWdlIGZhdWx0cy4KIAkgKi8KLQlpZiAoIWFyY2hfaGFzX2h3X3B0ZV95b3Vu ZygpKSB7CisJaWYgKCEoYXJjaF9oYXNfaHdfcHRlX3lvdW5nKCkgJiYgZ2V0X2NhcChMUlVfR0VO X01NX1dBTEspKSkgewogCQlzdWNjZXNzID0gaXRlcmF0ZV9tbV9saXN0X25vd2FsayhscnV2ZWMs IG1heF9zZXEpOwogCQlnb3RvIGRvbmU7CiAJfQpAQCAtNTA3NCw2ICs1MDg2LDIwOCBAQCBzdGF0 aWMgdm9pZCBscnVfZ2VuX3Nocmlua19scnV2ZWMoc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBzdHJ1 Y3Qgc2Nhbl9jb250cm9sICpzYwogCWJsa19maW5pc2hfcGx1ZygmcGx1Zyk7CiB9CiAKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSBjaGFu Z2UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBib29sIF9fbWF5YmVfdW51c2Vk IHN0YXRlX2lzX3ZhbGlkKHN0cnVjdCBscnV2ZWMgKmxydXZlYykKK3sKKwlzdHJ1Y3QgbHJ1X2dl bl9zdHJ1Y3QgKmxydWdlbiA9ICZscnV2ZWMtPmxydWdlbjsKKworCWlmIChscnVnZW4tPmVuYWJs ZWQpIHsKKwkJZW51bSBscnVfbGlzdCBscnU7CisKKwkJZm9yX2VhY2hfZXZpY3RhYmxlX2xydShs cnUpIHsKKwkJCWlmICghbGlzdF9lbXB0eSgmbHJ1dmVjLT5saXN0c1tscnVdKSkKKwkJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKwl9IGVsc2UgeworCQlpbnQgZ2VuLCB0eXBlLCB6b25lOworCisJCWZv cl9lYWNoX2dlbl90eXBlX3pvbmUoZ2VuLCB0eXBlLCB6b25lKSB7CisJCQlpZiAoIWxpc3RfZW1w dHkoJmxydWdlbi0+bGlzdHNbZ2VuXVt0eXBlXVt6b25lXSkpCisJCQkJcmV0dXJuIGZhbHNlOwor CQl9CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGZpbGxfZXZpY3RhYmxl KHN0cnVjdCBscnV2ZWMgKmxydXZlYykKK3sKKwllbnVtIGxydV9saXN0IGxydTsKKwlpbnQgcmVt YWluaW5nID0gTUFYX0xSVV9CQVRDSDsKKworCWZvcl9lYWNoX2V2aWN0YWJsZV9scnUobHJ1KSB7 CisJCWludCB0eXBlID0gaXNfZmlsZV9scnUobHJ1KTsKKwkJYm9vbCBhY3RpdmUgPSBpc19hY3Rp dmVfbHJ1KGxydSk7CisJCXN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmbHJ1dmVjLT5saXN0c1ts cnVdOworCisJCXdoaWxlICghbGlzdF9lbXB0eShoZWFkKSkgeworCQkJYm9vbCBzdWNjZXNzOwor CQkJc3RydWN0IGZvbGlvICpmb2xpbyA9IGxydV90b19mb2xpbyhoZWFkKTsKKworCQkJVk1fV0FS Tl9PTl9PTkNFX0ZPTElPKGZvbGlvX3Rlc3RfdW5ldmljdGFibGUoZm9saW8pLCBmb2xpbyk7CisJ CQlWTV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9fdGVzdF9hY3RpdmUoZm9saW8pICE9IGFjdGl2 ZSwgZm9saW8pOworCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX2lzX2ZpbGVfbHJ1KGZv bGlvKSAhPSB0eXBlLCBmb2xpbyk7CisJCQlWTV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9fbHJ1 X2dlbihmb2xpbykgIT0gLTEsIGZvbGlvKTsKKworCQkJbHJ1dmVjX2RlbF9mb2xpbyhscnV2ZWMs IGZvbGlvKTsKKwkJCXN1Y2Nlc3MgPSBscnVfZ2VuX2FkZF9mb2xpbyhscnV2ZWMsIGZvbGlvLCBm YWxzZSk7CisJCQlWTV9XQVJOX09OX09OQ0UoIXN1Y2Nlc3MpOworCisJCQlpZiAoIS0tcmVtYWlu aW5nKQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCXJldHVybiB0cnVlOworfQorCitz dGF0aWMgYm9vbCBkcmFpbl9ldmljdGFibGUoc3RydWN0IGxydXZlYyAqbHJ1dmVjKQoreworCWlu dCBnZW4sIHR5cGUsIHpvbmU7CisJaW50IHJlbWFpbmluZyA9IE1BWF9MUlVfQkFUQ0g7CisKKwlm b3JfZWFjaF9nZW5fdHlwZV96b25lKGdlbiwgdHlwZSwgem9uZSkgeworCQlzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkID0gJmxydXZlYy0+bHJ1Z2VuLmxpc3RzW2dlbl1bdHlwZV1bem9uZV07CisKKwkJ d2hpbGUgKCFsaXN0X2VtcHR5KGhlYWQpKSB7CisJCQlib29sIHN1Y2Nlc3M7CisJCQlzdHJ1Y3Qg Zm9saW8gKmZvbGlvID0gbHJ1X3RvX2ZvbGlvKGhlYWQpOworCisJCQlWTV9XQVJOX09OX09OQ0Vf Rk9MSU8oZm9saW9fdGVzdF91bmV2aWN0YWJsZShmb2xpbyksIGZvbGlvKTsKKwkJCVZNX1dBUk5f T05fT05DRV9GT0xJTyhmb2xpb190ZXN0X2FjdGl2ZShmb2xpbyksIGZvbGlvKTsKKwkJCVZNX1dB Uk5fT05fT05DRV9GT0xJTyhmb2xpb19pc19maWxlX2xydShmb2xpbykgIT0gdHlwZSwgZm9saW8p OworCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX3pvbmVudW0oZm9saW8pICE9IHpvbmUs IGZvbGlvKTsKKworCQkJc3VjY2VzcyA9IGxydV9nZW5fZGVsX2ZvbGlvKGxydXZlYywgZm9saW8s IGZhbHNlKTsKKwkJCVZNX1dBUk5fT05fT05DRSghc3VjY2Vzcyk7CisJCQlscnV2ZWNfYWRkX2Zv bGlvKGxydXZlYywgZm9saW8pOworCisJCQlpZiAoIS0tcmVtYWluaW5nKQorCQkJCXJldHVybiBm YWxzZTsKKwkJfQorCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZCBscnVfZ2Vu X2NoYW5nZV9zdGF0ZShib29sIGVuYWJsZWQpCit7CisJc3RhdGljIERFRklORV9NVVRFWChzdGF0 ZV9tdXRleCk7CisKKwlzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2c7CisKKwljZ3JvdXBfbG9jaygp OworCWNwdXNfcmVhZF9sb2NrKCk7CisJZ2V0X29ubGluZV9tZW1zKCk7CisJbXV0ZXhfbG9jaygm c3RhdGVfbXV0ZXgpOworCisJaWYgKGVuYWJsZWQgPT0gbHJ1X2dlbl9lbmFibGVkKCkpCisJCWdv dG8gdW5sb2NrOworCisJaWYgKGVuYWJsZWQpCisJCXN0YXRpY19icmFuY2hfZW5hYmxlX2NwdXNs b2NrZWQoJmxydV9nZW5fY2Fwc1tMUlVfR0VOX0NPUkVdKTsKKwllbHNlCisJCXN0YXRpY19icmFu Y2hfZGlzYWJsZV9jcHVzbG9ja2VkKCZscnVfZ2VuX2NhcHNbTFJVX0dFTl9DT1JFXSk7CisKKwlt ZW1jZyA9IG1lbV9jZ3JvdXBfaXRlcihOVUxMLCBOVUxMLCBOVUxMKTsKKwlkbyB7CisJCWludCBu aWQ7CisKKwkJZm9yX2VhY2hfbm9kZShuaWQpIHsKKwkJCXN0cnVjdCBscnV2ZWMgKmxydXZlYyA9 IGdldF9scnV2ZWMobWVtY2csIG5pZCk7CisKKwkJCWlmICghbHJ1dmVjKQorCQkJCWNvbnRpbnVl OworCisJCQlzcGluX2xvY2tfaXJxKCZscnV2ZWMtPmxydV9sb2NrKTsKKworCQkJVk1fV0FSTl9P Tl9PTkNFKCFzZXFfaXNfdmFsaWQobHJ1dmVjKSk7CisJCQlWTV9XQVJOX09OX09OQ0UoIXN0YXRl X2lzX3ZhbGlkKGxydXZlYykpOworCisJCQlscnV2ZWMtPmxydWdlbi5lbmFibGVkID0gZW5hYmxl ZDsKKworCQkJd2hpbGUgKCEoZW5hYmxlZCA/IGZpbGxfZXZpY3RhYmxlKGxydXZlYykgOiBkcmFp bl9ldmljdGFibGUobHJ1dmVjKSkpIHsKKwkJCQlzcGluX3VubG9ja19pcnEoJmxydXZlYy0+bHJ1 X2xvY2spOworCQkJCWNvbmRfcmVzY2hlZCgpOworCQkJCXNwaW5fbG9ja19pcnEoJmxydXZlYy0+ bHJ1X2xvY2spOworCQkJfQorCisJCQlzcGluX3VubG9ja19pcnEoJmxydXZlYy0+bHJ1X2xvY2sp OworCQl9CisKKwkJY29uZF9yZXNjaGVkKCk7CisJfSB3aGlsZSAoKG1lbWNnID0gbWVtX2Nncm91 cF9pdGVyKE5VTEwsIG1lbWNnLCBOVUxMKSkpOwordW5sb2NrOgorCW11dGV4X3VubG9jaygmc3Rh dGVfbXV0ZXgpOworCXB1dF9vbmxpbmVfbWVtcygpOworCWNwdXNfcmVhZF91bmxvY2soKTsKKwlj Z3JvdXBfdW5sb2NrKCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICBzeXNmcyBpbnRlcmZhY2UKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisKK3N0YXRpYyBzc2l6ZV90IHNob3dfZW5hYmxlZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3Ry dWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJdW5zaWduZWQgaW50IGNh cHMgPSAwOworCisJaWYgKGdldF9jYXAoTFJVX0dFTl9DT1JFKSkKKwkJY2FwcyB8PSBCSVQoTFJV X0dFTl9DT1JFKTsKKworCWlmIChhcmNoX2hhc19od19wdGVfeW91bmcoKSAmJiBnZXRfY2FwKExS VV9HRU5fTU1fV0FMSykpCisJCWNhcHMgfD0gQklUKExSVV9HRU5fTU1fV0FMSyk7CisKKwlpZiAo SVNfRU5BQkxFRChDT05GSUdfQVJDSF9IQVNfTk9OTEVBRl9QTURfWU9VTkcpICYmIGdldF9jYXAo TFJVX0dFTl9OT05MRUFGX1lPVU5HKSkKKwkJY2FwcyB8PSBCSVQoTFJVX0dFTl9OT05MRUFGX1lP VU5HKTsKKworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIjB4JTA0eFxuIiwgY2Fw cyk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0b3JlX2VuYWJsZWQoc3RydWN0IGtvYmplY3QgKmtv YmosIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSAgICAgY29uc3QgY2hhciAqYnVm LCBzaXplX3QgbGVuKQoreworCWludCBpOworCXVuc2lnbmVkIGludCBjYXBzOworCisJaWYgKHRv bG93ZXIoKmJ1ZikgPT0gJ24nKQorCQljYXBzID0gMDsKKwllbHNlIGlmICh0b2xvd2VyKCpidWYp ID09ICd5JykKKwkJY2FwcyA9IC0xOworCWVsc2UgaWYgKGtzdHJ0b3VpbnQoYnVmLCAwLCAmY2Fw cykpCisJCXJldHVybiAtRUlOVkFMOworCisJZm9yIChpID0gMDsgaSA8IE5SX0xSVV9HRU5fQ0FQ UzsgaSsrKSB7CisJCWJvb2wgZW5hYmxlZCA9IGNhcHMgJiBCSVQoaSk7CisKKwkJaWYgKGkgPT0g TFJVX0dFTl9DT1JFKQorCQkJbHJ1X2dlbl9jaGFuZ2Vfc3RhdGUoZW5hYmxlZCk7CisJCWVsc2Ug aWYgKGVuYWJsZWQpCisJCQlzdGF0aWNfYnJhbmNoX2VuYWJsZSgmbHJ1X2dlbl9jYXBzW2ldKTsK KwkJZWxzZQorCQkJc3RhdGljX2JyYW5jaF9kaXNhYmxlKCZscnVfZ2VuX2NhcHNbaV0pOworCX0K KworCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgbHJ1X2dl bl9lbmFibGVkX2F0dHIgPSBfX0FUVFIoCisJZW5hYmxlZCwgMDY0NCwgc2hvd19lbmFibGVkLCBz dG9yZV9lbmFibGVkCispOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqbHJ1X2dlbl9hdHRy c1tdID0geworCSZscnVfZ2VuX2VuYWJsZWRfYXR0ci5hdHRyLAorCU5VTEwKK307CisKK3N0YXRp YyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGxydV9nZW5fYXR0cl9ncm91cCA9IHsKKwkubmFtZSA9 ICJscnVfZ2VuIiwKKwkuYXR0cnMgPSBscnVfZ2VuX2F0dHJzLAorfTsKKwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogICogICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uCiAg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwpAQCAtNTA4NCw2ICs1Mjk4LDcgQEAgdm9pZCBscnVfZ2Vu X2luaXRfbHJ1dmVjKHN0cnVjdCBscnV2ZWMgKmxydXZlYykKIAlzdHJ1Y3QgbHJ1X2dlbl9zdHJ1 Y3QgKmxydWdlbiA9ICZscnV2ZWMtPmxydWdlbjsKIAogCWxydWdlbi0+bWF4X3NlcSA9IE1JTl9O Ul9HRU5TICsgMTsKKwlscnVnZW4tPmVuYWJsZWQgPSBscnVfZ2VuX2VuYWJsZWQoKTsKIAogCWZv cl9lYWNoX2dlbl90eXBlX3pvbmUoZ2VuLCB0eXBlLCB6b25lKQogCQlJTklUX0xJU1RfSEVBRCgm bHJ1Z2VuLT5saXN0c1tnZW5dW3R5cGVdW3pvbmVdKTsKQEAgLTUxMjMsNiArNTMzOCw5IEBAIHN0 YXRpYyBpbnQgX19pbml0IGluaXRfbHJ1X2dlbih2b2lkKQogCUJVSUxEX0JVR19PTihNSU5fTlJf R0VOUyArIDEgPj0gTUFYX05SX0dFTlMpOwogCUJVSUxEX0JVR19PTihCSVQoTFJVX0dFTl9XSURU SCkgPD0gTUFYX05SX0dFTlMpOwogCisJaWYgKHN5c2ZzX2NyZWF0ZV9ncm91cChtbV9rb2JqLCAm bHJ1X2dlbl9hdHRyX2dyb3VwKSkKKwkJcHJfZXJyKCJscnVfZ2VuOiBmYWlsZWQgdG8gY3JlYXRl IHN5c2ZzIGdyb3VwXG4iKTsKKwogCXJldHVybiAwOwogfTsKIGxhdGVfaW5pdGNhbGwoaW5pdF9s cnVfZ2VuKTsKLS0gCjIuMzcuMy45NjguZ2E2YjRiMDgwZTQtZ29vZwoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK