From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH v3 08/18] drm/ttm: use gem vma_node Date: Fri, 28 Jun 2019 11:02:53 +0200 Message-ID: <20190628090303.29467-9-kraxel@redhat.com> References: <20190628090303.29467-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190628090303.29467-1-kraxel@redhat.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: David Airlie , "open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS" , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , Huang Rui , Gerd Hoffmann , Thomas Hellstrom , "open list:RADEON and AMDGPU DRM DRIVERS" , Maxime Ripard , VMware Graphics , bskeggs@redhat.com, "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , thomas@shipmail.org, ckoenig.leichtzumerken@gmail.com, Dave Airlie , Sean Paul , open list , tzimmermann@suse.de, Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RHJvcCB2bWFfbm9kZSBmcm9tIHR0bV9idWZmZXJfb2JqZWN0LCB1c2UgdGhlIGdlbSBzdHJ1Y3QK KGJhc2Uudm1hX25vZGUpIGluc3RlYWQuCgpTaWduZWQtb2ZmLWJ5OiBHZXJkIEhvZmZtYW5uIDxr cmF4ZWxAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmggfCAyICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaCAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaCAgICAgfCAy ICstCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmggICAgICAgfCAyICstCiBp bmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAgICAgfCA0IC0tLS0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICB8IDUgKy0tLS0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jICB8IDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMgICAgICB8IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMgICAgICAgICAgICAgICB8IDggKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvX3V0aWwuYyAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv X3ZtLmMgICAgICAgICAgICB8IDkgKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfcHJpbWUuYyAgICAgfCAzIC0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Ym8uYyAgICAgICAgIHwgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJm YWNlLmMgICAgfCA0ICsrLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDMw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3Qu aAppbmRleCBhODBhOTk3MmFkMTYuLmE2OGQ4NWJkOGZhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaApAQCAtMTkxLDcgKzE5MSw3IEBAIHN0YXRpYyBpbmxp bmUgdW5zaWduZWQgYW1kZ3B1X2JvX2dwdV9wYWdlX2FsaWdubWVudChzdHJ1Y3QgYW1kZ3B1X2Jv ICpibykKICAqLwogc3RhdGljIGlubGluZSB1NjQgYW1kZ3B1X2JvX21tYXBfb2Zmc2V0KHN0cnVj dCBhbWRncHVfYm8gKmJvKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJv LT50Ym8udm1hX25vZGUpOworCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT50 Ym8uYmFzZS52bWFfbm9kZSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaAppbmRl eCBiODEyZDRhZTlkMGQuLjhhZTU0YmE3ODU3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmgK QEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHF4bF9ib19zaXpl KHN0cnVjdCBxeGxfYm8gKmJvKQogCiBzdGF0aWMgaW5saW5lIHU2NCBxeGxfYm9fbW1hcF9vZmZz ZXQoc3RydWN0IHF4bF9ibyAqYm8pCiB7Ci0JcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRk cigmYm8tPnRiby52bWFfbm9kZSk7CisJcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigm Ym8tPnRiby5iYXNlLnZtYV9ub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcXhsX2JvX3dh aXQoc3RydWN0IHF4bF9ibyAqYm8sIHUzMiAqbWVtX3R5cGUsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX29iamVjdC5oCmluZGV4IDlmZmQ4MjE1ZDM4YS4uZTU1NTRiZjkxNDBlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaApAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgcmFkZW9uX2JvX2dwdV9wYWdlX2FsaWdubWVudChzdHJ1Y3QgcmFk ZW9uX2JvICpibykKICAqLwogc3RhdGljIGlubGluZSB1NjQgcmFkZW9uX2JvX21tYXBfb2Zmc2V0 KHN0cnVjdCByYWRlb25fYm8gKmJvKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2Fk ZHIoJmJvLT50Ym8udm1hX25vZGUpOworCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIo JmJvLT50Ym8uYmFzZS52bWFfbm9kZSk7CiB9CiAKIGV4dGVybiBpbnQgcmFkZW9uX2JvX3dhaXQo c3RydWN0IHJhZGVvbl9ibyAqYm8sIHUzMiAqbWVtX3R5cGUsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfZHJ2LmgKaW5kZXggOWUyZDMwNjJiMDFkLi43MTQ2YmEwMGZkNWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKQEAgLTM5Niw3ICszOTYsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgdmlydGlvX2dwdV9vYmplY3RfdW5yZWYoc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICoq Ym8pCiAKIHN0YXRpYyBpbmxpbmUgdTY0IHZpcnRpb19ncHVfb2JqZWN0X21tYXBfb2Zmc2V0KHN0 cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqYm8pCiB7Ci0JcmV0dXJuIGRybV92bWFfbm9kZV9vZmZz ZXRfYWRkcigmYm8tPnRiby52bWFfbm9kZSk7CisJcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRf YWRkcigmYm8tPnRiby5iYXNlLnZtYV9ub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgdmly dGlvX2dwdV9vYmplY3RfcmVzZXJ2ZShzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKmJvLApkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmgKaW5kZXggZmEwNTBmMDMyOGFiLi43ZmZjNTBhMzMwM2QgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19hcGkuaApAQCAtMTUyLDcgKzE1Miw2IEBAIHN0cnVjdCB0dG1fdHQ7CiAgKiBAZGRlc3Ryb3k6 IExpc3QgaGVhZCBmb3IgdGhlIGRlbGF5ZWQgZGVzdHJveSBsaXN0LgogICogQHN3YXA6IExpc3Qg aGVhZCBmb3Igc3dhcCBMUlUgbGlzdC4KICAqIEBtb3Zpbmc6IEZlbmNlIHNldCB3aGVuIEJPIGlz IG1vdmluZwotICogQHZtYV9ub2RlOiBBZGRyZXNzIHNwYWNlIG1hbmFnZXIgbm9kZS4KICAqIEBv ZmZzZXQ6IFRoZSBjdXJyZW50IEdQVSBvZmZzZXQsIHdoaWNoIGNhbiBoYXZlIGRpZmZlcmVudCBt ZWFuaW5ncwogICogZGVwZW5kaW5nIG9uIHRoZSBtZW1vcnkgdHlwZS4gRm9yIFNZU1RFTSB0eXBl IG1lbW9yeSwgaXQgc2hvdWxkIGJlIDAuCiAgKiBAY3VyX3BsYWNlbWVudDogSGludCBvZiBjdXJy ZW50IHBsYWNlbWVudC4KQEAgLTIxOSw5ICsyMTgsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgewogCSAqLwogCiAJc3RydWN0IGRtYV9mZW5jZSAqbW92aW5nOwotCi0Jc3RydWN0IGRybV92 bWFfb2Zmc2V0X25vZGUgdm1hX25vZGU7Ci0KIAl1bnNpZ25lZCBwcmlvcml0eTsKIAogCS8qKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKaW5kZXggNjFkOTUyMGNjMTVmLi4yZTQ3 NGRlZTMwZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwpAQCAtMTYzLDcg KzE2Myw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX3B1dCk7CiAgKi8KIHU2NCBkcm1f Z2VtX3ZyYW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykKIHsK LQlyZXR1cm4gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZnYm8tPmJvLnZtYV9ub2RlKTsKKwly ZXR1cm4gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZnYm8tPmJvLmJhc2Uudm1hX25vZGUpOwog fQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fbW1hcF9vZmZzZXQpOwogCkBAIC02MzMsOSAr NjMzLDYgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9wcmltZV92dW5t YXApOwogaW50IGRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpnZW0sCiAJCQkJICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQog ewotCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2Vt KGdlbSk7Ci0KLQlnYm8tPmJvLmJhc2Uudm1hX25vZGUudm1fbm9kZS5zdGFydCA9IGdiby0+Ym8u dm1hX25vZGUudm1fbm9kZS5zdGFydDsKIAlyZXR1cm4gZHJtX2dlbV9wcmltZV9tbWFwKGdlbSwg dm1hKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fcHJpbWVfbW1h cCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCmluZGV4IGZjOGY1 YmI3M2NhOC4uOThhZmM1MDE2MmU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2Rpc3BsYXkuYwpAQCAtNjc1LDcgKzY3NSw3IEBAIG5vdXZlYXVfZGlzcGxheV9kdW1iX21hcF9v ZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJZ2VtID0gZHJtX2dlbV9vYmplY3Rf bG9va3VwKGZpbGVfcHJpdiwgaGFuZGxlKTsKIAlpZiAoZ2VtKSB7CiAJCXN0cnVjdCBub3V2ZWF1 X2JvICpibyA9IG5vdXZlYXVfZ2VtX29iamVjdChnZW0pOwotCQkqcG9mZnNldCA9IGRybV92bWFf bm9kZV9vZmZzZXRfYWRkcigmYm8tPmJvLnZtYV9ub2RlKTsKKwkJKnBvZmZzZXQgPSBkcm1fdm1h X25vZGVfb2Zmc2V0X2FkZHIoJmJvLT5iby5iYXNlLnZtYV9ub2RlKTsKIAkJZHJtX2dlbV9vYmpl Y3RfcHV0X3VubG9ja2VkKGdlbSk7CiAJCXJldHVybiAwOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2dlbS5jCmluZGV4IDJmNDg0YWI3ZGJjYS4uYjFlNDg1MjgxMGVkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMKQEAgLTI0MCw3ICsyNDAsNyBAQCBub3V2ZWF1 X2dlbV9pbmZvKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbSwKIAl9CiAKIAlyZXAtPnNpemUgPSBudmJvLT5iby5tZW0ubnVtX3BhZ2VzIDw8IFBB R0VfU0hJRlQ7Ci0JcmVwLT5tYXBfaGFuZGxlID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZu dmJvLT5iby52bWFfbm9kZSk7CisJcmVwLT5tYXBfaGFuZGxlID0gZHJtX3ZtYV9ub2RlX29mZnNl dF9hZGRyKCZudmJvLT5iby5iYXNlLnZtYV9ub2RlKTsKIAlyZXAtPnRpbGVfbW9kZSA9IG52Ym8t Pm1vZGU7CiAJcmVwLT50aWxlX2ZsYWdzID0gbnZiby0+Y29udGlnID8gMCA6IE5PVVZFQVVfR0VN X1RJTEVfTk9OQ09OVElHOwogCWlmIChjbGktPmRldmljZS5pbmZvLmZhbWlseSA+PSBOVl9ERVZJ Q0VfSU5GT19WMF9GRVJNSSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IDUxNmVlZjNiNzZkNS4uMWQ5 MWRhODVmMzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTY3Miw3ICs2NzIsNyBAQCBzdGF0aWMg dm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAlzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2OwogCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu ID0gJmJkZXYtPm1hbltiby0+bWVtLm1lbV90eXBlXTsKIAotCWRybV92bWFfb2Zmc2V0X3JlbW92 ZSgmYmRldi0+dm1hX21hbmFnZXIsICZiby0+dm1hX25vZGUpOworCWRybV92bWFfb2Zmc2V0X3Jl bW92ZSgmYmRldi0+dm1hX21hbmFnZXIsICZiby0+YmFzZS52bWFfbm9kZSk7CiAJdHRtX21lbV9p b19sb2NrKG1hbiwgZmFsc2UpOwogCXR0bV9tZW1faW9fZnJlZV92bShibyk7CiAJdHRtX21lbV9p b191bmxvY2sobWFuKTsKQEAgLTEzNDIsOSArMTM0Miw5IEBAIGludCB0dG1fYm9faW5pdF9yZXNl cnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJICogYXdheSBvbmNlIGFsbCB1c2Vy cyBhcmUgc3dpdGNoZWQgb3Zlci4KIAkJICovCiAJCXJlc2VydmF0aW9uX29iamVjdF9pbml0KCZi by0+YmFzZS5fcmVzdik7CisJCWRybV92bWFfbm9kZV9yZXNldCgmYm8tPmJhc2Uudm1hX25vZGUp OwogCX0KIAlhdG9taWNfaW5jKCZiby0+YmRldi0+Z2xvYi0+Ym9fY291bnQpOwotCWRybV92bWFf bm9kZV9yZXNldCgmYm8tPnZtYV9ub2RlKTsKIAogCS8qCiAJICogRm9yIHR0bV9ib190eXBlX2Rl dmljZSBidWZmZXJzLCBhbGxvY2F0ZQpAQCAtMTM1Miw3ICsxMzUyLDcgQEAgaW50IHR0bV9ib19p bml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCSAqLwogCWlmIChiby0+ dHlwZSA9PSB0dG1fYm9fdHlwZV9kZXZpY2UgfHwKIAkgICAgYm8tPnR5cGUgPT0gdHRtX2JvX3R5 cGVfc2cpCi0JCXJldCA9IGRybV92bWFfb2Zmc2V0X2FkZCgmYmRldi0+dm1hX21hbmFnZXIsICZi by0+dm1hX25vZGUsCisJCXJldCA9IGRybV92bWFfb2Zmc2V0X2FkZCgmYmRldi0+dm1hX21hbmFn ZXIsICZiby0+YmFzZS52bWFfbm9kZSwKIAkJCQkJIGJvLT5tZW0ubnVtX3BhZ2VzKTsKIAogCS8q IHBhc3NlZCByZXNlcnZhdGlvbiBvYmplY3RzIHNob3VsZCBhbHJlYWR5IGJlIGxvY2tlZCwKQEAg LTE3ODAsNyArMTc4MCw3IEBAIHZvaWQgdHRtX2JvX3VubWFwX3ZpcnR1YWxfbG9ja2VkKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYg PSBiby0+YmRldjsKIAotCWRybV92bWFfbm9kZV91bm1hcCgmYm8tPnZtYV9ub2RlLCBiZGV2LT5k ZXZfbWFwcGluZyk7CisJZHJtX3ZtYV9ub2RlX3VubWFwKCZiby0+YmFzZS52bWFfbm9kZSwgYmRl di0+ZGV2X21hcHBpbmcpOwogCXR0bV9tZW1faW9fZnJlZV92bShibyk7CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3V0aWwuYwppbmRleCAwNWZiY2FmNmEzZjIuLmY1MDA5YzFiNmE5YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvX3V0aWwuYwpAQCAtNTEwLDcgKzUxMCw3IEBAIHN0YXRpYyBpbnQgdHRt X2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlJ TklUX0xJU1RfSEVBRCgmZmJvLT5iYXNlLmlvX3Jlc2VydmVfbHJ1KTsKIAltdXRleF9pbml0KCZm Ym8tPmJhc2Uud3VfbXV0ZXgpOwogCWZiby0+YmFzZS5tb3ZpbmcgPSBOVUxMOwotCWRybV92bWFf bm9kZV9yZXNldCgmZmJvLT5iYXNlLnZtYV9ub2RlKTsKKwlkcm1fdm1hX25vZGVfcmVzZXQoJmZi by0+YmFzZS5iYXNlLnZtYV9ub2RlKTsKIAlhdG9taWNfc2V0KCZmYm8tPmJhc2UuY3B1X3dyaXRl cnMsIDApOwogCiAJa3JlZl9pbml0KCZmYm8tPmJhc2UubGlzdF9rcmVmKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib192bS5jCmluZGV4IDZkYWNmZjQ5YzFjYy4uZmI2ODc1YTc4OWI3IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvX3ZtLmMKQEAgLTIxMSw5ICsyMTEsOSBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9f dm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJfQogCiAJcGFnZV9vZmZzZXQgPSAoKGFk ZHJlc3MgLSB2bWEtPnZtX3N0YXJ0KSA+PiBQQUdFX1NISUZUKSArCi0JCXZtYS0+dm1fcGdvZmYg LSBkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT52bWFfbm9kZSk7CisJCXZtYS0+dm1fcGdvZmYgLSBk cm1fdm1hX25vZGVfc3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKIAlwYWdlX2xhc3QgPSB2bWFf cGFnZXModm1hKSArIHZtYS0+dm1fcGdvZmYgLQotCQlkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT52 bWFfbm9kZSk7CisJCWRybV92bWFfbm9kZV9zdGFydCgmYm8tPmJhc2Uudm1hX25vZGUpOwogCiAJ aWYgKHVubGlrZWx5KHBhZ2Vfb2Zmc2V0ID49IGJvLT5udW1fcGFnZXMpKSB7CiAJCXJldCA9IFZN X0ZBVUxUX1NJR0JVUzsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1f Ym9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCQl9IGVsc2UgaWYgKHVubGlrZWx5 KCFwYWdlKSkgewogCQkJCWJyZWFrOwogCQkJfQotCQkJcGFnZS0+aW5kZXggPSBkcm1fdm1hX25v ZGVfc3RhcnQoJmJvLT52bWFfbm9kZSkgKworCQkJcGFnZS0+aW5kZXggPSBkcm1fdm1hX25vZGVf c3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKSArCiAJCQkJcGFnZV9vZmZzZXQ7CiAJCQlwZm4gPSBw YWdlX3RvX3BmbihwYWdlKTsKIAkJfQpAQCAtNDEzLDcgKzQxMyw4IEBAIHN0YXRpYyBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKnR0bV9ib192bV9sb29rdXAoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCiAKIAlub2RlID0gZHJtX3ZtYV9vZmZzZXRfbG9va3VwX2xvY2tlZCgmYmRldi0+dm1h X21hbmFnZXIsIG9mZnNldCwgcGFnZXMpOwogCWlmIChsaWtlbHkobm9kZSkpIHsKLQkJYm8gPSBj b250YWluZXJfb2Yobm9kZSwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0LCB2bWFfbm9kZSk7CisJ CWJvID0gY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCwKKwkJCQkg IGJhc2Uudm1hX25vZGUpOwogCQlibyA9IHR0bV9ib19nZXRfdW5sZXNzX3plcm8oYm8pOwogCX0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3ByaW1lLmMgYi9k cml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcHJpbWUuYwppbmRleCA4ZmJmNzFiZDBjNWUu LmZlZDg2ZjNiMDk5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3ByaW1lLmMKQEAg LTY2LDggKzY2LDUgQEAgdm9pZCB2aXJ0Z3B1X2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKQogaW50IHZpcnRncHVfZ2VtX3ByaW1lX21tYXAo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSkKIHsKLQlzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKmJvID0gZ2VtX3RvX3ZpcnRpb19n cHVfb2JqKG9iaik7Ci0KLQliby0+Z2VtX2Jhc2Uudm1hX25vZGUudm1fbm9kZS5zdGFydCA9IGJv LT50Ym8udm1hX25vZGUudm1fbm9kZS5zdGFydDsKIAlyZXR1cm4gZHJtX2dlbV9wcmltZV9tbWFw KG9iaiwgdm1hKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCmluZGV4IDVkNWMyYmNl MDFmMy4uMGQ5NDc4ZDJlNzAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKQEAgLTgz NSw3ICs4MzUsNyBAQCBpbnQgdm13X2JvX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCWdvdG8gb3V0X25vX2JvOwogCiAJcmVwLT5oYW5kbGUgPSBoYW5k bGU7Ci0JcmVwLT5tYXBfaGFuZGxlID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZ2Ym8tPmJh c2Uudm1hX25vZGUpOworCXJlcC0+bWFwX2hhbmRsZSA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRk cigmdmJvLT5iYXNlLmJhc2Uudm1hX25vZGUpOwogCXJlcC0+Y3VyX2dtcl9pZCA9IGhhbmRsZTsK IAlyZXAtPmN1cl9nbXJfb2Zmc2V0ID0gMDsKIApAQCAtMTA3Nyw3ICsxMDc3LDcgQEAgaW50IHZt d19kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJaWYgKHJldCAh PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCSpvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0 X2FkZHIoJm91dF9idWYtPmJhc2Uudm1hX25vZGUpOworCSpvZmZzZXQgPSBkcm1fdm1hX25vZGVf b2Zmc2V0X2FkZHIoJm91dF9idWYtPmJhc2UuYmFzZS52bWFfbm9kZSk7CiAJdm13X2JvX3VucmVm ZXJlbmNlKCZvdXRfYnVmKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3N1cmZhY2UuYwppbmRleCAyMTk0NzE5MDNiYzEuLjNhNmRhM2I2NjQ4NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwpAQCAtMTY2OSw3ICsxNjY5LDcgQEAgdm13 X2diX3N1cmZhY2VfZGVmaW5lX2ludGVybmFsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmVw LT5iYWNrdXBfc2l6ZSA9IHJlcy0+YmFja3VwX3NpemU7CiAJaWYgKHJlcy0+YmFja3VwKSB7CiAJ CXJlcC0+YnVmZmVyX21hcF9oYW5kbGUgPQotCQkJZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZy ZXMtPmJhY2t1cC0+YmFzZS52bWFfbm9kZSk7CisJCQlkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIo JnJlcy0+YmFja3VwLT5iYXNlLmJhc2Uudm1hX25vZGUpOwogCQlyZXAtPmJ1ZmZlcl9zaXplID0g cmVzLT5iYWNrdXAtPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOwogCQlyZXAtPmJ1ZmZlcl9o YW5kbGUgPSBiYWNrdXBfaGFuZGxlOwogCX0gZWxzZSB7CkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCB2 bXdfZ2Jfc3VyZmFjZV9yZWZlcmVuY2VfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlyZXAtPmNyZXAuYmFja3VwX3NpemUgPSBzcmYtPnJlcy5iYWNrdXBfc2l6ZTsKIAlyZXAtPmNy ZXAuYnVmZmVyX2hhbmRsZSA9IGJhY2t1cF9oYW5kbGU7CiAJcmVwLT5jcmVwLmJ1ZmZlcl9tYXBf aGFuZGxlID0KLQkJZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZzcmYtPnJlcy5iYWNrdXAtPmJh c2Uudm1hX25vZGUpOworCQlkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnNyZi0+cmVzLmJhY2t1 cC0+YmFzZS5iYXNlLnZtYV9ub2RlKTsKIAlyZXAtPmNyZXAuYnVmZmVyX3NpemUgPSBzcmYtPnJl cy5iYWNrdXAtPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOwogCiAJcmVwLT5jcmVxLnZlcnNp b24gPSBkcm1fdm13X2diX3N1cmZhY2VfdjE7Ci0tIAoyLjE4LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==