From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH] drm/ast: Replace struct ast_framebuffer with GEM framebuffer helpers Date: Thu, 27 Jun 2019 19:34:10 +0200 Message-ID: <20190627173410.8300-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 633366E31E for ; Thu, 27 Jun 2019 17:34:20 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: kraxel@redhat.com, airlied@redhat.com, daniel@ffwll.ch, maarten.lankhorst@linux.intel.com, maxime.ripard@bootlin.com, sean@poorly.run, sam@ravnborg.org, dri-devel@lists.freedesktop.org Cc: Thomas Zimmermann List-Id: dri-devel@lists.freedesktop.org VGhlIGFzdCBkcml2ZXIncyBzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyIGlzIGEgYnVmZmVyIG9iamVj dCB3aXRoIEdFTQppbnRlcmZhY2UuIFRoZXJlIGFyZSBhbHJlYWR5IEdFTSBmcmFtZWJ1ZmZlciBo ZWxwZXJzIHRoYXQgaW1wbGVtZW50CnRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkuIENvbnZlcnQgYXN0 IHRvIHRoZXNlLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5u QHN1c2UuZGU+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggIHwgMTIgLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYyAgIHwgMjcgKysrKysrLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYyB8IDY1ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyB8IDIyICsrKysrLS0t LS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vYXN0L2FzdF9kcnYuaAppbmRleCA2ODRlMTVlNjRhNjIuLmNhNzk0YTNmY2Y4ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfZHJ2LmgKQEAgLTIzOSwxNCArMjM5LDggQEAgc3RydWN0IGFzdF9lbmNvZGVy IHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKIH07CiAKLXN0cnVjdCBhc3RfZnJhbWVidWZm ZXIgewotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgYmFzZTsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iajsKLX07Ci0KIHN0cnVjdCBhc3RfZmJkZXYgewogCXN0cnVjdCBkcm1fZmJfaGVscGVy IGhlbHBlcjsgLyogbXVzdCBiZSBmaXJzdCAqLwotCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgYWZi OwogCXZvaWQgKnN5c3JhbTsKIAlpbnQgc2l6ZTsKIAlpbnQgeDEsIHkxLCB4MiwgeTI7IC8qIGRp cnR5IHJlY3QgKi8KQEAgLTI1Niw3ICsyNTAsNiBAQCBzdHJ1Y3QgYXN0X2ZiZGV2IHsKICNkZWZp bmUgdG9fYXN0X2NydGMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBhc3RfY3J0YywgYmFzZSkK ICNkZWZpbmUgdG9fYXN0X2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGFzdF9j b25uZWN0b3IsIGJhc2UpCiAjZGVmaW5lIHRvX2FzdF9lbmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4 LCBzdHJ1Y3QgYXN0X2VuY29kZXIsIGJhc2UpCi0jZGVmaW5lIHRvX2FzdF9mcmFtZWJ1ZmZlcih4 KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciwgYmFzZSkKIAogc3RydWN0 IGFzdF92Ymlvc19zdGR0YWJsZSB7CiAJdTggbWlzYzsKQEAgLTI5NiwxMSArMjg5LDYgQEAgc3Ry dWN0IGFzdF92Ymlvc19tb2RlX2luZm8gewogZXh0ZXJuIGludCBhc3RfbW9kZV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIHZvaWQgYXN0X21vZGVfZmluaShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIAotaW50IGFzdF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCi0JCQkgc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYXN0X2ZiLAotCQkJIGNvbnN0 IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCwKLQkJCSBzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaik7Ci0KIGludCBhc3RfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKIHZvaWQgYXN0X2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGFz dF9mYmRldl9zZXRfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc3RhdGUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hc3QvYXN0X2ZiLmMKaW5kZXggODIwMGIyNWRhZDE2Li5hODQ5ZTU4YjQwYmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Fz dC9hc3RfZmIuYwpAQCAtMzgsOSArMzgsMTAgQEAKIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5o PgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1f ZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+Ci0jaW5jbHVk ZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiYXN0X2Rydi5oIgogCkBAIC01 MCwxNSArNTEsMTYgQEAgc3RhdGljIHZvaWQgYXN0X2RpcnR5X3VwZGF0ZShzdHJ1Y3QgYXN0X2Zi ZGV2ICphZmJkZXYsCiAJaW50IGk7CiAJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibzsK IAlpbnQgc3JjX29mZnNldCwgZHN0X29mZnNldDsKLQlpbnQgYnBwID0gYWZiZGV2LT5hZmIuYmFz ZS5mb3JtYXQtPmNwcFswXTsKIAlpbnQgcmV0OwogCXU4ICpkc3Q7CiAJYm9vbCB1bm1hcCA9IGZh bHNlOwogCWJvb2wgc3RvcmVfZm9yX2xhdGVyID0gZmFsc2U7CiAJaW50IHgyLCB5MjsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gYWZiZGV2LT5o ZWxwZXIuZmI7CisJaW50IGJwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAotCWdibyA9IGRybV9n ZW1fdnJhbV9vZl9nZW0oYWZiZGV2LT5hZmIub2JqKTsKKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2Zf Z2VtKGZiLT5vYmpbMF0pOwogCiAJaWYgKGRybV9jYW5fc2xlZXAoKSkgewogCQkvKiBXZSBwaW4g dGhlIEJPIHNvIGl0IHdvbid0IGJlIG1vdmVkIGR1cmluZyB0aGUKQEAgLTExNiw4ICsxMTgsNyBA QCBzdGF0aWMgdm9pZCBhc3RfZGlydHlfdXBkYXRlKHN0cnVjdCBhc3RfZmJkZXYgKmFmYmRldiwK IAogCWZvciAoaSA9IHk7IGkgPD0geTI7IGkrKykgewogCQkvKiBhc3N1bWUgZXF1YWwgc3RyaWRl IGZvciBub3cgKi8KLQkJc3JjX29mZnNldCA9IGRzdF9vZmZzZXQgPQotCQkJaSAqIGFmYmRldi0+ YWZiLmJhc2UucGl0Y2hlc1swXSArICh4ICogYnBwKTsKKwkJc3JjX29mZnNldCA9IGRzdF9vZmZz ZXQgPSBpICogZmItPnBpdGNoZXNbMF0gKyAoeCAqIGJwcCk7CiAJCW1lbWNweV90b2lvKGRzdCAr IGRzdF9vZmZzZXQsIGFmYmRldi0+c3lzcmFtICsgc3JjX29mZnNldCwKIAkJCSAgICAoeDIgLSB4 ICsgMSkgKiBicHApOwogCX0KQEAgLTIyMiwxNCArMjIzLDE1IEBAIHN0YXRpYyBpbnQgYXN0ZmJf Y3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJCXJldCA9IFBUUl9FUlIoaW5m byk7CiAJCWdvdG8gb3V0OwogCX0KLQlyZXQgPSBhc3RfZnJhbWVidWZmZXJfaW5pdChkZXYsICZh ZmJkZXYtPmFmYiwgJm1vZGVfY21kLCBnb2JqKTsKLQlpZiAocmV0KQorCWZiID0gZHJtX2dlbV9m YmRldl9mYl9jcmVhdGUoZGV2LCBzaXplcywgMCwgZ29iaiwgTlVMTCk7CisJaWYgKElTX0VSUihm YikpIHsKKwkJcmV0ID0gUFRSX0VSUihmYik7CiAJCWdvdG8gb3V0OworCX0KIAogCWFmYmRldi0+ c3lzcmFtID0gc3lzcmFtOwogCWFmYmRldi0+c2l6ZSA9IHNpemU7CiAKLQlmYiA9ICZhZmJkZXYt PmFmYi5iYXNlOwogCWFmYmRldi0+aGVscGVyLmZiID0gZmI7CiAKIAlpbmZvLT5mYm9wcyA9ICZh c3RmYl9vcHM7CkBAIC0yNjEsMjAgKzI2MywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9m Yl9oZWxwZXJfZnVuY3MgYXN0X2ZiX2hlbHBlcl9mdW5jcyA9IHsKIHN0YXRpYyB2b2lkIGFzdF9m YmRldl9kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICBzdHJ1Y3QgYXN0 X2ZiZGV2ICphZmJkZXYpCiB7Ci0Jc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYWZiID0gJmFmYmRl di0+YWZiOwotCiAJZHJtX2hlbHBlcl9mb3JjZV9kaXNhYmxlX2FsbChkZXYpOwogCWRybV9mYl9o ZWxwZXJfdW5yZWdpc3Rlcl9mYmkoJmFmYmRldi0+aGVscGVyKTsKIAotCWlmIChhZmItPm9iaikg ewotCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoYWZiLT5vYmopOwotCQlhZmItPm9iaiA9 IE5VTEw7Ci0JfQogCWRybV9mYl9oZWxwZXJfZmluaSgmYWZiZGV2LT5oZWxwZXIpOworCWRybV9m cmFtZWJ1ZmZlcl9wdXQoYWZiZGV2LT5oZWxwZXIuZmIpOwogCiAJdmZyZWUoYWZiZGV2LT5zeXNy YW0pOwotCWRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUoJmFmYi0+YmFzZSk7Ci0J ZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoJmFmYi0+YmFzZSk7CiB9CiAKIGludCBhc3RfZmJkZXZf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jCmluZGV4IDRj N2UzMWNiNDVmZi4uMWJkNjE2OTZlNTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0 L2FzdF9tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jCkBAIC0yOCw5 ICsyOCw5IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJhc3RfZHJ2LmgiCiAK LQotI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRj X2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJt L2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAKIHZvaWQgYXN0X3NldF9pbmRleF9yZWdf bWFzayhzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCwKIAkJCSAgICB1aW50MzJfdCBiYXNlLCB1aW50 OF90IGluZGV4LApAQCAtMzgzLDY3ICszODMsOCBAQCBzdGF0aWMgaW50IGFzdF9nZXRfZHJhbV9p bmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lk IGFzdF91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIp Ci17Ci0Jc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYXN0X2ZiID0gdG9fYXN0X2ZyYW1lYnVmZmVy KGZiKTsKLQotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChhc3RfZmItPm9iaik7Ci0JZHJt X2ZyYW1lYnVmZmVyX2NsZWFudXAoZmIpOwotCWtmcmVlKGFzdF9mYik7Ci19Ci0KLXN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGFzdF9mYl9mdW5jcyA9IHsKLQkuZGVz dHJveSA9IGFzdF91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3ksCi19OwotCi0KLWludCBhc3RfZnJh bWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJIHN0cnVjdCBhc3RfZnJh bWVidWZmZXIgKmFzdF9mYiwKLQkJCSBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9k ZV9jbWQsCi0JCQkgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JaW50IHJldDsKLQot CWRybV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdChkZXYsICZhc3RfZmItPmJhc2UsIG1vZGVf Y21kKTsKLQlhc3RfZmItPm9iaiA9IG9iajsKLQlyZXQgPSBkcm1fZnJhbWVidWZmZXJfaW5pdChk ZXYsICZhc3RfZmItPmJhc2UsICZhc3RfZmJfZnVuY3MpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VS Uk9SKCJmcmFtZWJ1ZmZlciBpbml0IGZhaWxlZCAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsK LQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKLWFz dF91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCSAgICAg ICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCi0JICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQyICptb2RlX2NtZCkKLXsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1 Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmI7Ci0JaW50IHJldDsKLQotCW9iaiA9IGRybV9nZW1f b2JqZWN0X2xvb2t1cChmaWxwLCBtb2RlX2NtZC0+aGFuZGxlc1swXSk7Ci0JaWYgKG9iaiA9PSBO VUxMKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKLQotCWFzdF9mYiA9IGt6YWxsb2Moc2l6 ZW9mKCphc3RfZmIpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWFzdF9mYikgewotCQlkcm1fZ2VtX29i amVjdF9wdXRfdW5sb2NrZWQob2JqKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JfQot Ci0JcmV0ID0gYXN0X2ZyYW1lYnVmZmVyX2luaXQoZGV2LCBhc3RfZmIsIG1vZGVfY21kLCBvYmop OwotCWlmIChyZXQpIHsKLQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7Ci0JCWtm cmVlKGFzdF9mYik7Ci0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JfQotCXJldHVybiAmYXN0X2Zi LT5iYXNlOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBh c3RfbW9kZV9mdW5jcyA9IHsKLQkuZmJfY3JlYXRlID0gYXN0X3VzZXJfZnJhbWVidWZmZXJfY3Jl YXRlLAorCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZQogfTsKIAogc3RhdGljIHUzMiBh c3RfZ2V0X3ZyYW1faW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9k ZS5jCmluZGV4IGZmY2NiZWY5NjJhNC4uYzQ4MjQ5ZGY3NThlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9k ZS5jCkBAIC01MjYsMjcgKzUyNiwyMSBAQCBzdGF0aWMgaW50IGFzdF9jcnRjX2RvX3NldF9iYXNl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQlpbnQgeCwgaW50IHksIGludCBhdG9taWMpCiB7 CiAJc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCXN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9m YjsKIAlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvOwogCWludCByZXQ7CiAJczY0IGdw dV9hZGRyOwogCXZvaWQgKmJhc2U7CiAKIAlpZiAoIWF0b21pYyAmJiBmYikgewotCQlhc3RfZmIg PSB0b19hc3RfZnJhbWVidWZmZXIoZmIpOwotCQlvYmogPSBhc3RfZmItPm9iajsKLQkJZ2JvID0g ZHJtX2dlbV92cmFtX29mX2dlbShvYmopOworCQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGZi LT5vYmpbMF0pOwogCiAJCS8qIHVubWFwIGlmIGNvbnNvbGUgKi8KLQkJaWYgKCZhc3QtPmZiZGV2 LT5hZmIgPT0gYXN0X2ZiKQorCQlpZiAoYXN0LT5mYmRldi0+aGVscGVyLmZiID09IGZiKQogCQkJ ZHJtX2dlbV92cmFtX2t1bm1hcChnYm8pOwogCQlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIAl9 CiAKLQlhc3RfZmIgPSB0b19hc3RfZnJhbWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwotCW9i aiA9IGFzdF9mYi0+b2JqOwotCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKKwlnYm8g PSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGNydGMtPnByaW1hcnktPmZiLT5vYmpbMF0pOwogCiAJcmV0 ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIERSTV9HRU1fVlJBTV9QTF9GTEFHX1ZSQU0pOwogCWlm IChyZXQpCkBAIC01NTcsNyArNTUxLDcgQEAgc3RhdGljIGludCBhc3RfY3J0Y19kb19zZXRfYmFz ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWdvdG8gZXJyX2RybV9nZW1fdnJhbV91bnBpbjsK IAl9CiAKLQlpZiAoJmFzdC0+ZmJkZXYtPmFmYiA9PSBhc3RfZmIpIHsKKwlpZiAoYXN0LT5mYmRl di0+aGVscGVyLmZiID09IGNydGMtPnByaW1hcnktPmZiKSB7CiAJCS8qIGlmIHB1c2hpbmcgY29u c29sZSBpbiBrbWFwIGl0ICovCiAJCWJhc2UgPSBkcm1fZ2VtX3ZyYW1fa21hcChnYm8sIHRydWUs IE5VTEwpOwogCQlpZiAoSVNfRVJSKGJhc2UpKSB7CkBAIC02MjUsMTIgKzYxOSwxMiBAQCBzdGF0 aWMgdm9pZCBhc3RfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlhc3RfY3J0 Y19kcG1zKGNydGMsIERSTV9NT0RFX0RQTVNfT0ZGKTsKIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIp IHsKIAkJc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwot CQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmIgPSB0b19hc3RfZnJhbWVidWZmZXIoY3J0 Yy0+cHJpbWFyeS0+ZmIpOwotCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGFzdF9mYi0+ b2JqOwotCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29m X2dlbShvYmopOworCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnkt PmZiOworCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0KKwkJCWRybV9nZW1fdnJh bV9vZl9nZW0oZmItPm9ialswXSk7CiAKIAkJLyogdW5tYXAgaWYgY29uc29sZSAqLwotCQlpZiAo JmFzdC0+ZmJkZXYtPmFmYiA9PSBhc3RfZmIpCisJCWlmIChhc3QtPmZiZGV2LT5oZWxwZXIuZmIg PT0gZmIpCiAJCQlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CiAJCWRybV9nZW1fdnJhbV91bnBp bihnYm8pOwogCX0KLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVs