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.5 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 ED3D5C433E0 for ; Fri, 5 Feb 2021 08:06:29 +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 98EDF64F46 for ; Fri, 5 Feb 2021 08:06:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 98EDF64F46 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 8BF236F403; Fri, 5 Feb 2021 08:06:28 +0000 (UTC) Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFB526F405 for ; Fri, 5 Feb 2021 08:06:27 +0000 (UTC) Received: by mail-pg1-x52e.google.com with SMTP id r38so3968319pgk.13 for ; Fri, 05 Feb 2021 00:06:27 -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=vyfEY4onehbYsafXLmYmoPdU8uLUNcWKOMLwNwKoKkY=; b=kfBKmBc2V0gCtxWa0NO7oYwzFwIGrntrUmxp3VWtIk9vVbZiIidKiPuJA8fq913qm6 y/TLIbZegnoQtgZWXnoY0F50XKk+gmOZBOwtXXODAsfVg6j2csvgf5rnxg3kvcEij+Ww iA5FM3Ee09ZD6RBVdpGH/37PXPYY7mc9loOttqO8p5Kpw0YabwufzJtMCqY7VcFk+oAq YvAiZsgXhttv4oltgliHjQ1eb+C68HNj8UhmQEkTcS00U71i/PuTJSsaCPgh+0YnQ3Ya Y10M/IVlNiVkfY9tmMF4EnfFLAG+Ffi0ChQ48uNWk5lSk1S2yOklIIh9QB1yixCp6BMu 8Evg== 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=vyfEY4onehbYsafXLmYmoPdU8uLUNcWKOMLwNwKoKkY=; b=Dl8PYryJbnoDVD7EKix4p7fmsxC8VFjdH2T0VZRKEEg0NAV5YwXFFsPJex9rWaGG9g FC+bTUECmd4OoWRKzFRTOc8JnyYL5dI34Gwq2DN7YzKVp/ap/WMj6FzRO8yZPMc3FDs7 JZFq83v2E1QwEVZ2EbTLqu/5UdyBkzE9IiFQDUzyQ/XlWfhgVE+Oos6pmAnsN9JIO+k/ Ou+Yo/UP63TWxxOji6uvLWqtd9Xe44bdDABiBASiFVGJ/Ix1QRW7yHgPAFIqGJSoWJzn tutj0oOU6s4pOyaoAmwBmi6hYAuqBJwyu1nm2/vtL7bboBrdBKkKVj0x/L5ui7JkDK1B BB+Q== X-Gm-Message-State: AOAM532o7LOSJBhSn1AW2dpy8UV33VFpfqRYvPJYJSRYQYZYbf36org6 VrCeDRqiFwxbgaaPph7uZWM1hg== X-Google-Smtp-Source: ABdhPJxFjQUH9qw9ZOiSQdFgimdjCJe9nf79dM7toVaJnYzL9q5QJkTgttrX+W6LBLzy/l57Ue2JIA== X-Received: by 2002:a63:f19:: with SMTP id e25mr3205563pgl.220.1612512387276; Fri, 05 Feb 2021 00:06:27 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id 32sm9520070pgq.80.2021.02.05.00.06.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Feb 2021 00:06:26 -0800 (PST) From: John Stultz To: lkml Subject: [RFC][PATCH v6 1/7] drm: Add a sharable drm page-pool implementation Date: Fri, 5 Feb 2021 08:06:15 +0000 Message-Id: <20210205080621.3102035-2-john.stultz@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210205080621.3102035-1-john.stultz@linaro.org> References: <20210205080621.3102035-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, Sandeep Patil , 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 , Christian Koenig , Daniel Mentz Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBhZGRzIGEgc2hyaW5rZXIgY29udHJvbGxlZCBwYWdlIHBvb2wsIGNsb3NlbHkKZm9sbG93 aW5nIHRoZSB0dG1fcG9vbCBsb2dpYywgd2hpY2ggaXMgYWJzdHJhY3RlZCBvdXQKYSBiaXQgc28g aXQgY2FuIGJlIHVzZWQgYnkgb3RoZXIgbm9uLXR0bSBkcml2ZXJzLgoKQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IENocmlzdGlhbiBLb2VuaWcgPGNocmlzdGlhbi5rb2Vu aWdAYW1kLmNvbT4KQ2M6IFN1bWl0IFNlbXdhbCA8c3VtaXQuc2Vtd2FsQGxpbmFyby5vcmc+CkNj OiBMaWFtIE1hcmsgPGxtYXJrQGNvZGVhdXJvcmEub3JnPgpDYzogQ2hyaXMgR29sZHN3b3J0aHkg PGNnb2xkc3dvQGNvZGVhdXJvcmEub3JnPgpDYzogTGF1cmEgQWJib3R0IDxsYWJib3R0QGtlcm5l bC5vcmc+CkNjOiBCcmlhbiBTdGFya2V5IDxCcmlhbi5TdGFya2V5QGFybS5jb20+CkNjOiBIcmlk eWEgVmFsc2FyYWp1IDxocmlkeWFAZ29vZ2xlLmNvbT4KQ2M6IFN1cmVuIEJhZ2hkYXNhcnlhbiA8 c3VyZW5iQGdvb2dsZS5jb20+CkNjOiBTYW5kZWVwIFBhdGlsIDxzc3BhdGlsQGdvb2dsZS5jb20+ CkNjOiBEYW5pZWwgTWVudHogPGRhbmllbG1lbnR6QGdvb2dsZS5jb20+CkNjOiDDmHJqYW4gRWlk ZSA8b3JqYW4uZWlkZUBhcm0uY29tPgpDYzogUm9iaW4gTXVycGh5IDxyb2Jpbi5tdXJwaHlAYXJt LmNvbT4KQ2M6IEV6ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4KQ2M6IFNp bW9uIFNlciA8Y29udGFjdEBlbWVyc2lvbi5mcj4KQ2M6IEphbWVzIEpvbmVzIDxqYWpvbmVzQG52 aWRpYS5jb20+CkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1 bHR6QGxpbmFyby5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgIHwgICA0ICsK IGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vcGFn ZV9wb29sLmMgfCAyMjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL2RybS9wYWdlX3Bvb2wuaCAgICAgfCAgNTQgKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDI3OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Bh Z2VfcG9vbC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vcGFnZV9wb29sLmgKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29u ZmlnCmluZGV4IDA5NzNmNDA4ZDc1Zi4uZDE2YmYzNDBlZDJlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpAQCAtMTc0LDYg KzE3NCwxMCBAQCBjb25maWcgRFJNX0RQX0NFQwogCSAgTm90ZTogbm90IGFsbCBhZGFwdGVycyBz dXBwb3J0IHRoaXMgZmVhdHVyZSwgYW5kIGV2ZW4gZm9yIHRob3NlCiAJICB0aGF0IGRvIHN1cHBv cnQgdGhpcyB0aGV5IG9mdGVuIGRvIG5vdCBob29rIHVwIHRoZSBDRUMgcGluLgogCitjb25maWcg RFJNX1BBR0VfUE9PTAorCWJvb2wKKwlkZXBlbmRzIG9uIERSTQorCiBjb25maWcgRFJNX1RUTQog CXRyaXN0YXRlCiAJZGVwZW5kcyBvbiBEUk0gJiYgTU1VCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggZmVmYWZmNGM4 MzJkLi44NzdlMDExMWVkMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQor KysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTMyLDYgKzMyLDcgQEAgZHJtLSQoQ09O RklHX0FHUCkgKz0gZHJtX2FncHN1cHBvcnQubwogZHJtLSQoQ09ORklHX1BDSSkgKz0gZHJtX3Bj aS5vCiBkcm0tJChDT05GSUdfREVCVUdfRlMpICs9IGRybV9kZWJ1Z2ZzLm8gZHJtX2RlYnVnZnNf Y3JjLm8KIGRybS0kKENPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFKSArPSBkcm1fZWRpZF9s b2FkLm8KK2RybS0kKENPTkZJR19EUk1fUEFHRV9QT09MKSArPSBwYWdlX3Bvb2wubwogCiBkcm1f dnJhbV9oZWxwZXIteSA6PSBkcm1fZ2VtX3ZyYW1faGVscGVyLm8KIG9iai0kKENPTkZJR19EUk1f VlJBTV9IRUxQRVIpICs9IGRybV92cmFtX2hlbHBlci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcGFnZV9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFnZV9wb29sLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMTM5Zjg2ZTZjYTcKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFnZV9wb29sLmMKQEAgLTAsMCArMSwyMjAgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogRFJNIHBhZ2UgcG9vbCBz eXN0ZW0KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTGluYXJvIEx0ZC4KKyAqCisgKiBCYXNl ZCBvbiB0aGUgSU9OIHBhZ2UgcG9vbCBjb2RlCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl LCBJbmMuCisgKiBBcyB3ZWxsIGFzIHRoZSB0dG1fcG9vbCBjb2RlCisgKiBDb3B5cmlnaHQgKEMp IDIwMjAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICovCisKKyNpbmNsdWRlIDxsaW51 eC9mcmVlemVyLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvc2ln bmFsLmg+CisjaW5jbHVkZSA8ZHJtL3BhZ2VfcG9vbC5oPgorCitzdGF0aWMgTElTVF9IRUFEKHBv b2xfbGlzdCk7CitzdGF0aWMgREVGSU5FX01VVEVYKHBvb2xfbGlzdF9sb2NrKTsKK3N0YXRpYyBh dG9taWNfbG9uZ190IHRvdGFsX3BhZ2VzOworc3RhdGljIHVuc2lnbmVkIGxvbmcgcGFnZV9wb29s X21heDsKK01PRFVMRV9QQVJNX0RFU0MocGFnZV9wb29sX21heCwgIk51bWJlciBvZiBwYWdlcyBp biB0aGUgV0MvVUMvRE1BIHBvb2wiKTsKK21vZHVsZV9wYXJhbShwYWdlX3Bvb2xfbWF4LCB1bG9u ZywgMDY0NCk7CisKK3ZvaWQgZHJtX3BhZ2VfcG9vbF9zZXRfbWF4KHVuc2lnbmVkIGxvbmcgbWF4 KQoreworCS8qIG9ubHkgd3JpdGUgb25jZSAqLworCWlmICghcGFnZV9wb29sX21heCkKKwkJcGFn ZV9wb29sX21heCA9IG1heDsKK30KKwordW5zaWduZWQgbG9uZyBkcm1fcGFnZV9wb29sX2dldF9t YXgodm9pZCkKK3sKKwlyZXR1cm4gcGFnZV9wb29sX21heDsKK30KKwordW5zaWduZWQgbG9uZyBk cm1fcGFnZV9wb29sX2dldF90b3RhbCh2b2lkKQoreworCXJldHVybiBhdG9taWNfbG9uZ19yZWFk KCZ0b3RhbF9wYWdlcyk7Cit9CisKK2ludCBkcm1fcGFnZV9wb29sX2dldF9zaXplKHN0cnVjdCBk cm1fcGFnZV9wb29sICpwb29sKQoreworCWludCByZXQ7CisKKwlzcGluX2xvY2soJnBvb2wtPmxv Y2spOworCXJldCA9IHBvb2wtPmNvdW50OworCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKKwly ZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBkcm1fcGFnZV9wb29s X2ZyZWVfcGFnZXMoc3RydWN0IGRybV9wYWdlX3Bvb2wgKnBvb2wsCisJCQkJCQkgICAgc3RydWN0 IHBhZ2UgKnBhZ2UpCit7CisJcmV0dXJuIHBvb2wtPmZyZWUocGFnZSwgcG9vbC0+b3JkZXIpOwor fQorCitzdGF0aWMgaW50IGRybV9wYWdlX3Bvb2xfc2hyaW5rX29uZSh2b2lkKTsKKwordm9pZCBk cm1fcGFnZV9wb29sX2FkZChzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCwgc3RydWN0IHBhZ2Ug KnBhZ2UpCit7CisJc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZwYWdl LT5scnUsICZwb29sLT5pdGVtcyk7CisJcG9vbC0+Y291bnQrKzsKKwlhdG9taWNfbG9uZ19hZGQo MSA8PCBwb29sLT5vcmRlciwgJnRvdGFsX3BhZ2VzKTsKKwlzcGluX3VubG9jaygmcG9vbC0+bG9j ayk7CisKKwltb2Rfbm9kZV9wYWdlX3N0YXRlKHBhZ2VfcGdkYXQocGFnZSksIE5SX0tFUk5FTF9N SVNDX1JFQ0xBSU1BQkxFLAorCQkJICAgIDEgPDwgcG9vbC0+b3JkZXIpOworCisJLyogbWFrZSBz dXJlIHdlIGRvbid0IGdyb3cgdG9vIGxhcmdlICovCisJd2hpbGUgKHBhZ2VfcG9vbF9tYXggJiYg YXRvbWljX2xvbmdfcmVhZCgmdG90YWxfcGFnZXMpID4gcGFnZV9wb29sX21heCkKKwkJZHJtX3Bh Z2VfcG9vbF9zaHJpbmtfb25lKCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkcm1fcGFnZV9wb29s X2FkZCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqZHJtX3BhZ2VfcG9vbF9yZW1vdmUoc3RydWN0 IGRybV9wYWdlX3Bvb2wgKnBvb2wpCit7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisKKwlpZiAoIXBv b2wtPmNvdW50KQorCQlyZXR1cm4gTlVMTDsKKworCXBhZ2UgPSBsaXN0X2ZpcnN0X2VudHJ5KCZw b29sLT5pdGVtcywgc3RydWN0IHBhZ2UsIGxydSk7CisJcG9vbC0+Y291bnQtLTsKKwlhdG9taWNf bG9uZ19zdWIoMSA8PCBwb29sLT5vcmRlciwgJnRvdGFsX3BhZ2VzKTsKKworCWxpc3RfZGVsKCZw YWdlLT5scnUpOworCW1vZF9ub2RlX3BhZ2Vfc3RhdGUocGFnZV9wZ2RhdChwYWdlKSwgTlJfS0VS TkVMX01JU0NfUkVDTEFJTUFCTEUsCisJCQkgICAgLSgxIDw8IHBvb2wtPm9yZGVyKSk7CisJcmV0 dXJuIHBhZ2U7Cit9CisKK3N0cnVjdCBwYWdlICpkcm1fcGFnZV9wb29sX2ZldGNoKHN0cnVjdCBk cm1fcGFnZV9wb29sICpwb29sKQoreworCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKKworCWlm ICghcG9vbCkgeworCQlXQVJOX09OKCFwb29sKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJc3Bp bl9sb2NrKCZwb29sLT5sb2NrKTsKKwlwYWdlID0gZHJtX3BhZ2VfcG9vbF9yZW1vdmUocG9vbCk7 CisJc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOworCisJcmV0dXJuIHBhZ2U7Cit9CitFWFBPUlRf U1lNQk9MX0dQTChkcm1fcGFnZV9wb29sX2ZldGNoKTsKKworc3RydWN0IGRybV9wYWdlX3Bvb2wg KmRybV9wYWdlX3Bvb2xfY3JlYXRlKHVuc2lnbmVkIGludCBvcmRlciwKKwkJCQkJICAgaW50ICgq ZnJlZV9wYWdlKShzdHJ1Y3QgcGFnZSAqcCwgdW5zaWduZWQgaW50IG9yZGVyKSkKK3sKKwlzdHJ1 Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCA9IGttYWxsb2Moc2l6ZW9mKCpwb29sKSwgR0ZQX0tFUk5F TCk7CisKKwlpZiAoIXBvb2wpCisJCXJldHVybiBOVUxMOworCisJcG9vbC0+Y291bnQgPSAwOwor CUlOSVRfTElTVF9IRUFEKCZwb29sLT5pdGVtcyk7CisJcG9vbC0+b3JkZXIgPSBvcmRlcjsKKwlw b29sLT5mcmVlID0gZnJlZV9wYWdlOworCXNwaW5fbG9ja19pbml0KCZwb29sLT5sb2NrKTsKKwlJ TklUX0xJU1RfSEVBRCgmcG9vbC0+bGlzdCk7CisKKwltdXRleF9sb2NrKCZwb29sX2xpc3RfbG9j ayk7CisJbGlzdF9hZGQoJnBvb2wtPmxpc3QsICZwb29sX2xpc3QpOworCW11dGV4X3VubG9jaygm cG9vbF9saXN0X2xvY2spOworCisJcmV0dXJuIHBvb2w7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChk cm1fcGFnZV9wb29sX2NyZWF0ZSk7CisKK3ZvaWQgZHJtX3BhZ2VfcG9vbF9kZXN0cm95KHN0cnVj dCBkcm1fcGFnZV9wb29sICpwb29sKQoreworCXN0cnVjdCBwYWdlICpwYWdlOworCisJLyogUmVt b3ZlIHVzIGZyb20gdGhlIHBvb2wgbGlzdCAqLworCW11dGV4X2xvY2soJnBvb2xfbGlzdF9sb2Nr KTsKKwlsaXN0X2RlbCgmcG9vbC0+bGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZwb29sX2xpc3RfbG9j ayk7CisKKwkvKiBGcmVlIGFueSByZW1haW5pbmcgcGFnZXMgaW4gdGhlIHBvb2wgKi8KKwlzcGlu X2xvY2soJnBvb2wtPmxvY2spOworCXdoaWxlIChwb29sLT5jb3VudCkgeworCQlwYWdlID0gZHJt X3BhZ2VfcG9vbF9yZW1vdmUocG9vbCk7CisJCXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKKwkJ ZHJtX3BhZ2VfcG9vbF9mcmVlX3BhZ2VzKHBvb2wsIHBhZ2UpOworCQlzcGluX2xvY2soJnBvb2wt PmxvY2spOworCX0KKwlzcGluX3VubG9jaygmcG9vbC0+bG9jayk7CisKKwlrZnJlZShwb29sKTsK K30KK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9wYWdlX3Bvb2xfZGVzdHJveSk7CisKK3N0YXRpYyBp bnQgZHJtX3BhZ2VfcG9vbF9zaHJpbmtfb25lKHZvaWQpCit7CisJc3RydWN0IGRybV9wYWdlX3Bv b2wgKnBvb2w7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJaW50IG5yX2ZyZWVkID0gMDsKKworCW11 dGV4X2xvY2soJnBvb2xfbGlzdF9sb2NrKTsKKwlwb29sID0gbGlzdF9maXJzdF9lbnRyeSgmcG9v bF9saXN0LCB0eXBlb2YoKnBvb2wpLCBsaXN0KTsKKworCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7 CisJcGFnZSA9IGRybV9wYWdlX3Bvb2xfcmVtb3ZlKHBvb2wpOworCXNwaW5fdW5sb2NrKCZwb29s LT5sb2NrKTsKKworCWlmIChwYWdlKQorCQlucl9mcmVlZCA9IGRybV9wYWdlX3Bvb2xfZnJlZV9w YWdlcyhwb29sLCBwYWdlKTsKKworCWxpc3RfbW92ZV90YWlsKCZwb29sLT5saXN0LCAmcG9vbF9s aXN0KTsKKwltdXRleF91bmxvY2soJnBvb2xfbGlzdF9sb2NrKTsKKworCXJldHVybiBucl9mcmVl ZDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZHJtX3BhZ2VfcG9vbF9zaHJpbmtfY291bnQo c3RydWN0IHNocmlua2VyICpzaHJpbmtlciwKKwkJCQkJCXN0cnVjdCBzaHJpbmtfY29udHJvbCAq c2MpCit7CisJdW5zaWduZWQgbG9uZyBjb3VudCA9ICBhdG9taWNfbG9uZ19yZWFkKCZ0b3RhbF9w YWdlcyk7CisKKwlyZXR1cm4gY291bnQgPyBjb3VudCA6IFNIUklOS19FTVBUWTsKK30KKworc3Rh dGljIHVuc2lnbmVkIGxvbmcgZHJtX3BhZ2VfcG9vbF9zaHJpbmtfc2NhbihzdHJ1Y3Qgc2hyaW5r ZXIgKnNocmlua2VyLAorCQkJCQkgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICpzYykKK3sK KwlpbnQgdG9fc2NhbiA9IHNjLT5ucl90b19zY2FuOworCWludCBucl90b3RhbCA9IDA7CisKKwlp ZiAodG9fc2NhbiA9PSAwKQorCQlyZXR1cm4gMDsKKworCWRvIHsKKwkJaW50IG5yX2ZyZWVkID0g ZHJtX3BhZ2VfcG9vbF9zaHJpbmtfb25lKCk7CisKKwkJdG9fc2NhbiAtPSBucl9mcmVlZDsKKwkJ bnJfdG90YWwgKz0gbnJfZnJlZWQ7CisJfSB3aGlsZSAodG9fc2NhbiA+PSAwICYmIGF0b21pY19s b25nX3JlYWQoJnRvdGFsX3BhZ2VzKSk7CisKKwlyZXR1cm4gbnJfdG90YWw7Cit9CisKK3N0YXRp YyBzdHJ1Y3Qgc2hyaW5rZXIgcG9vbF9zaHJpbmtlciA9IHsKKwkuY291bnRfb2JqZWN0cyA9IGRy bV9wYWdlX3Bvb2xfc2hyaW5rX2NvdW50LAorCS5zY2FuX29iamVjdHMgPSBkcm1fcGFnZV9wb29s X3Nocmlua19zY2FuLAorCS5zZWVrcyA9IDEsCisJLmJhdGNoID0gMCwKK307CisKK2ludCBkcm1f cGFnZV9wb29sX2luaXRfc2hyaW5rZXIodm9pZCkKK3sKKwlyZXR1cm4gcmVnaXN0ZXJfc2hyaW5r ZXIoJnBvb2xfc2hyaW5rZXIpOworfQorbW9kdWxlX2luaXQoZHJtX3BhZ2VfcG9vbF9pbml0X3No cmlua2VyKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL3BhZ2VfcG9vbC5oIGIvaW5jbHVkZS9kcm0vcGFnZV9wb29sLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40N2UyNDBiMmJjNjkKLS0tIC9kZXYvbnVsbAorKysg Yi9pbmNsdWRlL2RybS9wYWdlX3Bvb2wuaApAQCAtMCwwICsxLDU0IEBACisvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgMjAyMCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lO RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9y czogQ2hyaXN0aWFuIEvDtm5pZworICovCisKKyNpZm5kZWYgX0RSTV9QQUdFX1BPT0xfSF8KKyNk ZWZpbmUgX0RSTV9QQUdFX1BPT0xfSF8KKworI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L2xsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworc3Ry dWN0IGRybV9wYWdlX3Bvb2wgeworCWludCBjb3VudDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGl0ZW1z OworCisJaW50IG9yZGVyOworCWludCAoKmZyZWUpKHN0cnVjdCBwYWdlICpwLCB1bnNpZ25lZCBp bnQgb3JkZXIpOworCisJc3BpbmxvY2tfdCBsb2NrOworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK K307CisKK3ZvaWQgZHJtX3BhZ2VfcG9vbF9zZXRfbWF4KHVuc2lnbmVkIGxvbmcgbWF4KTsKK3Vu c2lnbmVkIGxvbmcgZHJtX3BhZ2VfcG9vbF9nZXRfbWF4KHZvaWQpOwordW5zaWduZWQgbG9uZyBk cm1fcGFnZV9wb29sX2dldF90b3RhbCh2b2lkKTsKK2ludCBkcm1fcGFnZV9wb29sX2dldF9zaXpl KHN0cnVjdCBkcm1fcGFnZV9wb29sICpwb29sKTsKK3N0cnVjdCBwYWdlICpkcm1fcGFnZV9wb29s X2ZldGNoKHN0cnVjdCBkcm1fcGFnZV9wb29sICpwb29sKTsKK3ZvaWQgZHJtX3BhZ2VfcG9vbF9h ZGQoc3RydWN0IGRybV9wYWdlX3Bvb2wgKnBvb2wsIHN0cnVjdCBwYWdlICpwYWdlKTsKK3N0cnVj dCBkcm1fcGFnZV9wb29sICpkcm1fcGFnZV9wb29sX2NyZWF0ZSh1bnNpZ25lZCBpbnQgb3JkZXIs CisJCQkJCSAgIGludCAoKmZyZWVfcGFnZSkoc3RydWN0IHBhZ2UgKnAsIHVuc2lnbmVkIGludCBv cmRlcikpOwordm9pZCBkcm1fcGFnZV9wb29sX2Rlc3Ryb3koc3RydWN0IGRybV9wYWdlX3Bvb2wg KnBvb2wpOworCisjZW5kaWYKLS0gCjIuMjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==