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.7 required=3.0 tests=BAYES_00, 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 737F1C64E7C for ; Tue, 3 Nov 2020 09:30:46 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 34ECE22409 for ; Tue, 3 Nov 2020 09:30:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 34ECE22409 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 73E936EC57; Tue, 3 Nov 2020 09:30:25 +0000 (UTC) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTP id 144D26EC06; Tue, 3 Nov 2020 09:30:22 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 8502CB138; Tue, 3 Nov 2020 09:30:21 +0000 (UTC) From: Thomas Zimmermann To: maarten.lankhorst@linux.intel.com, mripard@kernel.org, airlied@linux.ie, daniel@ffwll.ch, sam@ravnborg.org, alexander.deucher@amd.com, christian.koenig@amd.com, kraxel@redhat.com, l.stach@pengutronix.de, linux+etnaviv@armlinux.org.uk, christian.gmeiner@gmail.com, inki.dae@samsung.com, jy0922.shim@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com, kgene@kernel.org, krzk@kernel.org, yuq825@gmail.com, bskeggs@redhat.com, robh@kernel.org, tomeu.vizoso@collabora.com, steven.price@arm.com, alyssa.rosenzweig@collabora.com, hjc@rock-chips.com, heiko@sntech.de, hdegoede@redhat.com, sean@poorly.run, eric@anholt.net, oleksandr_andrushchenko@epam.com, ray.huang@amd.com, sumit.semwal@linaro.org, emil.velikov@collabora.com, luben.tuikov@amd.com, apaneers@amd.com, linus.walleij@linaro.org, melissa.srw@gmail.com, chris@chris-wilson.co.uk, miaoqinglang@huawei.com Subject: [PATCH v7 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers Date: Tue, 3 Nov 2020 10:30:10 +0100 Message-Id: <20201103093015.1063-6-tzimmermann@suse.de> X-Mailer: git-send-email 2.29.0 In-Reply-To: <20201103093015.1063-1-tzimmermann@suse.de> References: <20201103093015.1063-1-tzimmermann@suse.de> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, lima@lists.freedesktop.org, nouveau@lists.freedesktop.org, Daniel Vetter , etnaviv@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, virtualization@lists.linux-foundation.org, linaro-mm-sig@lists.linaro.org, linux-rockchip@lists.infradead.org, dri-devel@lists.freedesktop.org, Thomas Zimmermann , xen-devel@lists.xenproject.org, spice-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhlIG5ldyBmdW5jdGlvbnMgdHRtX2JvX3t2bWFwLHZ1bm1hcH0oKSBtYXAgYW5kIHVubWFwIGEg VFRNIEJPIGluIGtlcm5lbAphZGRyZXNzIHNwYWNlLiBUaGUgbWFwcGluZydzIGFkZHJlc3MgaXMg cmV0dXJuZWQgYXMgc3RydWN0IGRtYV9idWZfbWFwLgpFYWNoIGZ1bmN0aW9uIGlzIGEgc2ltcGxp ZmllZCB2ZXJzaW9uIG9mIFRUTSdzIGV4aXN0aW5nIGttYXAgY29kZS4gQm90aApmdW5jdGlvbnMg cmVzcGVjdCB0aGUgbWVtb3J5J3MgbG9jYXRpb24gYW5pL29yIHdyaXRlY29tYmluZSBmbGFncy4K Ck9uIHRvcCBUVE0ncyBmdW5jdGlvbnMsIEdFTSBUVE0gaGVscGVycyBnb3QgZHJtX2dlbV90dG1f e3ZtYXAsdnVubWFwfSgpLAp0d28gaGVscGVycyB0aGF0IGNvbnZlcnQgYSBHRU0gb2JqZWN0IGlu dG8gdGhlIFRUTSBCTyBhbmQgZm9yd2FyZCB0aGUgY2FsbAp0byBUVE0ncyB2bWFwL3Z1bm1hcC4g VGhlc2UgaGVscGVycyBjYW4gYmUgZHJvcHBlZCBpbnRvIHRoZSByc3AgR0VNIG9iamVjdApjYWxs YmFja3MuCgp2NToKCSogdXNlIHNpemVfdCBmb3Igc3RvcmluZyBtYXBwaW5nIHNpemUgKENocmlz dGlhbikKCSogaWdub3JlIHByZW1hcHBlZCBtZW1vcnkgYXJlYXMgY29ycmVjdGx5IGluIHR0bV9i b192dW5tYXAoKQoJKiByZWJhc2Ugb250byBsYXRlc3QgVFRNIGludGVyZmFjZXMgKENocmlzdGlh bikKCSogcmVtb3ZlIEJVRygpIGZyb20gdHRtX2JvX3ZtYXAoKSAoQ2hyaXN0aWFuKQp2NDoKCSog ZHJvcCB0dG1fa21hcF9vYmpfdG9fZG1hX2J1ZigpIGluIGZhdm9yIG9mIHZtYXAgaGVscGVycyAo RGFuaWVsLAoJICBDaHJpc3RpYW4pCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8 dHppbW1lcm1hbm5Ac3VzZS5kZT4KUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlz dGlhbi5rb2VuaWdAYW1kLmNvbT4KQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+ClRlc3RlZC1ieTogU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3R0bV9oZWxwZXIuYyB8IDM4ICsrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgIHwgNzIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2dlbV90dG1faGVscGVyLmggICAg IHwgIDYgKysrCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgfCAyOCArKysr KysrKysrKwogaW5jbHVkZS9saW51eC9kbWEtYnVmLW1hcC5oICAgICAgICAgIHwgMjAgKysrKysr KysKIDUgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV90dG1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV90dG1faGVscGVyLmMKaW5kZXggMGU0ZmI5YmE0M2FkLi5kYjRjMTRkNzhhMzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3R0bV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2dlbV90dG1faGVscGVyLmMKQEAgLTQ5LDYgKzQ5LDQ0IEBAIHZvaWQgZHJtX2dl bV90dG1fcHJpbnRfaW5mbyhzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHVuc2lnbmVkIGludCBpbmRl bnQsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdHRtX3ByaW50X2luZm8pOwogCisvKioKKyAq IGRybV9nZW1fdHRtX3ZtYXAoKSAtIHZtYXAgJnR0bV9idWZmZXJfb2JqZWN0CisgKiBAZ2VtOiBH RU0gb2JqZWN0LgorICogQG1hcDogW291dF0gcmV0dXJucyB0aGUgZG1hLWJ1ZiBtYXBwaW5nLgor ICoKKyAqIE1hcHMgYSBHRU0gb2JqZWN0IHdpdGggdHRtX2JvX3ZtYXAoKS4gVGhpcyBmdW5jdGlv biBjYW4gYmUgdXNlZCBhcworICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAgY2FsbGJhY2su CisgKgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJubyBj b2RlIG90aGVyd2lzZS4KKyAqLworaW50IGRybV9nZW1fdHRtX3ZtYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpnZW0sCisJCSAgICAgc3RydWN0IGRtYV9idWZfbWFwICptYXApCit7CisJc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9IGRybV9nZW1fdHRtX29mX2dlbShnZW0pOworCisJcmV0 dXJuIHR0bV9ib192bWFwKGJvLCBtYXApOworCit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fdHRt X3ZtYXApOworCisvKioKKyAqIGRybV9nZW1fdHRtX3Z1bm1hcCgpIC0gdnVubWFwICZ0dG1fYnVm ZmVyX29iamVjdAorICogQGdlbTogR0VNIG9iamVjdC4KKyAqIEBtYXA6IGRtYS1idWYgbWFwcGlu Zy4KKyAqCisgKiBVbm1hcHMgYSBHRU0gb2JqZWN0IHdpdGggdHRtX2JvX3Z1bm1hcCgpLiBUaGlz IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGFzCisgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3Mudm1hcCBj YWxsYmFjay4KKyAqLwordm9pZCBkcm1fZ2VtX3R0bV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpnZW0sCisJCQlzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkKK3sKKwlzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvID0gZHJtX2dlbV90dG1fb2ZfZ2VtKGdlbSk7CisKKwl0dG1fYm9fdnVu bWFwKGJvLCBtYXApOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3R0bV92dW5tYXApOworCiAv KioKICAqIGRybV9nZW1fdHRtX21tYXAoKSAtIG1tYXAgJnR0bV9idWZmZXJfb2JqZWN0CiAgKiBA Z2VtOiBHRU0gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9f dXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCmluZGV4IGVjYjU0NDE1 ZDFjYS4uN2NjYjIyOTVjYWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i b191dGlsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCkBAIC0zMiw2 ICszMiw3IEBACiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAjaW5jbHVkZSA8 ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdlci5o PgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYtbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4K ICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgpAQCAt NDcxLDYgKzQ3Miw3NyBAQCB2b2lkIHR0bV9ib19rdW5tYXAoc3RydWN0IHR0bV9ib19rbWFwX29i aiAqbWFwKQogfQogRVhQT1JUX1NZTUJPTCh0dG1fYm9fa3VubWFwKTsKIAoraW50IHR0bV9ib192 bWFwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBkbWFfYnVmX21hcCAqbWFw KQoreworCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSA9ICZiby0+bWVtOworCWludCByZXQ7CisK KwlyZXQgPSB0dG1fbWVtX2lvX3Jlc2VydmUoYm8tPmJkZXYsIG1lbSk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCWlmIChtZW0tPmJ1cy5pc19pb21lbSkgeworCQl2b2lkIF9faW9tZW0g KnZhZGRyX2lvbWVtOworCQlzaXplX3Qgc2l6ZSA9IGJvLT5udW1fcGFnZXMgPDwgUEFHRV9TSElG VDsKKworCQlpZiAobWVtLT5idXMuYWRkcikKKwkJCXZhZGRyX2lvbWVtID0gKHZvaWQgX19pb21l bSAqKW1lbS0+YnVzLmFkZHI7CisJCWVsc2UgaWYgKG1lbS0+YnVzLmNhY2hpbmcgPT0gdHRtX3dy aXRlX2NvbWJpbmVkKQorCQkJdmFkZHJfaW9tZW0gPSBpb3JlbWFwX3djKG1lbS0+YnVzLm9mZnNl dCwgc2l6ZSk7CisJCWVsc2UKKwkJCXZhZGRyX2lvbWVtID0gaW9yZW1hcChtZW0tPmJ1cy5vZmZz ZXQsIHNpemUpOworCisJCWlmICghdmFkZHJfaW9tZW0pCisJCQlyZXR1cm4gLUVOT01FTTsKKwor CQlkbWFfYnVmX21hcF9zZXRfdmFkZHJfaW9tZW0obWFwLCB2YWRkcl9pb21lbSk7CisKKwl9IGVs c2UgeworCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geworCQkJLmludGVycnVwdGli bGUgPSBmYWxzZSwKKwkJCS5ub193YWl0X2dwdSA9IGZhbHNlCisJCX07CisJCXN0cnVjdCB0dG1f dHQgKnR0bSA9IGJvLT50dG07CisJCXBncHJvdF90IHByb3Q7CisJCXZvaWQgKnZhZGRyOworCisJ CXJldCA9IHR0bV90dF9wb3B1bGF0ZShiby0+YmRldiwgdHRtLCAmY3R4KTsKKwkJaWYgKHJldCkK KwkJCXJldHVybiByZXQ7CisKKwkJLyoKKwkJICogV2UgbmVlZCB0byB1c2Ugdm1hcCB0byBnZXQg dGhlIGRlc2lyZWQgcGFnZSBwcm90ZWN0aW9uCisJCSAqIG9yIHRvIG1ha2UgdGhlIGJ1ZmZlciBv YmplY3QgbG9vayBjb250aWd1b3VzLgorCQkgKi8KKwkJcHJvdCA9IHR0bV9pb19wcm90KGJvLCBt ZW0sIFBBR0VfS0VSTkVMKTsKKwkJdmFkZHIgPSB2bWFwKHR0bS0+cGFnZXMsIGJvLT5udW1fcGFn ZXMsIDAsIHByb3QpOworCQlpZiAoIXZhZGRyKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJZG1h X2J1Zl9tYXBfc2V0X3ZhZGRyKG1hcCwgdmFkZHIpOworCX0KKworCXJldHVybiAwOworfQorRVhQ T1JUX1NZTUJPTCh0dG1fYm9fdm1hcCk7CisKK3ZvaWQgdHRtX2JvX3Z1bm1hcChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkKK3sKKwlzdHJ1Y3Qg dHRtX3Jlc291cmNlICptZW0gPSAmYm8tPm1lbTsKKworCWlmIChkbWFfYnVmX21hcF9pc19udWxs KG1hcCkpCisJCXJldHVybjsKKworCWlmICghbWFwLT5pc19pb21lbSkKKwkJdnVubWFwKG1hcC0+ dmFkZHIpOworCWVsc2UgaWYgKCFtZW0tPmJ1cy5hZGRyKQorCQlpb3VubWFwKG1hcC0+dmFkZHJf aW9tZW0pOworCWRtYV9idWZfbWFwX2NsZWFyKG1hcCk7CisKKwl0dG1fbWVtX2lvX2ZyZWUoYm8t PmJkZXYsICZiby0+bWVtKTsKK30KK0VYUE9SVF9TWU1CT0wodHRtX2JvX3Z1bm1hcCk7CisKIHN0 YXRpYyBpbnQgdHRtX2JvX3dhaXRfZnJlZV9ub2RlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAJCQkJIGJvb2wgZHN0X3VzZV90dCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9nZW1fdHRtX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV90dG1faGVscGVyLmgKaW5k ZXggMTE4Y2VmNzZmODRmLi43YzZkODc0OTEwYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9nZW1fdHRtX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdHRtX2hlbHBlci5o CkBAIC0xMCwxMSArMTAsMTcgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KICNp bmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KIAorc3RydWN0IGRtYV9idWZfbWFwOwor CiAjZGVmaW5lIGRybV9nZW1fdHRtX29mX2dlbShnZW1fb2JqKSBcCiAJY29udGFpbmVyX29mKGdl bV9vYmosIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCwgYmFzZSkKIAogdm9pZCBkcm1fZ2VtX3R0 bV9wcmludF9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgaW50IGluZGVudCwK IAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSk7CitpbnQgZHJtX2dlbV90 dG1fdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwKKwkJICAgICBzdHJ1Y3QgZG1hX2J1 Zl9tYXAgKm1hcCk7Cit2b2lkIGRybV9nZW1fdHRtX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbSwKKwkJCXN0cnVjdCBkbWFfYnVmX21hcCAqbWFwKTsKIGludCBkcm1fZ2VtX3R0bV9t bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAogCQkgICAgIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBi L2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXggMzcxMDJlNDVlNDk2Li4yYzU5YTc4 NTM3NGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKKysrIGIvaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaApAQCAtNDgsNiArNDgsOCBAQCBzdHJ1Y3QgdHRtX2Jv X2dsb2JhbDsKIAogc3RydWN0IHR0bV9ib19kZXZpY2U7CiAKK3N0cnVjdCBkbWFfYnVmX21hcDsK Kwogc3RydWN0IGRybV9tbV9ub2RlOwogCiBzdHJ1Y3QgdHRtX3BsYWNlbWVudDsKQEAgLTQ5NCw2 ICs0OTYsMzIgQEAgaW50IHR0bV9ib19rbWFwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s IHVuc2lnbmVkIGxvbmcgc3RhcnRfcGFnZSwKICAqLwogdm9pZCB0dG1fYm9fa3VubWFwKHN0cnVj dCB0dG1fYm9fa21hcF9vYmogKm1hcCk7CiAKKy8qKgorICogdHRtX2JvX3ZtYXAKKyAqCisgKiBA Ym86IFRoZSBidWZmZXIgb2JqZWN0LgorICogQG1hcDogcG9pbnRlciB0byBhIHN0cnVjdCBkbWFf YnVmX21hcCByZXByZXNlbnRpbmcgdGhlIG1hcC4KKyAqCisgKiBTZXRzIHVwIGEga2VybmVsIHZp cnR1YWwgbWFwcGluZywgdXNpbmcgaW9yZW1hcCBvciB2bWFwIHRvIHRoZQorICogZGF0YSBpbiB0 aGUgYnVmZmVyIG9iamVjdC4gVGhlIHBhcmFtZXRlciBAbWFwIHJldHVybnMgdGhlIHZpcnR1YWwK KyAqIGFkZHJlc3MgYXMgc3RydWN0IGRtYV9idWZfbWFwLiBVbm1hcCB0aGUgYnVmZmVyIHdpdGgg dHRtX2JvX3Z1bm1hcCgpLgorICoKKyAqIFJldHVybnMKKyAqIC1FTk9NRU06IE91dCBvZiBtZW1v cnkuCisgKiAtRUlOVkFMOiBJbnZhbGlkIHJhbmdlLgorICovCitpbnQgdHRtX2JvX3ZtYXAoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGRtYV9idWZfbWFwICptYXApOworCisv KioKKyAqIHR0bV9ib192dW5tYXAKKyAqCisgKiBAYm86IFRoZSBidWZmZXIgb2JqZWN0LgorICog QG1hcDogT2JqZWN0IGRlc2NyaWJpbmcgdGhlIG1hcCB0byB1bm1hcC4KKyAqCisgKiBVbm1hcHMg YSBrZXJuZWwgbWFwIHNldCB1cCBieSB0dG1fYm9fdm1hcCgpLgorICovCit2b2lkIHR0bV9ib192 dW5tYXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGRtYV9idWZfbWFwICpt YXApOworCiAvKioKICAqIHR0bV9ib19tbWFwX29iaiAtIG1tYXAgbWVtb3J5IGJhY2tlZCBieSBh IHR0bSBidWZmZXIgb2JqZWN0LgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1 Zi1tYXAuaCBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi1tYXAuaAppbmRleCBmZDFhYmE1NDVmZGYu LjJlOGJiZWNiNTA5MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLW1hcC5oCisr KyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi1tYXAuaApAQCAtNDUsNiArNDUsMTIgQEAKICAqCiAg KglkbWFfYnVmX21hcF9zZXRfdmFkZHIoJm1hcC4gMHhkZWFkYmVhZik7CiAgKgorICogVG8gc2V0 IGFuIGFkZHJlc3MgaW4gSS9PIG1lbW9yeSwgdXNlIGRtYV9idWZfbWFwX3NldF92YWRkcl9pb21l bSgpLgorICoKKyAqIC4uIGNvZGUtYmxvY2s6OiBjCisgKgorICoJZG1hX2J1Zl9tYXBfc2V0X3Zh ZGRyX2lvbWVtKCZtYXAuIDB4ZGVhZGJlYWYpOworICoKICAqIFRlc3QgaWYgYSBtYXBwaW5nIGlz IHZhbGlkIHdpdGggZWl0aGVyIGRtYV9idWZfbWFwX2lzX3NldCgpIG9yCiAgKiBkbWFfYnVmX21h cF9pc19udWxsKCkuCiAgKgpAQCAtMTE4LDYgKzEyNCwyMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg ZG1hX2J1Zl9tYXBfc2V0X3ZhZGRyKHN0cnVjdCBkbWFfYnVmX21hcCAqbWFwLCB2b2lkICp2YWRk cikKIAltYXAtPmlzX2lvbWVtID0gZmFsc2U7CiB9CiAKKy8qKgorICogZG1hX2J1Zl9tYXBfc2V0 X3ZhZGRyX2lvbWVtIC0gU2V0cyBhIGRtYS1idWYgbWFwcGluZyBzdHJ1Y3R1cmUgdG8gYW4gYWRk cmVzcyBpbiBJL08gbWVtb3J5CisgKiBAbWFwOgkJVGhlIGRtYS1idWYgbWFwcGluZyBzdHJ1Y3R1 cmUKKyAqIEB2YWRkcl9pb21lbToJQW4gSS9PLW1lbW9yeSBhZGRyZXNzCisgKgorICogU2V0cyB0 aGUgYWRkcmVzcyBhbmQgdGhlIEkvTy1tZW1vcnkgZmxhZy4KKyAqLworc3RhdGljIGlubGluZSB2 b2lkIGRtYV9idWZfbWFwX3NldF92YWRkcl9pb21lbShzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCwK KwkJCQkJICAgICAgIHZvaWQgX19pb21lbSAqdmFkZHJfaW9tZW0pCit7CisJbWFwLT52YWRkcl9p b21lbSA9IHZhZGRyX2lvbWVtOworCW1hcC0+aXNfaW9tZW0gPSB0cnVlOworfQorCiAvKioKICAq IGRtYV9idWZfbWFwX2lzX2VxdWFsIC0gQ29tcGFyZXMgdHdvIGRtYS1idWYgbWFwcGluZyBzdHJ1 Y3R1cmVzIGZvciBlcXVhbGl0eQogICogQGxoczoJVGhlIGRtYS1idWYgbWFwcGluZyBzdHJ1Y3R1 cmUKLS0gCjIuMjkuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==