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 23EB9C56202 for ; Sat, 21 Nov 2020 23:50:22 +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 CFC3320A8B for ; Sat, 21 Nov 2020 23:50:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="oD/PqJvC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CFC3320A8B 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 4C26489B65; Sat, 21 Nov 2020 23:50:16 +0000 (UTC) Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by gabe.freedesktop.org (Postfix) with ESMTPS id 710C1899E7 for ; Sat, 21 Nov 2020 23:50:10 +0000 (UTC) Received: by mail-pl1-x641.google.com with SMTP id l11so6930790plt.1 for ; Sat, 21 Nov 2020 15:50:10 -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=+ZFa/o3IXtRuFPVP0lGO+t7H0IQiB0tyaqwWAErJlj0=; b=oD/PqJvCHS+DayHprNUc5T4EzcTqD4KiLLy/QJ4bQdCPoyBh3easjtxYxjdJUeqSBv 2QuWagVikXbtEDxfgaMjXDuso6AvvQ1HZGgpHG1gKIDqdw3+Q/GGETTgXerl/EQ/Ayzr CTfdPv5RD/5J1/X2wH66G1kzdaSSFbKkEof3UEhKjJoRnJ/9TsQ8jY3wdaRNhLqcCkXp umnSjHrCumnJIztkSBgmqHNn46La5LuHLhVaC06HyrzYqIG6z9VzDhhUXaA1mKUxyzox cPZu8PtlZQVyYGIdc3z4aJswK8zFsxdcnlPZxuV73raZQMZVBLsXC3OUuCMTcserYWs6 W6gQ== 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=+ZFa/o3IXtRuFPVP0lGO+t7H0IQiB0tyaqwWAErJlj0=; b=fsEzjN/Ur3kqanofTRfxVNGB40FHVJVTGhBKiihWWctIQd9NTySahHc14BWm6jxc9l I9EKmis5VCbzU8kmGUF537PosCYoQ/o3fXUu1CcbQXgi5QGlscAcjqf6smZ6SechSo28 PXrLwiBaYJfR2fJsaAjUkjREuu9jak/JeRJlHmXwBc4GNwuQr0quN77avVy9t4snXqMx KO1ovcEa6k5GofA2RbR/OJ6E+kaFvnssmf7mL3UI1qFjhe4h1yjyW4o4LnsryTGos+Rc 7HzhQ0BdAdZRdAE6I8dRMGjIcNworbgu9BmGEmWPQGGD+UfYWm1yGDz0+W6FFeIID/rG DInw== X-Gm-Message-State: AOAM530bKkllXx8UKu8Gn+BqMvL27mvvaGT2g+adahojow5WrhMrMGKO 8vy9GA4d6OyADDcQSyHd7Poaow== X-Google-Smtp-Source: ABdhPJzlt2Gzwi6VgnQKZlNkl0bJiXBqoCWX8ULGhtTt9foPq8Ok6KvsotznJNM12DE9EyHnw0AQ7g== X-Received: by 2002:a17:902:164:b029:d6:a42a:a952 with SMTP id 91-20020a1709020164b02900d6a42aa952mr18758975plb.44.1606002610000; Sat, 21 Nov 2020 15:50:10 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id v126sm7882525pfb.137.2020.11.21.15.50.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Nov 2020 15:50:09 -0800 (PST) From: John Stultz To: lkml Subject: [PATCH v7 3/5] dma-buf: heaps: Remove heap-helpers code Date: Sat, 21 Nov 2020 23:50:00 +0000 Message-Id: <20201121235002.69945-4-john.stultz@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201121235002.69945-1-john.stultz@linaro.org> References: <20201121235002.69945-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: Sandeep Patil , dri-devel@lists.freedesktop.org, Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Chris Goldsworthy , 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" VGhlIGhlYXAtaGVscGVycyBjb2RlIHdhcyBub3QgYXMgZ2VuZXJpYyBhcyBpbml0aWFsbHkgaG9w ZWQKYW5kIGl0IGlzIG5vdyBub3QgYmVpbmcgdXNlZCwgc28gcmVtb3ZlIGl0IGZyb20gdGhlIHRy ZWUuCgpDYzogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxAbGluYXJvLm9yZz4KQ2M6IExpYW0g TWFyayA8bG1hcmtAY29kZWF1cm9yYS5vcmc+CkNjOiBMYXVyYSBBYmJvdHQgPGxhYmJvdHRAa2Vy bmVsLm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0YXJrZXlAYXJtLmNvbT4KQ2M6IEhy aWR5YSBWYWxzYXJhanUgPGhyaWR5YUBnb29nbGUuY29tPgpDYzogU3VyZW4gQmFnaGRhc2FyeWFu IDxzdXJlbmJAZ29vZ2xlLmNvbT4KQ2M6IFNhbmRlZXAgUGF0aWwgPHNzcGF0aWxAZ29vZ2xlLmNv bT4KQ2M6IERhbmllbCBNZW50eiA8ZGFuaWVsbWVudHpAZ29vZ2xlLmNvbT4KQ2M6IENocmlzIEdv bGRzd29ydGh5IDxjZ29sZHN3b0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IMOYcmphbiBFaWRlIDxvcmph bi5laWRlQGFybS5jb20+CkNjOiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBoeUBhcm0uY29tPgpD YzogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgpDYzogU2ltb24gU2Vy IDxjb250YWN0QGVtZXJzaW9uLmZyPgpDYzogSmFtZXMgSm9uZXMgPGpham9uZXNAbnZpZGlhLmNv bT4KQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwpDYzogZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpSZXZpZXdlZC1ieTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBh cm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBKb2huIFN0dWx0eiA8am9obi5zdHVsdHpAbGluYXJvLm9y Zz4KLS0tCnY2OiBSZWJhc2VkIG9udG8gZHJtLW1pc2MtbmV4dAotLS0KIGRyaXZlcnMvZG1hLWJ1 Zi9oZWFwcy9NYWtlZmlsZSAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2RtYS1idWYvaGVhcHMvaGVh cC1oZWxwZXJzLmMgfCAyNzQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2Rt YS1idWYvaGVhcHMvaGVhcC1oZWxwZXJzLmggfCAgNTMgLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQs IDMyOCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2RtYS1idWYvaGVh cHMvaGVhcC1oZWxwZXJzLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2RtYS1idWYvaGVh cHMvaGVhcC1oZWxwZXJzLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvaGVhcHMvTWFr ZWZpbGUgYi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvTWFrZWZpbGUKaW5kZXggNmU1NGNkZWMzZGEw Li45NzQ0Njc3OTEwMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9NYWtlZmls ZQorKysgYi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvTWFrZWZpbGUKQEAgLTEsNCArMSwzIEBACiAj IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi1vYmoteQkJCQkJKz0gaGVhcC1oZWxw ZXJzLm8KIG9iai0kKENPTkZJR19ETUFCVUZfSEVBUFNfU1lTVEVNKQkrPSBzeXN0ZW1faGVhcC5v CiBvYmotJChDT05GSUdfRE1BQlVGX0hFQVBTX0NNQSkJCSs9IGNtYV9oZWFwLm8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9oZWFwLWhlbHBlcnMuYyBiL2RyaXZlcnMvZG1hLWJ1 Zi9oZWFwcy9oZWFwLWhlbHBlcnMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNm NGNlM2UyY2JiLi4wMDAwMDAwMDAwMDAKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL2hlYXAt aGVscGVycy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjc0ICswLDAgQEAKLS8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVk ZSA8bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxp bnV4L2hpZ2htZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9pZHIuaD4KLSNpbmNsdWRlIDxsaW51eC9s aXN0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3Mu aD4KLSNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+Ci0jaW5jbHVkZSA8dWFwaS9saW51eC9kbWEt aGVhcC5oPgotCi0jaW5jbHVkZSAiaGVhcC1oZWxwZXJzLmgiCi0KLXZvaWQgaW5pdF9oZWFwX2hl bHBlcl9idWZmZXIoc3RydWN0IGhlYXBfaGVscGVyX2J1ZmZlciAqYnVmZmVyLAotCQkJICAgICB2 b2lkICgqZnJlZSkoc3RydWN0IGhlYXBfaGVscGVyX2J1ZmZlciAqKSkKLXsKLQlidWZmZXItPnBy aXZfdmlydCA9IE5VTEw7Ci0JbXV0ZXhfaW5pdCgmYnVmZmVyLT5sb2NrKTsKLQlidWZmZXItPnZt YXBfY250ID0gMDsKLQlidWZmZXItPnZhZGRyID0gTlVMTDsKLQlidWZmZXItPnBhZ2Vjb3VudCA9 IDA7Ci0JYnVmZmVyLT5wYWdlcyA9IE5VTEw7Ci0JSU5JVF9MSVNUX0hFQUQoJmJ1ZmZlci0+YXR0 YWNobWVudHMpOwotCWJ1ZmZlci0+ZnJlZSA9IGZyZWU7Ci19Ci0KLXN0cnVjdCBkbWFfYnVmICpo ZWFwX2hlbHBlcl9leHBvcnRfZG1hYnVmKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZl ciwKLQkJCQkJICBpbnQgZmRfZmxhZ3MpCi17Ci0JREVGSU5FX0RNQV9CVUZfRVhQT1JUX0lORk8o ZXhwX2luZm8pOwotCi0JZXhwX2luZm8ub3BzID0gJmhlYXBfaGVscGVyX29wczsKLQlleHBfaW5m by5zaXplID0gYnVmZmVyLT5zaXplOwotCWV4cF9pbmZvLmZsYWdzID0gZmRfZmxhZ3M7Ci0JZXhw X2luZm8ucHJpdiA9IGJ1ZmZlcjsKLQotCXJldHVybiBkbWFfYnVmX2V4cG9ydCgmZXhwX2luZm8p OwotfQotCi1zdGF0aWMgdm9pZCAqZG1hX2hlYXBfbWFwX2tlcm5lbChzdHJ1Y3QgaGVhcF9oZWxw ZXJfYnVmZmVyICpidWZmZXIpCi17Ci0Jdm9pZCAqdmFkZHI7Ci0KLQl2YWRkciA9IHZtYXAoYnVm ZmVyLT5wYWdlcywgYnVmZmVyLT5wYWdlY291bnQsIFZNX01BUCwgUEFHRV9LRVJORUwpOwotCWlm ICghdmFkZHIpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JcmV0dXJuIHZhZGRyOwot fQotCi1zdGF0aWMgdm9pZCBkbWFfaGVhcF9idWZmZXJfZGVzdHJveShzdHJ1Y3QgaGVhcF9oZWxw ZXJfYnVmZmVyICpidWZmZXIpCi17Ci0JaWYgKGJ1ZmZlci0+dm1hcF9jbnQgPiAwKSB7Ci0JCVdB Uk4oMSwgIiVzOiBidWZmZXIgc3RpbGwgbWFwcGVkIGluIHRoZSBrZXJuZWxcbiIsIF9fZnVuY19f KTsKLQkJdnVubWFwKGJ1ZmZlci0+dmFkZHIpOwotCX0KLQotCWJ1ZmZlci0+ZnJlZShidWZmZXIp OwotfQotCi1zdGF0aWMgdm9pZCAqZG1hX2hlYXBfYnVmZmVyX3ZtYXBfZ2V0KHN0cnVjdCBoZWFw X2hlbHBlcl9idWZmZXIgKmJ1ZmZlcikKLXsKLQl2b2lkICp2YWRkcjsKLQotCWlmIChidWZmZXIt PnZtYXBfY250KSB7Ci0JCWJ1ZmZlci0+dm1hcF9jbnQrKzsKLQkJcmV0dXJuIGJ1ZmZlci0+dmFk ZHI7Ci0JfQotCXZhZGRyID0gZG1hX2hlYXBfbWFwX2tlcm5lbChidWZmZXIpOwotCWlmIChJU19F UlIodmFkZHIpKQotCQlyZXR1cm4gdmFkZHI7Ci0JYnVmZmVyLT52YWRkciA9IHZhZGRyOwotCWJ1 ZmZlci0+dm1hcF9jbnQrKzsKLQlyZXR1cm4gdmFkZHI7Ci19Ci0KLXN0YXRpYyB2b2lkIGRtYV9o ZWFwX2J1ZmZlcl92bWFwX3B1dChzdHJ1Y3QgaGVhcF9oZWxwZXJfYnVmZmVyICpidWZmZXIpCi17 Ci0JaWYgKCEtLWJ1ZmZlci0+dm1hcF9jbnQpIHsKLQkJdnVubWFwKGJ1ZmZlci0+dmFkZHIpOwot CQlidWZmZXItPnZhZGRyID0gTlVMTDsKLQl9Ci19Ci0KLXN0cnVjdCBkbWFfaGVhcHNfYXR0YWNo bWVudCB7Ci0Jc3RydWN0IGRldmljZSAqZGV2OwotCXN0cnVjdCBzZ190YWJsZSB0YWJsZTsKLQlz dHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Ci19OwotCi1zdGF0aWMgaW50IGRtYV9oZWFwX2F0dGFjaChz dHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAotCQkJICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAq YXR0YWNobWVudCkKLXsKLQlzdHJ1Y3QgZG1hX2hlYXBzX2F0dGFjaG1lbnQgKmE7Ci0Jc3RydWN0 IGhlYXBfaGVscGVyX2J1ZmZlciAqYnVmZmVyID0gZG1hYnVmLT5wcml2OwotCWludCByZXQ7Ci0K LQlhID0ga3phbGxvYyhzaXplb2YoKmEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWEpCi0JCXJldHVy biAtRU5PTUVNOwotCi0JcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcygmYS0+dGFibGUs IGJ1ZmZlci0+cGFnZXMsCi0JCQkJCWJ1ZmZlci0+cGFnZWNvdW50LCAwLAotCQkJCQlidWZmZXIt PnBhZ2Vjb3VudCA8PCBQQUdFX1NISUZULAotCQkJCQlHRlBfS0VSTkVMKTsKLQlpZiAocmV0KSB7 Ci0JCWtmcmVlKGEpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWEtPmRldiA9IGF0dGFjaG1lbnQt PmRldjsKLQlJTklUX0xJU1RfSEVBRCgmYS0+bGlzdCk7Ci0KLQlhdHRhY2htZW50LT5wcml2ID0g YTsKLQotCW11dGV4X2xvY2soJmJ1ZmZlci0+bG9jayk7Ci0JbGlzdF9hZGQoJmEtPmxpc3QsICZi dWZmZXItPmF0dGFjaG1lbnRzKTsKLQltdXRleF91bmxvY2soJmJ1ZmZlci0+bG9jayk7Ci0KLQly ZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZG1hX2hlYXBfZGV0YWNoKHN0cnVjdCBkbWFfYnVm ICpkbWFidWYsCi0JCQkgICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCkK LXsKLQlzdHJ1Y3QgZG1hX2hlYXBzX2F0dGFjaG1lbnQgKmEgPSBhdHRhY2htZW50LT5wcml2Owot CXN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZlciA9IGRtYWJ1Zi0+cHJpdjsKLQotCW11 dGV4X2xvY2soJmJ1ZmZlci0+bG9jayk7Ci0JbGlzdF9kZWwoJmEtPmxpc3QpOwotCW11dGV4X3Vu bG9jaygmYnVmZmVyLT5sb2NrKTsKLQotCXNnX2ZyZWVfdGFibGUoJmEtPnRhYmxlKTsKLQlrZnJl ZShhKTsKLX0KLQotc3RhdGljCi1zdHJ1Y3Qgc2dfdGFibGUgKmRtYV9oZWFwX21hcF9kbWFfYnVm KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsCi0JCQkJICAgICAgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uKQotewotCXN0cnVjdCBkbWFfaGVhcHNfYXR0YWNo bWVudCAqYSA9IGF0dGFjaG1lbnQtPnByaXY7Ci0Jc3RydWN0IHNnX3RhYmxlICp0YWJsZSA9ICZh LT50YWJsZTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZG1hX21hcF9zZ3RhYmxlKGF0dGFjaG1lbnQt PmRldiwgdGFibGUsIGRpcmVjdGlvbiwgMCk7Ci0JaWYgKHJldCkKLQkJdGFibGUgPSBFUlJfUFRS KHJldCk7Ci0JcmV0dXJuIHRhYmxlOwotfQotCi1zdGF0aWMgdm9pZCBkbWFfaGVhcF91bm1hcF9k bWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsCi0JCQkJICAgc3Ry dWN0IHNnX3RhYmxlICp0YWJsZSwKLQkJCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJl Y3Rpb24pCi17Ci0JZG1hX3VubWFwX3NndGFibGUoYXR0YWNobWVudC0+ZGV2LCB0YWJsZSwgZGly ZWN0aW9uLCAwKTsKLX0KLQotc3RhdGljIHZtX2ZhdWx0X3QgZG1hX2hlYXBfdm1fZmF1bHQoc3Ry dWN0IHZtX2ZhdWx0ICp2bWYpCi17Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSB2bWYt PnZtYTsKLQlzdHJ1Y3QgaGVhcF9oZWxwZXJfYnVmZmVyICpidWZmZXIgPSB2bWEtPnZtX3ByaXZh dGVfZGF0YTsKLQotCWlmICh2bWYtPnBnb2ZmID4gYnVmZmVyLT5wYWdlY291bnQpCi0JCXJldHVy biBWTV9GQVVMVF9TSUdCVVM7Ci0KLQl2bWYtPnBhZ2UgPSBidWZmZXItPnBhZ2VzW3ZtZi0+cGdv ZmZdOwotCWdldF9wYWdlKHZtZi0+cGFnZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNv bnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBkbWFfaGVhcF92bV9vcHMgPSB7Ci0JLmZh dWx0ID0gZG1hX2hlYXBfdm1fZmF1bHQsCi19OwotCi1zdGF0aWMgaW50IGRtYV9oZWFwX21tYXAo c3RydWN0IGRtYV9idWYgKmRtYWJ1Ziwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCi17Ci0J c3RydWN0IGhlYXBfaGVscGVyX2J1ZmZlciAqYnVmZmVyID0gZG1hYnVmLT5wcml2OwotCi0JaWYg KCh2bWEtPnZtX2ZsYWdzICYgKFZNX1NIQVJFRCB8IFZNX01BWVNIQVJFKSkgPT0gMCkKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0KLQl2bWEtPnZtX29wcyA9ICZkbWFfaGVhcF92bV9vcHM7Ci0Jdm1hLT52 bV9wcml2YXRlX2RhdGEgPSBidWZmZXI7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQg ZG1hX2hlYXBfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpCi17Ci0Jc3Ry dWN0IGhlYXBfaGVscGVyX2J1ZmZlciAqYnVmZmVyID0gZG1hYnVmLT5wcml2OwotCi0JZG1hX2hl YXBfYnVmZmVyX2Rlc3Ryb3koYnVmZmVyKTsKLX0KLQotc3RhdGljIGludCBkbWFfaGVhcF9kbWFf YnVmX2JlZ2luX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKLQkJCQkJICAgICBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24pCi17Ci0Jc3RydWN0IGhlYXBfaGVscGVy X2J1ZmZlciAqYnVmZmVyID0gZG1hYnVmLT5wcml2OwotCXN0cnVjdCBkbWFfaGVhcHNfYXR0YWNo bWVudCAqYTsKLQlpbnQgcmV0ID0gMDsKLQotCW11dGV4X2xvY2soJmJ1ZmZlci0+bG9jayk7Ci0K LQlpZiAoYnVmZmVyLT52bWFwX2NudCkKLQkJaW52YWxpZGF0ZV9rZXJuZWxfdm1hcF9yYW5nZShi dWZmZXItPnZhZGRyLCBidWZmZXItPnNpemUpOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShhLCAm YnVmZmVyLT5hdHRhY2htZW50cywgbGlzdCkgewotCQlkbWFfc3luY19zZ19mb3JfY3B1KGEtPmRl diwgYS0+dGFibGUuc2dsLCBhLT50YWJsZS5uZW50cywKLQkJCQkgICAgZGlyZWN0aW9uKTsKLQl9 Ci0JbXV0ZXhfdW5sb2NrKCZidWZmZXItPmxvY2spOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3Rh dGljIGludCBkbWFfaGVhcF9kbWFfYnVmX2VuZF9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpk bWFidWYsCi0JCQkJCSAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbikKLXsKLQlz dHJ1Y3QgaGVhcF9oZWxwZXJfYnVmZmVyICpidWZmZXIgPSBkbWFidWYtPnByaXY7Ci0Jc3RydWN0 IGRtYV9oZWFwc19hdHRhY2htZW50ICphOwotCi0JbXV0ZXhfbG9jaygmYnVmZmVyLT5sb2NrKTsK LQotCWlmIChidWZmZXItPnZtYXBfY250KQotCQlmbHVzaF9rZXJuZWxfdm1hcF9yYW5nZShidWZm ZXItPnZhZGRyLCBidWZmZXItPnNpemUpOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShhLCAmYnVm ZmVyLT5hdHRhY2htZW50cywgbGlzdCkgewotCQlkbWFfc3luY19zZ19mb3JfZGV2aWNlKGEtPmRl diwgYS0+dGFibGUuc2dsLCBhLT50YWJsZS5uZW50cywKLQkJCQkgICAgICAgZGlyZWN0aW9uKTsK LQl9Ci0JbXV0ZXhfdW5sb2NrKCZidWZmZXItPmxvY2spOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0 YXRpYyBpbnQgZG1hX2hlYXBfZG1hX2J1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIHN0 cnVjdCBkbWFfYnVmX21hcCAqbWFwKQotewotCXN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1 ZmZlciA9IGRtYWJ1Zi0+cHJpdjsKLQl2b2lkICp2YWRkcjsKLQotCW11dGV4X2xvY2soJmJ1ZmZl ci0+bG9jayk7Ci0JdmFkZHIgPSBkbWFfaGVhcF9idWZmZXJfdm1hcF9nZXQoYnVmZmVyKTsKLQlt dXRleF91bmxvY2soJmJ1ZmZlci0+bG9jayk7Ci0KLQlpZiAoIXZhZGRyKQotCQlyZXR1cm4gLUVO T01FTTsKLQlkbWFfYnVmX21hcF9zZXRfdmFkZHIobWFwLCB2YWRkcik7Ci0KLQlyZXR1cm4gMDsK LX0KLQotc3RhdGljIHZvaWQgZG1hX2hlYXBfZG1hX2J1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYg KmRtYWJ1Ziwgc3RydWN0IGRtYV9idWZfbWFwICptYXApCi17Ci0Jc3RydWN0IGhlYXBfaGVscGVy X2J1ZmZlciAqYnVmZmVyID0gZG1hYnVmLT5wcml2OwotCi0JbXV0ZXhfbG9jaygmYnVmZmVyLT5s b2NrKTsKLQlkbWFfaGVhcF9idWZmZXJfdm1hcF9wdXQoYnVmZmVyKTsKLQltdXRleF91bmxvY2so JmJ1ZmZlci0+bG9jayk7Ci19Ci0KLWNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBoZWFwX2hlbHBl cl9vcHMgPSB7Ci0JLm1hcF9kbWFfYnVmID0gZG1hX2hlYXBfbWFwX2RtYV9idWYsCi0JLnVubWFw X2RtYV9idWYgPSBkbWFfaGVhcF91bm1hcF9kbWFfYnVmLAotCS5tbWFwID0gZG1hX2hlYXBfbW1h cCwKLQkucmVsZWFzZSA9IGRtYV9oZWFwX2RtYV9idWZfcmVsZWFzZSwKLQkuYXR0YWNoID0gZG1h X2hlYXBfYXR0YWNoLAotCS5kZXRhY2ggPSBkbWFfaGVhcF9kZXRhY2gsCi0JLmJlZ2luX2NwdV9h Y2Nlc3MgPSBkbWFfaGVhcF9kbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MsCi0JLmVuZF9jcHVfYWNj ZXNzID0gZG1hX2hlYXBfZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcywKLQkudm1hcCA9IGRtYV9oZWFw X2RtYV9idWZfdm1hcCwKLQkudnVubWFwID0gZG1hX2hlYXBfZG1hX2J1Zl92dW5tYXAsCi19Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL2hlYXAtaGVscGVycy5oIGIvZHJpdmVy cy9kbWEtYnVmL2hlYXBzL2hlYXAtaGVscGVycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA4MDVkMmRmODgwMjQuLjAwMDAwMDAwMDAwMAotLS0gYS9kcml2ZXJzL2RtYS1idWYvaGVh cHMvaGVhcC1oZWxwZXJzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotLyoKLSAqIERNQUJVRiBIZWFwcyBoZWxw ZXIgY29kZQotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4KLSAqIENvcHly aWdodCAoQykgMjAxOSBMaW5hcm8gTHRkLgotICovCi0KLSNpZm5kZWYgX0hFQVBfSEVMUEVSU19I Ci0jZGVmaW5lIF9IRUFQX0hFTFBFUlNfSAotCi0jaW5jbHVkZSA8bGludXgvZG1hLWhlYXAuaD4K LSNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Ci0KLS8qKgotICogc3RydWN0IGhlYXBfaGVscGVyX2J1 ZmZlciAtIGhlbHBlciBidWZmZXIgbWV0YWRhdGEKLSAqIEBoZWFwOgkJYmFjayBwb2ludGVyIHRv IHRoZSBoZWFwIHRoZSBidWZmZXIgY2FtZSBmcm9tCi0gKiBAZG1hYnVmOgkJYmFja2luZyBkbWEt YnVmIGZvciB0aGlzIGJ1ZmZlcgotICogQHNpemU6CQlzaXplIG9mIHRoZSBidWZmZXIKLSAqIEBw cml2X3ZpcnQJCXBvaW50ZXIgdG8gaGVhcCBzcGVjaWZpYyBwcml2YXRlIHZhbHVlCi0gKiBAbG9j awkJbXV0ZXh0IHRvIHByb3RlY3QgdGhlIGRhdGEgaW4gdGhpcyBzdHJ1Y3R1cmUKLSAqIEB2bWFw X2NudAkJY291bnQgb2Ygdm1hcCByZWZlcmVuY2VzIG9uIHRoZSBidWZmZXIKLSAqIEB2YWRkcgkJ dm1hcCdlZCB2aXJ0dWFsIGFkZHJlc3MKLSAqIEBwYWdlY291bnQJCW51bWJlciBvZiBwYWdlcyBp biB0aGUgYnVmZmVyCi0gKiBAcGFnZXMJCWxpc3Qgb2YgcGFnZSBwb2ludGVycwotICogQGF0dGFj aG1lbnRzCQlsaXN0IG9mIGRldmljZSBhdHRhY2htZW50cwotICoKLSAqIEBmcmVlCQloZWFwIGNh bGxiYWNrIHRvIGZyZWUgdGhlIGJ1ZmZlcgotICovCi1zdHJ1Y3QgaGVhcF9oZWxwZXJfYnVmZmVy IHsKLQlzdHJ1Y3QgZG1hX2hlYXAgKmhlYXA7Ci0Jc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKLQlz aXplX3Qgc2l6ZTsKLQotCXZvaWQgKnByaXZfdmlydDsKLQlzdHJ1Y3QgbXV0ZXggbG9jazsKLQlp bnQgdm1hcF9jbnQ7Ci0Jdm9pZCAqdmFkZHI7Ci0JcGdvZmZfdCBwYWdlY291bnQ7Ci0Jc3RydWN0 IHBhZ2UgKipwYWdlczsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGF0dGFjaG1lbnRzOwotCi0Jdm9pZCAo KmZyZWUpKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZlcik7Ci19OwotCi12b2lkIGlu aXRfaGVhcF9oZWxwZXJfYnVmZmVyKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZlciwK LQkJCSAgICAgdm9pZCAoKmZyZWUpKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKikpOwotCi1z dHJ1Y3QgZG1hX2J1ZiAqaGVhcF9oZWxwZXJfZXhwb3J0X2RtYWJ1ZihzdHJ1Y3QgaGVhcF9oZWxw ZXJfYnVmZmVyICpidWZmZXIsCi0JCQkJCSAgaW50IGZkX2ZsYWdzKTsKLQotZXh0ZXJuIGNvbnN0 IHN0cnVjdCBkbWFfYnVmX29wcyBoZWFwX2hlbHBlcl9vcHM7Ci0jZW5kaWYgLyogX0hFQVBfSEVM UEVSU19IICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=