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=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 4CAB4C55179 for ; Fri, 23 Oct 2020 12:40:29 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 AE53A208C3 for ; Fri, 23 Oct 2020 12:40:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="j4NgvgGv"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="ESRA9XXX"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="kxcHr9Xa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE53A208C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DfpMIO1TXypXyFSJzBjAD31liM/M4Op8JBXp7SoVNVY=; b=j4NgvgGvwyKPo5XPXcaPC3OV4 U666FUMyOF56lgSA/ZImOCR7Dh362/mnbl0b4wCVX/nCkhzX4b1LRJDzEkSf9I1hK33BKH11/2tYx iLWapWO1aGOMMfJKl54tvqWiSresKaiTX9up969z571XOKjVumkJ4ySBOOm3qKisZtlQoL75ILlVc DSqyZpqxbyICMdZWil/Cw1Q3KQyoIARl7AarSL8ZusFpyadBsL9R+LLnCtDscW+S8apeTGVYjbq2t GKhvqmR39j9AvkDryP7leIc/3kiyoZPq+Hzzq90f+0vxYd3O575az9Ims2MeIbXykJdJY914gnqCk bwmSC9lwA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kVwLT-0004j4-7K; Fri, 23 Oct 2020 12:38:59 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kVwLM-0004fb-0e for linux-arm-kernel@merlin.infradead.org; Fri, 23 Oct 2020 12:38:52 +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: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=hPo/Bw6tNC6m8oopvfckb4iPuUPePa6aSZ/PC8jTJPc=; b=ESRA9XXXwiTZVtyxhIktoUhTXg xxHghVIBvp9U/+t8hCi/daLpfJ6MRTNDVVj5Nkoc193JiphcxEMw8ze96qXdG9EDa74A8ZSOmfDZq i5HAWC3ALllsMvUy9SjZzGoZ2Vd1Y1ig57qlOIv+ws5BC3ZCZH8C3oQA1z6j5J0+Uu8K8s8oC3iVh ps/g1/iOYJzxQCv029R8SkwougdCWXd7sMCuEQ7N/v4xZLlRCriy5Yam6tZB3bz2I62/2xS5YeBkN eYXWWf7hjI1CWzNEXtxAHAOhFW26dZjofHUxys3DaNlw4yY+CUDjYUMvZ8sDhivWY95/Nv8qPy76r aDKuwLkg==; Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]) by casper.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kVw68-0001OZ-M7 for linux-arm-kernel@lists.infradead.org; Fri, 23 Oct 2020 12:23:13 +0000 Received: by mail-wr1-x444.google.com with SMTP id s9so1566853wro.8 for ; Fri, 23 Oct 2020 05:23:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hPo/Bw6tNC6m8oopvfckb4iPuUPePa6aSZ/PC8jTJPc=; b=kxcHr9XaGgdgUN/6f9tRbwBS2R7y8JekVykqE3uxv65hBKf0VpkNLgGxd8FIvRj750 nO7ickZUiLfE5Y0mI+ot8RAg1bvzM+pU+EnQr+/RtXjGmgjqqxLTca/kFkBVNTJKhQjr XwcE78fbKjpMmELfqkY2vXpXpf6p2WAexMqJ0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hPo/Bw6tNC6m8oopvfckb4iPuUPePa6aSZ/PC8jTJPc=; b=g4s4e8xgmcU9EXH83QOtFYuvJmsobqwe6tEhljhhl2U8ObYW8QI2hEEYp97xa3raT3 k+LMulGCc2wPCbxM12oAjOB2OLQok470SmpPe5F+GZ6A5TnTsTfT31wigYl1LCyXre9Y AOULjPcYDx0z82/XIGWP29k/zfL9M2jIrv8hPt/sO0cWCjlqc2VqisHtISBA556THIy2 xD3qlRDVJk3PMUxnOrKfL4gEIB7RrRcH35VnMolY8xZfy3iTQ+zUPi0M0HhyyTGKIQdw rmMT4z+hoPyGavRe9Zo2JHXozzhanFGxYppe+iIu6awtjzDAlNKqd5kztxG+K7v44pUi oA+g== X-Gm-Message-State: AOAM533SGv47Cdf3HNbHvIe/j1tvYqdMcCCvirNlZH959qKlmBNz8odd W0/20vRPUtml6s+6YCZKiMNn5g== X-Google-Smtp-Source: ABdhPJwnPss/3+FXK73SGyn1ajFye9TH2uvE+XJgRwBdhY+CfV9NESKavPXc5txtoFVhV9XkRhrz0Q== X-Received: by 2002:adf:e8d0:: with SMTP id k16mr2306084wrn.362.1603455784579; Fri, 23 Oct 2020 05:23:04 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id y4sm3056484wrp.74.2020.10.23.05.23.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Oct 2020 05:23:03 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 36/65] mm: Close race in generic_access_phys Date: Fri, 23 Oct 2020 14:21:47 +0200 Message-Id: <20201023122216.2373294-36-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201023122216.2373294-1-daniel.vetter@ffwll.ch> References: <20201021163242.1458885-1-daniel.vetter@ffwll.ch> <20201023122216.2373294-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201023_132309_326574_69BCDA19 X-CRM114-Status: GOOD ( 23.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , John Hubbard , linux-mm@kvack.org, Dave Airlie , Daniel Vetter , Intel Graphics Development , Chris Wilson , Jason Gunthorpe , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Benjamin Herrensmidt , Daniel Vetter , Dan Williams , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org 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 V2F5IGJhY2sgaXQgd2FzIGEgcmVhc29uYWJsZSBhc3N1bXB0aW9ucyB0aGF0IGlvbWVtIG1hcHBp bmdzIG5ldmVyCmNoYW5nZSB0aGUgcGZuIHJhbmdlIHRoZXkgcG9pbnQgYXQuIEJ1dCB0aGlzIGhh cyBjaGFuZ2VkOgoKLSBncHUgZHJpdmVycyBkeW5hbWljYWxseSBtYW5hZ2UgdGhlaXIgbWVtb3J5 IG5vd2FkYXlzLCBpbnZhbGlkYXRpbmcKICBwdGVzIHdpdGggdW5tYXBfbWFwcGluZ19yYW5nZSB3 aGVuIGJ1ZmZlcnMgZ2V0IG1vdmVkCgotIGNvbnRpZ3VvdXMgZG1hIGFsbG9jYXRpb25zIGhhdmUg bW92ZWQgZnJvbSBkZWRpY2F0ZWQgY2FydmV0b3V0cyB0bwogIGNtYSByZWdpb25zLiBUaGlzIG1l YW5zIGlmIHdlIG1pc3MgdGhlIHVubWFwIHRoZSBwZm4gbWlnaHQgY29udGFpbgogIHBhZ2VjYWNo ZSBvciBhbm9uIG1lbW9yeSAod2VsbCBhbnl0aGluZyBhbGxvY2F0ZWQgd2l0aCBHRlBfTU9WRUFC TEUpCgotIGV2ZW4gL2Rldi9tZW0gbm93IGludmFsaWRhdGVzIG1hcHBpbmdzIHdoZW4gdGhlIGtl cm5lbCByZXF1ZXN0cyB0aGF0CiAgaW9tZW0gcmVnaW9uIHdoZW4gQ09ORklHX0lPX1NUUklDVF9E RVZNRU0gaXMgc2V0LCBzZWUgMzIzNGFjNjY0YTg3CiAgKCIvZGV2L21lbTogUmV2b2tlIG1hcHBp bmdzIHdoZW4gYSBkcml2ZXIgY2xhaW1zIHRoZSByZWdpb24iKQoKQWNjZXNzaW5nIHBmbnMgb2J0 YWluZWQgZnJvbSBwdGVzIHdpdGhvdXQgaG9sZGluZyBhbGwgdGhlIGxvY2tzIGlzCnRoZXJlZm9y ZSBubyBsb25nZXIgYSBnb29kIGlkZWEuIEZpeCB0aGlzLgoKU2luY2UgaW9yZW1hcCBtaWdodCBu ZWVkIHRvIG1hbmlwdWxhdGUgcGFnZXRhYmxlcyB0b28gd2UgbmVlZCB0byBkcm9wCnRoZSBwdCBs b2NrIGFuZCBoYXZlIGEgcmV0cnkgbG9vcCBpZiB3ZSByYWNlZC4KCldoaWxlIGF0IGl0LCBhbHNv IGFkZCBrZXJuZWxkb2MgYW5kIGltcHJvdmUgdGhlIGNvbW1lbnQgZm9yIHRoZQp2bWFfb3BzLT5h Y2Nlc3MgZnVuY3Rpb24uIEl0J3MgZm9yIGFjY2Vzc2luZywgbm90IGZvciBtb3ZpbmcgdGhlCm1l bW9yeSBmcm9tIGlvbWVtIHRvIHN5c3RlbSBtZW1vcnksIGFzIHRoZSBvbGQgY29tbWVudCBzZWVt ZWQgdG8Kc3VnZ2VzdC4KClJlZmVyZW5jZXM6IDI4YjJlZTIwYzdjYiAoImFjY2Vzc19wcm9jZXNz X3ZtIGRldmljZSBtZW1vcnkgaW5mcmFzdHJ1Y3R1cmUiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IEphc29uIEd1bnRob3JwZSA8amdn QHppZXBlLmNhPgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNj OiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IEJlbmphbWluIEhlcnJlbnNt aWR0IDxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+CkNjOiBEYXZlIEFpcmxpZSA8YWlybGllZEBs aW51eC5pZT4KQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNj OiBKb2huIEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+CkNjOiBKw6lyw7RtZSBHbGlzc2Ug PGpnbGlzc2VAcmVkaGF0LmNvbT4KQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkNjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KQ2M6IGxpbnV4LW1tQGt2YWNrLm9y ZwpDYzogbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1zYW1z dW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwpD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0tCnYyOiBGaXggaW52ZXJz aW9uIGluIHRoZSByZXRyeSBjaGVjayAoSm9obikuCgp2NDogV2hpbGUgYXQgaXQsIHVzZSBvZmZz ZXRfaW5fcGFnZSAoQ2hyaXMgV2lsc29uKQotLS0KIGluY2x1ZGUvbGludXgvbW0uaCB8ICAzICsr LQogbW0vbWVtb3J5LmMgICAgICAgIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGlu dXgvbW0uaAppbmRleCBhY2Q2MGZiZjFhNWEuLjJhMTY2MzFjMWZkYSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtNTY2LDcgKzU2Niw4 IEBAIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCB7CiAJdm1fZmF1bHRfdCAoKnBmbl9ta3dy aXRlKShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZik7CiAKIAkvKiBjYWxsZWQgYnkgYWNjZXNzX3Byb2Nl c3Nfdm0gd2hlbiBnZXRfdXNlcl9wYWdlcygpIGZhaWxzLCB0eXBpY2FsbHkKLQkgKiBmb3IgdXNl IGJ5IHNwZWNpYWwgVk1BcyB0aGF0IGNhbiBzd2l0Y2ggYmV0d2VlbiBtZW1vcnkgYW5kIGhhcmR3 YXJlCisJICogZm9yIHVzZSBieSBzcGVjaWFsIFZNQXMuIFNlZSBhbHNvIGdlbmVyaWNfYWNjZXNz X3BoeXMoKSBmb3IgYSBnZW5lcmljCisJICogaW1wbGVtZW50YXRpb24gdXNlZnVsIGZvciBhbnkg aW9tZW0gbWFwcGluZy4KIAkgKi8KIAlpbnQgKCphY2Nlc3MpKHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCSAgICAgIHZvaWQgKmJ1ZiwgaW50IGxlbiwg aW50IHdyaXRlKTsKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXgg ZWVhZTU5MGU1MjZhLi4xYjQ2ZWFlM2I3MDMgMTAwNjQ0Ci0tLSBhL21tL21lbW9yeS5jCisrKyBi L21tL21lbW9yeS5jCkBAIC00ODQwLDI4ICs0ODQwLDY4IEBAIGludCBmb2xsb3dfcGh5cyhzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAlyZXR1cm4gcmV0OwogfQogCisvKioKKyAqIGdlbmVy aWNfYWNjZXNzX3BoeXMgLSBnZW5lcmljIGltcGxlbWVudGF0aW9uIGZvciBpb21lbSBtbWFwIGFj Y2VzcworICogQHZtYTogdGhlIHZtYSB0byBhY2Nlc3MKKyAqIEBhZGRyOiB1c2Vyc3BhY2UgYWRk cmVzLCBub3QgcmVsYXRpdmUgb2Zmc2V0IHdpdGhpbiBAdm1hCisgKiBAYnVmOiBidWZmZXIgdG8g cmVhZC93cml0ZQorICogQGxlbjogbGVuZ3RoIG9mIHRyYW5zZmVyCisgKiBAd3JpdGU6IHNldCB0 byBGT0xMX1dSSVRFIHdoZW4gd3JpdGluZywgb3RoZXJ3aXNlIHJlYWRpbmcKKyAqCisgKiBUaGlz IGlzIGEgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBmb3IgJnZtX29wZXJhdGlvbnNfc3RydWN0LmFj Y2VzcyBmb3IgYW4KKyAqIGlvbWVtIG1hcHBpbmcuIFRoaXMgY2FsbGJhY2sgaXMgdXNlZCBieSBh Y2Nlc3NfcHJvY2Vzc192bSgpIHdoZW4gdGhlIEB2bWEgaXMKKyAqIG5vdCBwYWdlIGJhc2VkLgor ICovCiBpbnQgZ2VuZXJpY19hY2Nlc3NfcGh5cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwg dW5zaWduZWQgbG9uZyBhZGRyLAogCQkJdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpCiB7 CiAJcmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcjsKIAl1bnNpZ25lZCBsb25nIHByb3QgPSAwOwog CXZvaWQgX19pb21lbSAqbWFkZHI7Ci0JaW50IG9mZnNldCA9IGFkZHIgJiAoUEFHRV9TSVpFLTEp OworCXB0ZV90ICpwdGVwLCBwdGU7CisJc3BpbmxvY2tfdCAqcHRsOworCWludCBvZmZzZXQgPSBv ZmZzZXRfaW5fcGFnZShhZGRyKTsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKworCWlmICghKHZtYS0+ dm1fZmxhZ3MgJiAoVk1fSU8gfCBWTV9QRk5NQVApKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKK3Jl dHJ5OgorCWlmIChmb2xsb3dfcHRlKHZtYS0+dm1fbW0sIGFkZHIsICZwdGVwLCAmcHRsKSkKKwkJ cmV0dXJuIC1FSU5WQUw7CisJcHRlID0gKnB0ZXA7CisJcHRlX3VubWFwX3VubG9jayhwdGVwLCBw dGwpOwogCi0JaWYgKGZvbGxvd19waHlzKHZtYSwgYWRkciwgd3JpdGUsICZwcm90LCAmcGh5c19h ZGRyKSkKKwlwcm90ID0gcGdwcm90X3ZhbChwdGVfcGdwcm90KHB0ZSkpOworCXBoeXNfYWRkciA9 IChyZXNvdXJjZV9zaXplX3QpcHRlX3BmbihwdGUpIDw8IFBBR0VfU0hJRlQ7CisKKwlpZiAoKHdy aXRlICYgRk9MTF9XUklURSkgJiYgIXB0ZV93cml0ZShwdGUpKQogCQlyZXR1cm4gLUVJTlZBTDsK IAogCW1hZGRyID0gaW9yZW1hcF9wcm90KHBoeXNfYWRkciwgUEFHRV9BTElHTihsZW4gKyBvZmZz ZXQpLCBwcm90KTsKIAlpZiAoIW1hZGRyKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWlmIChmb2xs b3dfcHRlKHZtYS0+dm1fbW0sIGFkZHIsICZwdGVwLCAmcHRsKSkKKwkJZ290byBvdXRfdW5tYXA7 CisKKwlpZiAoIXB0ZV9zYW1lKHB0ZSwgKnB0ZXApKSB7CisJCXB0ZV91bm1hcF91bmxvY2socHRl cCwgcHRsKTsKKwkJaW91bm1hcChtYWRkcik7CisKKwkJZ290byByZXRyeTsKKwl9CisKIAlpZiAo d3JpdGUpCiAJCW1lbWNweV90b2lvKG1hZGRyICsgb2Zmc2V0LCBidWYsIGxlbik7CiAJZWxzZQog CQltZW1jcHlfZnJvbWlvKGJ1ZiwgbWFkZHIgKyBvZmZzZXQsIGxlbik7CisJcmV0ID0gbGVuOwor CXB0ZV91bm1hcF91bmxvY2socHRlcCwgcHRsKTsKK291dF91bm1hcDoKIAlpb3VubWFwKG1hZGRy KTsKIAotCXJldHVybiBsZW47CisJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGdl bmVyaWNfYWNjZXNzX3BoeXMpOwogI2VuZGlmCi0tIAoyLjI4LjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==