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 6B161CAC5B0 for ; Thu, 2 Oct 2025 15:31:00 +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=CcHNKRAZahniytzXjnjs0oRRo+2Wc+IV/EVfHehG2Lc=; b=JbW0i+zXnW4r4B mgw2jyYGOuryNJtsraK9YeF/n5O1PqlP3Z5QFjVi9Ji8zyK3n3NOE8kq2OqiPth7ArZ+tCLzWFLiV nBSQoTLsCvNnWoWWZXwj7TVz4CshfWrUGR8cfjMPnlLMO7zfep473ZTSGaWTGpmP9+FY+csVJs354 64/FEwg7oRuIZb4Gn7wPPJuSm91TnVeMO/VEE7MRoy7PtvCPA+tLUadH38x21N+W4z9KgimWA5u33 kmsggjA91tBjOFCxwjF0aZIZL7AVAJxV9syQLrqGESYSPogfIF86MzxXTAWUVD4GIXDeRiirw7Qus pac2MXP63bW7RQwxltmw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGg-0000000Aj6M-0lVB; Thu, 02 Oct 2025 15:30:54 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGf-0000000Aj5n-2XKB for linux-riscv@lists.infradead.org; Thu, 02 Oct 2025 15:30:53 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id EB59263E5C; Thu, 2 Oct 2025 15:30:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F306C4CEF4; Thu, 2 Oct 2025 15:30:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759419052; bh=cSceesCArT/4HrDA0Zev9Du6MvqS9g3lp/69knqoeVI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gm9YDaq4VFDKICTEf4GKvml/93ww/UcukQGEKpgzktkNWrAvwZKADGta/ocPjUSyd RiUbvpI//0ol78/qoYEnaI+VN1Enrdjn6C7CQs8qM4s8ST9gNPsunaRW+9jEA7i4Rn NzBJDbhhwfk7xyPNQw5EhcM2xFK9oALtTTvwdc6iWaI7xrZnr4ZWr+tycEOCbdoWoY X3W0XyPMOkHzwInbPXsRqUIXyEr5YYtSPnV41/2eKRvhe1oIr6nxl1NOXrlc5BhtbI qWDN5ef9qLwMjNqvjLr9WdN9YxtZU8iW5ANT1V3HuubeO6WAPNupza7aOhz/gu9cgE 3QqMK+tP5g9pQ== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Junhui Liu , Alexandre Ghiti , Nutty Liu , Paul Walmsley , Sasha Levin , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.17-6.16] riscv: mm: Use mmu-type from FDT to limit SATP mode Date: Thu, 2 Oct 2025 11:30:07 -0400 Message-ID: <20251002153025.2209281-20-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251002153025.2209281-1-sashal@kernel.org> References: <20251002153025.2209281-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17 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 RnJvbTogSnVuaHVpIExpdSA8anVuaHVpLmxpdUBwaWdtb3JhbC50ZWNoPgoKWyBVcHN0cmVhbSBj b21taXQgMTdlOTUyMTA0NGM5YjNlZTgzOWY4NjFkMWFjMzVjNWI1YzIwZDE2YiBdCgpTb21lIFJJ U0MtViBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhbmcgd2hlbiBhdHRlbXB0aW5nIHRvIHdyaXRlIGFu CnVuc3VwcG9ydGVkIFNBVFAgbW9kZSwgZXZlbiB0aG91Z2ggdGhlIGxhdGVzdCBSSVNDLVYgc3Bl Y2lmaWNhdGlvbgpzdGF0ZXMgc3VjaCB3cml0ZXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0LiBUbyBh dm9pZCB0aGlzIGlzc3VlLCB0aGUKbG9naWMgZm9yIHNlbGVjdGluZyBTQVRQIG1vZGUgaGFzIGJl ZW4gcmVmaW5lZDoKClRoZSBrZXJuZWwgbm93IGRldGVybWluZXMgdGhlIFNBVFAgbW9kZSBsaW1p dCBieSB0YWtpbmcgdGhlIG1pbmltdW0gb2YKdGhlIHZhbHVlIHNwZWNpZmllZCBieSB0aGUga2Vy bmVsIGNvbW1hbmQgbGluZSAobm9YbHZsKSBhbmQgdGhlCiJtbXUtdHlwZSIgcHJvcGVydHkgaW4g dGhlIGRldmljZSB0cmVlIChGRFQpLiBJZiBvbmx5IG9uZSBpcyBzcGVjaWZpZWQsCnVzZSB0aGF0 LgotIElmIHRoZSByZXN1bHRpbmcgbGltaXQgaXMgc3Y0OCBvciBoaWdoZXIsIHRoZSBrZXJuZWwg d2lsbCBwcm9iZSBTQVRQCiAgbW9kZXMgZnJvbSB0aGlzIGxpbWl0IGRvd253YXJkIHVudGlsIGEg c3VwcG9ydGVkIG1vZGUgaXMgZm91bmQuCi0gSWYgdGhlIGxpbWl0IGlzIHN2MzksIHRoZSBrZXJu ZWwgd2lsbCBkaXJlY3RseSB1c2Ugc3YzOSB3aXRob3V0CiAgcHJvYmluZy4KClRoaXMgZW5zdXJl cyBTQVRQIG1vZGUgc2VsZWN0aW9uIGlzIHNhZmUgYW5kIGNvbXBhdGlibGUgd2l0aCBib3RoCmhh cmR3YXJlIGFuZCB1c2VyIGNvbmZpZ3VyYXRpb24sIG1pbmltaXppbmcgdGhlIHJpc2sgb2YgaGFu Z3MuCgpTaWduZWQtb2ZmLWJ5OiBKdW5odWkgTGl1IDxqdW5odWkubGl1QHBpZ21vcmFsLnRlY2g+ ClJldmlld2VkLWJ5OiBBbGV4YW5kcmUgR2hpdGkgPGFsZXhnaGl0aUByaXZvc2luYy5jb20+ClJl dmlld2VkLWJ5OiBOdXR0eSBMaXUgPGxpdWppbmdxaUBsYW54aW5jb21wdXRpbmcuY29tPgpMaW5r OiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjUwNzIyLXNhdHAtZnJvbS1mZHQtdjEtMi01 YmEyMjIxOGZhNWZAcGlnbW9yYWwudGVjaApTaWduZWQtb2ZmLWJ5OiBQYXVsIFdhbG1zbGV5IDxw andAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJuZWwu b3JnPgotLS0KCkxMTSBHZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBtYXkgYmUgY29tcGxldGVseSBi b2d1czoKCiMjIEJBQ0tQT1JUIFJFQ09NTUVOREFUSU9OOiAqKllFUyoqCgojIyMgRXhlY3V0aXZl IFN1bW1hcnkKVGhpcyBjb21taXQgZml4ZXMgYSAqKmNyaXRpY2FsIGJ1ZyoqIHdoZXJlIFJJU0Mt ViBzeXN0ZW1zIGNhbiAqKmhhbmcKY29tcGxldGVseSoqIHdoZW4gdGhlIGtlcm5lbCBhdHRlbXB0 cyB0byB3cml0ZSBhbiB1bnN1cHBvcnRlZCBTQVRQIG1vZGUuClRoZSBmaXggaXMgc21hbGwsIHNh ZmUsIGRlZmVuc2l2ZSwgYW5kIGhhcyBhbHJlYWR5IGJlZW4gaWRlbnRpZmllZCBmb3IKc3RhYmxl IGJhY2twb3J0aW5nLgoKLS0tCgojIyBEZXRhaWxlZCBBbmFseXNpcwoKIyMjIFRoZSBCdWcgQmVp bmcgRml4ZWQKCioqU2V2ZXJpdHk6IENyaXRpY2FsIC0gU3lzdGVtIEhhbmcqKgoKVGhlIGNvbW1p dCBtZXNzYWdlIHN0YXRlczogKiJTb21lIFJJU0MtViBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhbmcg d2hlbgphdHRlbXB0aW5nIHRvIHdyaXRlIGFuIHVuc3VwcG9ydGVkIFNBVFAgbW9kZSwgZXZlbiB0 aG91Z2ggdGhlIGxhdGVzdApSSVNDLVYgc3BlY2lmaWNhdGlvbiBzdGF0ZXMgc3VjaCB3cml0ZXMg c2hvdWxkIGhhdmUgbm8gZWZmZWN0LiIqCgpUaGlzIGlzIGEgaGFyZHdhcmUgY29tcGxpYW5jZSBp c3N1ZSB3aGVyZSBjZXJ0YWluIFJJU0MtViBpbXBsZW1lbnRhdGlvbnMKZG9uJ3QgZm9sbG93IHRo ZSBzcGVjaWZpY2F0aW9uIGFuZCAqKmhhbmcqKiBpbnN0ZWFkIG9mIGlnbm9yaW5nIHdyaXRlcwp0 byB1bnN1cHBvcnRlZCBTQVRQIG1vZGVzLiBUaGlzIG1ha2VzIGFmZmVjdGVkIHN5c3RlbXMgY29t cGxldGVseQp1bmJvb3RhYmxlLgoKIyMjIENvZGUgQ2hhbmdlcyBBbmFseXNpcwoKKipMb2NhdGlv bjoqKiBhcmNoL3Jpc2N2L2tlcm5lbC9waS9mZHRfZWFybHkuYywKYXJjaC9yaXNjdi9rZXJuZWwv cGkvcGkuaCwgYXJjaC9yaXNjdi9tbS9pbml0LmMKCioqS2V5IENoYW5nZXM6KioKCjEuICoqTmV3 IGZ1bmN0aW9uIGBzZXRfc2F0cF9tb2RlX2Zyb21fZmR0KClgCiAgIChhcmNoL3Jpc2N2L2tlcm5l bC9waS9mZHRfZWFybHkuYzoxODctMjI1KSoqCiAgIC0gUmVhZHMgdGhlIGRldmljZSB0cmVlICJt bXUtdHlwZSIgcHJvcGVydHkKICAgLSBSZXR1cm5zIFNBVFBfTU9ERV8zOSBmb3IgInJpc2N2LHN2 MzkiLCBTQVRQX01PREVfNDggZm9yCiAgICAgInJpc2N2LHN2NDgiCiAgIC0gUmV0dXJucyAwIGlm IHByb3BlcnR5IG5vdCBmb3VuZCAoc2FmZSBmYWxsYmFjaykKCjIuICoqTW9kaWZpZWQgYHNldF9z YXRwX21vZGUoKWAgKGFyY2gvcmlzY3YvbW0vaW5pdC5jOjg2Ni04NjgpKioKICBgYGBjCiAgLy8g T0xEOiBPbmx5IHVzZWQgY29tbWFuZCBsaW5lCiAgdTY0IHNhdHBfbW9kZV9jbWRsaW5lID0gX19w aV9zZXRfc2F0cF9tb2RlX2Zyb21fY21kbGluZShkdGJfcGEpOwoKICAvLyBORVc6IFVzZXMgbWlu aW11bSBvZiBjb21tYW5kIGxpbmUgYW5kIEZEVAogIHU2NCBzYXRwX21vZGVfbGltaXQgPQogIG1p bl9ub3RfemVybyhfX3BpX3NldF9zYXRwX21vZGVfZnJvbV9jbWRsaW5lKGR0Yl9wYSksCiAgX19w aV9zZXRfc2F0cF9tb2RlX2Zyb21fZmR0KGR0Yl9wYSkpOwogIGBgYAoKKipXaHkgVGhpcyBJcyBT YWZlOioqCi0gVXNlcyBgbWluX25vdF96ZXJvKClgIHRvIHRha2UgdGhlICoqbW9yZSBjb25zZXJ2 YXRpdmUqKiAobG93ZXIpIHZhbHVlCi0gSWYgb25seSBvbmUgc291cmNlIHNwZWNpZmllcyBhIGxp bWl0LCB1c2VzIHRoYXQgb25lCi0gSWYgbmVpdGhlciBzcGVjaWZpZXMsIHJldHVybnMgMCBhbmQg Y29udGludWVzIHdpdGggcHJvYmluZyAoZXhpc3RpbmcKICBiZWhhdmlvcikKLSAqKkRlZmVuc2l2 ZSBhcHByb2FjaCoqOiBOZXZlciBleHBhbmRzIGNhcGFiaWxpdGllcywgb25seSBsaW1pdHMgdGhl bQoKIyMjIERlcGVuZGVuY2llcwoKKipSZXF1aXJlZCBQcmVyZXF1aXNpdGU6KiogQ29tbWl0IGYz MjQzYmVkMzljMjYgInJpc2N2OiBtbTogUmV0dXJuCmludGVuZGVkIFNBVFAgbW9kZSBmb3Igbm9Y bHZsIG9wdGlvbnMiCi0gVGhpcyByZWZhY3RvcnMgYG1hdGNoX25vWGx2bCgpYCB0byByZXR1cm4g dGhlIG1vZGUgdG8gdXNlIChlLmcuLAogIFNBVFBfTU9ERV8zOSBmb3IgIm5vNGx2bCIpCi0gUHJl dmlvdXNseSByZXR1cm5lZCB0aGUgbW9kZSBiZWluZyBkaXNhYmxlZCAoZS5nLiwgU0FUUF9NT0RF XzQ4IGZvcgogICJubzRsdmwiKQotIFRoaXMgc2VtYW50aWMgY2hhbmdlIGVuYWJsZXMgdGhlIGNs ZWFuIGBtaW5fbm90X3plcm8oKWAgbG9naWMKLSAqKk5vdGU6KiogVGhpcyBwcmVyZXF1aXNpdGUg aXMgYWxzbyBtYXJrZWQgZm9yIGJhY2twb3J0aW5nIChjb21taXQKICBiMjIyYTkzYmY1Mjk0IGlu IHN0YWJsZSkKCioqU3RhbmRhcmQgS2VybmVsIEFQSXMgVXNlZDoqKgotIGBtaW5fbm90X3plcm8o KWAgbWFjcm8gKGluY2x1ZGUvbGludXgvbWlubWF4LmgpIC0gYWxyZWFkeSBwcmVzZW50IGluCiAg a2VybmVsCi0gbGliZmR0IGZ1bmN0aW9ucyAtIGFscmVhZHkgdXNlZCBpbiBSSVNDLVYgZWFybHkg Ym9vdCBjb2RlCi0gTm8gbmV3IGV4dGVybmFsIGRlcGVuZGVuY2llcwoKIyMjIEhpc3RvcmljYWwg Q29udGV4dAoKKipFdm9sdXRpb24gb2YgUklTQy1WIFNBVFAgTW9kZSBTZWxlY3Rpb246KioKCjEu ICoqMjAyMi0wMjoqKiBTdjU3IHN1cHBvcnQgYWRkZWQgKDkxOTVjMjk0YmM1OGYpCjIuICoqMjAy Mi0wNDoqKiBGaXggZm9yIHBsYXRmb3JtcyBub3Qgc3VwcG9ydGluZyBTdjU3IChkNWZkYWRlOTMz MWY1KSAtCiAgICoqbWFya2VkIENjOiBzdGFibGUqKgozLiAqKjIwMjMtMDQ6KiogQ29tbWFuZC1s aW5lIGRvd25ncmFkZSBzdXBwb3J0IGFkZGVkICgyNmU3YWFjYjgzZGZkKSBieQogICBBbGV4YW5k cmUgR2hpdGkKNC4gKioyMDIzLTEyOioqIERldmljZSB0cmVlIGJpbmRpbmdzIGNsYXJpZmllZCAo YTQ1MjgxNjEzMmQ2OSkgLSBtbXUtCiAgIHR5cGUgaW5kaWNhdGVzICoqbGFyZ2VzdCoqIHN1cHBv cnRlZCBtb2RlCjUuICoqMjAyNS0wNzoqKiAqKlRoaXMgY29tbWl0KiogLSBGRFQtYmFzZWQgbGlt aXRpbmcgdG8gcHJldmVudCBoYW5ncwoKVGhpcyBzaG93cyBhIGNsZWFyIHByb2dyZXNzaW9uIG9m IHNhZmV0eSBpbXByb3ZlbWVudHMgZm9yIFNBVFAgbW9kZQpzZWxlY3Rpb24sIHdpdGggdGhpcyBi ZWluZyB0aGUgbGF0ZXN0IGRlZmVuc2l2ZSBtZWFzdXJlLgoKKipSZXZpZXdlciBDcmVkaWJpbGl0 eToqKgotIFJldmlld2VkIGJ5IEFsZXhhbmRyZSBHaGl0aSAoQHJpdm9zaW5jLmNvbSkgLSBhdXRo b3Igb2YgdGhlIG9yaWdpbmFsCiAgY29tbWFuZC1saW5lIHN1cHBvcnQKLSBSZXZpZXdlZCBieSBO dXR0eSBMaXUgLSBSSVNDLVYgY29udHJpYnV0b3IKLSBNZXJnZWQgYnkgUGF1bCBXYWxtc2xleSAt IFJJU0MtViBtYWludGFpbmVyCgojIyMgRGV2aWNlIFRyZWUgQmluZGluZ3MgQ29udGV4dAoKUGVy IGNvbW1pdCBhNDUyODE2MTMyZDY5ICgyMDIzKSwgdGhlICJtbXUtdHlwZSIgcHJvcGVydHkgaW5k aWNhdGVzIHRoZQoqKmxhcmdlc3QqKiBNTVUgYWRkcmVzcyB0cmFuc2xhdGlvbiBtb2RlIHN1cHBv cnRlZDoKCmBgYHlhbWwKbW11LXR5cGU6CiAgZGVzY3JpcHRpb246CiAgICBJZGVudGlmaWVzIHRo ZSBsYXJnZXN0IE1NVSBhZGRyZXNzIHRyYW5zbGF0aW9uIG1vZGUgc3VwcG9ydGVkIGJ5CiAgICB0 aGlzIGhhcnQuIFRoZXNlIHZhbHVlcyBvcmlnaW5hdGUgZnJvbSB0aGUgUklTQy1WIFByaXZpbGVn ZWQKICAgIFNwZWNpZmljYXRpb24gZG9jdW1lbnQKYGBgCgpUaGlzIGNvbW1pdCBwcm9wZXJseSBp bnRlcnByZXRzIHRoaXMgcHJvcGVydHkgYXMgYW4gdXBwZXIgbGltaXQgZm9yIFNBVFAKbW9kZSBz ZWxlY3Rpb24uCgojIyMgUmlzayBBc3Nlc3NtZW50CgoqKlJlZ3Jlc3Npb24gUmlzazogVkVSWSBM T1cqKgoKMS4gKipDb25zZXJ2YXRpdmUgbG9naWM6KiogT25seSAqKnJlc3RyaWN0cyoqIFNBVFAg bW9kZSwgbmV2ZXIgZXhwYW5kcwogICBpdAoyLiAqKkZhbGxiYWNrIHNhZmU6KiogSWYgbW11LXR5 cGUgbm90IGZvdW5kLCByZXR1cm5zIDAgYW5kIGZhbGxzIGJhY2sgdG8KICAgZXhpc3RpbmcgcHJv YmluZwozLiAqKk5vIHN1YnNlcXVlbnQgZml4ZXM6KiogR2l0IGhpc3Rvcnkgc2hvd3Mgbm8gZml4 ZXMgZm9yIHRoZXNlIGNvbW1pdHMKICAgc2luY2UgSnVseSAyMDI1CjQuICoqU21hbGwgc2NvcGU6 KiogfjUwIGxpbmVzIHRvdGFsLCBjb25maW5lZCB0byBSSVNDLVYgTU1VCiAgIGluaXRpYWxpemF0 aW9uCjUuICoqV2VsbC10ZXN0ZWQgcGF0aDoqKiBVc2VzIGV4aXN0aW5nIEZEVCBwYXJzaW5nIHNp bWlsYXIgdG8gb3RoZXIKICAgZWFybHkgYm9vdCBjb2RlCgoqKlBvdGVudGlhbCBJc3N1ZXM6IE5P TkUgSURFTlRJRklFRCoqCgotIE5vIGJ1aWxkIGRlcGVuZGVuY2llcyBiZXlvbmQgc3RhbmRhcmQg a2VybmVsIGhlYWRlcnMKLSBObyBjb25maWctc3BlY2lmaWMgY29kZSBwYXRocwotIFdvcmtzIHdp dGggYm90aCBBQ1BJIGFuZCBEVCAoRFQgYWx3YXlzIHByZXNlbnQgdmlhIEVGSSBzdHViKQotIENv bXBhdGlibGUgd2l0aCBleGlzdGluZyAibm80bHZsIi8ibm81bHZsIiBjb21tYW5kIGxpbmUgb3B0 aW9ucwoKIyMjIEltcGFjdCBBc3Nlc3NtZW50CgoqKlVzZXIgSW1wYWN0OiBISUdIIGZvciBhZmZl Y3RlZCBoYXJkd2FyZSoqCgotIFVzZXJzIHdpdGggbm9uLWNvbXBsaWFudCBSSVNDLVYgaGFyZHdh cmUgZXhwZXJpZW5jZSAqKmNvbXBsZXRlIHN5c3RlbQogIGhhbmdzKiogd2l0aG91dCB0aGlzIGZp eAotIEFmZmVjdHMgZWFybHkgYm9vdCwgc28gbm8gd29ya2Fyb3VuZHMgcG9zc2libGUKLSBEZXZp Y2UgdHJlZSBwcm92aWRlcyBoYXJkd2FyZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCBjYXBh YmlsaXRpZXMKLSBLZXJuZWwgY2FuIG5vdyByZXNwZWN0IGhhcmR3YXJlIGxpbWl0YXRpb25zIHRv IGF2b2lkIGhhbmdzCgoqKlNjb3BlOioqCi0gQXJjaGl0ZWN0dXJlLXNwZWNpZmljOiBSSVNDLVYg b25seQotIENyaXRpY2FsIHBhdGg6IE1NVSBpbml0aWFsaXphdGlvbiBkdXJpbmcgZWFybHkgYm9v dAotIFVzZXItdmlzaWJsZTogUHJldmVudHMgYm9vdCBmYWlsdXJlcyBvbiBjZXJ0YWluIGhhcmR3 YXJlCgojIyMgQmFja3BvcnQgU3RhdHVzCgoqKkFscmVhZHkgU2VsZWN0ZWQgZm9yIFN0YWJsZToq KgoKVGhlIGNvbW1pdCBpbiB0aGUgcmVwb3NpdG9yeSBzaG93czoKYGBgClsgVXBzdHJlYW0gY29t bWl0IDE3ZTk1MjEwNDRjOWIzZWU4MzlmODYxZDFhYzM1YzViNWMyMGQxNmIgXQouLi4KU2lnbmVk LW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJuZWwub3JnPgpgYGAKClRoaXMgaW5kaWNh dGVzIHRoZSBjb21taXQgaGFzICoqYWxyZWFkeSBiZWVuIGlkZW50aWZpZWQgYW5kIGJhY2twb3J0 ZWQqKgp0byBzdGFibGUgdHJlZXMgYnkgdGhlIHN0YWJsZSBrZXJuZWwgbWFpbnRhaW5lcnMuCgoj IyMgU3RhYmxlIFRyZWUgQ3JpdGVyaWEgQ29tcGxpYW5jZQoK4pyFICoqRml4ZXMgaW1wb3J0YW50 IGJ1ZzoqKiBQcmV2ZW50cyBzeXN0ZW0gaGFuZ3MgKGNyaXRpY2FsIHNldmVyaXR5KQrinIUgKipT bWFsbCBhbmQgY29udGFpbmVkOioqIH41MCBsaW5lcywgMyBmaWxlcywgc2luZ2xlIHN1YnN5c3Rl bQrinIUgKipObyBhcmNoaXRlY3R1cmFsIGNoYW5nZXM6KiogRXh0ZW5kcyBleGlzdGluZyBtZWNo YW5pc20K4pyFICoqTWluaW1hbCByZWdyZXNzaW9uIHJpc2s6KiogRGVmZW5zaXZlLCB3ZWxsLXRl c3RlZCwgbm8ga25vd24gaXNzdWVzCuKchSAqKk9idmlvdXMgYW5kIGNvcnJlY3Q6KiogQ2xlYXIg bG9naWMsIHdlbGwtcmV2aWV3ZWQK4pyFICoqVXNlciBpbXBhY3Q6KiogRml4ZXMgcmVhbC13b3Js ZCBib290IGZhaWx1cmVzCgotLS0KCiMjIENvbmNsdXNpb24KCioqQkFDS1BPUlQgU1RBVFVTOiBZ RVMgLSBSRVFVSVJFRCoqCgpUaGlzIGNvbW1pdCBzaG91bGQgZGVmaW5pdGVseSBiZSBiYWNrcG9y dGVkIHRvIHN0YWJsZSBrZXJuZWwgdHJlZXMKYmVjYXVzZToKCjEuICoqQ3JpdGljYWwgYnVnIGZp eDoqKiBQcmV2ZW50cyBjb21wbGV0ZSBzeXN0ZW0gaGFuZ3Mgb24gYm9vdAoyLiAqKlNhZmV0eSBp bXByb3ZlbWVudDoqKiBEZWZlbnNpdmUgY29kZSB0aGF0IHJlc3BlY3RzIGhhcmR3YXJlCiAgIGxp bWl0YXRpb25zCjMuICoqU21hbGwgYW5kIHNhZmU6KiogTWluaW1hbCBjaGFuZ2VzLCBsb3cgcmVn cmVzc2lvbiByaXNrCjQuICoqV2VsbC1yZXZpZXdlZDoqKiBEb21haW4gZXhwZXJ0cyByZXZpZXdl ZCBhbmQgYXBwcm92ZWQKNS4gKipBbHJlYWR5IGJhY2twb3J0ZWQ6KiogU3RhYmxlIG1haW50YWlu ZXJzIGhhdmUgYWxyZWFkeSBzZWxlY3RlZCB0aGlzCjYuICoqRGVwZW5kZW5jaWVzIG1ldDoqKiBQ cmVyZXF1aXNpdGUgY29tbWl0IGFsc28gYmVpbmcgYmFja3BvcnRlZAo3LiAqKlN0YWJsZSBjcml0 ZXJpYToqKiBNZWV0cyBhbGwgc3RhYmxlIHRyZWUgcmVxdWlyZW1lbnRzCgpUaGUgY29tbWl0IGFk ZHJlc3NlcyBhIHJlYWwgaGFyZHdhcmUgY29tcGxpYW5jZSBpc3N1ZSB0aGF0IGNhdXNlcyBzZXZl cmUKdXNlciBpbXBhY3QgKHVuYm9vdGFibGUgc3lzdGVtcykgd2l0aCBhIG1pbmltYWwsIHNhZmUs IGFuZCB3ZWxsLXRlc3RlZApzb2x1dGlvbi4gSXQgcmVwcmVzZW50cyBiZXN0IHByYWN0aWNlcyBm b3IgZGVmZW5zaXZlIHByb2dyYW1taW5nIGluCmVhcmx5IGJvb3QgY29kZS4KCioqUmVxdWlyZWQg Zm9yIGJhY2twb3J0OioqIEJvdGggY29tbWl0cyBtdXN0IGJlIGFwcGxpZWQgdG9nZXRoZXI6CjEu IGYzMjQzYmVkMzljMjYgInJpc2N2OiBtbTogUmV0dXJuIGludGVuZGVkIFNBVFAgbW9kZSBmb3Ig bm9YbHZsCiAgIG9wdGlvbnMiCjIuIDE3ZTk1MjEwNDRjOWIgInJpc2N2OiBtbTogVXNlIG1tdS10 eXBlIGZyb20gRkRUIHRvIGxpbWl0IFNBVFAgbW9kZSIKCiBhcmNoL3Jpc2N2L2tlcm5lbC9waS9m ZHRfZWFybHkuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBhcmNoL3Jp c2N2L2tlcm5lbC9waS9waS5oICAgICAgICB8ICAxICsKIGFyY2gvcmlzY3YvbW0vaW5pdC5jICAg ICAgICAgICAgIHwgMTEgKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvcGkvZmR0 X2Vhcmx5LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9waS9mZHRfZWFybHkuYwppbmRleCA5YmRlZTJm YWZlNDdlLi5hMTJmZjgwOTBmMTkwIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9waS9m ZHRfZWFybHkuYworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9waS9mZHRfZWFybHkuYwpAQCAtMyw2 ICszLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGliZmR0 Lmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxhc20vY3NyLmg+CiAKICNp bmNsdWRlICJwaS5oIgogCkBAIC0xODMsMyArMTg0LDQyIEBAIGJvb2wgZmR0X2Vhcmx5X21hdGNo X2V4dGVuc2lvbl9pc2EoY29uc3Qgdm9pZCAqZmR0LCBjb25zdCBjaGFyICpleHRfbmFtZSkKIAog CXJldHVybiByZXQ7CiB9CisKKy8qKgorICogIHNldF9zYXRwX21vZGVfZnJvbV9mZHQgLSBkZXRl cm1pbmUgU0FUUCBtb2RlIGJhc2VkIG9uIHRoZSBNTVUgdHlwZSBpbiBmZHQKKyAqCisgKiBAZHRi X3BhOiBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBkZXZpY2UgdHJlZSBibG9iCisgKgorICogIFJl dHVybnMgdGhlIFNBVFAgbW9kZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBNTVUgdHlwZSBvZiB0aGUg Zmlyc3QgZW5hYmxlZCBDUFUsCisgKiAgMCBvdGhlcndpc2UKKyAqLwordTY0IHNldF9zYXRwX21v ZGVfZnJvbV9mZHQodWludHB0cl90IGR0Yl9wYSkKK3sKKwljb25zdCB2b2lkICpmZHQgPSAoY29u c3Qgdm9pZCAqKWR0Yl9wYTsKKwljb25zdCBjaGFyICptbXVfdHlwZTsKKwlpbnQgbm9kZSwgcGFy ZW50OworCisJcGFyZW50ID0gZmR0X3BhdGhfb2Zmc2V0KGZkdCwgIi9jcHVzIik7CisJaWYgKHBh cmVudCA8IDApCisJCXJldHVybiAwOworCisJZmR0X2Zvcl9lYWNoX3N1Ym5vZGUobm9kZSwgZmR0 LCBwYXJlbnQpIHsKKwkJaWYgKCFmZHRfbm9kZV9uYW1lX2VxKGZkdCwgbm9kZSwgImNwdSIpKQor CQkJY29udGludWU7CisKKwkJaWYgKCFmZHRfZGV2aWNlX2lzX2F2YWlsYWJsZShmZHQsIG5vZGUp KQorCQkJY29udGludWU7CisKKwkJbW11X3R5cGUgPSBmZHRfZ2V0cHJvcChmZHQsIG5vZGUsICJt bXUtdHlwZSIsIE5VTEwpOworCQlpZiAoIW1tdV90eXBlKQorCQkJYnJlYWs7CisKKwkJaWYgKCFz dHJjbXAobW11X3R5cGUsICJyaXNjdixzdjM5IikpCisJCQlyZXR1cm4gU0FUUF9NT0RFXzM5Owor CQllbHNlIGlmICghc3RyY21wKG1tdV90eXBlLCAicmlzY3Ysc3Y0OCIpKQorCQkJcmV0dXJuIFNB VFBfTU9ERV80ODsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2tlcm5lbC9waS9waS5oIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGkvcGkuaAppbmRl eCAyMTE0MWQ4NGZlYTYwLi4zZmVlMmNmZGRmN2NmIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tl cm5lbC9waS9waS5oCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3BpL3BpLmgKQEAgLTE0LDYgKzE0 LDcgQEAgdTY0IGdldF9rYXNscl9zZWVkKHVpbnRwdHJfdCBkdGJfcGEpOwogdTY0IGdldF9rYXNs cl9zZWVkX3prcihjb25zdCB1aW50cHRyX3QgZHRiX3BhKTsKIGJvb2wgc2V0X25va2FzbHJfZnJv bV9jbWRsaW5lKHVpbnRwdHJfdCBkdGJfcGEpOwogdTY0IHNldF9zYXRwX21vZGVfZnJvbV9jbWRs aW5lKHVpbnRwdHJfdCBkdGJfcGEpOwordTY0IHNldF9zYXRwX21vZGVfZnJvbV9mZHQodWludHB0 cl90IGR0Yl9wYSk7CiAKIGJvb2wgZmR0X2Vhcmx5X21hdGNoX2V4dGVuc2lvbl9pc2EoY29uc3Qg dm9pZCAqZmR0LCBjb25zdCBjaGFyICpleHRfbmFtZSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlz Y3YvbW0vaW5pdC5jIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKaW5kZXggMDU0MjY1YjNmMjY4MC4u ODVjYjcwYjEwYzA3MSAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9tbS9pbml0LmMKKysrIGIvYXJj aC9yaXNjdi9tbS9pbml0LmMKQEAgLTgxNiw2ICs4MTYsNyBAQCBzdGF0aWMgX19tZW1pbml0IHBn cHJvdF90IHBncHJvdF9mcm9tX3ZhKHVpbnRwdHJfdCB2YSkKIAogI2lmIGRlZmluZWQoQ09ORklH XzY0QklUKSAmJiAhZGVmaW5lZChDT05GSUdfWElQX0tFUk5FTCkKIHU2NCBfX3BpX3NldF9zYXRw X21vZGVfZnJvbV9jbWRsaW5lKHVpbnRwdHJfdCBkdGJfcGEpOwordTY0IF9fcGlfc2V0X3NhdHBf bW9kZV9mcm9tX2ZkdCh1aW50cHRyX3QgZHRiX3BhKTsKIAogc3RhdGljIHZvaWQgX19pbml0IGRp c2FibGVfcGd0YWJsZV9sNSh2b2lkKQogewpAQCAtODU1LDE4ICs4NTYsMjIgQEAgc3RhdGljIHZv aWQgX19pbml0IHNldF9tbWFwX3JuZF9iaXRzX21heCh2b2lkKQogICogdW5kZXJseWluZyBoYXJk d2FyZTogZXN0YWJsaXNoIDE6MSBtYXBwaW5nIGluIDQtbGV2ZWwgcGFnZSB0YWJsZSBtb2RlCiAg KiB0aGVuIHJlYWQgU0FUUCB0byBzZWUgaWYgdGhlIGNvbmZpZ3VyYXRpb24gd2FzIHRha2VuIGlu dG8gYWNjb3VudAogICogbWVhbmluZyBzdjQ4IGlzIHN1cHBvcnRlZC4KKyAqIFRoZSBtYXhpbXVt IFNBVFAgbW9kZSBpcyBsaW1pdGVkIGJ5IGJvdGggdGhlIGNvbW1hbmQgbGluZSBhbmQgdGhlICJt bXUtdHlwZSIKKyAqIHByb3BlcnR5IGluIHRoZSBkZXZpY2UgdHJlZSwgc2luY2Ugc29tZSBwbGF0 Zm9ybXMgbWF5IGhhbmcgaWYgYW4gdW5zdXBwb3J0ZWQKKyAqIFNBVFAgbW9kZSBpcyBhdHRlbXB0 ZWQuCiAgKi8KIHN0YXRpYyBfX2luaXQgdm9pZCBzZXRfc2F0cF9tb2RlKHVpbnRwdHJfdCBkdGJf cGEpCiB7CiAJdTY0IGlkZW50aXR5X3NhdHAsIGh3X3NhdHA7CiAJdWludHB0cl90IHNldF9zYXRw X21vZGVfcG1kID0gKCh1bnNpZ25lZCBsb25nKXNldF9zYXRwX21vZGUpICYgUE1EX01BU0s7Ci0J dTY0IHNhdHBfbW9kZV9jbWRsaW5lID0gX19waV9zZXRfc2F0cF9tb2RlX2Zyb21fY21kbGluZShk dGJfcGEpOworCXU2NCBzYXRwX21vZGVfbGltaXQgPSBtaW5fbm90X3plcm8oX19waV9zZXRfc2F0 cF9tb2RlX2Zyb21fY21kbGluZShkdGJfcGEpLAorCQkJCQkgICBfX3BpX3NldF9zYXRwX21vZGVf ZnJvbV9mZHQoZHRiX3BhKSk7CiAKIAlrZXJuZWxfbWFwLnBhZ2Vfb2Zmc2V0ID0gUEFHRV9PRkZT RVRfTDU7CiAKLQlpZiAoc2F0cF9tb2RlX2NtZGxpbmUgPT0gU0FUUF9NT0RFXzQ4KSB7CisJaWYg KHNhdHBfbW9kZV9saW1pdCA9PSBTQVRQX01PREVfNDgpIHsKIAkJZGlzYWJsZV9wZ3RhYmxlX2w1 KCk7Ci0JfSBlbHNlIGlmIChzYXRwX21vZGVfY21kbGluZSA9PSBTQVRQX01PREVfMzkpIHsKKwl9 IGVsc2UgaWYgKHNhdHBfbW9kZV9saW1pdCA9PSBTQVRQX01PREVfMzkpIHsKIAkJZGlzYWJsZV9w Z3RhYmxlX2w1KCk7CiAJCWRpc2FibGVfcGd0YWJsZV9sNCgpOwogCQlyZXR1cm47Ci0tIAoyLjUx LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==