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.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,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 A5721C4332D for ; Wed, 20 Jan 2021 21:09:53 +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 719692343E for ; Wed, 20 Jan 2021 21:09:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 719692343E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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 74E236E461; Wed, 20 Jan 2021 21:09:47 +0000 (UTC) Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A4B96E45D for ; Wed, 20 Jan 2021 21:09:44 +0000 (UTC) Received: by mail-pg1-x52c.google.com with SMTP id c22so16020202pgg.13 for ; Wed, 20 Jan 2021 13:09:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=70VHM4qOcLMs7abWCHQ8/cB/OWCqfqACUfmBJLnT76E=; b=jI4fSVLQvKGQwgXsM931OypebHN0gXP+30HiABCi/YAmKN2A/X/jpIuDzgMishcIrg TOLzFWyrZMSMXvtHBziBBL1b/Hqa6qfJU5so9K3j1L30wPOuXhn70FHpVhq5Wo0e76E0 LQDfErM3vHRVtQj0PVspAb0lrCDIYFU3kjSf0ZFTCGhOr7kTOFOsLbKFX4oJuRhIltFq Eiz5VMO8TyyeoHgMrRhBGXqvnfmBnK7Fcnptm/S0oHRW4vSsOw/MTkzZ+G+XC2Lf4AzW MBHKkRp/PiomeKihLmLr3apkv2m6VkzTokGRz3njt42Al+RUNRGQUpsPdL8JUXuH8dEp DLVA== 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=70VHM4qOcLMs7abWCHQ8/cB/OWCqfqACUfmBJLnT76E=; b=EjKRAtVKTbVo9CWLtGmQLa7w2bcfS/2O6YrmtqhFuo7jkWBZBOcySFfR6HV+8dOq3R pvBtCTuymI0mzu2r5kDDGINdLXedfg1wZ7Za/Y9DL4MG2gq8RLDgDV6ooi4h4i7IiqXS 95JEnjU0xFD5nqPQdRJjk8We7PGnxsmYtL/sQoiAO/9Irka1XKXHwZD8KLfIwsUhaAqU oihNFXTxqqB049Sc0qMVwNOeCcXs/A/eT4uS7DSAT6jRAks822W4j+BxGTUD6yopINme 5pyEiqbsi3P+n9aQj9EDIxOmmljMcrCz4O5zITNjPHRNa8JSAebYOtLGnuNIm45Q+B2N qQkA== X-Gm-Message-State: AOAM5328PLfJv6PVIw46PVSA3lFJZBCEgSVBOcaWu4wd7AXfY7zFTGQO Ue+bvHcL70PCgXphYJI1O+OZXw== X-Google-Smtp-Source: ABdhPJwLg0H5Ihwkfb9pFIwPEFrOx7Mr1rq28WBlhMkbxwiGEReRjpIzEN/k9w5o8dBXSgJHlSpcRA== X-Received: by 2002:a63:4746:: with SMTP id w6mr10957460pgk.377.1611176984206; Wed, 20 Jan 2021 13:09:44 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id f15sm3265629pja.24.2021.01.20.13.09.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jan 2021 13:09:43 -0800 (PST) From: John Stultz To: lkml Subject: [PATCH 2/3] dma-buf: system_heap: Add a system-uncached heap re-using the system heap Date: Wed, 20 Jan 2021 21:09:36 +0000 Message-Id: <20210120210937.15069-3-john.stultz@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210120210937.15069-1-john.stultz@linaro.org> References: <20210120210937.15069-1-john.stultz@linaro.org> 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: dri-devel@lists.freedesktop.org, Bing Song , Sandeep Patil , Chris Goldsworthy , Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Hridya Valsaraju , =?UTF-8?q?=C3=98rjan=20Eide?= , linux-media@vger.kernel.org, Suren Baghdasaryan , Daniel Mentz Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBhZGRzIGEgaGVhcCB0aGF0IGFsbG9jYXRlcyBub24tY29udGlndW91cyBidWZmZXJzIHRo YXQgYXJlCm1hcmtlZCBhcyB3cml0ZWNvbWJpbmVkLCBzbyB0aGV5IGFyZSBub3QgY2FjaGVkIGJ5 IHRoZSBDUFUuCgpUaGlzIGlzIHVzZWZ1bCwgYXMgbW9zdCBncmFwaGljcyBidWZmZXJzIGFyZSB1 c3VhbGx5IG5vdCB0b3VjaGVkCmJ5IHRoZSBDUFUgb3Igb25seSB3cml0dGVuIGludG8gb25jZSBi eSB0aGUgQ1BVLiBTbyB3aGVuIG1hcHBpbmcKdGhlIGJ1ZmZlciBvdmVyIGFuZCBvdmVyIGJldHdl ZW4gZGV2aWNlcywgd2UgY2FuIHNraXAgdGhlIENQVQpzeW5jaW5nLCB3aGljaCBzYXZlcyBhIGxv dCBvZiBjYWNoZSBtYW5hZ2VtZW50IG92ZXJoZWFkLCBncmVhdGx5CmltcHJvdmluZyBwZXJmb3Jt YW5jZS4KCkZvciBmb2xrIHVzaW5nIElPTiwgdGhlcmUgd2FzIGEgSU9OX0ZMQUdfQ0FDSEVEIGZs YWcsIHdoaWNoCnNpZ25hbGVkIGlmIHRoZSByZXR1cm5lZCBidWZmZXIgc2hvdWxkIGJlIENQVSBj YWNoZWFibGUgb3Igbm90LgpXaXRoIERNQS1CVUYgaGVhcHMsIHdlIGRvIG5vdCB5ZXQgaGF2ZSBz dWNoIGEgZmxhZywgYW5kIGJ5IGRlZmF1bHQKdGhlIGN1cnJlbnQgaGVhcHMgKHN5c3RlbSBhbmQg Y21hKSBwcm9kdWNlIENQVSBjYWNoYWJsZSBidWZmZXJzLgpTbyBmb3IgZm9sa3MgdHJhbnNpdGlv bmluZyBmcm9tIElPTiB0byBETUEtQlVGIEhlYXBzLCB0aGlzIGZpbGxzCmluIHNvbWUgb2YgdGhh dCBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkuCgpUaGVyZSBoYXMgYmVlbiBhIHN1Z2dlc3Rpb24gdG8g bWFrZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYSBmbGFnCihETUFIRUFQX0ZMQUdfVU5DQUNIRUQ/KSBv biB0aGUgc3lzdGVtIGhlYXAsIHNpbWlsYXIgdG8gaG93CklPTiB1c2VkIHRoZSBJT05fRkxBR19D QUNIRUQuIEJ1dCBJIHdhbnQgdG8gbWFrZSBzdXJlIGFuCl9VTkNBQ0hFRCBmbGFnIHdvdWxkIHRy dWVseSBiZSBhIGdlbmVyaWMgYXR0cmlidXRlIGFjcm9zcyBhbGwKaGVhcHMuIFNvIGZhciB0aGF0 IGhhcyBiZWVuIHVuY2xlYXIsIHNvIGhhdmluZyBpdCBhcyBhIHNlcGFyYXRlCmhlYXAgc2VlbWVz IGJldHRlciBmb3Igbm93LiAoQnV0IEknbSBvcGVuIHRvIGRpc2N1c3Npb24gb24gdGhpcwpwb2lu dCEpCgpUaGlzIGlzIGEgcmV3b3JrIG9mIGVhcmxpZXIgZWZmb3J0cyB0byBhZGQgYSB1bmNhY2hl ZCBzeXN0ZW0gaGVhcCwKZG9uZSB1dGlsaXppbmcgdGhlIGV4aXNpdG5nIHN5c3RlbSBoZWFwLCBh ZGRpbmcganVzdCBhIGJpdCBvZgpsb2dpYyB0byBoYW5kbGUgdGhlIHVuY2FjaGVkIGNhc2UuCgpG ZWVkYmFjayB3b3VsZCBiZSB2ZXJ5IHdlbGNvbWUhCgpNYW55IHRoYW5rcyB0byBMaWFtIE1hcmsg Zm9yIGhpcyBoZWxwIHRvIGdldCB0aGlzIHdvcmtpbmcuCgpQZW5kaW5nIG9wZW5zb3VyY2UgdXNl cnMgb2YgdGhpcyBjb2RlIGluY2x1ZGU6CiogQU9TUCBIaUtleTk2MCBncmFsbG9jOgogIC0gaHR0 cHM6Ly9hbmRyb2lkLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvZGV2aWNlL2xpbmFyby9oaWtl eS8rLzEzOTk1MTkKICAtIFZpc2libHkgaW1wcm92ZXMgcGVyZm9ybWFuY2Ugb3ZlciB0aGUgc3lz dGVtIGhlYXAKKiBBT1NQIENvZGVjMjoKICAtIGh0dHBzOi8vYW5kcm9pZC1yZXZpZXcuZ29vZ2xl c291cmNlLmNvbS9jL3BsYXRmb3JtL2ZyYW1ld29ya3MvYXYvKy8xNTQzNjg1CgpDYzogRGFuaWVs IFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxA bGluYXJvLm9yZz4KQ2M6IExpYW0gTWFyayA8bG1hcmtAY29kZWF1cm9yYS5vcmc+CkNjOiBMYXVy YSBBYmJvdHQgPGxhYmJvdHRAa2VybmVsLm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0 YXJrZXlAYXJtLmNvbT4KQ2M6IEhyaWR5YSBWYWxzYXJhanUgPGhyaWR5YUBnb29nbGUuY29tPgpD YzogU3VyZW4gQmFnaGRhc2FyeWFuIDxzdXJlbmJAZ29vZ2xlLmNvbT4KQ2M6IFNhbmRlZXAgUGF0 aWwgPHNzcGF0aWxAZ29vZ2xlLmNvbT4KQ2M6IERhbmllbCBNZW50eiA8ZGFuaWVsbWVudHpAZ29v Z2xlLmNvbT4KQ2M6IENocmlzIEdvbGRzd29ydGh5IDxjZ29sZHN3b0Bjb2RlYXVyb3JhLm9yZz4K Q2M6IMOYcmphbiBFaWRlIDxvcmphbi5laWRlQGFybS5jb20+CkNjOiBSb2JpbiBNdXJwaHkgPHJv YmluLm11cnBoeUBhcm0uY29tPgpDYzogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBjb2xsYWJv cmEuY29tPgpDYzogU2ltb24gU2VyIDxjb250YWN0QGVtZXJzaW9uLmZyPgpDYzogSmFtZXMgSm9u ZXMgPGpham9uZXNAbnZpZGlhLmNvbT4KQ2M6IEJpbmcgU29uZyA8YmluZy5zb25nQG54cC5jb20+ CkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxpbmFy by5vcmc+Ci0tLQp2NDoKKiBNYWtlIHN5c191bmNhY2hlZF9oZWFwIHN0YXRpYywgYXMKICAgIFJl cG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KKiBGaXggd3Jvbmcg cmV0dXJuIHZhbHVlLCBjYXVnaHQgYnkgc21hdGNoCiAgICBSZXBvcnRlZC1ieToga2VybmVsIHRl c3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CiAgICBSZXBvcnRlZC1ieTogRGFuIENhcnBlbnRlciA8 ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgoqIEVuc3VyZSB3ZSBjYWxsIGZsdXNoL2ludmFsaWRh dGVfa2VybmVsX3ZtYXBfcmFuZ2UoKSBpbiB0aGUKICB1bmNhY2hlZCBjYXNlcyB0byB0cnkgdG8g YWRkcmVzcyBmZWVkYmFjayBhYm91dCBWSVZUIGNhY2hlcwogIGZyb20gQ2hyaXN0b3BoCiogUmVv cmRlciBhIGZldyBsaW5lcyBhcyBzdWdnZXN0ZWQgYnkgQnJpYW5TCiogQXZvaWQgaG9sZGluZyB0 aGUgaW5pdGlhbCBtYXBwaW5nIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGJ1ZmZlcgogIGFzIHN1 Z2dlc3RlZCBieSBCcmlhblMKKiBGaXggYSB1bmxpa2VseSByYWNlIGJldHdlZW4gYWxsb2NhdGUg YW5kIHVwZGF0aW5nIHRoZSBkbWFfbWFzawogIHRoYXQgQnJpYW5TIG5vdGljZWQuCi0tLQogZHJp dmVycy9kbWEtYnVmL2hlYXBzL3N5c3RlbV9oZWFwLmMgfCAxMTEgKysrKysrKysrKysrKysrKysr KysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVhcC5jIGIv ZHJpdmVycy9kbWEtYnVmL2hlYXBzL3N5c3RlbV9oZWFwLmMKaW5kZXggMTdlMGU5YTY4YmFmLi4z NTQ4YjIwY2I5OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVh cC5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9zeXN0ZW1faGVhcC5jCkBAIC0yMiw2ICsy Miw3IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogCiBzdGF0aWMgc3RydWN0IGRtYV9o ZWFwICpzeXNfaGVhcDsKK3N0YXRpYyBzdHJ1Y3QgZG1hX2hlYXAgKnN5c191bmNhY2hlZF9oZWFw OwogCiBzdHJ1Y3Qgc3lzdGVtX2hlYXBfYnVmZmVyIHsKIAlzdHJ1Y3QgZG1hX2hlYXAgKmhlYXA7 CkBAIC0zMSw2ICszMiw4IEBAIHN0cnVjdCBzeXN0ZW1faGVhcF9idWZmZXIgewogCXN0cnVjdCBz Z190YWJsZSBzZ190YWJsZTsKIAlpbnQgdm1hcF9jbnQ7CiAJdm9pZCAqdmFkZHI7CisKKwlib29s IHVuY2FjaGVkOwogfTsKIAogc3RydWN0IGRtYV9oZWFwX2F0dGFjaG1lbnQgewpAQCAtMzgsNiAr NDEsOCBAQCBzdHJ1Y3QgZG1hX2hlYXBfYXR0YWNobWVudCB7CiAJc3RydWN0IHNnX3RhYmxlICp0 YWJsZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJYm9vbCBtYXBwZWQ7CisKKwlib29sIHVu Y2FjaGVkOwogfTsKIAogI2RlZmluZSBISUdIX09SREVSX0dGUCAgKCgoR0ZQX0hJR0hVU0VSIHwg X19HRlBfWkVSTyB8IF9fR0ZQX05PV0FSTiBcCkBAIC0xMDAsNyArMTA1LDcgQEAgc3RhdGljIGlu dCBzeXN0ZW1faGVhcF9hdHRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKIAlhLT5kZXYgPSBh dHRhY2htZW50LT5kZXY7CiAJSU5JVF9MSVNUX0hFQUQoJmEtPmxpc3QpOwogCWEtPm1hcHBlZCA9 IGZhbHNlOwotCisJYS0+dW5jYWNoZWQgPSBidWZmZXItPnVuY2FjaGVkOwogCWF0dGFjaG1lbnQt PnByaXYgPSBhOwogCiAJbXV0ZXhfbG9jaygmYnVmZmVyLT5sb2NrKTsKQEAgLTEzMCw5ICsxMzUs MTMgQEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqc3lzdGVtX2hlYXBfbWFwX2RtYV9idWYoc3Ry dWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWMKIHsKIAlzdHJ1Y3QgZG1hX2hlYXBfYXR0YWNo bWVudCAqYSA9IGF0dGFjaG1lbnQtPnByaXY7CiAJc3RydWN0IHNnX3RhYmxlICp0YWJsZSA9IGEt PnRhYmxlOworCWludCBhdHRyID0gMDsKIAlpbnQgcmV0OwogCi0JcmV0ID0gZG1hX21hcF9zZ3Rh YmxlKGF0dGFjaG1lbnQtPmRldiwgdGFibGUsIGRpcmVjdGlvbiwgMCk7CisJaWYgKGEtPnVuY2Fj aGVkKQorCQlhdHRyID0gRE1BX0FUVFJfU0tJUF9DUFVfU1lOQzsKKworCXJldCA9IGRtYV9tYXBf c2d0YWJsZShhdHRhY2htZW50LT5kZXYsIHRhYmxlLCBkaXJlY3Rpb24sIGF0dHIpOwogCWlmIChy ZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKQEAgLTE0NSw5ICsxNTQsMTIgQEAgc3RhdGlj IHZvaWQgc3lzdGVtX2hlYXBfdW5tYXBfZG1hX2J1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50 ICphdHRhY2htZW50LAogCQkJCSAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlv bikKIHsKIAlzdHJ1Y3QgZG1hX2hlYXBfYXR0YWNobWVudCAqYSA9IGF0dGFjaG1lbnQtPnByaXY7 CisJaW50IGF0dHIgPSAwOwogCisJaWYgKGEtPnVuY2FjaGVkKQorCQlhdHRyID0gRE1BX0FUVFJf U0tJUF9DUFVfU1lOQzsKIAlhLT5tYXBwZWQgPSBmYWxzZTsKLQlkbWFfdW5tYXBfc2d0YWJsZShh dHRhY2htZW50LT5kZXYsIHRhYmxlLCBkaXJlY3Rpb24sIDApOworCWRtYV91bm1hcF9zZ3RhYmxl KGF0dGFjaG1lbnQtPmRldiwgdGFibGUsIGRpcmVjdGlvbiwgYXR0cik7CiB9CiAKIHN0YXRpYyBp bnQgc3lzdGVtX2hlYXBfZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpk bWFidWYsCkBAIC0xNjEsMTAgKzE3MywxMiBAQCBzdGF0aWMgaW50IHN5c3RlbV9oZWFwX2RtYV9i dWZfYmVnaW5fY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAogCWlmIChidWZmZXIt PnZtYXBfY250KQogCQlpbnZhbGlkYXRlX2tlcm5lbF92bWFwX3JhbmdlKGJ1ZmZlci0+dmFkZHIs IGJ1ZmZlci0+bGVuKTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoYSwgJmJ1ZmZlci0+YXR0YWNo bWVudHMsIGxpc3QpIHsKLQkJaWYgKCFhLT5tYXBwZWQpCi0JCQljb250aW51ZTsKLQkJZG1hX3N5 bmNfc2d0YWJsZV9mb3JfY3B1KGEtPmRldiwgYS0+dGFibGUsIGRpcmVjdGlvbik7CisJaWYgKCFi dWZmZXItPnVuY2FjaGVkKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkoYSwgJmJ1ZmZlci0+YXR0 YWNobWVudHMsIGxpc3QpIHsKKwkJCWlmICghYS0+bWFwcGVkKQorCQkJCWNvbnRpbnVlOworCQkJ ZG1hX3N5bmNfc2d0YWJsZV9mb3JfY3B1KGEtPmRldiwgYS0+dGFibGUsIGRpcmVjdGlvbik7CisJ CX0KIAl9CiAJbXV0ZXhfdW5sb2NrKCZidWZmZXItPmxvY2spOwogCkBAIC0xODIsMTAgKzE5Niwx MiBAQCBzdGF0aWMgaW50IHN5c3RlbV9oZWFwX2RtYV9idWZfZW5kX2NwdV9hY2Nlc3Moc3RydWN0 IGRtYV9idWYgKmRtYWJ1ZiwKIAlpZiAoYnVmZmVyLT52bWFwX2NudCkKIAkJZmx1c2hfa2VybmVs X3ZtYXBfcmFuZ2UoYnVmZmVyLT52YWRkciwgYnVmZmVyLT5sZW4pOwogCi0JbGlzdF9mb3JfZWFj aF9lbnRyeShhLCAmYnVmZmVyLT5hdHRhY2htZW50cywgbGlzdCkgewotCQlpZiAoIWEtPm1hcHBl ZCkKLQkJCWNvbnRpbnVlOwotCQlkbWFfc3luY19zZ3RhYmxlX2Zvcl9kZXZpY2UoYS0+ZGV2LCBh LT50YWJsZSwgZGlyZWN0aW9uKTsKKwlpZiAoIWJ1ZmZlci0+dW5jYWNoZWQpIHsKKwkJbGlzdF9m b3JfZWFjaF9lbnRyeShhLCAmYnVmZmVyLT5hdHRhY2htZW50cywgbGlzdCkgeworCQkJaWYgKCFh LT5tYXBwZWQpCisJCQkJY29udGludWU7CisJCQlkbWFfc3luY19zZ3RhYmxlX2Zvcl9kZXZpY2Uo YS0+ZGV2LCBhLT50YWJsZSwgZGlyZWN0aW9uKTsKKwkJfQogCX0KIAltdXRleF91bmxvY2soJmJ1 ZmZlci0+bG9jayk7CiAKQEAgLTIwMCw2ICsyMTYsOSBAQCBzdGF0aWMgaW50IHN5c3RlbV9oZWFw X21tYXAoc3RydWN0IGRtYV9idWYgKmRtYWJ1Ziwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp CiAJc3RydWN0IHNnX3BhZ2VfaXRlciBwaXRlcjsKIAlpbnQgcmV0OwogCisJaWYgKGJ1ZmZlci0+ dW5jYWNoZWQpCisJCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRlY29tYmluZSh2bWEt PnZtX3BhZ2VfcHJvdCk7CisKIAlmb3JfZWFjaF9zZ3RhYmxlX3BhZ2UodGFibGUsICZwaXRlciwg dm1hLT52bV9wZ29mZikgewogCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHNnX3BhZ2VfaXRlcl9wYWdl KCZwaXRlcik7CiAKQEAgLTIyMSwxNyArMjQwLDIxIEBAIHN0YXRpYyB2b2lkICpzeXN0ZW1faGVh cF9kb192bWFwKHN0cnVjdCBzeXN0ZW1faGVhcF9idWZmZXIgKmJ1ZmZlcikKIAlzdHJ1Y3QgcGFn ZSAqKnBhZ2VzID0gdm1hbGxvYyhzaXplb2Yoc3RydWN0IHBhZ2UgKikgKiBucGFnZXMpOwogCXN0 cnVjdCBwYWdlICoqdG1wID0gcGFnZXM7CiAJc3RydWN0IHNnX3BhZ2VfaXRlciBwaXRlcjsKKwlw Z3Byb3RfdCBwZ3Byb3QgPSBQQUdFX0tFUk5FTDsKIAl2b2lkICp2YWRkcjsKIAogCWlmICghcGFn ZXMpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCisJaWYgKGJ1ZmZlci0+dW5jYWNoZWQp CisJCXBncHJvdCA9IHBncHJvdF93cml0ZWNvbWJpbmUoUEFHRV9LRVJORUwpOworCiAJZm9yX2Vh Y2hfc2d0YWJsZV9wYWdlKHRhYmxlLCAmcGl0ZXIsIDApIHsKIAkJV0FSTl9PTih0bXAgLSBwYWdl cyA+PSBucGFnZXMpOwogCQkqdG1wKysgPSBzZ19wYWdlX2l0ZXJfcGFnZSgmcGl0ZXIpOwogCX0K IAotCXZhZGRyID0gdm1hcChwYWdlcywgbnBhZ2VzLCBWTV9NQVAsIFBBR0VfS0VSTkVMKTsKKwl2 YWRkciA9IHZtYXAocGFnZXMsIG5wYWdlcywgVk1fTUFQLCBwZ3Byb3QpOwogCXZmcmVlKHBhZ2Vz KTsKIAogCWlmICghdmFkZHIpCkBAIC0zMzEsMTAgKzM1NCwxMSBAQCBzdGF0aWMgc3RydWN0IHBh Z2UgKmFsbG9jX2xhcmdlc3RfYXZhaWxhYmxlKHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAlyZXR1cm4g TlVMTDsKIH0KIAotc3RhdGljIGludCBzeXN0ZW1faGVhcF9hbGxvY2F0ZShzdHJ1Y3QgZG1hX2hl YXAgKmhlYXAsCi0JCQkJdW5zaWduZWQgbG9uZyBsZW4sCi0JCQkJdW5zaWduZWQgbG9uZyBmZF9m bGFncywKLQkJCQl1bnNpZ25lZCBsb25nIGhlYXBfZmxhZ3MpCitzdGF0aWMgaW50IHN5c3RlbV9o ZWFwX2RvX2FsbG9jYXRlKHN0cnVjdCBkbWFfaGVhcCAqaGVhcCwKKwkJCQkgICB1bnNpZ25lZCBs b25nIGxlbiwKKwkJCQkgICB1bnNpZ25lZCBsb25nIGZkX2ZsYWdzLAorCQkJCSAgIHVuc2lnbmVk IGxvbmcgaGVhcF9mbGFncywKKwkJCQkgICBib29sIHVuY2FjaGVkKQogewogCXN0cnVjdCBzeXN0 ZW1faGVhcF9idWZmZXIgKmJ1ZmZlcjsKIAlERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBf aW5mbyk7CkBAIC0zNTUsNiArMzc5LDcgQEAgc3RhdGljIGludCBzeXN0ZW1faGVhcF9hbGxvY2F0 ZShzdHJ1Y3QgZG1hX2hlYXAgKmhlYXAsCiAJbXV0ZXhfaW5pdCgmYnVmZmVyLT5sb2NrKTsKIAli dWZmZXItPmhlYXAgPSBoZWFwOwogCWJ1ZmZlci0+bGVuID0gbGVuOworCWJ1ZmZlci0+dW5jYWNo ZWQgPSB1bmNhY2hlZDsKIAogCUlOSVRfTElTVF9IRUFEKCZwYWdlcyk7CiAJaSA9IDA7CkBAIC00 MDQsNiArNDI5LDE4IEBAIHN0YXRpYyBpbnQgc3lzdGVtX2hlYXBfYWxsb2NhdGUoc3RydWN0IGRt YV9oZWFwICpoZWFwLAogCQkvKiBqdXN0IHJldHVybiwgYXMgcHV0IHdpbGwgY2FsbCByZWxlYXNl IGFuZCB0aGF0IHdpbGwgZnJlZSAqLwogCQlyZXR1cm4gcmV0OwogCX0KKworCS8qCisJICogRm9y IHVuY2FjaGVkIGJ1ZmZlcnMsIHdlIG5lZWQgdG8gaW5pdGlhbGx5IGZsdXNoIGNwdSBjYWNoZSwg c2luY2UKKwkgKiB0aGUgX19HRlBfWkVSTyBvbiB0aGUgYWxsb2NhdGlvbiBtZWFucyB0aGUgemVy b2luZyB3YXMgZG9uZSBieSB0aGUKKwkgKiBjcHUgYW5kIHRodXMgaXQgaXMgbGlrZWx5IGNhY2hl ZC4gTWFwIChhbmQgaW1wbGljaXRseSBmbHVzaCkgYW5kCisJICogdW5tYXAgaXQgbm93IHNvIHdl IGRvbid0IGdldCBjb3JydXB0aW9uIGxhdGVyIG9uLgorCSAqLworCWlmIChidWZmZXItPnVuY2Fj aGVkKSB7CisJCWRtYV9tYXBfc2d0YWJsZShkbWFfaGVhcF9nZXRfZGV2KGhlYXApLCB0YWJsZSwg RE1BX0JJRElSRUNUSU9OQUwsIDApOworCQlkbWFfdW5tYXBfc2d0YWJsZShkbWFfaGVhcF9nZXRf ZGV2KGhlYXApLCB0YWJsZSwgRE1BX0JJRElSRUNUSU9OQUwsIDApOworCX0KKwogCXJldHVybiBy ZXQ7CiAKIGZyZWVfcGFnZXM6CkBAIC00MjEsMTAgKzQ1OCw0MCBAQCBzdGF0aWMgaW50IHN5c3Rl bV9oZWFwX2FsbG9jYXRlKHN0cnVjdCBkbWFfaGVhcCAqaGVhcCwKIAlyZXR1cm4gcmV0OwogfQog CitzdGF0aWMgaW50IHN5c3RlbV9oZWFwX2FsbG9jYXRlKHN0cnVjdCBkbWFfaGVhcCAqaGVhcCwK KwkJCQl1bnNpZ25lZCBsb25nIGxlbiwKKwkJCQl1bnNpZ25lZCBsb25nIGZkX2ZsYWdzLAorCQkJ CXVuc2lnbmVkIGxvbmcgaGVhcF9mbGFncykKK3sKKwlyZXR1cm4gc3lzdGVtX2hlYXBfZG9fYWxs b2NhdGUoaGVhcCwgbGVuLCBmZF9mbGFncywgaGVhcF9mbGFncywgZmFsc2UpOworfQorCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGRtYV9oZWFwX29wcyBzeXN0ZW1faGVhcF9vcHMgPSB7CiAJLmFsbG9j YXRlID0gc3lzdGVtX2hlYXBfYWxsb2NhdGUsCiB9OwogCitzdGF0aWMgaW50IHN5c3RlbV91bmNh Y2hlZF9oZWFwX2FsbG9jYXRlKHN0cnVjdCBkbWFfaGVhcCAqaGVhcCwKKwkJCQkJIHVuc2lnbmVk IGxvbmcgbGVuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBmZF9mbGFncywKKwkJCQkJIHVuc2lnbmVk IGxvbmcgaGVhcF9mbGFncykKK3sKKwlyZXR1cm4gc3lzdGVtX2hlYXBfZG9fYWxsb2NhdGUoaGVh cCwgbGVuLCBmZF9mbGFncywgaGVhcF9mbGFncywgdHJ1ZSk7Cit9CisKKy8qIER1bW15IGZ1bmN0 aW9uIHRvIGJlIHVzZWQgdW50aWwgd2UgY2FuIGNhbGwgY29lcmNlX21hc2tfYW5kX2NvaGVyZW50 ICovCitzdGF0aWMgaW50IHN5c3RlbV91bmNhY2hlZF9oZWFwX25vdF9pbml0aWFsaXplZChzdHJ1 Y3QgZG1hX2hlYXAgKmhlYXAsCisJCQkJCQl1bnNpZ25lZCBsb25nIGxlbiwKKwkJCQkJCXVuc2ln bmVkIGxvbmcgZmRfZmxhZ3MsCisJCQkJCQl1bnNpZ25lZCBsb25nIGhlYXBfZmxhZ3MpCit7CisJ cmV0dXJuIC1FQlVTWTsKK30KKworc3RhdGljIHN0cnVjdCBkbWFfaGVhcF9vcHMgc3lzdGVtX3Vu Y2FjaGVkX2hlYXBfb3BzID0geworCS8qIEFmdGVyIHN5c3RlbV9oZWFwX2NyZWF0ZSBpcyBjb21w bGV0ZSwgd2Ugd2lsbCBzd2FwIHRoaXMgKi8KKwkuYWxsb2NhdGUgPSBzeXN0ZW1fdW5jYWNoZWRf aGVhcF9ub3RfaW5pdGlhbGl6ZWQsCit9OworCiBzdGF0aWMgaW50IHN5c3RlbV9oZWFwX2NyZWF0 ZSh2b2lkKQogewogCXN0cnVjdCBkbWFfaGVhcF9leHBvcnRfaW5mbyBleHBfaW5mbzsKQEAgLTQz Nyw2ICs1MDQsMTggQEAgc3RhdGljIGludCBzeXN0ZW1faGVhcF9jcmVhdGUodm9pZCkKIAlpZiAo SVNfRVJSKHN5c19oZWFwKSkKIAkJcmV0dXJuIFBUUl9FUlIoc3lzX2hlYXApOwogCisJZXhwX2lu Zm8ubmFtZSA9ICJzeXN0ZW0tdW5jYWNoZWQiOworCWV4cF9pbmZvLm9wcyA9ICZzeXN0ZW1fdW5j YWNoZWRfaGVhcF9vcHM7CisJZXhwX2luZm8ucHJpdiA9IE5VTEw7CisKKwlzeXNfdW5jYWNoZWRf aGVhcCA9IGRtYV9oZWFwX2FkZCgmZXhwX2luZm8pOworCWlmIChJU19FUlIoc3lzX3VuY2FjaGVk X2hlYXApKQorCQlyZXR1cm4gUFRSX0VSUihzeXNfdW5jYWNoZWRfaGVhcCk7CisKKwlkbWFfY29l cmNlX21hc2tfYW5kX2NvaGVyZW50KGRtYV9oZWFwX2dldF9kZXYoc3lzX3VuY2FjaGVkX2hlYXAp LCBETUFfQklUX01BU0soNjQpKTsKKwltYigpOyAvKiBtYWtlIHN1cmUgd2Ugb25seSBzZXQgYWxs b2NhdGUgYWZ0ZXIgZG1hX21hc2sgaXMgc2V0ICovCisJc3lzdGVtX3VuY2FjaGVkX2hlYXBfb3Bz LmFsbG9jYXRlID0gc3lzdGVtX3VuY2FjaGVkX2hlYXBfYWxsb2NhdGU7CisKIAlyZXR1cm4gMDsK IH0KIG1vZHVsZV9pbml0KHN5c3RlbV9oZWFwX2NyZWF0ZSk7Ci0tIAoyLjE3LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=