From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [PATCH 24/24] drm/amdgpu: Move GEM BO to drm_framebuffer Date: Fri, 30 Mar 2018 15:11:38 +0100 Message-ID: <20180330141138.28987-24-daniels@collabora.com> References: <20180330141138.28987-1-daniels@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180330141138.28987-1-daniels@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org U2luY2UgZHJtX2ZyYW1lYnVmZmVyIGNhbiBub3cgc3RvcmUgR0VNIG9iamVjdHMgZGlyZWN0bHks IHBsYWNlIHRoZW0KdGhlcmUgcmF0aGVyIHRoYW4gaW4gb3VyIG93biBzdWJjbGFzcy4gQXMgdGhp cyBtYWtlcyB0aGUgZnJhbWVidWZmZXIKY3JlYXRlX2hhbmRsZSBhbmQgZGVzdHJveSBmdW5jdGlv bnMgdGhlIHNhbWUgYXMgdGhlIEdFTSBmcmFtZWJ1ZmZlcgpoZWxwZXIsIHdlIGNhbiByZXVzZSB0 aG9zZS4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBTdG9uZSA8ZGFuaWVsc0Bjb2xsYWJvcmEuY29t PgpDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpDYzogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpDYzogRGF2aWQgKENodW5NaW5n KSBaaG91IDxEYXZpZDEuWmhvdUBhbWQuY29tPgpDYzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAg ICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXku YyAgICAgICB8IDM2ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZmIuYyAgICAgICAgICAgIHwgMTAgKysrLS0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCAgICAgICAgICB8ICAxIC0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jICAgICAgICAgICAgfCAxNyArKysrLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMgICAgICAgICAgICB8IDE3ICsr KystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jICAgICAgICAg ICAgIHwgMTcgKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8w LmMgICAgICAgICAgICAgfCAxNyArKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZGNlX3ZpcnR1YWwuYyAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyB8IDExICsrKy0tLS0KIDEwIGZpbGVzIGNoYW5n ZWQsIDQwIGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCAzNGFmNjY0YjlmOTMuLmZiYzA2NzZjNmJj YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwpAQCAtMjUz OSw3ICsyNTM5LDcgQEAgaW50IGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pCiAJLyogdW5waW4gdGhlIGZyb250IGJ1 ZmZlcnMgYW5kIGN1cnNvcnMgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1v ZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewogCQlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdw dV9jcnRjID0gdG9fYW1kZ3B1X2NydGMoY3J0Yyk7Ci0JCXN0cnVjdCBhbWRncHVfZnJhbWVidWZm ZXIgKnJmYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7CisJCXN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+cHJpbWFyeS0+ZmI7CiAJCXN0cnVjdCBh bWRncHVfYm8gKnJvYmo7CiAKIAkJaWYgKGFtZGdwdV9jcnRjLT5jdXJzb3JfYm8pIHsKQEAgLTI1 NTEsMTAgKzI1NTEsMTAgQEAgaW50IGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pCiAJCQl9CiAJCX0KIAotCQlpZiAo cmZiID09IE5VTEwgfHwgcmZiLT5vYmogPT0gTlVMTCkgeworCQlpZiAoZmIgPT0gTlVMTCB8fCBm Yi0+b2JqWzBdID09IE5VTEwpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXJvYmogPSBnZW1fdG9f YW1kZ3B1X2JvKHJmYi0+b2JqKTsKKwkJcm9iaiA9IGdlbV90b19hbWRncHVfYm8oZmItPm9ialsw XSk7CiAJCS8qIGRvbid0IHVucGluIGtlcm5lbCBmYiBvYmplY3RzICovCiAJCWlmICghYW1kZ3B1 X2ZiZGV2X3JvYmpfaXNfZmIoYWRldiwgcm9iaikpIHsKIAkJCXIgPSBhbWRncHVfYm9fcmVzZXJ2 ZShyb2JqLCB0cnVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxh eS5jCmluZGV4IDkzZjcwMGFiMWJmYi4uYjgzYWU5OThmZTI3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgog I2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVm ZmVyX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAKIHN0YXRpYyB2 b2lkIGFtZGdwdV9kaXNwbGF5X2ZsaXBfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZiwKQEAg LTE1MSw4ICsxNTIsNiBAQCBpbnQgYW1kZ3B1X2Rpc3BsYXlfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRjID0gdG9fYW1kZ3B1X2NydGMoY3J0Yyk7Ci0J c3RydWN0IGFtZGdwdV9mcmFtZWJ1ZmZlciAqb2xkX2FtZGdwdV9mYjsKLQlzdHJ1Y3QgYW1kZ3B1 X2ZyYW1lYnVmZmVyICpuZXdfYW1kZ3B1X2ZiOwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq OwogCXN0cnVjdCBhbWRncHVfZmxpcF93b3JrICp3b3JrOwogCXN0cnVjdCBhbWRncHVfYm8gKm5l d19hYm87CkBAIC0xNzQsMTUgKzE3MywxMyBAQCBpbnQgYW1kZ3B1X2Rpc3BsYXlfY3J0Y19wYWdl X2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl3b3JrLT5hc3luYyA9IChwYWdl X2ZsaXBfZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMpICE9IDA7CiAKIAkvKiBzY2hl ZHVsZSB1bnBpbiBvZiB0aGUgb2xkIGJ1ZmZlciAqLwotCW9sZF9hbWRncHVfZmIgPSB0b19hbWRn cHVfZnJhbWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwotCW9iaiA9IG9sZF9hbWRncHVfZmIt Pm9iajsKKwlvYmogPSBjcnRjLT5wcmltYXJ5LT5mYi0+b2JqWzBdOwogCiAJLyogdGFrZSBhIHJl ZmVyZW5jZSB0byB0aGUgb2xkIG9iamVjdCAqLwogCXdvcmstPm9sZF9hYm8gPSBnZW1fdG9fYW1k Z3B1X2JvKG9iaik7CiAJYW1kZ3B1X2JvX3JlZih3b3JrLT5vbGRfYWJvKTsKIAotCW5ld19hbWRn cHVfZmIgPSB0b19hbWRncHVfZnJhbWVidWZmZXIoZmIpOwotCW9iaiA9IG5ld19hbWRncHVfZmIt Pm9iajsKKwlvYmogPSBmYi0+b2JqWzBdOwogCW5ld19hYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKG9i aik7CiAKIAkvKiBwaW4gdGhlIG5ldyBidWZmZXIgKi8KQEAgLTQ4MiwyOCArNDc5LDkgQEAgYm9v bCBhbWRncHVfZGlzcGxheV9kZGNfcHJvYmUoc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdw dV9jb25uZWN0b3IsCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGFtZGdwdV9kaXNw bGF5X3VzZXJfZnJhbWVidWZmZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikK LXsKLQlzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICphbWRncHVfZmIgPSB0b19hbWRncHVfZnJh bWVidWZmZXIoZmIpOwotCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGFtZGdwdV9mYi0+ b2JqKTsKLQlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmYik7Ci0Ja2ZyZWUoYW1kZ3B1X2ZiKTsK LX0KLQotc3RhdGljIGludCBhbWRncHVfZGlzcGxheV91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZV9o YW5kbGUoCi0JCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKLQkJCXN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2LAotCQkJdW5zaWduZWQgaW50ICpoYW5kbGUpCi17Ci0Jc3RydWN0IGFtZGdw dV9mcmFtZWJ1ZmZlciAqYW1kZ3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVmZmVyKGZiKTsKLQot CXJldHVybiBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCBhbWRncHVfZmItPm9iaiwg aGFuZGxlKTsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mg YW1kZ3B1X2ZiX2Z1bmNzID0gewotCS5kZXN0cm95ID0gYW1kZ3B1X2Rpc3BsYXlfdXNlcl9mcmFt ZWJ1ZmZlcl9kZXN0cm95LAotCS5jcmVhdGVfaGFuZGxlID0gYW1kZ3B1X2Rpc3BsYXlfdXNlcl9m cmFtZWJ1ZmZlcl9jcmVhdGVfaGFuZGxlLAorCS5kZXN0cm95ID0gZHJtX2dlbV9mYl9kZXN0cm95 LAorCS5jcmVhdGVfaGFuZGxlID0gZHJtX2dlbV9mYl9jcmVhdGVfaGFuZGxlLAogfTsKIAogdWlu dDMyX3QgYW1kZ3B1X2Rpc3BsYXlfZnJhbWVidWZmZXJfZG9tYWlucyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKQEAgLTUyNiwxMSArNTA0LDExIEBAIGludCBhbWRncHVfZGlzcGxheV9mcmFt ZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKQogewogCWludCByZXQ7Ci0JcmZiLT5vYmogPSBvYmo7CisJcmZiLT5i YXNlLm9ialswXSA9IG9iajsKIAlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoZGV2LCAm cmZiLT5iYXNlLCBtb2RlX2NtZCk7CiAJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAm cmZiLT5iYXNlLCAmYW1kZ3B1X2ZiX2Z1bmNzKTsKIAlpZiAocmV0KSB7Ci0JCXJmYi0+b2JqID0g TlVMTDsKKwkJcmZiLT5iYXNlLm9ialswXSA9IE5VTEw7CiAJCXJldHVybiByZXQ7CiAJfQogCXJl dHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Zi LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwppbmRleCAxMjA2MzAx OTc1MWIuLmZmODllODRiMzRjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Zi LmMKQEAgLTI5Miw5ICsyOTIsOSBAQCBzdGF0aWMgaW50IGFtZGdwdV9mYmRldl9kZXN0cm95KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBhbWRncHVfZmJkZXYgKnJmYgogCiAJZHJtX2Zi X2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmcmZiZGV2LT5oZWxwZXIpOwogCi0JaWYgKHJmYi0+b2Jq KSB7Ci0JCWFtZGdwdWZiX2Rlc3Ryb3lfcGlubmVkX29iamVjdChyZmItPm9iaik7Ci0JCXJmYi0+ b2JqID0gTlVMTDsKKwlpZiAocmZiLT5iYXNlLm9ialswXSkgeworCQlhbWRncHVmYl9kZXN0cm95 X3Bpbm5lZF9vYmplY3QocmZiLT5iYXNlLm9ialswXSk7CisJCXJmYi0+YmFzZS5vYmpbMF0gPSBO VUxMOwogCQlkcm1fZnJhbWVidWZmZXJfdW5yZWdpc3Rlcl9wcml2YXRlKCZyZmItPmJhc2UpOwog CQlkcm1fZnJhbWVidWZmZXJfY2xlYW51cCgmcmZiLT5iYXNlKTsKIAl9CkBAIC0zNzcsNyArMzc3 LDcgQEAgaW50IGFtZGdwdV9mYmRldl90b3RhbF9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCWlmICghYWRldi0+bW9kZV9pbmZvLnJmYmRldikKIAkJcmV0dXJuIDA7CiAKLQlyb2Jq ID0gZ2VtX3RvX2FtZGdwdV9ibyhhZGV2LT5tb2RlX2luZm8ucmZiZGV2LT5yZmIub2JqKTsKKwly b2JqID0gZ2VtX3RvX2FtZGdwdV9ibyhhZGV2LT5tb2RlX2luZm8ucmZiZGV2LT5yZmIuYmFzZS5v YmpbMF0pOwogCXNpemUgKz0gYW1kZ3B1X2JvX3NpemUocm9iaik7CiAJcmV0dXJuIHNpemU7CiB9 CkBAIC0zODYsNyArMzg2LDcgQEAgYm9vbCBhbWRncHVfZmJkZXZfcm9ial9pc19mYihzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9ibyAqcm9iaikKIHsKIAlpZiAoIWFk ZXYtPm1vZGVfaW5mby5yZmJkZXYpCiAJCXJldHVybiBmYWxzZTsKLQlpZiAocm9iaiA9PSBnZW1f dG9fYW1kZ3B1X2JvKGFkZXYtPm1vZGVfaW5mby5yZmJkZXYtPnJmYi5vYmopKQorCWlmIChyb2Jq ID09IGdlbV90b19hbWRncHVfYm8oYWRldi0+bW9kZV9pbmZvLnJmYmRldi0+cmZiLmJhc2Uub2Jq WzBdKSkKIAkJcmV0dXJuIHRydWU7CiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKaW5kZXggZDY0MTZlZTUyZTMyLi5iOWU5ZThiMDJmYjcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaApAQCAtMzA4LDcgKzMw OCw2IEBAIHN0cnVjdCBhbWRncHVfZGlzcGxheV9mdW5jcyB7CiAKIHN0cnVjdCBhbWRncHVfZnJh bWVidWZmZXIgewogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgYmFzZTsKLQlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iajsKIAogCS8qIGNhY2hpbmcgZm9yIGxhdGVyIHVzZSAqLwogCXVpbnQ2NF90 IGFkZHJlc3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEw XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCmluZGV4IDQ1MmY4 OGVhNDZhMi4uYWRhMjQxYmZlZWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9kY2VfdjEwXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEw XzAuYwpAQCAtMTgyMyw3ICsxODIzLDYgQEAgc3RhdGljIGludCBkY2VfdjEwXzBfY3J0Y19kb19z ZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRn cHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5kZXY7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2 YXRlOwotCXN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsKIAlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICp0YXJnZXRfZmI7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJ c3RydWN0IGFtZGdwdV9ibyAqYWJvOwpAQCAtMTg0MiwxOCArMTg0MSwxNSBAQCBzdGF0aWMgaW50 IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0 dXJuIDA7CiAJfQogCi0JaWYgKGF0b21pYykgewotCQlhbWRncHVfZmIgPSB0b19hbWRncHVfZnJh bWVidWZmZXIoZmIpOworCWlmIChhdG9taWMpCiAJCXRhcmdldF9mYiA9IGZiOwotCX0gZWxzZSB7 Ci0JCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7 CisJZWxzZQogCQl0YXJnZXRfZmIgPSBjcnRjLT5wcmltYXJ5LT5mYjsKLQl9CiAKIAkvKiBJZiBh dG9taWMsIGFzc3VtZSBmYiBvYmplY3QgaXMgcGlubmVkICYgaWRsZSAmIGZlbmNlZCBhbmQKIAkg KiBqdXN0IHVwZGF0ZSBiYXNlIHBvaW50ZXJzCiAJICovCi0Jb2JqID0gYW1kZ3B1X2ZiLT5vYmo7 CisJb2JqID0gdGFyZ2V0X2ZiLT5vYmpbMF07CiAJYWJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmop OwogCXIgPSBhbWRncHVfYm9fcmVzZXJ2ZShhYm8sIGZhbHNlKTsKIAlpZiAodW5saWtlbHkociAh PSAwKSkKQEAgLTIwNDMsOCArMjAzOSw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMF8wX2NydGNfZG9f c2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCVdSRUczMihtbU1BU1RFUl9VUERBVEVf TU9ERSArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7CiAKIAlpZiAoIWF0b21pYyAmJiBm YiAmJiBmYiAhPSBjcnRjLT5wcmltYXJ5LT5mYikgewotCQlhbWRncHVfZmIgPSB0b19hbWRncHVf ZnJhbWVidWZmZXIoZmIpOwotCQlhYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGFtZGdwdV9mYi0+b2Jq KTsKKwkJYWJvID0gZ2VtX3RvX2FtZGdwdV9ibyhmYi0+b2JqWzBdKTsKIAkJciA9IGFtZGdwdV9i b19yZXNlcnZlKGFibywgdHJ1ZSk7CiAJCWlmICh1bmxpa2VseShyICE9IDApKQogCQkJcmV0dXJu IHI7CkBAIC0yNTI2LDExICsyNTIxLDkgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2NydGNfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZGNlX3YxMF8wX2NydGNfZHBtcyhjcnRjLCBE Uk1fTU9ERV9EUE1TX09GRik7CiAJaWYgKGNydGMtPnByaW1hcnktPmZiKSB7CiAJCWludCByOwot CQlzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICphbWRncHVfZmI7CiAJCXN0cnVjdCBhbWRncHVf Ym8gKmFibzsKIAotCQlhbWRncHVfZmIgPSB0b19hbWRncHVfZnJhbWVidWZmZXIoY3J0Yy0+cHJp bWFyeS0+ZmIpOwotCQlhYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGFtZGdwdV9mYi0+b2JqKTsKKwkJ YWJvID0gZ2VtX3RvX2FtZGdwdV9ibyhjcnRjLT5wcmltYXJ5LT5mYi0+b2JqWzBdKTsKIAkJciA9 IGFtZGdwdV9ib19yZXNlcnZlKGFibywgdHJ1ZSk7CiAJCWlmICh1bmxpa2VseShyKSkKIAkJCURS TV9FUlJPUigiZmFpbGVkIHRvIHJlc2VydmUgYWJvIGJlZm9yZSB1bnBpblxuIik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCmluZGV4IGE3YzFjNTg0YTE5MS4uZDNhZTUwOGIy YTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwpAQCAtMTg2Miw3ICsx ODYyLDYgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IHRvX2FtZGdw dV9jcnRjKGNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBhbWRn cHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp0YXJn ZXRfZmI7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFtZGdwdV9ibyAq YWJvOwpAQCAtMTg4MSwxOCArMTg4MCwxNSBAQCBzdGF0aWMgaW50IGRjZV92MTFfMF9jcnRjX2Rv X3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYg KGF0b21pYykgewotCQlhbWRncHVfZmIgPSB0b19hbWRncHVfZnJhbWVidWZmZXIoZmIpOworCWlm IChhdG9taWMpCiAJCXRhcmdldF9mYiA9IGZiOwotCX0gZWxzZSB7Ci0JCWFtZGdwdV9mYiA9IHRv X2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7CisJZWxzZQogCQl0YXJnZXRf ZmIgPSBjcnRjLT5wcmltYXJ5LT5mYjsKLQl9CiAKIAkvKiBJZiBhdG9taWMsIGFzc3VtZSBmYiBv YmplY3QgaXMgcGlubmVkICYgaWRsZSAmIGZlbmNlZCBhbmQKIAkgKiBqdXN0IHVwZGF0ZSBiYXNl IHBvaW50ZXJzCiAJICovCi0Jb2JqID0gYW1kZ3B1X2ZiLT5vYmo7CisJb2JqID0gdGFyZ2V0X2Zi LT5vYmpbMF07CiAJYWJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmopOwogCXIgPSBhbWRncHVfYm9f cmVzZXJ2ZShhYm8sIGZhbHNlKTsKIAlpZiAodW5saWtlbHkociAhPSAwKSkKQEAgLTIwODIsOCAr MjA3OCw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCVdSRUczMihtbUNSVENfTUFTVEVSX1VQREFURV9NT0RFICsgYW1kZ3B1 X2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKIAogCWlmICghYXRvbWljICYmIGZiICYmIGZiICE9IGNy dGMtPnByaW1hcnktPmZiKSB7Ci0JCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihm Yik7Ci0JCWFibyA9IGdlbV90b19hbWRncHVfYm8oYW1kZ3B1X2ZiLT5vYmopOworCQlhYm8gPSBn ZW1fdG9fYW1kZ3B1X2JvKGZiLT5vYmpbMF0pOwogCQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYWJv LCB0cnVlKTsKIAkJaWYgKHVubGlrZWx5KHIgIT0gMCkpCiAJCQlyZXR1cm4gcjsKQEAgLTI2MDEs MTEgKzI1OTYsOSBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfY3J0Y19kaXNhYmxlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAlkY2VfdjExXzBfY3J0Y19kcG1zKGNydGMsIERSTV9NT0RFX0RQTVNf T0ZGKTsKIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKIAkJaW50IHI7Ci0JCXN0cnVjdCBhbWRn cHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsKIAkJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwogCi0J CWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7Ci0J CWFibyA9IGdlbV90b19hbWRncHVfYm8oYW1kZ3B1X2ZiLT5vYmopOworCQlhYm8gPSBnZW1fdG9f YW1kZ3B1X2JvKGNydGMtPnByaW1hcnktPmZiLT5vYmpbMF0pOwogCQlyID0gYW1kZ3B1X2JvX3Jl c2VydmUoYWJvLCB0cnVlKTsKIAkJaWYgKHVubGlrZWx5KHIpKQogCQkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gcmVzZXJ2ZSBhYm8gYmVmb3JlIHVucGluXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjZfMC5jCmluZGV4IDlmNjdiN2ZkMzQ4Ny4uMzk0Y2MxZThmZTIwIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKQEAgLTE3ODAsNyArMTc4MCw2IEBAIHN0YXRpYyBp bnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3Ry dWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgKmFt ZGdwdV9mYjsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp0YXJnZXRfZmI7CiAJc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwpAQCAtMTc5OCwxOCAr MTc5NywxNSBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoYXRvbWljKSB7Ci0JCWFtZGdw dV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihmYik7CisJaWYgKGF0b21pYykKIAkJdGFyZ2V0 X2ZiID0gZmI7Ci0JfSBlbHNlIHsKLQkJYW1kZ3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVmZmVy KGNydGMtPnByaW1hcnktPmZiKTsKKwllbHNlCiAJCXRhcmdldF9mYiA9IGNydGMtPnByaW1hcnkt PmZiOwotCX0KIAogCS8qIElmIGF0b21pYywgYXNzdW1lIGZiIG9iamVjdCBpcyBwaW5uZWQgJiBp ZGxlICYgZmVuY2VkIGFuZAogCSAqIGp1c3QgdXBkYXRlIGJhc2UgcG9pbnRlcnMKIAkgKi8KLQlv YmogPSBhbWRncHVfZmItPm9iajsKKwlvYmogPSB0YXJnZXRfZmItPm9ialswXTsKIAlhYm8gPSBn ZW1fdG9fYW1kZ3B1X2JvKG9iaik7CiAJciA9IGFtZGdwdV9ib19yZXNlcnZlKGFibywgZmFsc2Up OwogCWlmICh1bmxpa2VseShyICE9IDApKQpAQCAtMTk3OCw4ICsxOTc0LDcgQEAgc3RhdGljIGlu dCBkY2VfdjZfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlXUkVH MzIobW1NQVNURVJfVVBEQVRFX01PREUgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOwog CiAJaWYgKCFhdG9taWMgJiYgZmIgJiYgZmIgIT0gY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKLQkJYW1k Z3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVmZmVyKGZiKTsKLQkJYWJvID0gZ2VtX3RvX2FtZGdw dV9ibyhhbWRncHVfZmItPm9iaik7CisJCWFibyA9IGdlbV90b19hbWRncHVfYm8oZmItPm9ialsw XSk7CiAJCXIgPSBhbWRncHVfYm9fcmVzZXJ2ZShhYm8sIHRydWUpOwogCQlpZiAodW5saWtlbHko ciAhPSAwKSkKIAkJCXJldHVybiByOwpAQCAtMjQxNCwxMSArMjQwOSw5IEBAIHN0YXRpYyB2b2lk IGRjZV92Nl8wX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZGNlX3Y2XzBf Y3J0Y19kcG1zKGNydGMsIERSTV9NT0RFX0RQTVNfT0ZGKTsKIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ ZmIpIHsKIAkJaW50IHI7Ci0JCXN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsK IAkJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwogCi0JCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFt ZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7Ci0JCWFibyA9IGdlbV90b19hbWRncHVfYm8oYW1k Z3B1X2ZiLT5vYmopOworCQlhYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGNydGMtPnByaW1hcnktPmZi LT5vYmpbMF0pOwogCQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYWJvLCB0cnVlKTsKIAkJaWYgKHVu bGlrZWx5KHIpKQogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcmVzZXJ2ZSBhYm8gYmVmb3JlIHVu cGluXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8w LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4IGY1NTQyMmNi ZDc3YS4uYzliOWFiOGYxYjA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMK QEAgLTE3NTQsNyArMTc1NCw2IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19zZXRfYmFz ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0 YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsKIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICp0YXJnZXRfZmI7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0 IGFtZGdwdV9ibyAqYWJvOwpAQCAtMTc3MywxOCArMTc3MiwxNSBAQCBzdGF0aWMgaW50IGRjZV92 OF8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlyZXR1cm4gMDsK IAl9CiAKLQlpZiAoYXRvbWljKSB7Ci0JCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZl cihmYik7CisJaWYgKGF0b21pYykKIAkJdGFyZ2V0X2ZiID0gZmI7Ci0JfSBlbHNlIHsKLQkJYW1k Z3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVmZmVyKGNydGMtPnByaW1hcnktPmZiKTsKKwllbHNl CiAJCXRhcmdldF9mYiA9IGNydGMtPnByaW1hcnktPmZiOwotCX0KIAogCS8qIElmIGF0b21pYywg YXNzdW1lIGZiIG9iamVjdCBpcyBwaW5uZWQgJiBpZGxlICYgZmVuY2VkIGFuZAogCSAqIGp1c3Qg dXBkYXRlIGJhc2UgcG9pbnRlcnMKIAkgKi8KLQlvYmogPSBhbWRncHVfZmItPm9iajsKKwlvYmog PSB0YXJnZXRfZmItPm9ialswXTsKIAlhYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKG9iaik7CiAJciA9 IGFtZGdwdV9ib19yZXNlcnZlKGFibywgZmFsc2UpOwogCWlmICh1bmxpa2VseShyICE9IDApKQpA QCAtMTk1NSw4ICsxOTUxLDcgQEAgc3RhdGljIGludCBkY2VfdjhfMF9jcnRjX2RvX3NldF9iYXNl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlXUkVHMzIobW1NQVNURVJfVVBEQVRFX01PREUgKyBh bWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOwogCiAJaWYgKCFhdG9taWMgJiYgZmIgJiYgZmIg IT0gY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKLQkJYW1kZ3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVm ZmVyKGZiKTsKLQkJYWJvID0gZ2VtX3RvX2FtZGdwdV9ibyhhbWRncHVfZmItPm9iaik7CisJCWFi byA9IGdlbV90b19hbWRncHVfYm8oZmItPm9ialswXSk7CiAJCXIgPSBhbWRncHVfYm9fcmVzZXJ2 ZShhYm8sIHRydWUpOwogCQlpZiAodW5saWtlbHkociAhPSAwKSkKIAkJCXJldHVybiByOwpAQCAt MjQzMCwxMSArMjQyNSw5IEBAIHN0YXRpYyB2b2lkIGRjZV92OF8wX2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJZGNlX3Y4XzBfY3J0Y19kcG1zKGNydGMsIERSTV9NT0RFX0RQ TVNfT0ZGKTsKIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKIAkJaW50IHI7Ci0JCXN0cnVjdCBh bWRncHVfZnJhbWVidWZmZXIgKmFtZGdwdV9mYjsKIAkJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwog Ci0JCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7 Ci0JCWFibyA9IGdlbV90b19hbWRncHVfYm8oYW1kZ3B1X2ZiLT5vYmopOworCQlhYm8gPSBnZW1f dG9fYW1kZ3B1X2JvKGNydGMtPnByaW1hcnktPmZiLT5vYmpbMF0pOwogCQlyID0gYW1kZ3B1X2Jv X3Jlc2VydmUoYWJvLCB0cnVlKTsKIAkJaWYgKHVubGlrZWx5KHIpKQogCQkJRFJNX0VSUk9SKCJm YWlsZWQgdG8gcmVzZXJ2ZSBhYm8gYmVmb3JlIHVucGluXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9kY2VfdmlydHVhbC5jCmluZGV4IGI1MWYwNWRjOTU4Mi4uODliMjI4NmE5ZDZiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdmlydHVhbC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMKQEAgLTE2OCwxMSArMTY4 LDkgQEAgc3RhdGljIHZvaWQgZGNlX3ZpcnR1YWxfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAlkY2VfdmlydHVhbF9jcnRjX2RwbXMoY3J0YywgRFJNX01PREVfRFBNU19PRkYp OwogCWlmIChjcnRjLT5wcmltYXJ5LT5mYikgewogCQlpbnQgcjsKLQkJc3RydWN0IGFtZGdwdV9m cmFtZWJ1ZmZlciAqYW1kZ3B1X2ZiOwogCQlzdHJ1Y3QgYW1kZ3B1X2JvICphYm87CiAKLQkJYW1k Z3B1X2ZiID0gdG9fYW1kZ3B1X2ZyYW1lYnVmZmVyKGNydGMtPnByaW1hcnktPmZiKTsKLQkJYWJv ID0gZ2VtX3RvX2FtZGdwdV9ibyhhbWRncHVfZmItPm9iaik7CisJCWFibyA9IGdlbV90b19hbWRn cHVfYm8oY3J0Yy0+cHJpbWFyeS0+ZmItPm9ialswXSk7CiAJCXIgPSBhbWRncHVfYm9fcmVzZXJ2 ZShhYm8sIHRydWUpOwogCQlpZiAodW5saWtlbHkocikpCiAJCQlEUk1fRVJST1IoImZhaWxlZCB0 byByZXNlcnZlIGFibyBiZWZvcmUgdW5waW5cbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKaW5kZXggZTQyYTI4ZTNhZGM1Li5iYWVl YTVhZTRkZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVf ZG0vYW1kZ3B1X2RtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG0uYwpAQCAtMTgyMCw3ICsxODIwLDcgQEAgc3RhdGljIGJvb2wgZmlsbF9yZWN0 c19mcm9tX3BsYW5lX3N0YXRlKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLAog c3RhdGljIGludCBnZXRfZmJfaW5mbyhjb25zdCBzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICph bWRncHVfZmIsCiAJCSAgICAgICB1aW50NjRfdCAqdGlsaW5nX2ZsYWdzKQogewotCXN0cnVjdCBh bWRncHVfYm8gKnJibyA9IGdlbV90b19hbWRncHVfYm8oYW1kZ3B1X2ZiLT5vYmopOworCXN0cnVj dCBhbWRncHVfYm8gKnJibyA9IGdlbV90b19hbWRncHVfYm8oYW1kZ3B1X2ZiLT5iYXNlLm9ialsw XSk7CiAJaW50IHIgPSBhbWRncHVfYm9fcmVzZXJ2ZShyYm8sIGZhbHNlKTsKIAogCWlmICh1bmxp a2VseShyKSkgewpAQCAtMzAyOSw4ICszMDI5LDcgQEAgc3RhdGljIGludCBkbV9wbGFuZV9oZWxw ZXJfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9CiAKIAlhZmIgPSB0b19h bWRncHVfZnJhbWVidWZmZXIobmV3X3N0YXRlLT5mYik7Ci0KLQlvYmogPSBhZmItPm9iajsKKwlv YmogPSBuZXdfc3RhdGUtPmZiLT5vYmpbMF07CiAJcmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmop OwogCWFkZXYgPSBhbWRncHVfdHRtX2FkZXYocmJvLT50Ym8uYmRldik7CiAJciA9IGFtZGdwdV9i b19yZXNlcnZlKHJibywgZmFsc2UpOwpAQCAtMzA5NCwxNCArMzA5MywxMiBAQCBzdGF0aWMgdm9p ZCBkbV9wbGFuZV9oZWxwZXJfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJ CQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewogCXN0cnVjdCBh bWRncHVfYm8gKnJibzsKLQlzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICphZmI7CiAJaW50IHI7 CiAKIAlpZiAoIW9sZF9zdGF0ZS0+ZmIpCiAJCXJldHVybjsKIAotCWFmYiA9IHRvX2FtZGdwdV9m cmFtZWJ1ZmZlcihvbGRfc3RhdGUtPmZiKTsKLQlyYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGFmYi0+ b2JqKTsKKwlyYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKG9sZF9zdGF0ZS0+ZmItPm9ialswXSk7CiAJ ciA9IGFtZGdwdV9ib19yZXNlcnZlKHJibywgZmFsc2UpOwogCWlmICh1bmxpa2VseShyKSkgewog CQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIHJibyBiZWZvcmUgdW5waW5cbiIpOwpAQCAt Mzg5Nyw3ICszODk0LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2RvX2ZsaXAoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCWludCByLCB2cG9zLCBocG9zOwogCXN0cnVjdCBhbWRncHVfY3J0YyAq YWNydGMgPSB0b19hbWRncHVfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVy ICphZmIgPSB0b19hbWRncHVfZnJhbWVidWZmZXIoZmIpOwotCXN0cnVjdCBhbWRncHVfYm8gKmFi byA9IGdlbV90b19hbWRncHVfYm8oYWZiLT5vYmopOworCXN0cnVjdCBhbWRncHVfYm8gKmFibyA9 IGdlbV90b19hbWRncHVfYm8oZmItPm9ialswXSk7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwogCWJvb2wgYXN5bmNfZmxpcCA9IChjcnRjLT5z dGF0ZS0+cGFnZWZsaXBfZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMpICE9IDA7CiAJ c3RydWN0IGRjX2ZsaXBfYWRkcnMgYWRkciA9IHsgezB9IH07Ci0tIAoyLjE2LjIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=