From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harish Kasiviswanathan Subject: [PATCH v2 1/2] drm/amdgpu: Refactor amdgpu_move_blit Date: Fri, 6 Oct 2017 18:08:51 -0400 Message-ID: <1507327732-8797-1-git-send-email-Harish.Kasiviswanathan@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Harish Kasiviswanathan QWRkIG1vcmUgZ2VuZXJpYyBmdW5jdGlvbiBhbWRncHVfY29weV90dG1fbWVtX3RvX21lbSgpIHRo YXQgc3VwcG9ydHMKYXJiaXRyYXJ5IGNvcHkgc2l6ZSwgb2Zmc2V0cyBhbmQgdHdvIEJPcyAoc291 cmNlICYgZGVzdC4pLgoKVGhpcyBpcyB1c2VmdWwgZm9yIEtGRCBDcm9zcyBNZW1vcnkgQXR0YWNo IGZlYXR1cmUgd2hlcmUgZGF0YSBuZWVkcyB0bwpiZSBjb3BpZWQgZnJvbSBCT3MgZnJvbSBkaWZm ZXJlbnQgcHJvY2Vzc2VzCgp2MjogQWRkIHN0cnVjdCBhbWRncHVfY29weV9tZW0gYW5kIGNoYW5n ZWQgYW1kZ3B1X2NvcHlfdHRtX21lbV90b19tZW0oKQpmdW5jdGlvbiBwYXJhbWV0ZXJzIHRvIHVz ZSB0aGUgc3RydWN0CgpDaGFuZ2UtSWQ6IEk4NDhkNTQxYTg0YTFjMmQxMjgyN2Q5ZGNmNmQ5MDU0 ZDg1NGI0MTU5ClNpZ25lZC1vZmYtYnk6IEhhcmlzaCBLYXNpdmlzd2FuYXRoYW4gPEhhcmlzaC5L YXNpdmlzd2FuYXRoYW5AYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmMgfCAxNjkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCB8ICAxMiArKysKIDIgZmlsZXMgY2hh bmdlZCwgMTMyIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYwppbmRleCAxMDg2ZjAzLi5kZGE0ZjA4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCkBAIC0yODksOTcgKzI4OSwxNjggQEAgc3Rh dGljIHVpbnQ2NF90IGFtZGdwdV9tbV9ub2RlX2FkZHIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAlyZXR1cm4gYWRkcjsKIH0KIAotc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkgICAgYm9vbCBldmljdCwgYm9vbCBub193 YWl0X2dwdSwKLQkJCSAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0sCi0JCQkgICAgc3Ry dWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtKQorLyoqCisgKiBhbWRncHVfY29weV90dG1fbWVtX3Rv X21lbSAtIEhlbHBlciBmdW5jdGlvbiBmb3IgY29weQorICoKKyAqIFRoZSBmdW5jdGlvbiBjb3Bp ZXMgQHNpemUgYnl0ZXMgZnJvbSB7c3JjLT5tZW0gKyBzcmMtPm9mZnNldH0gdG8KKyAqIHtkc3Qt Pm1lbSArIGRzdC0+b2Zmc2V0fS4gc3JjLT5ibyBhbmQgZHN0LT5ibyBjb3VsZCBiZSBzYW1lIEJP IGZvciBhCisgKiBtb3ZlIGFuZCBkaWZmZXJlbnQgZm9yIGEgQk8gdG8gQk8gY29weS4KKyAqCisg KiBAZjogUmV0dXJucyB0aGUgbGFzdCBmZW5jZSBpZiBtdWx0aXBsZSBqb2JzIGFyZSBzdWJtaXR0 ZWQuCisgKi8KK2ludCBhbWRncHVfY29weV90dG1fbWVtX3RvX21lbShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NvcHlfbWVtICpzcmMsCisJCQkg ICAgICAgc3RydWN0IGFtZGdwdV9jb3B5X21lbSAqZHN0LAorCQkJICAgICAgIHVpbnQ2NF90IHNp emUsCisJCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKKwkJCSAgICAg ICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IGFtZGdwdV90dG1fYWRldihiby0+YmRldik7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0g YWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKLQotCXN0cnVjdCBkcm1fbW1fbm9kZSAqb2xk X21tLCAqbmV3X21tOwotCXVpbnQ2NF90IG9sZF9zdGFydCwgb2xkX3NpemUsIG5ld19zdGFydCwg bmV3X3NpemU7Ci0JdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7CisJc3RydWN0IGRybV9tbV9ub2Rl ICpzcmNfbW0sICpkc3RfbW07CisJdWludDY0X3Qgc3JjX25vZGVfc3RhcnQsIGRzdF9ub2RlX3N0 YXJ0LCBzcmNfbm9kZV9zaXplLAorCQkgZHN0X25vZGVfc2l6ZSwgc3JjX3BhZ2Vfb2Zmc2V0LCBk c3RfcGFnZV9vZmZzZXQ7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwotCWludCBy OwotCi0JQlVJTERfQlVHX09OKChQQUdFX1NJWkUgJSBBTURHUFVfR1BVX1BBR0VfU0laRSkgIT0g MCk7CisJaW50IHIgPSAwOworCWNvbnN0IHVpbnQ2NF90IEdUVF9NQVhfQllURVMgPSAoQU1ER1BV X0dUVF9NQVhfVFJBTlNGRVJfU0laRSAqCisJCQkJCUFNREdQVV9HUFVfUEFHRV9TSVpFKTsKIAog CWlmICghcmluZy0+cmVhZHkpIHsKIAkJRFJNX0VSUk9SKCJUcnlpbmcgdG8gbW92ZSBtZW1vcnkg d2l0aCByaW5nIHR1cm5lZCBvZmYuXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0Jb2xk X21tID0gb2xkX21lbS0+bW1fbm9kZTsKLQlvbGRfc2l6ZSA9IG9sZF9tbS0+c2l6ZTsKLQlvbGRf c3RhcnQgPSBhbWRncHVfbW1fbm9kZV9hZGRyKGJvLCBvbGRfbW0sIG9sZF9tZW0pOworCXNyY19t bSA9IHNyYy0+bWVtLT5tbV9ub2RlOworCXdoaWxlIChzcmMtPm9mZnNldCA+PSAoc3JjX21tLT5z aXplIDw8IFBBR0VfU0hJRlQpKSB7CisJCXNyYy0+b2Zmc2V0IC09IChzcmNfbW0tPnNpemUgPDwg UEFHRV9TSElGVCk7CisJCSsrc3JjX21tOworCX0KKwlzcmNfbm9kZV9zdGFydCA9IGFtZGdwdV9t bV9ub2RlX2FkZHIoc3JjLT5ibywgc3JjX21tLCBzcmMtPm1lbSkgKworCQkJCQkgICAgIHNyYy0+ b2Zmc2V0OworCXNyY19ub2RlX3NpemUgPSAoc3JjX21tLT5zaXplIDw8IFBBR0VfU0hJRlQpIC0g c3JjLT5vZmZzZXQ7CisJc3JjX3BhZ2Vfb2Zmc2V0ID0gc3JjX25vZGVfc3RhcnQgJiAoUEFHRV9T SVpFIC0gMSk7CiAKLQluZXdfbW0gPSBuZXdfbWVtLT5tbV9ub2RlOwotCW5ld19zaXplID0gbmV3 X21tLT5zaXplOwotCW5ld19zdGFydCA9IGFtZGdwdV9tbV9ub2RlX2FkZHIoYm8sIG5ld19tbSwg bmV3X21lbSk7CisJZHN0X21tID0gZHN0LT5tZW0tPm1tX25vZGU7CisJd2hpbGUgKGRzdC0+b2Zm c2V0ID49IChkc3RfbW0tPnNpemUgPDwgUEFHRV9TSElGVCkpIHsKKwkJZHN0LT5vZmZzZXQgLT0g KGRzdF9tbS0+c2l6ZSA8PCBQQUdFX1NISUZUKTsKKwkJKytkc3RfbW07CisJfQorCWRzdF9ub2Rl X3N0YXJ0ID0gYW1kZ3B1X21tX25vZGVfYWRkcihkc3QtPmJvLCBkc3RfbW0sIGRzdC0+bWVtKSAr CisJCQkJCSAgICAgZHN0LT5vZmZzZXQ7CisJZHN0X25vZGVfc2l6ZSA9IChkc3RfbW0tPnNpemUg PDwgUEFHRV9TSElGVCkgLSBkc3QtPm9mZnNldDsKKwlkc3RfcGFnZV9vZmZzZXQgPSBkc3Rfbm9k ZV9zdGFydCAmIChQQUdFX1NJWkUgLSAxKTsKIAotCW51bV9wYWdlcyA9IG5ld19tZW0tPm51bV9w YWdlczsKIAltdXRleF9sb2NrKCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7Ci0Jd2hpbGUg KG51bV9wYWdlcykgewotCQl1bnNpZ25lZCBsb25nIGN1cl9wYWdlcyA9IG1pbihtaW4ob2xkX3Np emUsIG5ld19zaXplKSwKLQkJCQkJICAgICAgKHU2NClBTURHUFVfR1RUX01BWF9UUkFOU0ZFUl9T SVpFKTsKLQkJdWludDY0X3QgZnJvbSA9IG9sZF9zdGFydCwgdG8gPSBuZXdfc3RhcnQ7CisKKwl3 aGlsZSAoc2l6ZSkgeworCQl1bnNpZ25lZCBsb25nIGN1cl9zaXplOworCQl1aW50NjRfdCBmcm9t ID0gc3JjX25vZGVfc3RhcnQsIHRvID0gZHN0X25vZGVfc3RhcnQ7CiAJCXN0cnVjdCBkbWFfZmVu Y2UgKm5leHQ7CiAKLQkJaWYgKG9sZF9tZW0tPm1lbV90eXBlID09IFRUTV9QTF9UVCAmJgotCQkg ICAgIWFtZGdwdV9ndHRfbWdyX2lzX2FsbG9jYXRlZChvbGRfbWVtKSkgewotCQkJciA9IGFtZGdw dV9tYXBfYnVmZmVyKGJvLCBvbGRfbWVtLCBjdXJfcGFnZXMsCi0JCQkJCSAgICAgIG9sZF9zdGFy dCwgMCwgcmluZywgJmZyb20pOworCQkvKiBDb3B5IHNpemUgY2Fubm90IGV4Y2VlZCBHVFRfTUFY X0JZVEVTLiBTbyBpZiBzcmMgb3IgZHN0CisJCSAqIGJlZ2lucyBhdCBhbiBvZmZzZXQsIHRoZW4g YWRqdXN0IHRoZSBzaXplIGFjY29yZGluZ2x5CisJCSAqLworCQljdXJfc2l6ZSA9IG1pbjMobWlu KHNyY19ub2RlX3NpemUsIGRzdF9ub2RlX3NpemUpLCBzaXplLAorCQkJCUdUVF9NQVhfQllURVMp OworCQlpZiAoY3VyX3NpemUgKyBzcmNfcGFnZV9vZmZzZXQgPiBHVFRfTUFYX0JZVEVTIHx8CisJ CSAgICBjdXJfc2l6ZSArIGRzdF9wYWdlX29mZnNldCA+IEdUVF9NQVhfQllURVMpCisJCQljdXJf c2l6ZSAtPSBtYXgoc3JjX3BhZ2Vfb2Zmc2V0LCBkc3RfcGFnZV9vZmZzZXQpOworCisJCS8qIE1h cCBvbmx5IHdoYXQgbmVlZHMgdG8gYmUgYWNjZXNzZWQuIE1hcCBzcmMgdG8gd2luZG93IDAgYW5k CisJCSAqIGRzdCB0byB3aW5kb3cgMQorCQkgKi8KKwkJaWYgKHNyYy0+bWVtLT5tZW1fdHlwZSA9 PSBUVE1fUExfVFQgJiYKKwkJICAgICFhbWRncHVfZ3R0X21ncl9pc19hbGxvY2F0ZWQoc3JjLT5t ZW0pKSB7CisJCQlyID0gYW1kZ3B1X21hcF9idWZmZXIoc3JjLT5ibywgc3JjLT5tZW0sCisJCQkJ CVBGTl9VUChjdXJfc2l6ZSArIHNyY19wYWdlX29mZnNldCksCisJCQkJCXNyY19ub2RlX3N0YXJ0 LCAwLCByaW5nLAorCQkJCQkmZnJvbSk7CiAJCQlpZiAocikKIAkJCQlnb3RvIGVycm9yOworCQkJ LyogQWRqdXN0IHRoZSBvZmZzZXQgYmVjYXVzZSBhbWRncHVfbWFwX2J1ZmZlciByZXR1cm5zCisJ CQkgKiBzdGFydCBvZiBtYXBwZWQgcGFnZQorCQkJICovCisJCQlmcm9tICs9IHNyY19wYWdlX29m ZnNldDsKIAkJfQogCi0JCWlmIChuZXdfbWVtLT5tZW1fdHlwZSA9PSBUVE1fUExfVFQgJiYKLQkJ ICAgICFhbWRncHVfZ3R0X21ncl9pc19hbGxvY2F0ZWQobmV3X21lbSkpIHsKLQkJCXIgPSBhbWRn cHVfbWFwX2J1ZmZlcihibywgbmV3X21lbSwgY3VyX3BhZ2VzLAotCQkJCQkgICAgICBuZXdfc3Rh cnQsIDEsIHJpbmcsICZ0byk7CisJCWlmIChkc3QtPm1lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1RU ICYmCisJCSAgICAhYW1kZ3B1X2d0dF9tZ3JfaXNfYWxsb2NhdGVkKGRzdC0+bWVtKSkgeworCQkJ ciA9IGFtZGdwdV9tYXBfYnVmZmVyKGRzdC0+Ym8sIGRzdC0+bWVtLAorCQkJCQlQRk5fVVAoY3Vy X3NpemUgKyBkc3RfcGFnZV9vZmZzZXQpLAorCQkJCQlkc3Rfbm9kZV9zdGFydCwgMSwgcmluZywK KwkJCQkJJnRvKTsKIAkJCWlmIChyKQogCQkJCWdvdG8gZXJyb3I7CisJCQl0byArPSBkc3RfcGFn ZV9vZmZzZXQ7CiAJCX0KIAotCQlyID0gYW1kZ3B1X2NvcHlfYnVmZmVyKHJpbmcsIGZyb20sIHRv LAotCQkJCSAgICAgICBjdXJfcGFnZXMgKiBQQUdFX1NJWkUsCi0JCQkJICAgICAgIGJvLT5yZXN2 LCAmbmV4dCwgZmFsc2UsIHRydWUpOworCQlyID0gYW1kZ3B1X2NvcHlfYnVmZmVyKHJpbmcsIGZy b20sIHRvLCBjdXJfc2l6ZSwKKwkJCQkgICAgICAgcmVzdiwgJm5leHQsIGZhbHNlLCB0cnVlKTsK IAkJaWYgKHIpCiAJCQlnb3RvIGVycm9yOwogCiAJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQlm ZW5jZSA9IG5leHQ7CiAKLQkJbnVtX3BhZ2VzIC09IGN1cl9wYWdlczsKLQkJaWYgKCFudW1fcGFn ZXMpCisJCXNpemUgLT0gY3VyX3NpemU7CisJCWlmICghc2l6ZSkKIAkJCWJyZWFrOwogCi0JCW9s ZF9zaXplIC09IGN1cl9wYWdlczsKLQkJaWYgKCFvbGRfc2l6ZSkgewotCQkJb2xkX3N0YXJ0ID0g YW1kZ3B1X21tX25vZGVfYWRkcihibywgKytvbGRfbW0sIG9sZF9tZW0pOwotCQkJb2xkX3NpemUg PSBvbGRfbW0tPnNpemU7CisJCXNyY19ub2RlX3NpemUgLT0gY3VyX3NpemU7CisJCWlmICghc3Jj X25vZGVfc2l6ZSkgeworCQkJc3JjX25vZGVfc3RhcnQgPSBhbWRncHVfbW1fbm9kZV9hZGRyKHNy Yy0+Ym8sICsrc3JjX21tLAorCQkJCQkJCSAgICAgc3JjLT5tZW0pOworCQkJc3JjX25vZGVfc2l6 ZSA9IChzcmNfbW0tPnNpemUgPDwgUEFHRV9TSElGVCk7CiAJCX0gZWxzZSB7Ci0JCQlvbGRfc3Rh cnQgKz0gY3VyX3BhZ2VzICogUEFHRV9TSVpFOworCQkJc3JjX25vZGVfc3RhcnQgKz0gY3VyX3Np emU7CisJCQlzcmNfcGFnZV9vZmZzZXQgPSBzcmNfbm9kZV9zdGFydCAmIChQQUdFX1NJWkUgLSAx KTsKIAkJfQotCi0JCW5ld19zaXplIC09IGN1cl9wYWdlczsKLQkJaWYgKCFuZXdfc2l6ZSkgewot CQkJbmV3X3N0YXJ0ID0gYW1kZ3B1X21tX25vZGVfYWRkcihibywgKytuZXdfbW0sIG5ld19tZW0p OwotCQkJbmV3X3NpemUgPSBuZXdfbW0tPnNpemU7CisJCWRzdF9ub2RlX3NpemUgLT0gY3VyX3Np emU7CisJCWlmICghZHN0X25vZGVfc2l6ZSkgeworCQkJZHN0X25vZGVfc3RhcnQgPSBhbWRncHVf bW1fbm9kZV9hZGRyKGRzdC0+Ym8sICsrZHN0X21tLAorCQkJCQkJCSAgICAgZHN0LT5tZW0pOwor CQkJZHN0X25vZGVfc2l6ZSA9IChkc3RfbW0tPnNpemUgPDwgUEFHRV9TSElGVCk7CiAJCX0gZWxz ZSB7Ci0JCQluZXdfc3RhcnQgKz0gY3VyX3BhZ2VzICogUEFHRV9TSVpFOworCQkJZHN0X25vZGVf c3RhcnQgKz0gY3VyX3NpemU7CisJCQlkc3RfcGFnZV9vZmZzZXQgPSBkc3Rfbm9kZV9zdGFydCAm IChQQUdFX1NJWkUgLSAxKTsKIAkJfQogCX0KK2Vycm9yOgogCW11dGV4X3VubG9jaygmYWRldi0+ bW1hbi5ndHRfd2luZG93X2xvY2spOworCWlmIChmKQorCQkqZiA9IGRtYV9mZW5jZV9nZXQoZmVu Y2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCXJldHVybiByOworfQorCisKK3N0YXRpYyBp bnQgYW1kZ3B1X21vdmVfYmxpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkJICAg IGJvb2wgZXZpY3QsIGJvb2wgbm9fd2FpdF9ncHUsCisJCQkgICAgc3RydWN0IHR0bV9tZW1fcmVn ICpuZXdfbWVtLAorCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSkKK3sKKwlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+YmRldik7CisJc3Ry dWN0IGFtZGdwdV9jb3B5X21lbSBzcmMsIGRzdDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9 IE5VTEw7CisJaW50IHI7CisKKwlzcmMuYm8gPSBibzsKKwlkc3QuYm8gPSBibzsKKwlzcmMubWVt ID0gb2xkX21lbTsKKwlkc3QubWVtID0gbmV3X21lbTsKKwlzcmMub2Zmc2V0ID0gMDsKKwlkc3Qu b2Zmc2V0ID0gMDsKKworCXIgPSBhbWRncHVfY29weV90dG1fbWVtX3RvX21lbShhZGV2LCAmc3Jj LCAmZHN0LAorCQkJCSAgICAgICBuZXdfbWVtLT5udW1fcGFnZXMgPDwgUEFHRV9TSElGVCwKKwkJ CQkgICAgICAgYm8tPnJlc3YsICZmZW5jZSk7CisJaWYgKHIpCisJCWdvdG8gZXJyb3I7CiAKIAly ID0gdHRtX2JvX3BpcGVsaW5lX21vdmUoYm8sIGZlbmNlLCBldmljdCwgbmV3X21lbSk7CiAJZG1h X2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIHI7CiAKIGVycm9yOgotCW11dGV4X3VubG9jaygm YWRldi0+bW1hbi5ndHRfd2luZG93X2xvY2spOwotCiAJaWYgKGZlbmNlKQogCQlkbWFfZmVuY2Vf d2FpdChmZW5jZSwgZmFsc2UpOwogCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCmluZGV4IDdhYmFlNjguLjIxODgwMzQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKQEAgLTU4LDYgKzU4LDEyIEBAIHN0cnVj dCBhbWRncHVfbW1hbiB7CiAJc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkJCQllbnRpdHk7CiB9Owog CitzdHJ1Y3QgYW1kZ3B1X2NvcHlfbWVtIHsKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QJKmJv OworCXN0cnVjdCB0dG1fbWVtX3JlZwkJKm1lbTsKKwl1bnNpZ25lZCBsb25nCQkJb2Zmc2V0Owor fTsKKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIGFtZGdw dV9ndHRfbWdyX2Z1bmM7CiBleHRlcm4gY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy X2Z1bmMgYW1kZ3B1X3ZyYW1fbWdyX2Z1bmM7CiAKQEAgLTcyLDYgKzc4LDEyIEBAIGludCBhbWRn cHVfY29weV9idWZmZXIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50NjRfdCBzcmNfb2Zm c2V0LAogCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKIAkJICAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwgYm9vbCBkaXJlY3Rfc3VibWl0LAogCQkgICAgICAg Ym9vbCB2bV9uZWVkc19mbHVzaCk7CitpbnQgYW1kZ3B1X2NvcHlfdHRtX21lbV90b19tZW0oc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkgICAgICAgc3RydWN0IGFtZGdwdV9jb3B5X21l bSAqc3JjLAorCQkJICAgICAgIHN0cnVjdCBhbWRncHVfY29weV9tZW0gKmRzdCwKKwkJCSAgICAg ICB1aW50NjRfdCBzaXplLAorCQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJl c3YsCisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmYpOwogaW50IGFtZGdwdV9maWxsX2J1 ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCXVpbnQ2NF90IHNyY19kYXRhLAogCQkJc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK