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 6A8C8C433EF for ; Thu, 7 Apr 2022 03:38:12 +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=SP5u1peMUVyu40PfXLxRuWUczAO5P8nFKTc0szQR+V4=; b=Y4zkgQqeOnY5FRShauWW5z6u1F FlNdx6ZSENbhU3gF4wBNH8fYfxw4QO8bA1vg+OiT9zQfmYkQrFbw88TsRJukoqDH4qcQQlkuspnHX VElfkPRwC9yLw++66VeGktTzQKnE3KM/xq6m/wN/uuqNAqutvLORlFjQLHxjeTivGmw57nU7Vz+pr /pIxePg+EvgGH+YUj4yfYevEHT7qfck/7U3XsRW1/r3E911Bw1lVUlIsmlA2j7xczMI5MGr6I/tWj y1+2ukPq7PUjlhKHCekMp4TK6Vl0MGEc2gTXvOpSGN8XGwjRD9epjjTDkj+ZE/K8giAjEVKTxS7HU fPIV/hDw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncIwe-0098my-6g; Thu, 07 Apr 2022 03:36:28 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncId3-0091es-Mi for linux-arm-kernel@lists.infradead.org; Thu, 07 Apr 2022 03:16:29 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id b6-20020a5b0b46000000b0063dcbfa6dd3so3280047ybr.2 for ; Wed, 06 Apr 2022 20:16:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=Artd3VgmPfRvgJSGx+z1Kh9KEzM48iDqoWnEYSArpAs=; b=RXSD1P20FecKhU9EvkEbe8qQkdfzqFyaZHASZakqNZpIs9fyF0EvUnJ2YTOIhkeXOE tJztkP9xyGj6ZEPMFdDptYgmHHfOJEOkPjmxlKMWBV6/wbWDZ6QgyYPhZ0RIHOEJrZb1 Rad+U2zx4t8ASeZdZ07fVR/TwXApI0p8rfxN6Adx5eOAMJryyGoGNQG7Acc7UUHUYiH0 9sVKxpnURKJmZCokKSnmE9Qht71V0tjrfRVa1NkRGaSb3POt9zoueAT0J/EH/q+B4uVW 7s5wAAmBIfP04+WaEqS9xmPcfj5TCuQArZFhC/mD2A1QN7FXDHd9opM6upZI78Fv6LVB sH3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=Artd3VgmPfRvgJSGx+z1Kh9KEzM48iDqoWnEYSArpAs=; b=zECm4pM/BRky5O+Whxe+SVcd1FZH3J8wZZsq4L3vDgagkYQCYZ7/mYxwI8K9QdQYu7 Ll+jl3M/6mNmGlTTI0XRUGeLKn+9AHIUI4rQ56s57CtVEOOYt+fQS+MJKBLhS2FaSbgq qb+JGqDIwCDZ+N0DojmlPtMF1oHpqDJe6YWPsw7PIHpjbFWIBtvNVrwTQnHComTkharj ak9qD4XuoOwTMspX1jGQeBFX+Z+vHuS0y3wxcF0B/I0+8qqPO9AKdHsv54JSIccwuYe3 AkReoXNAV9xByU8MgLBF3cNZetET9gK8BRqq/EGxlpuL5E7hYbKBNvPinAjTueiDxZ19 cRMQ== X-Gm-Message-State: AOAM530gGvhYAha6C01rsGw58Dp7J+cXy4JQ/eDeI0tw5e+t7aP420nf R7ihV8yOFFqgrSxy9W3Df5SVLYRN6UA= X-Google-Smtp-Source: ABdhPJwFwHRQ5a4Ww5IVXUAiiZXrkd1a8KUZIIAq0wSKl1tfIV4Z7oQsyhEIU6/ovaLsXaPu7ShP1QBdOt4= X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:9ea2:c755:ae22:6862]) (user=yuzhao job=sendgmr) by 2002:a81:a50b:0:b0:2eb:9a58:cfda with SMTP id u11-20020a81a50b000000b002eb9a58cfdamr10031842ywg.464.1649301371926; Wed, 06 Apr 2022 20:16:11 -0700 (PDT) Date: Wed, 6 Apr 2022 21:15:22 -0600 In-Reply-To: <20220407031525.2368067-1-yuzhao@google.com> Message-Id: <20220407031525.2368067-11-yuzhao@google.com> Mime-Version: 1.0 References: <20220407031525.2368067-1-yuzhao@google.com> X-Mailer: git-send-email 2.35.1.1094.g7c7d902a7c-goog Subject: [PATCH v10 10/14] mm: multi-gen LRU: kill switch From: Yu Zhao To: Stephen Rothwell , linux-mm@kvack.org Cc: Andi Kleen , Andrew Morton , Aneesh Kumar , Barry Song <21cnbao@gmail.com>, Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Jesse Barnes , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Rik van Riel , Vlastimil Babka , Will Deacon , Ying Huang , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, page-reclaim@google.com, x86@kernel.org, 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-20220406_201613_819089_F807D6A4 X-CRM114-Status: GOOD ( 27.56 ) 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 Lm9yZy8KWzNdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyMjAyMDIwMjQxMzcuMjUxNjQz OC0xLUxpYW0uSG93bGV0dEBvcmFjbGUuY29tLwoKU2lnbmVkLW9mZi1ieTogWXUgWmhhbyA8eXV6 aGFvQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBCcmlhbiBHZWZmb24gPGJnZWZmb25AZ29vZ2xlLmNv bT4KQWNrZWQtYnk6IEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGhlZnRpZ0BhcmNo bGludXgub3JnPgpBY2tlZC1ieTogT2xla3NhbmRyIE5hdGFsZW5rbyA8b2xla3NhbmRyQG5hdGFs ZW5rby5uYW1lPgpBY2tlZC1ieTogU3RldmVuIEJhcnJldHQgPHN0ZXZlbkBsaXF1b3JpeC5uZXQ+ CkFja2VkLWJ5OiBTdWxlaW1hbiBTb3VobGFsIDxzdWxlaW1hbkBnb29nbGUuY29tPgpUZXN0ZWQt Ynk6IERhbmllbCBCeXJuZSA8ZGpieXJuZUBtdHUuZWR1PgpUZXN0ZWQtYnk6IERvbmFsZCBDYXJy IDxkQGNoYW9zLXJlaW5zLmNvbT4KVGVzdGVkLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdl ckBhcHBsaWVkLWFzeW5jaHJvbnkuY29tPgpUZXN0ZWQtYnk6IEtvbnN0YW50aW4gS2hhcmxhbW92 IDxIaS1BbmdlbEB5YW5kZXgucnU+ClRlc3RlZC1ieTogU2h1YW5nIFpoYWkgPHN6aGFpMkBjcy5y b2NoZXN0ZXIuZWR1PgpUZXN0ZWQtYnk6IFNvZmlhIFRyaW5oIDxzb2ZpYS50cmluaEBlZGkud29y a3M+ClRlc3RlZC1ieTogVmFpYmhhdiBKYWluIDx2YWliaGF2QGxpbnV4LmlibS5jb20+Ci0tLQog aW5jbHVkZS9saW51eC9jZ3JvdXAuaCAgICAgICAgICB8ICAxNSArLQogaW5jbHVkZS9saW51eC9t bV9pbmxpbmUuaCAgICAgICB8ICAxMiArLQogaW5jbHVkZS9saW51eC9tbXpvbmUuaCAgICAgICAg ICB8ICAgOSArKwoga2VybmVsL2Nncm91cC9jZ3JvdXAtaW50ZXJuYWwuaCB8ICAgMSAtCiBtbS9L Y29uZmlnICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIG1tL3Ztc2Nhbi5jICAgICAgICAg ICAgICAgICAgICAgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDYgZmls ZXMgY2hhbmdlZCwgMjcyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9jZ3JvdXAuaCBiL2luY2x1ZGUvbGludXgvY2dyb3VwLmgKaW5kZXgg MGQxYWRhODk2OGQ3Li4xYmMwY2FiZjk5M2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2dy b3VwLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaApAQCAtNDMyLDYgKzQzMiwxOCBAQCBz dGF0aWMgaW5saW5lIHZvaWQgY2dyb3VwX3B1dChzdHJ1Y3QgY2dyb3VwICpjZ3JwKQogCWNzc19w dXQoJmNncnAtPnNlbGYpOwogfQogCitleHRlcm4gc3RydWN0IG11dGV4IGNncm91cF9tdXRleDsK Kworc3RhdGljIGlubGluZSB2b2lkIGNncm91cF9sb2NrKHZvaWQpCit7CisJbXV0ZXhfbG9jaygm Y2dyb3VwX211dGV4KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNncm91cF91bmxvY2sodm9p ZCkKK3sKKwltdXRleF91bmxvY2soJmNncm91cF9tdXRleCk7Cit9CisKIC8qKgogICogdGFza19j c3Nfc2V0X2NoZWNrIC0gb2J0YWluIGEgdGFzaydzIGNzc19zZXQgd2l0aCBleHRyYSBhY2Nlc3Mg Y29uZGl0aW9ucwogICogQHRhc2s6IHRoZSB0YXNrIHRvIG9idGFpbiBjc3Nfc2V0IGZvcgpAQCAt NDQ2LDcgKzQ1OCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjZ3JvdXBfcHV0KHN0cnVjdCBjZ3Jv dXAgKmNncnApCiAgKiBhcyBsb2NrcyB1c2VkIGR1cmluZyB0aGUgY2dyb3VwX3N1YnN5czo6YXR0 YWNoKCkgbWV0aG9kcy4KICAqLwogI2lmZGVmIENPTkZJR19QUk9WRV9SQ1UKLWV4dGVybiBzdHJ1 Y3QgbXV0ZXggY2dyb3VwX211dGV4OwogZXh0ZXJuIHNwaW5sb2NrX3QgY3NzX3NldF9sb2NrOwog I2RlZmluZSB0YXNrX2Nzc19zZXRfY2hlY2sodGFzaywgX19jKQkJCQkJXAogCXJjdV9kZXJlZmVy ZW5jZV9jaGVjaygodGFzayktPmNncm91cHMsCQkJCVwKQEAgLTcwOCw2ICs3MTksOCBAQCBzdHJ1 Y3QgY2dyb3VwOwogc3RhdGljIGlubGluZSB1NjQgY2dyb3VwX2lkKGNvbnN0IHN0cnVjdCBjZ3Jv dXAgKmNncnApIHsgcmV0dXJuIDE7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBjc3NfZ2V0KHN0cnVj dCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgY3NzX3B1 dChzdHJ1Y3QgY2dyb3VwX3N1YnN5c19zdGF0ZSAqY3NzKSB7fQorc3RhdGljIGlubGluZSB2b2lk IGNncm91cF9sb2NrKHZvaWQpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQgY2dyb3VwX3VubG9jayh2 b2lkKSB7fQogc3RhdGljIGlubGluZSBpbnQgY2dyb3VwX2F0dGFjaF90YXNrX2FsbChzdHJ1Y3Qg dGFza19zdHJ1Y3QgKmZyb20sCiAJCQkJCSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHsgcmV0dXJu IDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IGNncm91cHN0YXRzX2J1aWxkKHN0cnVjdCBjZ3JvdXBz dGF0cyAqc3RhdHMsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tX2lubGluZS5oIGIvaW5j bHVkZS9saW51eC9tbV9pbmxpbmUuaAppbmRleCA4YThmODdiNzI1NDAuLjM1Mjg2MmFmMjY2OSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbV9pbmxpbmUuaAorKysgYi9pbmNsdWRlL2xpbnV4 L21tX2lubGluZS5oCkBAIC0xMDYsNyArMTA2LDE1IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUg ZW51bSBscnVfbGlzdCBmb2xpb19scnVfbGlzdChzdHJ1Y3QgZm9saW8gKmZvbGlvKQogCiBzdGF0 aWMgaW5saW5lIGJvb2wgbHJ1X2dlbl9lbmFibGVkKHZvaWQpCiB7Ci0JcmV0dXJuIHRydWU7Cisj aWZkZWYgQ09ORklHX0xSVV9HRU5fRU5BQkxFRAorCURFQ0xBUkVfU1RBVElDX0tFWV9UUlVFKGxy dV9nZW5fY2Fwc1tOUl9MUlVfR0VOX0NBUFNdKTsKKworCXJldHVybiBzdGF0aWNfYnJhbmNoX2xp a2VseSgmbHJ1X2dlbl9jYXBzW0xSVV9HRU5fQ09SRV0pOworI2Vsc2UKKwlERUNMQVJFX1NUQVRJ Q19LRVlfRkFMU0UobHJ1X2dlbl9jYXBzW05SX0xSVV9HRU5fQ0FQU10pOworCisJcmV0dXJuIHN0 YXRpY19icmFuY2hfdW5saWtlbHkoJmxydV9nZW5fY2Fwc1tMUlVfR0VOX0NPUkVdKTsKKyNlbmRp ZgogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgbHJ1X2dlbl9pbl9mYXVsdCh2b2lkKQpAQCAtMTk2 LDcgKzIwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBscnVfZ2VuX2FkZF9mb2xpbyhzdHJ1Y3Qg bHJ1dmVjICpscnV2ZWMsIHN0cnVjdCBmb2xpbyAqZm9saW8sCiAJaW50IHpvbmUgPSBmb2xpb196 b25lbnVtKGZvbGlvKTsKIAlzdHJ1Y3QgbHJ1X2dlbl9zdHJ1Y3QgKmxydWdlbiA9ICZscnV2ZWMt PmxydWdlbjsKIAotCWlmIChmb2xpb190ZXN0X3VuZXZpY3RhYmxlKGZvbGlvKSkKKwlpZiAoZm9s aW9fdGVzdF91bmV2aWN0YWJsZShmb2xpbykgfHwgIWxydWdlbi0+ZW5hYmxlZCkKIAkJcmV0dXJu IGZhbHNlOwogCS8qCiAJICogVGhlcmUgYXJlIHRocmVlIGNvbW1vbiBjYXNlcyBmb3IgdGhpcyBw YWdlOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbXpvbmUuaCBiL2luY2x1ZGUvbGludXgv bW16b25lLmgKaW5kZXggYTFhOTk5NzFmZjljLi41MjVkYmY1ZTE0ZmEgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvbW16b25lLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbXpvbmUuaApAQCAtMzg0 LDYgKzM4NCwxMyBAQCBlbnVtIHsKIAlMUlVfR0VOX0ZJTEUsCiB9OwogCitlbnVtIHsKKwlMUlVf R0VOX0NPUkUsCisJTFJVX0dFTl9NTV9XQUxLLAorCUxSVV9HRU5fTk9OTEVBRl9ZT1VORywKKwlO Ul9MUlVfR0VOX0NBUFMKK307CisKICNkZWZpbmUgTUlOX0xSVV9CQVRDSAkJQklUU19QRVJfTE9O RwogI2RlZmluZSBNQVhfTFJVX0JBVENICQkoTUlOX0xSVV9CQVRDSCAqIDEyOCkKIApAQCAtNDIy LDYgKzQyOSw4IEBAIHN0cnVjdCBscnVfZ2VuX3N0cnVjdCB7CiAJLyogY2FuIGJlIG1vZGlmaWVk IHdpdGhvdXQgaG9sZGluZyB0aGUgTFJVIGxvY2sgKi8KIAlhdG9taWNfbG9uZ190IGV2aWN0ZWRb TlJfSElTVF9HRU5TXVtBTk9OX0FORF9GSUxFXVtNQVhfTlJfVElFUlNdOwogCWF0b21pY19sb25n X3QgcmVmYXVsdGVkW05SX0hJU1RfR0VOU11bQU5PTl9BTkRfRklMRV1bTUFYX05SX1RJRVJTXTsK KwkvKiB3aGV0aGVyIHRoZSBtdWx0aS1nZW4gTFJVIGlzIGVuYWJsZWQgKi8KKwlib29sIGVuYWJs ZWQ7CiB9OwogCiBlbnVtIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAvY2dyb3VwLWludGVy bmFsLmggYi9rZXJuZWwvY2dyb3VwL2Nncm91cC1pbnRlcm5hbC5oCmluZGV4IDZlMzZlODU0YjUx Mi4uOTI5ZWQzYmYxYTdjIDEwMDY0NAotLS0gYS9rZXJuZWwvY2dyb3VwL2Nncm91cC1pbnRlcm5h bC5oCisrKyBiL2tlcm5lbC9jZ3JvdXAvY2dyb3VwLWludGVybmFsLmgKQEAgLTE2NSw3ICsxNjUs NiBAQCBzdHJ1Y3QgY2dyb3VwX21nY3R4IHsKICNkZWZpbmUgREVGSU5FX0NHUk9VUF9NR0NUWChu YW1lKQkJCQkJCVwKIAlzdHJ1Y3QgY2dyb3VwX21nY3R4IG5hbWUgPSBDR1JPVVBfTUdDVFhfSU5J VChuYW1lKQogCi1leHRlcm4gc3RydWN0IG11dGV4IGNncm91cF9tdXRleDsKIGV4dGVybiBzcGlu bG9ja190IGNzc19zZXRfbG9jazsKIGV4dGVybiBzdHJ1Y3QgY2dyb3VwX3N1YnN5cyAqY2dyb3Vw X3N1YnN5c1tdOwogZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgY2dyb3VwX3Jvb3RzOwpkaWZmIC0t Z2l0IGEvbW0vS2NvbmZpZyBiL21tL0tjb25maWcKaW5kZXggYzQwNzc3ZDA5OGE4Li5iNTU1NDYx OTEzNjkgMTAwNjQ0Ci0tLSBhL21tL0tjb25maWcKKysrIGIvbW0vS2NvbmZpZwpAQCAtOTE4LDYg KzkxOCwxMiBAQCBjb25maWcgTFJVX0dFTgogCWhlbHAKIAkgIEEgaGlnaCBwZXJmb3JtYW5jZSBM UlUgaW1wbGVtZW50YXRpb24gdG8gb3ZlcmNvbW1pdCBtZW1vcnkuCiAKK2NvbmZpZyBMUlVfR0VO X0VOQUJMRUQKKwlib29sICJFbmFibGUgYnkgZGVmYXVsdCIKKwlkZXBlbmRzIG9uIExSVV9HRU4K KwloZWxwCisJICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBtdWx0aS1nZW4gTFJVIGJ5IGRlZmF1 bHQuCisKIGNvbmZpZyBMUlVfR0VOX1NUQVRTCiAJYm9vbCAiRnVsbCBzdGF0cyBmb3IgZGVidWdn aW5nIgogCWRlcGVuZHMgb24gTFJVX0dFTgpkaWZmIC0tZ2l0IGEvbW0vdm1zY2FuLmMgYi9tbS92 bXNjYW4uYwppbmRleCAwNjYzZjFhM2Y3MmEuLjMzODQ1Nzk2ZDEwMCAxMDA2NDQKLS0tIGEvbW0v dm1zY2FuLmMKKysrIGIvbW0vdm1zY2FuLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlIDxs aW51eC9wc2kuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdld2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4 L3NobWVtX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KIAogI2luY2x1ZGUgPGFzbS90 bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgpAQCAtMjk4OSw2ICsyOTkwLDEyIEBA IHN0YXRpYyBib29sIGNhbl9hZ2VfYW5vbl9wYWdlcyhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0 LAogCiAjaWZkZWYgQ09ORklHX0xSVV9HRU4KIAorI2lmZGVmIENPTkZJR19MUlVfR0VOX0VOQUJM RUQKK0RFRklORV9TVEFUSUNfS0VZX0FSUkFZX1RSVUUobHJ1X2dlbl9jYXBzLCBOUl9MUlVfR0VO X0NBUFMpOworI2Vsc2UKK0RFRklORV9TVEFUSUNfS0VZX0FSUkFZX0ZBTFNFKGxydV9nZW5fY2Fw cywgTlJfTFJVX0dFTl9DQVBTKTsKKyNlbmRpZgorCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAg KiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kIGhlbHBlcnMKICAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCkBAIC0zMDI1LDYgKzMwMzIsMTUgQEAgc3RhdGljIGludCBmb2xpb19scnVf dGllcihzdHJ1Y3QgZm9saW8gKmZvbGlvKQogCXJldHVybiBscnVfdGllcl9mcm9tX3JlZnMocmVm cyk7CiB9CiAKK3N0YXRpYyBib29sIGdldF9jYXAoaW50IGNhcCkKK3sKKyNpZmRlZiBDT05GSUdf TFJVX0dFTl9FTkFCTEVECisJcmV0dXJuIHN0YXRpY19icmFuY2hfbGlrZWx5KCZscnVfZ2VuX2Nh cHNbY2FwXSk7CisjZWxzZQorCXJldHVybiBzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZscnVfZ2Vu X2NhcHNbY2FwXSk7CisjZW5kaWYKK30KKwogc3RhdGljIHN0cnVjdCBscnV2ZWMgKmdldF9scnV2 ZWMoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLCBpbnQgbmlkKQogewogCXN0cnVjdCBwZ2xpc3Rf ZGF0YSAqcGdkYXQgPSBOT0RFX0RBVEEobmlkKTsKQEAgLTM4MzMsNyArMzg0OSw4IEBAIHN0YXRp YyB2b2lkIHdhbGtfcG1kX3JhbmdlX2xvY2tlZChwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIG5l eHQsIHN0cnVjdCB2bV9hcmVhCiAJCQlnb3RvIG5leHQ7CiAKIAkJaWYgKCFwbWRfdHJhbnNfaHVn ZShwbWRbaV0pKSB7Ci0JCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfQVJDSF9IQVNfTk9OTEVBRl9Q TURfWU9VTkcpKQorCQkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX05PTkxFQUZfUE1E X1lPVU5HKSAmJgorCQkJICAgIGdldF9jYXAoTFJVX0dFTl9OT05MRUFGX1lPVU5HKSkKIAkJCQlw bWRwX3Rlc3RfYW5kX2NsZWFyX3lvdW5nKHZtYSwgYWRkciwgcG1kICsgaSk7CiAJCQlnb3RvIG5l eHQ7CiAJCX0KQEAgLTM5NDAsMTAgKzM5NTcsMTIgQEAgc3RhdGljIHZvaWQgd2Fsa19wbWRfcmFu Z2UocHVkX3QgKnB1ZCwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCiAJ CXByaXYtPm1tX3N0YXRzW01NX1BNRF9UT1RBTF0rKzsKIAogI2lmZGVmIENPTkZJR19BUkNIX0hB U19OT05MRUFGX1BNRF9ZT1VORwotCQlpZiAoIXBtZF95b3VuZyh2YWwpKQotCQkJY29udGludWU7 CisJCWlmIChnZXRfY2FwKExSVV9HRU5fTk9OTEVBRl9ZT1VORykpIHsKKwkJCWlmICghcG1kX3lv dW5nKHZhbCkpCisJCQkJY29udGludWU7CiAKLQkJd2Fsa19wbWRfcmFuZ2VfbG9ja2VkKHB1ZCwg YWRkciwgdm1hLCB3YWxrLCAmcG9zKTsKKwkJCXdhbGtfcG1kX3JhbmdlX2xvY2tlZChwdWQsIGFk ZHIsIHZtYSwgd2FsaywgJnBvcyk7CisJCX0KICNlbmRpZgogCQlpZiAoIXByaXYtPmZ1bGxfc2Nh biAmJiAhdGVzdF9ibG9vbV9maWx0ZXIocHJpdi0+bHJ1dmVjLCBwcml2LT5tYXhfc2VxLCBwbWQg KyBpKSkKIAkJCWNvbnRpbnVlOwpAQCAtNDE4MCw3ICs0MTk5LDcgQEAgc3RhdGljIGJvb2wgdHJ5 X3RvX2luY19tYXhfc2VxKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgdW5zaWduZWQgbG9uZyBtYXhf c2VxLAogCSAqIGhhbmRmdWwgb2YgUFRFcy4gU3ByZWFkaW5nIHRoZSB3b3JrIG91dCBvdmVyIGEg cGVyaW9kIG9mIHRpbWUgdXN1YWxseQogCSAqIGlzIGxlc3MgZWZmaWNpZW50LCBidXQgaXQgYXZv aWRzIGJ1cnN0eSBwYWdlIGZhdWx0cy4KIAkgKi8KLQlpZiAoIWZ1bGxfc2NhbiAmJiAhYXJjaF9o YXNfaHdfcHRlX3lvdW5nKCkpIHsKKwlpZiAoIWZ1bGxfc2NhbiAmJiAoIWFyY2hfaGFzX2h3X3B0 ZV95b3VuZygpIHx8ICFnZXRfY2FwKExSVV9HRU5fTU1fV0FMSykpKSB7CiAJCXN1Y2Nlc3MgPSBp dGVyYXRlX21tX2xpc3Rfbm93YWxrKGxydXZlYywgbWF4X3NlcSk7CiAJCWdvdG8gZG9uZTsKIAl9 CkBAIC00OTEwLDYgKzQ5MjksMjExIEBAIHN0YXRpYyB2b2lkIGxydV9nZW5fc2hyaW5rX2xydXZl YyhzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsIHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjCiAJYmxrX2Zp bmlzaF9wbHVnKCZwbHVnKTsKIH0KIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXRlIGNoYW5nZQorICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Kworc3RhdGljIGJvb2wgX19tYXliZV91bnVzZWQgc3RhdGVfaXNfdmFsaWQoc3RydWN0IGxydXZl YyAqbHJ1dmVjKQoreworCXN0cnVjdCBscnVfZ2VuX3N0cnVjdCAqbHJ1Z2VuID0gJmxydXZlYy0+ bHJ1Z2VuOworCisJaWYgKGxydWdlbi0+ZW5hYmxlZCkgeworCQllbnVtIGxydV9saXN0IGxydTsK KworCQlmb3JfZWFjaF9ldmljdGFibGVfbHJ1KGxydSkgeworCQkJaWYgKCFsaXN0X2VtcHR5KCZs cnV2ZWMtPmxpc3RzW2xydV0pKQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0gZWxzZSB7CisJ CWludCBnZW4sIHR5cGUsIHpvbmU7CisKKwkJZm9yX2VhY2hfZ2VuX3R5cGVfem9uZShnZW4sIHR5 cGUsIHpvbmUpIHsKKwkJCWlmICghbGlzdF9lbXB0eSgmbHJ1Z2VuLT5saXN0c1tnZW5dW3R5cGVd W3pvbmVdKSkKKwkJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIHVubGlrZWx5IGJ1dCBub3QgYSBi dWcgd2hlbiByZXNldF9iYXRjaF9zaXplKCkgaXMgcGVuZGluZyAqLworCQkJVk1fV0FSTl9PTihs cnVnZW4tPm5yX3BhZ2VzW2dlbl1bdHlwZV1bem9uZV0pOworCQl9CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKK3N0YXRpYyBib29sIGZpbGxfZXZpY3RhYmxlKHN0cnVjdCBscnV2ZWMgKmxydXZl YykKK3sKKwllbnVtIGxydV9saXN0IGxydTsKKwlpbnQgcmVtYWluaW5nID0gTUFYX0xSVV9CQVRD SDsKKworCWZvcl9lYWNoX2V2aWN0YWJsZV9scnUobHJ1KSB7CisJCWludCB0eXBlID0gaXNfZmls ZV9scnUobHJ1KTsKKwkJYm9vbCBhY3RpdmUgPSBpc19hY3RpdmVfbHJ1KGxydSk7CisJCXN0cnVj dCBsaXN0X2hlYWQgKmhlYWQgPSAmbHJ1dmVjLT5saXN0c1tscnVdOworCisJCXdoaWxlICghbGlz dF9lbXB0eShoZWFkKSkgeworCQkJYm9vbCBzdWNjZXNzOworCQkJc3RydWN0IGZvbGlvICpmb2xp byA9IGxydV90b19mb2xpbyhoZWFkKTsKKworCQkJVk1fQlVHX09OX0ZPTElPKGZvbGlvX3Rlc3Rf dW5ldmljdGFibGUoZm9saW8pLCBmb2xpbyk7CisJCQlWTV9CVUdfT05fRk9MSU8oZm9saW9fdGVz dF9hY3RpdmUoZm9saW8pICE9IGFjdGl2ZSwgZm9saW8pOworCQkJVk1fQlVHX09OX0ZPTElPKGZv bGlvX2lzX2ZpbGVfbHJ1KGZvbGlvKSAhPSB0eXBlLCBmb2xpbyk7CisJCQlWTV9CVUdfT05fRk9M SU8oZm9saW9fbHJ1X2dlbihmb2xpbykgPCBNQVhfTlJfR0VOUywgZm9saW8pOworCisJCQlscnV2 ZWNfZGVsX2ZvbGlvKGxydXZlYywgZm9saW8pOworCQkJc3VjY2VzcyA9IGxydV9nZW5fYWRkX2Zv bGlvKGxydXZlYywgZm9saW8sIGZhbHNlKTsKKwkJCVZNX0JVR19PTighc3VjY2Vzcyk7CisKKwkJ CWlmICghLS1yZW1haW5pbmcpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCisJcmV0dXJu IHRydWU7Cit9CisKK3N0YXRpYyBib29sIGRyYWluX2V2aWN0YWJsZShzdHJ1Y3QgbHJ1dmVjICps cnV2ZWMpCit7CisJaW50IGdlbiwgdHlwZSwgem9uZTsKKwlpbnQgcmVtYWluaW5nID0gTUFYX0xS VV9CQVRDSDsKKworCWZvcl9lYWNoX2dlbl90eXBlX3pvbmUoZ2VuLCB0eXBlLCB6b25lKSB7CisJ CXN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmbHJ1dmVjLT5scnVnZW4ubGlzdHNbZ2VuXVt0eXBl XVt6b25lXTsKKworCQl3aGlsZSAoIWxpc3RfZW1wdHkoaGVhZCkpIHsKKwkJCWJvb2wgc3VjY2Vz czsKKwkJCXN0cnVjdCBmb2xpbyAqZm9saW8gPSBscnVfdG9fZm9saW8oaGVhZCk7CisKKwkJCVZN X0JVR19PTl9GT0xJTyhmb2xpb190ZXN0X3VuZXZpY3RhYmxlKGZvbGlvKSwgZm9saW8pOworCQkJ Vk1fQlVHX09OX0ZPTElPKGZvbGlvX3Rlc3RfYWN0aXZlKGZvbGlvKSwgZm9saW8pOworCQkJVk1f QlVHX09OX0ZPTElPKGZvbGlvX2lzX2ZpbGVfbHJ1KGZvbGlvKSAhPSB0eXBlLCBmb2xpbyk7CisJ CQlWTV9CVUdfT05fRk9MSU8oZm9saW9fem9uZW51bShmb2xpbykgIT0gem9uZSwgZm9saW8pOwor CisJCQlzdWNjZXNzID0gbHJ1X2dlbl9kZWxfZm9saW8obHJ1dmVjLCBmb2xpbywgZmFsc2UpOwor CQkJVk1fQlVHX09OKCFzdWNjZXNzKTsKKwkJCWxydXZlY19hZGRfZm9saW8obHJ1dmVjLCBmb2xp byk7CisKKwkJCWlmICghLS1yZW1haW5pbmcpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQor CisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGxydV9nZW5fY2hhbmdlX3N0YXRlKGJv b2wgZW5hYmxlKQoreworCXN0YXRpYyBERUZJTkVfTVVURVgoc3RhdGVfbXV0ZXgpOworCisJc3Ry dWN0IG1lbV9jZ3JvdXAgKm1lbWNnOworCisJY2dyb3VwX2xvY2soKTsKKwljcHVzX3JlYWRfbG9j aygpOworCWdldF9vbmxpbmVfbWVtcygpOworCW11dGV4X2xvY2soJnN0YXRlX211dGV4KTsKKwor CWlmIChlbmFibGUgPT0gbHJ1X2dlbl9lbmFibGVkKCkpCisJCWdvdG8gdW5sb2NrOworCisJaWYg KGVuYWJsZSkKKwkJc3RhdGljX2JyYW5jaF9lbmFibGVfY3B1c2xvY2tlZCgmbHJ1X2dlbl9jYXBz W0xSVV9HRU5fQ09SRV0pOworCWVsc2UKKwkJc3RhdGljX2JyYW5jaF9kaXNhYmxlX2NwdXNsb2Nr ZWQoJmxydV9nZW5fY2Fwc1tMUlVfR0VOX0NPUkVdKTsKKworCW1lbWNnID0gbWVtX2Nncm91cF9p dGVyKE5VTEwsIE5VTEwsIE5VTEwpOworCWRvIHsKKwkJaW50IG5pZDsKKworCQlmb3JfZWFjaF9u b2RlKG5pZCkgeworCQkJc3RydWN0IGxydXZlYyAqbHJ1dmVjID0gZ2V0X2xydXZlYyhtZW1jZywg bmlkKTsKKworCQkJaWYgKCFscnV2ZWMpCisJCQkJY29udGludWU7CisKKwkJCXNwaW5fbG9ja19p cnEoJmxydXZlYy0+bHJ1X2xvY2spOworCisJCQlWTV9CVUdfT04oIXNlcV9pc192YWxpZChscnV2 ZWMpKTsKKwkJCVZNX0JVR19PTighc3RhdGVfaXNfdmFsaWQobHJ1dmVjKSk7CisKKwkJCWxydXZl Yy0+bHJ1Z2VuLmVuYWJsZWQgPSBlbmFibGU7CisKKwkJCXdoaWxlICghKGVuYWJsZSA/IGZpbGxf ZXZpY3RhYmxlKGxydXZlYykgOiBkcmFpbl9ldmljdGFibGUobHJ1dmVjKSkpIHsKKwkJCQlzcGlu X3VubG9ja19pcnEoJmxydXZlYy0+bHJ1X2xvY2spOworCQkJCWNvbmRfcmVzY2hlZCgpOworCQkJ CXNwaW5fbG9ja19pcnEoJmxydXZlYy0+bHJ1X2xvY2spOworCQkJfQorCisJCQlzcGluX3VubG9j a19pcnEoJmxydXZlYy0+bHJ1X2xvY2spOworCQl9CisKKwkJY29uZF9yZXNjaGVkKCk7CisJfSB3 aGlsZSAoKG1lbWNnID0gbWVtX2Nncm91cF9pdGVyKE5VTEwsIG1lbWNnLCBOVUxMKSkpOwordW5s b2NrOgorCW11dGV4X3VubG9jaygmc3RhdGVfbXV0ZXgpOworCXB1dF9vbmxpbmVfbWVtcygpOwor CWNwdXNfcmVhZF91bmxvY2soKTsKKwljZ3JvdXBfdW5sb2NrKCk7Cit9CisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNmcyBpbnRlcmZhY2UK KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBzc2l6ZV90IHNob3dfZW5hYmxlKHN0 cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKK3sKKwl1bnNpZ25lZCBpbnQgY2FwcyA9IDA7CisKKwlpZiAoZ2V0X2NhcChMUlVfR0VOX0NP UkUpKQorCQljYXBzIHw9IEJJVChMUlVfR0VOX0NPUkUpOworCisJaWYgKGFyY2hfaGFzX2h3X3B0 ZV95b3VuZygpICYmIGdldF9jYXAoTFJVX0dFTl9NTV9XQUxLKSkKKwkJY2FwcyB8PSBCSVQoTFJV X0dFTl9NTV9XQUxLKTsKKworCWlmIChJU19FTkFCTEVEKENPTkZJR19BUkNIX0hBU19OT05MRUFG X1BNRF9ZT1VORykgJiYgZ2V0X2NhcChMUlVfR0VOX05PTkxFQUZfWU9VTkcpKQorCQljYXBzIHw9 IEJJVChMUlVfR0VOX05PTkxFQUZfWU9VTkcpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFH RV9TSVpFLCAiMHglMDR4XG4iLCBjYXBzKTsKK30KKworc3RhdGljIHNzaXplX3Qgc3RvcmVfZW5h YmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJ CQkgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCBpOworCXVuc2lnbmVk IGludCBjYXBzOworCisJaWYgKHRvbG93ZXIoKmJ1ZikgPT0gJ24nKQorCQljYXBzID0gMDsKKwll bHNlIGlmICh0b2xvd2VyKCpidWYpID09ICd5JykKKwkJY2FwcyA9IC0xOworCWVsc2UgaWYgKGtz dHJ0b3VpbnQoYnVmLCAwLCAmY2FwcykpCisJCXJldHVybiAtRUlOVkFMOworCisJZm9yIChpID0g MDsgaSA8IE5SX0xSVV9HRU5fQ0FQUzsgaSsrKSB7CisJCWJvb2wgZW5hYmxlID0gY2FwcyAmIEJJ VChpKTsKKworCQlpZiAoaSA9PSBMUlVfR0VOX0NPUkUpCisJCQlscnVfZ2VuX2NoYW5nZV9zdGF0 ZShlbmFibGUpOworCQllbHNlIGlmIChlbmFibGUpCisJCQlzdGF0aWNfYnJhbmNoX2VuYWJsZSgm bHJ1X2dlbl9jYXBzW2ldKTsKKwkJZWxzZQorCQkJc3RhdGljX2JyYW5jaF9kaXNhYmxlKCZscnVf Z2VuX2NhcHNbaV0pOworCX0KKworCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29i al9hdHRyaWJ1dGUgbHJ1X2dlbl9lbmFibGVkX2F0dHIgPSBfX0FUVFIoCisJZW5hYmxlZCwgMDY0 NCwgc2hvd19lbmFibGUsIHN0b3JlX2VuYWJsZQorKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKmxydV9nZW5fYXR0cnNbXSA9IHsKKwkmbHJ1X2dlbl9lbmFibGVkX2F0dHIuYXR0ciwKKwlO VUxMCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBscnVfZ2VuX2F0dHJfZ3Jv dXAgPSB7CisJLm5hbWUgPSAibHJ1X2dlbiIsCisJLmF0dHJzID0gbHJ1X2dlbl9hdHRycywKK307 CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICAgICAgICAgICAgICAgICAgICAgICAgICBp bml0aWFsaXphdGlvbgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTQ5MjAsNiArNTE0NCw3 IEBAIHZvaWQgbHJ1X2dlbl9pbml0X2xydXZlYyhzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMpCiAJc3Ry dWN0IGxydV9nZW5fc3RydWN0ICpscnVnZW4gPSAmbHJ1dmVjLT5scnVnZW47CiAKIAlscnVnZW4t Pm1heF9zZXEgPSBNSU5fTlJfR0VOUyArIDE7CisJbHJ1Z2VuLT5lbmFibGVkID0gbHJ1X2dlbl9l bmFibGVkKCk7CiAKIAlmb3JfZWFjaF9nZW5fdHlwZV96b25lKGdlbiwgdHlwZSwgem9uZSkKIAkJ SU5JVF9MSVNUX0hFQUQoJmxydWdlbi0+bGlzdHNbZ2VuXVt0eXBlXVt6b25lXSk7CkBAIC00OTYw LDYgKzUxODUsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X2xydV9nZW4odm9pZCkKIAlCVUlM RF9CVUdfT04oQklUKExSVV9HRU5fV0lEVEgpIDw9IE1BWF9OUl9HRU5TKTsKIAlCVUlMRF9CVUdf T04oc2l6ZW9mKE1NX1NUQVRfQ09ERVMpICE9IE5SX01NX1NUQVRTICsgMSk7CiAKKwlpZiAoc3lz ZnNfY3JlYXRlX2dyb3VwKG1tX2tvYmosICZscnVfZ2VuX2F0dHJfZ3JvdXApKQorCQlwcl9lcnIo ImxydV9nZW46IGZhaWxlZCB0byBjcmVhdGUgc3lzZnMgZ3JvdXBcbiIpOworCiAJcmV0dXJuIDA7 CiB9OwogbGF0ZV9pbml0Y2FsbChpbml0X2xydV9nZW4pOwotLSAKMi4zNS4xLjEwOTQuZzdjN2Q5 MDJhN2MtZ29vZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK