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 X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4C4EC433E6 for ; Thu, 21 Jan 2021 13:26:23 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7ED0820691 for ; Thu, 21 Jan 2021 13:26:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7ED0820691 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ubuntu.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=containers-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 290AB21505; Thu, 21 Jan 2021 13:26:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HSgSmIIaRU1V; Thu, 21 Jan 2021 13:26:21 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by silver.osuosl.org (Postfix) with ESMTP id A3E5920380; Thu, 21 Jan 2021 13:26:21 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 914C9C088B; Thu, 21 Jan 2021 13:26:21 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id D8E60C013A for ; Thu, 21 Jan 2021 13:26:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id CF7F085C56 for ; Thu, 21 Jan 2021 13:26:20 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hwKzwZoU-zvw for ; Thu, 21 Jan 2021 13:26:19 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by hemlock.osuosl.org (Postfix) with ESMTPS id 17C868591D for ; Thu, 21 Jan 2021 13:26:19 +0000 (UTC) Received: from ip5f5af0a0.dynamic.kabel-deutschland.de ([95.90.240.160] helo=wittgenstein.fritz.box) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1l2ZvT-0005g7-6J; Thu, 21 Jan 2021 13:23:03 +0000 From: Christian Brauner To: Alexander Viro , Christoph Hellwig , linux-fsdevel@vger.kernel.org Subject: [PATCH v6 38/40] ext4: support idmapped mounts Date: Thu, 21 Jan 2021 14:19:57 +0100 Message-Id: <20210121131959.646623-39-christian.brauner@ubuntu.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210121131959.646623-1-christian.brauner@ubuntu.com> References: <20210121131959.646623-1-christian.brauner@ubuntu.com> MIME-Version: 1.0 X-Patch-Hashes: v=1; h=sha256; i=MJ7IH6zKWgQgezyytkJXRKJVy84sQxgK/KhvUxTmNLU=; m=0mqYr+i4xLcHJiWSVb7MKqPI9iiJtdXR9W3Ov8khOaE=; p=G9UvARTRtNwr0hmtrt6LTaOv3lerwgw3xugX0898sTo=; g=84a355fbcdbd9446d25aabb0b95d52f98f02f77d X-Patch-Sig: m=pgp; i=christian.brauner@ubuntu.com; s=0x0x91C61BC06578DCA2; b=iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCYAl9pwAKCRCRxhvAZXjcog7ZAP4607C QwcoA3NIiqlA1Aax+BxgQPLW7QV74Ze0A80BQMAEA9E/OZsolFFhSVBuid3h/Zf5JjanenLH18YtC iSldfQw= Cc: Lennart Poettering , Mimi Zohar , James Bottomley , Andreas Dilger , containers@lists.linux-foundation.org, Tycho Andersen , Paul Moore , Jonathan Corbet , smbarber@chromium.org, linux-ext4@vger.kernel.org, Mrunal Patel , Kees Cook , Arnd Bergmann , selinux@vger.kernel.org, Josh Triplett , Seth Forshee , Aleksa Sarai , Andy Lutomirski , OGAWA Hirofumi , Geoffrey Thomas , David Howells , John Johansen , Theodore Tso , Dmitry Kasatkin , Stephen Smalley , linux-xfs@vger.kernel.org, linux-security-module@vger.kernel.org, "Eric W. Biederman" , linux-api@vger.kernel.org, Casey Schaufler , Alban Crequy , linux-integrity@vger.kernel.org, Linus Torvalds , Todd Kjos X-BeenThere: containers@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux Containers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: containers-bounces@lists.linux-foundation.org Sender: "Containers" RW5hYmxlIGlkbWFwcGVkIG1vdW50cyBmb3IgZXh0NC4gQWxsIGRlZGljYXRlZCBoZWxwZXJzIHdl IG5lZWQgZm9yIHRoaXMKZXhpc3QuIFNvIHRoaXMgYmFzaWNhbGx5IGp1c3QgbWVhbnMgd2UncmUg cGFzc2luZyBkb3duIHRoZQp1c2VyX25hbWVzcGFjZSBhcmd1bWVudCBmcm9tIHRoZSBWRlMgbWV0 aG9kcyB0byB0aGUgcmVsZXZhbnQgaGVscGVycy4KCkxldCdzIGNyZWF0ZSBzaW1wbGUgZXhhbXBs ZSB3aGVyZSB3ZSBpZG1hcCBhbiBleHQ0IGZpbGVzeXN0ZW06Cgogcm9vdEBmMi12bTp+IyB0cnVu Y2F0ZSAtcyA1RyBleHQ0LmltZwoKIHJvb3RAZjItdm06fiMgbWtmcy5leHQ0IC4vZXh0NC5pbWcK IG1rZTJmcyAxLjQ1LjUgKDA3LUphbi0yMDIwKQogRGlzY2FyZGluZyBkZXZpY2UgYmxvY2tzOiBk b25lCiBDcmVhdGluZyBmaWxlc3lzdGVtIHdpdGggMTMxMDcyMCA0ayBibG9ja3MgYW5kIDMyNzY4 MCBpbm9kZXMKIEZpbGVzeXN0ZW0gVVVJRDogM2ZkOTE3OTQtYzZjYS00YjBmLTk5NjQtMjg5YTAw MDkxOWNmCiBTdXBlcmJsb2NrIGJhY2t1cHMgc3RvcmVkIG9uIGJsb2NrczoKICAgICAgICAgMzI3 NjgsIDk4MzA0LCAxNjM4NDAsIDIyOTM3NiwgMjk0OTEyLCA4MTkyMDAsIDg4NDczNgoKIEFsbG9j YXRpbmcgZ3JvdXAgdGFibGVzOiBkb25lCiBXcml0aW5nIGlub2RlIHRhYmxlczogZG9uZQogQ3Jl YXRpbmcgam91cm5hbCAoMTYzODQgYmxvY2tzKTogZG9uZQogV3JpdGluZyBzdXBlcmJsb2NrcyBh bmQgZmlsZXN5c3RlbSBhY2NvdW50aW5nIGluZm9ybWF0aW9uOiBkb25lCgogcm9vdEBmMi12bTp+ IyBsb3NldHVwIC1mIC0tc2hvdyAuL2V4dDQuaW1nCiAvZGV2L2xvb3AwCgogcm9vdEBmMi12bTp+ IyBtb3VudCAvZGV2L2xvb3AwIC9tbnQKCiByb290QGYyLXZtOn4jIGxzIC1hbCAvbW50LwogdG90 YWwgMjQKIGRyd3hyLXhyLXggIDMgcm9vdCByb290ICA0MDk2IE9jdCAyOCAxMzozNCAuCiBkcnd4 ci14ci14IDMwIHJvb3Qgcm9vdCAgNDA5NiBPY3QgMjggMTM6MjIgLi4KIGRyd3gtLS0tLS0gIDIg cm9vdCByb290IDE2Mzg0IE9jdCAyOCAxMzozNCBsb3N0K2ZvdW5kCgogIyBMZXQncyBjcmVhdGUg YW4gaWRtYXBwZWQgbW91bnQgYXQgL2lkbWFwcGVkMSB3aGVyZSB3ZSBtYXAgdWlkIGFuZCBnaWQK ICMgMCB0byB1aWQgYW5kIGdpZCAxMDAwCiByb290QGYyLXZtOi8jIC4vbW91bnQtaWRtYXBwZWQg LS1tYXAtbW91bnQgYjowOjEwMDA6MSAvbW50LyAvaWRtYXBwZWQxLwoKIHJvb3RAZjItdm06LyMg bHMgLWFsIC9pZG1hcHBlZDEvCiB0b3RhbCAyNAogZHJ3eHIteHIteCAgMyB1YnVudHUgdWJ1bnR1 ICA0MDk2IE9jdCAyOCAxMzozNCAuCiBkcnd4ci14ci14IDMwIHJvb3QgICByb290ICAgIDQwOTYg T2N0IDI4IDEzOjIyIC4uCiBkcnd4LS0tLS0tICAyIHVidW50dSB1YnVudHUgMTYzODQgT2N0IDI4 IDEzOjM0IGxvc3QrZm91bmQKCiAjIExldCdzIGNyZWF0ZSBhbiBpZG1hcHBlZCBtb3VudCBhdCAv aWRtYXBwZWQyIHdoZXJlIHdlIG1hcCB1aWQgYW5kIGdpZAogIyAwIHRvIHVpZCBhbmQgZ2lkIDIw MDAKIHJvb3RAZjItdm06LyMgLi9tb3VudC1pZG1hcHBlZCAtLW1hcC1tb3VudCBiOjA6MjAwMDox IC9tbnQvIC9pZG1hcHBlZDIvCgogcm9vdEBmMi12bTovIyBscyAtYWwgL2lkbWFwcGVkMi8KIHRv dGFsIDI0CiBkcnd4ci14ci14ICAzIDIwMDAgMjAwMCAgNDA5NiBPY3QgMjggMTM6MzQgLgogZHJ3 eHIteHIteCAzMSByb290IHJvb3QgIDQwOTYgT2N0IDI4IDEzOjM5IC4uCiBkcnd4LS0tLS0tICAy IDIwMDAgMjAwMCAxNjM4NCBPY3QgMjggMTM6MzQgbG9zdCtmb3VuZAoKTGV0J3MgY3JlYXRlIGFu b3RoZXIgZXhhbXBsZSB3aGVyZSB3ZSBpZG1hcCB0aGUgcm9vdGZzIGZpbGVzeXN0ZW0Kd2l0aG91 dCBhIG1hcHBpbmcgZm9yIHVpZCAwIGFuZCBnaWQgMDoKCiAjIENyZWF0ZSBhbiBpZG1hcHBlZCBt b3VudCBvZiBmb3IgYSBmdWxsIFBPU0lYIHJhbmdlIG9mIHJvb3RmcyB1bmRlcgogIyAvbW50IGJ1 dCB3aXRob3V0IGEgbWFwcGluZyBmb3IgdWlkIDAgdG8gcmVkdWNlIGF0dGFjayBzdXJmYWNlCgog cm9vdEBmMi12bTovIyAuL21vdW50LWlkbWFwcGVkIC0tbWFwLW1vdW50IGI6MToxOjY1NTM2IC8g L21udC8KCiAjIFNpbmNlIHdlIGRvbid0IGhhdmUgYSBtYXBwaW5nIGZvciB1aWQgYW5kIGdpZCAw IGFsbCBmaWxlcyBvd25lZCBieQogIyB1aWQgYW5kIGdpZCAwIHNob3VsZCBzaG93IHVwIGFzIHVp ZCBhbmQgZ2lkIDY1NTM0Ogogcm9vdEBmMi12bTovIyBscyAtYWwgL21udC8KIHRvdGFsIDY2NAog ZHJ3eHIteHIteCAzMSBub2JvZHkgbm9ncm91cCAgIDQwOTYgT2N0IDI4IDEzOjM5IC4KIGRyd3hy LXhyLXggMzEgcm9vdCAgIHJvb3QgICAgICA0MDk2IE9jdCAyOCAxMzozOSAuLgogbHJ3eHJ3eHJ3 eCAgMSBub2JvZHkgbm9ncm91cCAgICAgIDcgQXVnIDI1IDA3OjQ0IGJpbiAtPiB1c3IvYmluCiBk cnd4ci14ci14ICA0IG5vYm9keSBub2dyb3VwICAgNDA5NiBPY3QgMjggMTM6MTcgYm9vdAogZHJ3 eHIteHIteCAgMiBub2JvZHkgbm9ncm91cCAgIDQwOTYgQXVnIDI1IDA3OjQ4IGRldgogZHJ3eHIt eHIteCA4MSBub2JvZHkgbm9ncm91cCAgIDQwOTYgT2N0IDI4IDA0OjAwIGV0YwogZHJ3eHIteHIt eCAgNCBub2JvZHkgbm9ncm91cCAgIDQwOTYgT2N0IDI4IDA0OjAwIGhvbWUKIGxyd3hyd3hyd3gg IDEgbm9ib2R5IG5vZ3JvdXAgICAgICA3IEF1ZyAyNSAwNzo0NCBsaWIgLT4gdXNyL2xpYgogbHJ3 eHJ3eHJ3eCAgMSBub2JvZHkgbm9ncm91cCAgICAgIDkgQXVnIDI1IDA3OjQ0IGxpYjMyIC0+IHVz ci9saWIzMgogbHJ3eHJ3eHJ3eCAgMSBub2JvZHkgbm9ncm91cCAgICAgIDkgQXVnIDI1IDA3OjQ0 IGxpYjY0IC0+IHVzci9saWI2NAogbHJ3eHJ3eHJ3eCAgMSBub2JvZHkgbm9ncm91cCAgICAgMTAg QXVnIDI1IDA3OjQ0IGxpYngzMiAtPiB1c3IvbGlieDMyCiBkcnd4LS0tLS0tICAyIG5vYm9keSBu b2dyb3VwICAxNjM4NCBBdWcgMjUgMDc6NDcgbG9zdCtmb3VuZAogZHJ3eHIteHIteCAgMiBub2Jv ZHkgbm9ncm91cCAgIDQwOTYgQXVnIDI1IDA3OjQ0IG1lZGlhCiBkcnd4ci14ci14IDMxIG5vYm9k eSBub2dyb3VwICAgNDA5NiBPY3QgMjggMTM6MzkgbW50CiBkcnd4ci14ci14ICAyIG5vYm9keSBu b2dyb3VwICAgNDA5NiBBdWcgMjUgMDc6NDQgb3B0CiBkcnd4ci14ci14ICAyIG5vYm9keSBub2dy b3VwICAgNDA5NiBBcHIgMTUgIDIwMjAgcHJvYwogZHJ3eC0teC0teCAgNiBub2JvZHkgbm9ncm91 cCAgIDQwOTYgT2N0IDI4IDEzOjM0IHJvb3QKIGRyd3hyLXhyLXggIDIgbm9ib2R5IG5vZ3JvdXAg ICA0MDk2IEF1ZyAyNSAwNzo0NiBydW4KIGxyd3hyd3hyd3ggIDEgbm9ib2R5IG5vZ3JvdXAgICAg ICA4IEF1ZyAyNSAwNzo0NCBzYmluIC0+IHVzci9zYmluCiBkcnd4ci14ci14ICAyIG5vYm9keSBu b2dyb3VwICAgNDA5NiBBdWcgMjUgMDc6NDQgc3J2CiBkcnd4ci14ci14ICAyIG5vYm9keSBub2dy b3VwICAgNDA5NiBBcHIgMTUgIDIwMjAgc3lzCiBkcnd4cnd4cnd0IDEwIG5vYm9keSBub2dyb3Vw ICAgNDA5NiBPY3QgMjggMTM6MTkgdG1wCiBkcnd4ci14ci14IDE0IG5vYm9keSBub2dyb3VwICAg NDA5NiBPY3QgMjAgMTM6MDAgdXNyCiBkcnd4ci14ci14IDEyIG5vYm9keSBub2dyb3VwICAgNDA5 NiBBdWcgMjUgMDc6NDUgdmFyCgogIyBTaW5jZSB3ZSBkbyBoYXZlIGEgbWFwcGluZyBmb3IgdWlk IGFuZCBnaWQgMTAwMCBhbGwgZmlsZXMgb3duZWQgYnkKICMgdWlkIGFuZCBnaWQgMTAwMCBzaG91 bGQgc2ltcGx5IHNob3cgdXAgYXMgdWlkIGFuZCBnaWQgMTAwMDoKIHJvb3RAZjItdm06LyMgbHMg LWFsIC9tbnQvaG9tZS91YnVudHUvCiB0b3RhbCA0MAogZHJ3eHIteHIteCAzIHVidW50dSB1YnVu dHUgIDQwOTYgT2N0IDI4IDAwOjQzIC4KIGRyd3hyLXhyLXggNCBub2JvZHkgbm9ncm91cCA0MDk2 IE9jdCAyOCAwNDowMCAuLgogLXJ3LS0tLS0tLSAxIHVidW50dSB1YnVudHUgIDI5MzYgT2N0IDI4 IDEyOjI2IC5iYXNoX2hpc3RvcnkKIC1ydy1yLS1yLS0gMSB1YnVudHUgdWJ1bnR1ICAgMjIwIEZl YiAyNSAgMjAyMCAuYmFzaF9sb2dvdXQKIC1ydy1yLS1yLS0gMSB1YnVudHUgdWJ1bnR1ICAzNzcx IEZlYiAyNSAgMjAyMCAuYmFzaHJjCiAtcnctci0tci0tIDEgdWJ1bnR1IHVidW50dSAgIDgwNyBG ZWIgMjUgIDIwMjAgLnByb2ZpbGUKIC1ydy1yLS1yLS0gMSB1YnVudHUgdWJ1bnR1ICAgICAwIE9j dCAxNiAxNjoxMSAuc3Vkb19hc19hZG1pbl9zdWNjZXNzZnVsCiAtcnctLS0tLS0tIDEgdWJ1bnR1 IHVidW50dSAgMTE0NCBPY3QgMjggMDA6NDMgLnZpbWluZm8KCkxpbms6IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL3IvMjAyMTAxMTIyMjAxMjQuODM3OTYwLTM3LWNocmlzdGlhbi5icmF1bmVyQHVi dW50dS5jb20KQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgpDYzogRGF2aWQgSG93 ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4KQ2M6IEFsIFZpcm8gPHZpcm9AemVuaXYubGludXgu b3JnLnVrPgpDYzogbGludXgtZXh0NEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWZzZGV2ZWxA dmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBCcmF1bmVyIDxjaHJpc3Rp YW4uYnJhdW5lckB1YnVudHUuY29tPgotLS0KLyogdjIgKi8KdW5jaGFuZ2VkCgovKiB2MyAqLwp1 bmNoYW5nZWQKCi8qIHY0ICovCi0gTWF1cmljaW8gVsOhc3F1ZXogQmVybmFsIDxtYXVyaWNpb0Br aW52b2xrLmlvPjoKICAtIEZpeCBzcGVsbGluZyBtaXN0YWtlIGluIGV4dDQncyBuZXcgaWRtYXBw ZWQgbW91bnQgY29uZmlnIG9wdGlvbi4KCi0gQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+ OgogIC0gRHJvcCB0aGUgY29uZmlnIG9wdGlvbi4gSWYgZXZlciB3YW50IGFuIGFkbWluaXN0cmF0 b3IgdG8gZGlzYWJsZSB0aGlzCiAgICBmZWF0dXJlIHdlIGNhbiBzaW1wbHkgaW50cm9kdWNlIGEg c3lzY3RsLgoKLSBTZXJnZSBIYWxseW4gPHNlcmdlQGhhbGx5bi5jb20+OgogIC0gVXNlICJtbnRf dXNlcm5zIiB0byByZWZlciB0byBhIHZmc21vdW50J3MgdXNlcm5zIGV2ZXJ5d2hlcmUgdG8gbWFr ZQogICAgdGVybWlub2xvZ3kgY29uc2lzdGVudC4KCi8qIHY1ICovCmJhc2UtY29tbWl0OiA3YzUz ZjZiNjcxZjRhYmE3MGZmMTVlMWIwNTE0OGIxMGQ1OGMyODM3CgotIENocmlzdG9waCBIZWxsd2ln IDxoY2hAbHN0LmRlPjoKICAtIFVzZSBuZXcgZmlsZV9tbnRfdXNlcl9ucygpIGhlbHBlci4KCi0g Q2hyaXN0aWFuIEJyYXVuZXIgPGNocmlzdGlhbi5icmF1bmVyQHVidW50dS5jb20+OgogIC0gSW1w cm92ZSBjb21taXQgbWVzc2FnZS4KCi8qIHY2ICovCnVuY2hhbmdlZApiYXNlLWNvbW1pdDogMTlj MzI5ZjY4MDg5OTViMTQyYjM5NjYzMDFmMjE3YzgzMWU3Y2YzMQotLS0KIGZzL2V4dDQvYWNsLmMg ICAgfCAgMyArLS0KIGZzL2V4dDQvZXh0NC5oICAgfCAxMyArKysrKysrLS0tLS0tCiBmcy9leHQ0 L2lhbGxvYy5jIHwgIDcgKysrKy0tLQogZnMvZXh0NC9pbm9kZS5jICB8IDExICsrKysrKy0tLS0t CiBmcy9leHQ0L2lvY3RsLmMgIHwgMTkgKysrKysrKysrKystLS0tLS0tLQogZnMvZXh0NC9uYW1l aS5jICB8IDMwICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZnMvZXh0NC9zdXBlci5j ICB8ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvYWNsLmMgYi9mcy9leHQ0L2FjbC5jCmluZGV4IDA1 OTQzNGUwZjM2Yy4uYzVlYWZmY2NlY2MzIDEwMDY0NAotLS0gYS9mcy9leHQ0L2FjbC5jCisrKyBi L2ZzL2V4dDQvYWNsLmMKQEAgLTI0Niw4ICsyNDYsNyBAQCBleHQ0X3NldF9hY2woc3RydWN0IHVz ZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCWV4dDRfZmNf c3RhcnRfdXBkYXRlKGlub2RlKTsKIAogCWlmICgodHlwZSA9PSBBQ0xfVFlQRV9BQ0NFU1MpICYm IGFjbCkgewotCQllcnJvciA9IHBvc2l4X2FjbF91cGRhdGVfbW9kZSgmaW5pdF91c2VyX25zLCBp bm9kZSwgJm1vZGUsCi0JCQkJCSAgICAgICZhY2wpOworCQllcnJvciA9IHBvc2l4X2FjbF91cGRh dGVfbW9kZShtbnRfdXNlcm5zLCBpbm9kZSwgJm1vZGUsICZhY2wpOwogCQlpZiAoZXJyb3IpCiAJ CQlnb3RvIG91dF9zdG9wOwogCQlpZiAobW9kZSAhPSBpbm9kZS0+aV9tb2RlKQpkaWZmIC0tZ2l0 IGEvZnMvZXh0NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaAppbmRleCAzYzc1MGY1ZThlYmQuLjY0 NGZkNjkxODVkMyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0LmgKKysrIGIvZnMvZXh0NC9leHQ0 LmgKQEAgLTI3NTUsMTggKzI3NTUsMTkgQEAgZXh0ZXJuIGludCBleHQ0ZnNfZGlyaGFzaChjb25z dCBzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwKIAogLyogaWFs bG9jLmMgKi8KIGV4dGVybiBpbnQgZXh0NF9tYXJrX2lub2RlX3VzZWQoc3RydWN0IHN1cGVyX2Js b2NrICpzYiwgaW50IGlubyk7Ci1leHRlcm4gc3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2Rl KGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLCB1bW9kZV90LAorZXh0ZXJuIHN0cnVjdCBpbm9k ZSAqX19leHQ0X25ld19pbm9kZShzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKiwgaGFuZGxlX3QgKiwK KwkJCQkgICAgICBzdHJ1Y3QgaW5vZGUgKiwgdW1vZGVfdCwKIAkJCQkgICAgICBjb25zdCBzdHJ1 Y3QgcXN0ciAqcXN0ciwgX191MzIgZ29hbCwKIAkJCQkgICAgICB1aWRfdCAqb3duZXIsIF9fdTMy IGlfZmxhZ3MsCiAJCQkJICAgICAgaW50IGhhbmRsZV90eXBlLCB1bnNpZ25lZCBpbnQgbGluZV9u bywKIAkJCQkgICAgICBpbnQgbmJsb2Nrcyk7CiAKLSNkZWZpbmUgZXh0NF9uZXdfaW5vZGUoaGFu ZGxlLCBkaXIsIG1vZGUsIHFzdHIsIGdvYWwsIG93bmVyLCBpX2ZsYWdzKSBcCi0JX19leHQ0X25l d19pbm9kZSgoaGFuZGxlKSwgKGRpciksIChtb2RlKSwgKHFzdHIpLCAoZ29hbCksIChvd25lciks IFwKLQkJCSBpX2ZsYWdzLCAwLCAwLCAwKQotI2RlZmluZSBleHQ0X25ld19pbm9kZV9zdGFydF9o YW5kbGUoZGlyLCBtb2RlLCBxc3RyLCBnb2FsLCBvd25lciwgXAorI2RlZmluZSBleHQ0X25ld19p bm9kZShoYW5kbGUsIGRpciwgbW9kZSwgcXN0ciwgZ29hbCwgb3duZXIsIGlfZmxhZ3MpICAgICAg ICAgIFwKKwlfX2V4dDRfbmV3X2lub2RlKCZpbml0X3VzZXJfbnMsIChoYW5kbGUpLCAoZGlyKSwg KG1vZGUpLCAocXN0ciksICAgICAgIFwKKwkJCSAoZ29hbCksIChvd25lciksIGlfZmxhZ3MsIDAs IDAsIDApCisjZGVmaW5lIGV4dDRfbmV3X2lub2RlX3N0YXJ0X2hhbmRsZShtbnRfdXNlcm5zLCBk aXIsIG1vZGUsIHFzdHIsIGdvYWwsIG93bmVyLCBcCiAJCQkJICAgIHR5cGUsIG5ibG9ja3MpCQkg ICAgXAotCV9fZXh0NF9uZXdfaW5vZGUoTlVMTCwgKGRpciksIChtb2RlKSwgKHFzdHIpLCAoZ29h bCksIChvd25lciksIFwKKwlfX2V4dDRfbmV3X2lub2RlKChtbnRfdXNlcm5zKSwgTlVMTCwgKGRp ciksIChtb2RlKSwgKHFzdHIpLCAoZ29hbCksIChvd25lciksIFwKIAkJCSAwLCAodHlwZSksIF9f TElORV9fLCAobmJsb2NrcykpCiAKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pYWxsb2MuYyBiL2Zz L2V4dDQvaWFsbG9jLmMKaW5kZXggMDBjMWVjNmVlZTE2Li5iZjkwMjg5NTBhNTEgMTAwNjQ0Ci0t LSBhL2ZzL2V4dDQvaWFsbG9jLmMKKysrIGIvZnMvZXh0NC9pYWxsb2MuYwpAQCAtOTE5LDcgKzkx OSw4IEBAIHN0YXRpYyBpbnQgZXh0NF94YXR0cl9jcmVkaXRzX2Zvcl9uZXdfaW5vZGUoc3RydWN0 IGlub2RlICpkaXIsIG1vZGVfdCBtb2RlLAogICogRm9yIG90aGVyIGlub2Rlcywgc2VhcmNoIGZv cndhcmQgZnJvbSB0aGUgcGFyZW50IGRpcmVjdG9yeSdzIGJsb2NrCiAgKiBncm91cCB0byBmaW5k IGEgZnJlZSBpbm9kZS4KICAqLwotc3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2RlKGhhbmRs ZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLAorc3RydWN0IGlub2RlICpfX2V4dDRfbmV3 X2lub2RlKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50X3VzZXJucywKKwkJCSAgICAgICBoYW5k bGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmRpciwKIAkJCSAgICAgICB1bW9kZV90IG1vZGUs IGNvbnN0IHN0cnVjdCBxc3RyICpxc3RyLAogCQkJICAgICAgIF9fdTMyIGdvYWwsIHVpZF90ICpv d25lciwgX191MzIgaV9mbGFncywKIAkJCSAgICAgICBpbnQgaGFuZGxlX3R5cGUsIHVuc2lnbmVk IGludCBsaW5lX25vLApAQCAtOTY5LDEwICs5NzAsMTAgQEAgc3RydWN0IGlub2RlICpfX2V4dDRf bmV3X2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLAogCQlpX2dpZF93 cml0ZShpbm9kZSwgb3duZXJbMV0pOwogCX0gZWxzZSBpZiAodGVzdF9vcHQoc2IsIEdSUElEKSkg ewogCQlpbm9kZS0+aV9tb2RlID0gbW9kZTsKLQkJaW5vZGUtPmlfdWlkID0gY3VycmVudF9mc3Vp ZCgpOworCQlpbm9kZS0+aV91aWQgPSBmc3VpZF9pbnRvX21udChtbnRfdXNlcm5zKTsKIAkJaW5v ZGUtPmlfZ2lkID0gZGlyLT5pX2dpZDsKIAl9IGVsc2UKLQkJaW5vZGVfaW5pdF9vd25lcigmaW5p dF91c2VyX25zLCBpbm9kZSwgZGlyLCBtb2RlKTsKKwkJaW5vZGVfaW5pdF9vd25lcihtbnRfdXNl cm5zLCBpbm9kZSwgZGlyLCBtb2RlKTsKIAogCWlmIChleHQ0X2hhc19mZWF0dXJlX3Byb2plY3Qo c2IpICYmCiAJICAgIGV4dDRfdGVzdF9pbm9kZV9mbGFnKGRpciwgRVhUNF9JTk9ERV9QUk9KSU5I RVJJVCkpCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMKaW5k ZXggY2U0NTUzNTMzNmZhLi44ZmJmODViMzU0N2UgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5vZGUu YworKysgYi9mcy9leHQ0L2lub2RlLmMKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwogCiAjaW5jbHVk ZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4 L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdodWlkLmg+CiAjaW5jbHVkZSA8bGludXgvcGFn ZW1hcC5oPgpAQCAtNTMzOCw3ICs1MzM5LDcgQEAgaW50IGV4dDRfc2V0YXR0cihzdHJ1Y3QgdXNl cl9uYW1lc3BhY2UgKm1udF91c2VybnMsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAkJCQkgIEFU VFJfR0lEIHwgQVRUUl9USU1FU19TRVQpKSkpCiAJCXJldHVybiAtRVBFUk07CiAKLQllcnJvciA9 IHNldGF0dHJfcHJlcGFyZSgmaW5pdF91c2VyX25zLCBkZW50cnksIGF0dHIpOworCWVycm9yID0g c2V0YXR0cl9wcmVwYXJlKG1udF91c2VybnMsIGRlbnRyeSwgYXR0cik7CiAJaWYgKGVycm9yKQog CQlyZXR1cm4gZXJyb3I7CiAKQEAgLTU1MTMsNyArNTUxNCw3IEBAIGludCBleHQ0X3NldGF0dHIo c3RydWN0IHVzZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnks CiAJfQogCiAJaWYgKCFlcnJvcikgewotCQlzZXRhdHRyX2NvcHkoJmluaXRfdXNlcl9ucywgaW5v ZGUsIGF0dHIpOworCQlzZXRhdHRyX2NvcHkobW50X3VzZXJucywgaW5vZGUsIGF0dHIpOwogCQlt YXJrX2lub2RlX2RpcnR5KGlub2RlKTsKIAl9CiAKQEAgLTU1MjUsNyArNTUyNiw3IEBAIGludCBl eHQ0X3NldGF0dHIoc3RydWN0IHVzZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksCiAJCWV4dDRfb3JwaGFuX2RlbChOVUxMLCBpbm9kZSk7CiAKIAlpZiAoIWVy cm9yICYmIChpYV92YWxpZCAmIEFUVFJfTU9ERSkpCi0JCXJjID0gcG9zaXhfYWNsX2NobW9kKCZp bml0X3VzZXJfbnMsIGlub2RlLCBpbm9kZS0+aV9tb2RlKTsKKwkJcmMgPSBwb3NpeF9hY2xfY2ht b2QobW50X3VzZXJucywgaW5vZGUsIGlub2RlLT5pX21vZGUpOwogCiBlcnJfb3V0OgogCWlmICAo ZXJyb3IpCkBAIC01NTcyLDcgKzU1NzMsNyBAQCBpbnQgZXh0NF9nZXRhdHRyKHN0cnVjdCB1c2Vy X25hbWVzcGFjZSAqbW50X3VzZXJucywgY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsCiAJCQkJICBT VEFUWF9BVFRSX05PRFVNUCB8CiAJCQkJICBTVEFUWF9BVFRSX1ZFUklUWSk7CiAKLQlnZW5lcmlj X2ZpbGxhdHRyKCZpbml0X3VzZXJfbnMsIGlub2RlLCBzdGF0KTsKKwlnZW5lcmljX2ZpbGxhdHRy KG1udF91c2VybnMsIGlub2RlLCBzdGF0KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTU4Myw3ICs1 NTg0LDcgQEAgaW50IGV4dDRfZmlsZV9nZXRhdHRyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50 X3VzZXJucywKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZF9pbm9kZShwYXRoLT5kZW50cnkpOwog CXU2NCBkZWxhbGxvY19ibG9ja3M7CiAKLQlleHQ0X2dldGF0dHIoJmluaXRfdXNlcl9ucywgcGF0 aCwgc3RhdCwgcmVxdWVzdF9tYXNrLCBxdWVyeV9mbGFncyk7CisJZXh0NF9nZXRhdHRyKG1udF91 c2VybnMsIHBhdGgsIHN0YXQsIHJlcXVlc3RfbWFzaywgcXVlcnlfZmxhZ3MpOwogCiAJLyoKIAkg KiBJZiB0aGVyZSBpcyBpbmxpbmUgZGF0YSBpbiB0aGUgaW5vZGUsIHRoZSBpbm9kZSB3aWxsIG5v cm1hbGx5IG5vdApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pb2N0bC5jIGIvZnMvZXh0NC9pb2N0bC5j CmluZGV4IGFiODBlMjQ5M2ZkYy4uNTZhZDljNGI2MzUwIDEwMDY0NAotLS0gYS9mcy9leHQ0L2lv Y3RsLmMKKysrIGIvZnMvZXh0NC9pb2N0bC5jCkBAIC0xMDcsMTAgKzEwNywxMiBAQCB2b2lkIGV4 dDRfcmVzZXRfaW5vZGVfc2VlZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQogICogaW1wb3J0YW50IGZp ZWxkcyBvZiB0aGUgaW5vZGVzLgogICoKICAqIEBzYjogICAgICAgICB0aGUgc3VwZXIgYmxvY2sg b2YgdGhlIGZpbGVzeXN0ZW0KKyAqIEBtbnRfdXNlcm5zOgl1c2VyIG5hbWVzcGFjZSBvZiB0aGUg bW91bnQgdGhlIGlub2RlIHdhcyBmb3VuZCBmcm9tCiAgKiBAaW5vZGU6ICAgICAgdGhlIGlub2Rl IHRvIHN3YXAgd2l0aCBFWFQ0X0JPT1RfTE9BREVSX0lOTwogICoKICAqLwogc3RhdGljIGxvbmcg c3dhcF9pbm9kZV9ib290X2xvYWRlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorCQkJCXN0cnVj dCB1c2VyX25hbWVzcGFjZSAqbW50X3VzZXJucywKIAkJCQlzdHJ1Y3QgaW5vZGUgKmlub2RlKQog ewogCWhhbmRsZV90ICpoYW5kbGU7CkBAIC0xMzksNyArMTQxLDcgQEAgc3RhdGljIGxvbmcgc3dh cF9pbm9kZV9ib290X2xvYWRlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCX0KIAogCWlmIChJ U19SRE9OTFkoaW5vZGUpIHx8IElTX0FQUEVORChpbm9kZSkgfHwgSVNfSU1NVVRBQkxFKGlub2Rl KSB8fAotCSAgICAhaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgmaW5pdF91c2VyX25zLCBpbm9kZSkg fHwKKwkgICAgIWlub2RlX293bmVyX29yX2NhcGFibGUobW50X3VzZXJucywgaW5vZGUpIHx8CiAJ ICAgICFjYXBhYmxlKENBUF9TWVNfQURNSU4pKSB7CiAJCWVyciA9IC1FUEVSTTsKIAkJZ290byBq b3VybmFsX2Vycl9vdXQ7CkBAIC04MTUsNiArODE3LDcgQEAgc3RhdGljIGxvbmcgX19leHQ0X2lv Y3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy ZykKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKIAlzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7CiAJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkg PSBFWFQ0X0koaW5vZGUpOworCXN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50X3VzZXJucyA9IGZp bGVfbW50X3VzZXJfbnMoZmlscCk7CiAJdW5zaWduZWQgaW50IGZsYWdzOwogCiAJZXh0NF9kZWJ1 ZygiY21kID0gJXUsIGFyZyA9ICVsdVxuIiwgY21kLCBhcmcpOwpAQCAtODMwLDcgKzgzMyw3IEBA IHN0YXRpYyBsb25nIF9fZXh0NF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50 IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJY2FzZSBGU19JT0NfU0VURkxBR1M6IHsKIAkJaW50 IGVycjsKIAotCQlpZiAoIWlub2RlX293bmVyX29yX2NhcGFibGUoJmluaXRfdXNlcl9ucywgaW5v ZGUpKQorCQlpZiAoIWlub2RlX293bmVyX29yX2NhcGFibGUobW50X3VzZXJucywgaW5vZGUpKQog CQkJcmV0dXJuIC1FQUNDRVM7CiAKIAkJaWYgKGdldF91c2VyKGZsYWdzLCAoaW50IF9fdXNlciAq KSBhcmcpKQpAQCAtODcyLDcgKzg3NSw3IEBAIHN0YXRpYyBsb25nIF9fZXh0NF9pb2N0bChzdHJ1 Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCV9f dTMyIGdlbmVyYXRpb247CiAJCWludCBlcnI7CiAKLQkJaWYgKCFpbm9kZV9vd25lcl9vcl9jYXBh YmxlKCZpbml0X3VzZXJfbnMsIGlub2RlKSkKKwkJaWYgKCFpbm9kZV9vd25lcl9vcl9jYXBhYmxl KG1udF91c2VybnMsIGlub2RlKSkKIAkJCXJldHVybiAtRVBFUk07CiAKIAkJaWYgKGV4dDRfaGFz X21ldGFkYXRhX2NzdW0oaW5vZGUtPmlfc2IpKSB7CkBAIC0xMDExLDcgKzEwMTQsNyBAQCBzdGF0 aWMgbG9uZyBfX2V4dDRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKQogCWNhc2UgRVhUNF9JT0NfTUlHUkFURToKIAl7CiAJCWludCBl cnI7Ci0JCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgmaW5pdF91c2VyX25zLCBpbm9kZSkp CisJCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShtbnRfdXNlcm5zLCBpbm9kZSkpCiAJCQly ZXR1cm4gLUVBQ0NFUzsKIAogCQllcnIgPSBtbnRfd2FudF93cml0ZV9maWxlKGZpbHApOwpAQCAt MTAzMyw3ICsxMDM2LDcgQEAgc3RhdGljIGxvbmcgX19leHQ0X2lvY3RsKHN0cnVjdCBmaWxlICpm aWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAljYXNlIEVYVDRfSU9D X0FMTE9DX0RBX0JMS1M6CiAJewogCQlpbnQgZXJyOwotCQlpZiAoIWlub2RlX293bmVyX29yX2Nh cGFibGUoJmluaXRfdXNlcl9ucywgaW5vZGUpKQorCQlpZiAoIWlub2RlX293bmVyX29yX2NhcGFi bGUobW50X3VzZXJucywgaW5vZGUpKQogCQkJcmV0dXJuIC1FQUNDRVM7CiAKIAkJZXJyID0gbW50 X3dhbnRfd3JpdGVfZmlsZShmaWxwKTsKQEAgLTEwNTIsNyArMTA1NSw3IEBAIHN0YXRpYyBsb25n IF9fZXh0NF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpCiAJCWVyciA9IG1udF93YW50X3dyaXRlX2ZpbGUoZmlscCk7CiAJCWlmIChl cnIpCiAJCQlyZXR1cm4gZXJyOwotCQllcnIgPSBzd2FwX2lub2RlX2Jvb3RfbG9hZGVyKHNiLCBp bm9kZSk7CisJCWVyciA9IHN3YXBfaW5vZGVfYm9vdF9sb2FkZXIoc2IsIG1udF91c2VybnMsIGlu b2RlKTsKIAkJbW50X2Ryb3Bfd3JpdGVfZmlsZShmaWxwKTsKIAkJcmV0dXJuIGVycjsKIAl9CkBA IC0xMjE4LDcgKzEyMjEsNyBAQCBzdGF0aWMgbG9uZyBfX2V4dDRfaW9jdGwoc3RydWN0IGZpbGUg KmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCiAJY2FzZSBFWFQ0 X0lPQ19DTEVBUl9FU19DQUNIRToKIAl7Ci0JCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgm aW5pdF91c2VyX25zLCBpbm9kZSkpCisJCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShtbnRf dXNlcm5zLCBpbm9kZSkpCiAJCQlyZXR1cm4gLUVBQ0NFUzsKIAkJZXh0NF9jbGVhcl9pbm9kZV9l cyhpbm9kZSk7CiAJCXJldHVybiAwOwpAQCAtMTI2NCw3ICsxMjY3LDcgQEAgc3RhdGljIGxvbmcg X19leHQ0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l ZCBsb25nIGFyZykKIAkJCXJldHVybiAtRUZBVUxUOwogCiAJCS8qIE1ha2Ugc3VyZSBjYWxsZXIg aGFzIHByb3BlciBwZXJtaXNzaW9uICovCi0JCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgm aW5pdF91c2VyX25zLCBpbm9kZSkpCisJCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShtbnRf dXNlcm5zLCBpbm9kZSkpCiAJCQlyZXR1cm4gLUVBQ0NFUzsKIAogCQlpZiAoZmEuZnN4X3hmbGFn cyAmIH5FWFQ0X1NVUFBPUlRFRF9GU19YRkxBR1MpCmRpZmYgLS1naXQgYS9mcy9leHQ0L25hbWVp LmMgYi9mcy9leHQ0L25hbWVpLmMKaW5kZXggMTNkZmY4MGFlZGNiLi44NzdjNjAyYWUwNjMgMTAw NjQ0Ci0tLSBhL2ZzL2V4dDQvbmFtZWkuYworKysgYi9mcy9leHQ0L25hbWVpLmMKQEAgLTI2MTAs OCArMjYxMCw4IEBAIHN0YXRpYyBpbnQgZXh0NF9jcmVhdGUoc3RydWN0IHVzZXJfbmFtZXNwYWNl ICptbnRfdXNlcm5zLCBzdHJ1Y3QgaW5vZGUgKmRpciwKIAljcmVkaXRzID0gKEVYVDRfREFUQV9U UkFOU19CTE9DS1MoZGlyLT5pX3NiKSArCiAJCSAgIEVYVDRfSU5ERVhfRVhUUkFfVFJBTlNfQkxP Q0tTICsgMyk7CiByZXRyeToKLQlpbm9kZSA9IGV4dDRfbmV3X2lub2RlX3N0YXJ0X2hhbmRsZShk aXIsIG1vZGUsICZkZW50cnktPmRfbmFtZSwgMCwKLQkJCQkJICAgIE5VTEwsIEVYVDRfSFRfRElS LCBjcmVkaXRzKTsKKwlpbm9kZSA9IGV4dDRfbmV3X2lub2RlX3N0YXJ0X2hhbmRsZShtbnRfdXNl cm5zLCBkaXIsIG1vZGUsICZkZW50cnktPmRfbmFtZSwKKwkJCQkJICAgIDAsIE5VTEwsIEVYVDRf SFRfRElSLCBjcmVkaXRzKTsKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUo KTsKIAllcnIgPSBQVFJfRVJSKGlub2RlKTsKIAlpZiAoIUlTX0VSUihpbm9kZSkpIHsKQEAgLTI2 NDUsOCArMjY0NSw4IEBAIHN0YXRpYyBpbnQgZXh0NF9ta25vZChzdHJ1Y3QgdXNlcl9uYW1lc3Bh Y2UgKm1udF91c2VybnMsIHN0cnVjdCBpbm9kZSAqZGlyLAogCWNyZWRpdHMgPSAoRVhUNF9EQVRB X1RSQU5TX0JMT0NLUyhkaXItPmlfc2IpICsKIAkJICAgRVhUNF9JTkRFWF9FWFRSQV9UUkFOU19C TE9DS1MgKyAzKTsKIHJldHJ5OgotCWlub2RlID0gZXh0NF9uZXdfaW5vZGVfc3RhcnRfaGFuZGxl KGRpciwgbW9kZSwgJmRlbnRyeS0+ZF9uYW1lLCAwLAotCQkJCQkgICAgTlVMTCwgRVhUNF9IVF9E SVIsIGNyZWRpdHMpOworCWlub2RlID0gZXh0NF9uZXdfaW5vZGVfc3RhcnRfaGFuZGxlKG1udF91 c2VybnMsIGRpciwgbW9kZSwgJmRlbnRyeS0+ZF9uYW1lLAorCQkJCQkgICAgMCwgTlVMTCwgRVhU NF9IVF9ESVIsIGNyZWRpdHMpOwogCWhhbmRsZSA9IGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRs ZSgpOwogCWVyciA9IFBUUl9FUlIoaW5vZGUpOwogCWlmICghSVNfRVJSKGlub2RlKSkgewpAQCAt MjY3Nyw3ICsyNjc3LDcgQEAgc3RhdGljIGludCBleHQ0X3RtcGZpbGUoc3RydWN0IHVzZXJfbmFt ZXNwYWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgaW5vZGUgKmRpciwKIAkJcmV0dXJuIGVycjsKIAog cmV0cnk6Ci0JaW5vZGUgPSBleHQ0X25ld19pbm9kZV9zdGFydF9oYW5kbGUoZGlyLCBtb2RlLAor CWlub2RlID0gZXh0NF9uZXdfaW5vZGVfc3RhcnRfaGFuZGxlKG1udF91c2VybnMsIGRpciwgbW9k ZSwKIAkJCQkJICAgIE5VTEwsIDAsIE5VTEwsCiAJCQkJCSAgICBFWFQ0X0hUX0RJUiwKIAkJCUVY VDRfTUFYUVVPVEFTX0lOSVRfQkxPQ0tTKGRpci0+aV9zYikgKwpAQCAtMjc5Miw3ICsyNzkyLDcg QEAgc3RhdGljIGludCBleHQ0X21rZGlyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50X3VzZXJu cywgc3RydWN0IGlub2RlICpkaXIsCiAJY3JlZGl0cyA9IChFWFQ0X0RBVEFfVFJBTlNfQkxPQ0tT KGRpci0+aV9zYikgKwogCQkgICBFWFQ0X0lOREVYX0VYVFJBX1RSQU5TX0JMT0NLUyArIDMpOwog cmV0cnk6Ci0JaW5vZGUgPSBleHQ0X25ld19pbm9kZV9zdGFydF9oYW5kbGUoZGlyLCBTX0lGRElS IHwgbW9kZSwKKwlpbm9kZSA9IGV4dDRfbmV3X2lub2RlX3N0YXJ0X2hhbmRsZShtbnRfdXNlcm5z LCBkaXIsIFNfSUZESVIgfCBtb2RlLAogCQkJCQkgICAgJmRlbnRyeS0+ZF9uYW1lLAogCQkJCQkg ICAgMCwgTlVMTCwgRVhUNF9IVF9ESVIsIGNyZWRpdHMpOwogCWhhbmRsZSA9IGV4dDRfam91cm5h bF9jdXJyZW50X2hhbmRsZSgpOwpAQCAtMzMzNSw3ICszMzM1LDcgQEAgc3RhdGljIGludCBleHQ0 X3N5bWxpbmsoc3RydWN0IHVzZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgaW5vZGUg KmRpciwKIAkJCSAgRVhUNF9JTkRFWF9FWFRSQV9UUkFOU19CTE9DS1MgKyAzOwogCX0KIAotCWlu b2RlID0gZXh0NF9uZXdfaW5vZGVfc3RhcnRfaGFuZGxlKGRpciwgU19JRkxOS3xTX0lSV1hVR08s CisJaW5vZGUgPSBleHQ0X25ld19pbm9kZV9zdGFydF9oYW5kbGUobW50X3VzZXJucywgZGlyLCBT X0lGTE5LfFNfSVJXWFVHTywKIAkJCQkJICAgICZkZW50cnktPmRfbmFtZSwgMCwgTlVMTCwKIAkJ CQkJICAgIEVYVDRfSFRfRElSLCBjcmVkaXRzKTsKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3Vy cmVudF9oYW5kbGUoKTsKQEAgLTM2NjQsNyArMzY2NCw4IEBAIHN0YXRpYyB2b2lkIGV4dDRfdXBk YXRlX2Rpcl9jb3VudChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9yZW5hbWVudCAqZW50 KQogCX0KIH0KIAotc3RhdGljIHN0cnVjdCBpbm9kZSAqZXh0NF93aGl0ZW91dF9mb3JfcmVuYW1l KHN0cnVjdCBleHQ0X3JlbmFtZW50ICplbnQsCitzdGF0aWMgc3RydWN0IGlub2RlICpleHQ0X3do aXRlb3V0X2Zvcl9yZW5hbWUoc3RydWN0IHVzZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLAorCQkJ CQkgICAgICBzdHJ1Y3QgZXh0NF9yZW5hbWVudCAqZW50LAogCQkJCQkgICAgICBpbnQgY3JlZGl0 cywgaGFuZGxlX3QgKipoKQogewogCXN0cnVjdCBpbm9kZSAqd2g7CkBAIC0zNjc4LDcgKzM2Nzks OCBAQCBzdGF0aWMgc3RydWN0IGlub2RlICpleHQ0X3doaXRlb3V0X2Zvcl9yZW5hbWUoc3RydWN0 IGV4dDRfcmVuYW1lbnQgKmVudCwKIAljcmVkaXRzICs9IChFWFQ0X01BWFFVT1RBU19UUkFOU19C TE9DS1MoZW50LT5kaXItPmlfc2IpICsKIAkJICAgIEVYVDRfWEFUVFJfVFJBTlNfQkxPQ0tTICsg NCk7CiByZXRyeToKLQl3aCA9IGV4dDRfbmV3X2lub2RlX3N0YXJ0X2hhbmRsZShlbnQtPmRpciwg U19JRkNIUiB8IFdISVRFT1VUX01PREUsCisJd2ggPSBleHQ0X25ld19pbm9kZV9zdGFydF9oYW5k bGUobW50X3VzZXJucywgZW50LT5kaXIsCisJCQkJCSBTX0lGQ0hSIHwgV0hJVEVPVVRfTU9ERSwK IAkJCQkJICZlbnQtPmRlbnRyeS0+ZF9uYW1lLCAwLCBOVUxMLAogCQkJCQkgRVhUNF9IVF9ESVIs IGNyZWRpdHMpOwogCkBAIC0zNzA1LDkgKzM3MDcsOSBAQCBzdGF0aWMgc3RydWN0IGlub2RlICpl eHQ0X3doaXRlb3V0X2Zvcl9yZW5hbWUoc3RydWN0IGV4dDRfcmVuYW1lbnQgKmVudCwKICAqIHdo aWxlIG5ld197ZGVudHJ5LGlub2RlKSByZWZlcnMgdG8gdGhlIGRlc3RpbmF0aW9uIGRlbnRyeS9p bm9kZQogICogVGhpcyBjb21lcyBmcm9tIHJlbmFtZShjb25zdCBjaGFyICpvbGRwYXRoLCBjb25z dCBjaGFyICpuZXdwYXRoKQogICovCi1zdGF0aWMgaW50IGV4dDRfcmVuYW1lKHN0cnVjdCBpbm9k ZSAqb2xkX2Rpciwgc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKLQkJICAgICAgIHN0cnVjdCBp bm9kZSAqbmV3X2Rpciwgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSwKLQkJICAgICAgIHVuc2ln bmVkIGludCBmbGFncykKK3N0YXRpYyBpbnQgZXh0NF9yZW5hbWUoc3RydWN0IHVzZXJfbmFtZXNw YWNlICptbnRfdXNlcm5zLCBzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsCisJCSAgICAgICBzdHJ1Y3Qg ZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKm5ld19kaXIsCisJCSAgICAgICBzdHJ1 Y3QgZGVudHJ5ICpuZXdfZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJaGFuZGxlX3Qg KmhhbmRsZSA9IE5VTEw7CiAJc3RydWN0IGV4dDRfcmVuYW1lbnQgb2xkID0gewpAQCAtMzc5MSw3 ICszNzkzLDcgQEAgc3RhdGljIGludCBleHQ0X3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIs IHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAJCQlnb3RvIGVuZF9yZW5hbWU7CiAJCX0KIAl9 IGVsc2UgewotCQl3aGl0ZW91dCA9IGV4dDRfd2hpdGVvdXRfZm9yX3JlbmFtZSgmb2xkLCBjcmVk aXRzLCAmaGFuZGxlKTsKKwkJd2hpdGVvdXQgPSBleHQ0X3doaXRlb3V0X2Zvcl9yZW5hbWUobW50 X3VzZXJucywgJm9sZCwgY3JlZGl0cywgJmhhbmRsZSk7CiAJCWlmIChJU19FUlIod2hpdGVvdXQp KSB7CiAJCQlyZXR2YWwgPSBQVFJfRVJSKHdoaXRlb3V0KTsKIAkJCXdoaXRlb3V0ID0gTlVMTDsK QEAgLTQxMTAsNyArNDExMiw3IEBAIHN0YXRpYyBpbnQgZXh0NF9yZW5hbWUyKHN0cnVjdCB1c2Vy X25hbWVzcGFjZSAqbW50X3VzZXJucywKIAkJCQkJIG5ld19kaXIsIG5ld19kZW50cnkpOwogCX0K IAotCXJldHVybiBleHQ0X3JlbmFtZShvbGRfZGlyLCBvbGRfZGVudHJ5LCBuZXdfZGlyLCBuZXdf ZGVudHJ5LCBmbGFncyk7CisJcmV0dXJuIGV4dDRfcmVuYW1lKG1udF91c2VybnMsIG9sZF9kaXIs IG9sZF9kZW50cnksIG5ld19kaXIsIG5ld19kZW50cnksIGZsYWdzKTsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCA5YTZmOTg3NWFh MzQuLmE3N2ZiYjc5ZTgxMyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4 dDQvc3VwZXIuYwpAQCAtNjY1NCw3ICs2NjU0LDcgQEAgc3RhdGljIHN0cnVjdCBmaWxlX3N5c3Rl bV90eXBlIGV4dDRfZnNfdHlwZSA9IHsKIAkubmFtZQkJPSAiZXh0NCIsCiAJLm1vdW50CQk9IGV4 dDRfbW91bnQsCiAJLmtpbGxfc2IJPSBraWxsX2Jsb2NrX3N1cGVyLAotCS5mc19mbGFncwk9IEZT X1JFUVVJUkVTX0RFViwKKwkuZnNfZmxhZ3MJPSBGU19SRVFVSVJFU19ERVYgfCBGU19BTExPV19J RE1BUCwKIH07CiBNT0RVTEVfQUxJQVNfRlMoImV4dDQiKTsKIAotLSAKMi4zMC4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpDb250YWluZXJzIG1haWxp bmcgbGlzdApDb250YWluZXJzQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlz dHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2NvbnRhaW5lcnM=