From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 3/5] drm/i915: Infrastructure for supporting different GGTT views per object Date: Thu, 30 Oct 2014 16:39:36 +0000 Message-ID: <1414687178-18562-4-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1414687178-18562-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 33CC06E0B3 for ; Thu, 30 Oct 2014 09:40:05 -0700 (PDT) In-Reply-To: <1414687178-18562-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRoaW5ncyBs aWtlIHJlbGlhYmxlIEdHVFQgbWFwcGluZ3MgYW5kIG1pcnJvcmVkIDNkIGRpc3BsYXkgd2lsbCBu ZWVkIHRvIGJlCnRvIG1hcCB0aGUgc2FtZSBvYmplY3QgdHdpY2UgaW50byB0aGUgR0dUVC4KCkFk ZCBhIGdndHRfdmlldyBmaWVsZCBwZXIgVk1BIGFuZCBzZWxlY3QgdGhlIHBhZ2UgdmlldyBiYXNl ZCBvbiB0aGUgdHlwZQpvZiB0aGUgdmlldy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgICB8ICAzICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAg IHwgIDkgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgfCAzOCArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oICAgICAgICB8IDI0ICsrKysrKysrKysrKysrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwg NjMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggYTgzMGI4NS4uOTJkZWMxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yNTE4 LDYgKzI1MTgsOSBAQCBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX29iamVjdF9waW4oc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAogCQkJCSAgICAgdWludDMyX3QgYWxpZ25tZW50LAogCQkJCSAgICAgdWludDY0 X3QgZmxhZ3MpOworCit2b2lkIGk5MTVfdm1hX2JpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGVu dW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKKwkJCXUzMiBmbGFncyk7CiBpbnQgX19t dXN0X2NoZWNrIGk5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiBpbnQgaTkx NV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsK IHZvaWQgaTkxNV9nZW1fcmVsZWFzZV9hbGxfbW1hcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDdmMjgzZDguLmQ3MDI3Zjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzQ4Nyw3ICszNDg3LDcgQEAgc2VhcmNoX2Zy ZWU6CiAJV0FSTl9PTihmbGFncyAmIFBJTl9NQVBQQUJMRSAmJiAhb2JqLT5tYXBfYW5kX2ZlbmNl YWJsZSk7CiAKIAl0cmFjZV9pOTE1X3ZtYV9iaW5kKHZtYSwgZmxhZ3MpOwotCXZtYS0+YmluZF92 bWEodm1hLCBvYmotPmNhY2hlX2xldmVsLAorCWk5MTVfdm1hX2JpbmQodm1hLCBvYmotPmNhY2hl X2xldmVsLAogCQkgICAgICBmbGFncyAmIChQSU5fTUFQUEFCTEUgfCBQSU5fR0xPQkFMKSA/IEdM T0JBTF9CSU5EIDogMCk7CiAKIAlyZXR1cm4gdm1hOwpAQCAtMzY5NSw3ICszNjk1LDcgQEAgaW50 IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIHZt YV9saW5rKQogCQkJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKLQkJCQl2 bWEtPmJpbmRfdm1hKHZtYSwgY2FjaGVfbGV2ZWwsCisJCQkJaTkxNV92bWFfYmluZCh2bWEsIGNh Y2hlX2xldmVsLAogCQkJCQkJdm1hLT5ib3VuZCAmIEdMT0JBTF9CSU5EKTsKIAl9CiAKQEAgLTQw OTMsNyArNDA5Myw3IEBAIGk5MTVfZ2VtX29iamVjdF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKIAl9CiAKIAlpZiAoZmxhZ3MgJiBQSU5fR0xPQkFMICYmICEodm1hLT5ib3Vu ZCAmIEdMT0JBTF9CSU5EKSkKLQkJdm1hLT5iaW5kX3ZtYSh2bWEsIG9iai0+Y2FjaGVfbGV2ZWws IEdMT0JBTF9CSU5EKTsKKwkJaTkxNV92bWFfYmluZCh2bWEsIG9iai0+Y2FjaGVfbGV2ZWwsIEdM T0JBTF9CSU5EKTsKIAogCXZtYS0+cGluX2NvdW50Kys7CiAJaWYgKGZsYWdzICYgUElOX01BUFBB QkxFKQpAQCAtNDUxMSw2ICs0NTExLDkgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKIAogCWxpc3RfZGVsKCZ2bWEtPnZtYV9saW5rKTsKIAorCWlmICh2 bWEtPmdndHRfdmlldy5wdXRfcGFnZXMpCisJCXZtYS0+Z2d0dF92aWV3LnB1dF9wYWdlcygmdm1h LT5nZ3R0X3ZpZXcpOworCiAJa2ZyZWUodm1hKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCmluZGV4IDVmZjZlOTQuLmQzNjUzNDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTU3Nyw3ICs1NzcsNyBAQCBzdGF0aWMgaW50IGRv X3N3aXRjaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCiAJdm1hID0gaTkxNV9nZW1f b2JqX3RvX2dndHQodG8tPmxlZ2FjeV9od19jdHgucmNzX3N0YXRlKTsKIAlpZiAoISh2bWEtPmJv dW5kICYgR0xPQkFMX0JJTkQpKQotCQl2bWEtPmJpbmRfdm1hKHZtYSwgdG8tPmxlZ2FjeV9od19j dHgucmNzX3N0YXRlLT5jYWNoZV9sZXZlbCwKKwkJaTkxNV92bWFfYmluZCh2bWEsIHRvLT5sZWdh Y3lfaHdfY3R4LnJjc19zdGF0ZS0+Y2FjaGVfbGV2ZWwsCiAJCQkJR0xPQkFMX0JJTkQpOwogCiAJ aWYgKCF0by0+bGVnYWN5X2h3X2N0eC5pbml0aWFsaXplZCB8fCBpOTE1X2dlbV9jb250ZXh0X2lz X2RlZmF1bHQodG8pKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j CmluZGV4IDhkNTZkNWIuLjViYTk0NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMKQEAgLTM1OCw3ICszNTgsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jl bG9jYXRlX2VudHJ5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKHVubGlr ZWx5KElTX0dFTjYoZGV2KSAmJgogCSAgICByZWxvYy0+d3JpdGVfZG9tYWluID09IEk5MTVfR0VN X0RPTUFJTl9JTlNUUlVDVElPTiAmJgogCSAgICAhKHRhcmdldF92bWEtPmJvdW5kICYgR0xPQkFM X0JJTkQpKSkKLQkJdGFyZ2V0X3ZtYS0+YmluZF92bWEodGFyZ2V0X3ZtYSwgdGFyZ2V0X2k5MTVf b2JqLT5jYWNoZV9sZXZlbCwKKwkJaTkxNV92bWFfYmluZCh0YXJnZXRfdm1hLCB0YXJnZXRfaTkx NV9vYmotPmNhY2hlX2xldmVsLAogCQkJCUdMT0JBTF9CSU5EKTsKIAogCS8qIFZhbGlkYXRlIHRo YXQgdGhlIHRhcmdldCBpcyBpbiBhIHZhbGlkIHIvdyBHUFUgZG9tYWluICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGU0ZWUyYWMuLmMwZTdjZDkgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiaTkxNV90cmFj ZS5oIgogI2luY2x1ZGUgImludGVsX2Rydi5oIgogCitjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3Zp ZXcgaTkxNV9nZ3R0X3ZpZXdfbm9ybWFsOworCiBzdGF0aWMgdm9pZCBiZHdfc2V0dXBfcHJpdmF0 ZV9wcGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBzdGF0aWMgdm9pZCBj aHZfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CiAKQEAgLTcxLDcgKzczLDcgQEAgc3RhdGljIGludCBzYW5pdGl6ZV9lbmFibGVfcHBndHQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuYWJsZV9wcGd0dCkKIH0KIAogCi1zdGF0aWMgdm9p ZCBwcGd0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKK3N0YXRpYyB2b2lkIHBwZ3R0 X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAog CQkJICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAogCQkJICAgdTMyIGZsYWdz KTsKIHN0YXRpYyB2b2lkIHBwZ3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpOwpA QCAtMTE5NCw3ICsxMTk2LDcgQEAgdm9pZCAgaTkxNV9wcGd0dF9yZWxlYXNlKHN0cnVjdCBrcmVm ICprcmVmKQogfQogCiBzdGF0aWMgdm9pZAotcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1h ICp2bWEsCitwcGd0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0IHNnX3Rh YmxlICpwYWdlcywKIAkgICAgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAog CSAgICAgICB1MzIgZmxhZ3MpCiB7CkBAIC0xMjAyLDcgKzEyMDQsNyBAQCBwcGd0dF9iaW5kX3Zt YShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlpZiAodm1hLT5vYmotPmd0X3JvKQogCQlmbGFncyB8 PSBQVEVfUkVBRF9PTkxZOwogCi0Jdm1hLT52bS0+aW5zZXJ0X2VudHJpZXModm1hLT52bSwgdm1h LT5vYmotPnBhZ2VzLCB2bWEtPm5vZGUuc3RhcnQsCisJdm1hLT52bS0+aW5zZXJ0X2VudHJpZXMo dm1hLT52bSwgcGFnZXMsIHZtYS0+bm9kZS5zdGFydCwKIAkJCQljYWNoZV9sZXZlbCwgZmxhZ3Mp OwogfQogCkBAIC0xMzI1LDcgKzEzMjcsNyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21h cHBpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIHdpdGhvdXQgdGVsbGluZyBvdXIg b2JqZWN0IGFib3V0IGl0LiBTbyB3ZSBuZWVkIHRvIGZha2UgaXQuCiAJCSAqLwogCQl2bWEtPmJv dW5kICY9IH5HTE9CQUxfQklORDsKLQkJdm1hLT5iaW5kX3ZtYSh2bWEsIG9iai0+Y2FjaGVfbGV2 ZWwsIEdMT0JBTF9CSU5EKTsKKwkJaTkxNV92bWFfYmluZCh2bWEsIG9iai0+Y2FjaGVfbGV2ZWws IEdMT0JBTF9CSU5EKTsKIAl9CiAKIApAQCAtMTUxMSw3ICsxNTEzLDcgQEAgc3RhdGljIHZvaWQg Z2VuNl9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogfQog CiAKLXN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK K3N0YXRpYyB2b2lkIGk5MTVfZ2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3Ry dWN0IHNnX3RhYmxlICpwYWdlcywKIAkJCSAgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2Fj aGVfbGV2ZWwsCiAJCQkgICAgICAgdTMyIHVudXNlZCkKIHsKQEAgLTE1MjAsNyArMTUyMiw3IEBA IHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJ QUdQX1VTRVJfTUVNT1JZIDogQUdQX1VTRVJfQ0FDSEVEX01FTU9SWTsKIAogCUJVR19PTighaTkx NV9pc19nZ3R0KHZtYS0+dm0pKTsKLQlpbnRlbF9ndHRfaW5zZXJ0X3NnX2VudHJpZXModm1hLT5v YmotPnBhZ2VzLCBlbnRyeSwgZmxhZ3MpOworCWludGVsX2d0dF9pbnNlcnRfc2dfZW50cmllcyhw YWdlcywgZW50cnksIGZsYWdzKTsKIAl2bWEtPmJvdW5kID0gR0xPQkFMX0JJTkQ7CiB9CiAKQEAg LTE1NDQsNyArMTU0Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF91bmJpbmRfdm1hKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCWludGVsX2d0dF9jbGVhcl9yYW5nZShmaXJzdCwgc2l6ZSk7CiB9 CiAKLXN0YXRpYyB2b2lkIGdndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCitzdGF0 aWMgdm9pZCBnZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBzdHJ1Y3Qgc2dfdGFi bGUgKnBhZ2VzLAogCQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQkg IHUzMiBmbGFncykKIHsKQEAgLTE1NzAsNyArMTU3Miw3IEBAIHN0YXRpYyB2b2lkIGdndHRfYmlu ZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJaWYgKCFkZXZfcHJpdi0+bW0uYWxpYXNpbmdf cHBndHQgfHwgZmxhZ3MgJiBHTE9CQUxfQklORCkgewogCQlpZiAoISh2bWEtPmJvdW5kICYgR0xP QkFMX0JJTkQpIHx8CiAJCSAgICAoY2FjaGVfbGV2ZWwgIT0gb2JqLT5jYWNoZV9sZXZlbCkpIHsK LQkJCXZtYS0+dm0tPmluc2VydF9lbnRyaWVzKHZtYS0+dm0sIG9iai0+cGFnZXMsCisJCQl2bWEt PnZtLT5pbnNlcnRfZW50cmllcyh2bWEtPnZtLCBwYWdlcywKIAkJCQkJCXZtYS0+bm9kZS5zdGFy dCwKIAkJCQkJCWNhY2hlX2xldmVsLCBmbGFncyk7CiAJCQl2bWEtPmJvdW5kIHw9IEdMT0JBTF9C SU5EOwpAQCAtMTU4Miw3ICsxNTg0LDcgQEAgc3RhdGljIHZvaWQgZ2d0dF9iaW5kX3ZtYShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwKIAkgICAgIChjYWNoZV9sZXZlbCAhPSBvYmotPmNhY2hlX2xldmVs KSkpIHsKIAkJc3RydWN0IGk5MTVfaHdfcHBndHQgKmFwcGd0dCA9IGRldl9wcml2LT5tbS5hbGlh c2luZ19wcGd0dDsKIAkJYXBwZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzKCZhcHBndHQtPmJhc2Us Ci0JCQkJCSAgICB2bWEtPm9iai0+cGFnZXMsCisJCQkJCSAgICBwYWdlcywKIAkJCQkJICAgIHZt YS0+bm9kZS5zdGFydCwKIAkJCQkJICAgIGNhY2hlX2xldmVsLCBmbGFncyk7CiAJCXZtYS0+Ym91 bmQgfD0gTE9DQUxfQklORDsKQEAgLTIxODksMyArMjE5MSwyMSBAQCBpOTE1X2dlbV9vYmpfbG9v a3VwX29yX2NyZWF0ZV92bWEoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCXJl dHVybiB2bWE7CiB9CisKK3ZvaWQgaTkxNV92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwg ZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAorCQkJdTMyIGZsYWdzKQoreworCXN0 cnVjdCBzZ190YWJsZSAqcGFnZXM7CisKKwlpZiAodm1hLT5nZ3R0X3ZpZXcuZ2V0X3BhZ2VzKQor CQlwYWdlcyA9IHZtYS0+Z2d0dF92aWV3LmdldF9wYWdlcygmdm1hLT5nZ3R0X3ZpZXcsIHZtYS0+ b2JqKTsKKwllbHNlCisJCXBhZ2VzID0gdm1hLT5vYmotPnBhZ2VzOworCisJaWYgKHBhZ2VzICYm ICFJU19FUlIocGFnZXMpKSB7CisJCXZtYS0+YmluZF92bWEodm1hLCBwYWdlcywgY2FjaGVfbGV2 ZWwsIGZsYWdzKTsKKworCQlpZiAodm1hLT5nZ3R0X3ZpZXcucHV0X3BhZ2VzKQorCQkJdm1hLT5n Z3R0X3ZpZXcucHV0X3BhZ2VzKCZ2bWEtPmdndHRfdmlldyk7CisJfQorfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaAppbmRleCA2NmJjNDRiLi5jYmFkZGRhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaApAQCAtMTA5LDYgKzEwOSwyMyBAQCB0eXBlZGVmIGdlbjhfZ3R0X3B0 ZV90IGdlbjhfcHBndHRfcGRlX3Q7CiAjZGVmaW5lIEdFTjhfUFBBVF9FTExDX09WRVJSSURFCQko MDw8MikKICNkZWZpbmUgR0VOOF9QUEFUKGksIHgpCQkJKCh1aW50NjRfdCkgKHgpIDw8ICgoaSkg KiA4KSkKIAorZW51bSBpOTE1X2dndHRfdmlld190eXBlIHsKKwlJOTE1X0dHVFRfVklFV19OT1JN QUwgPSAwLAorfTsKKworc3RydWN0IGk5MTVfZ2d0dF92aWV3IHsKKwllbnVtIGk5MTVfZ2d0dF92 aWV3X3R5cGUgdHlwZTsKKwl1bnNpZ25lZCBpbnQgdm1hX2lkOworCXN0cnVjdCBzZ190YWJsZSAq cGFnZXM7CisKKwlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2V0X3BhZ2VzKShzdHJ1Y3QgaTkxNV9nZ3R0 X3ZpZXcgKmdndHRfdmlldywKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKTsKKworCXZvaWQgKCpwdXRfcGFnZXMpKHN0cnVjdCBpOTE1X2dndHRfdmlldyAqZ2d0dF92 aWV3KTsKK307CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgaTkxNV9nZ3R0 X3ZpZXdfbm9ybWFsOworCiBlbnVtIGk5MTVfY2FjaGVfbGV2ZWw7CiAvKioKICAqIEEgVk1BIHJl cHJlc2VudHMgYSBHRU0gQk8gdGhhdCBpcyBib3VuZCBpbnRvIGFuIGFkZHJlc3Mgc3BhY2UuIFRo ZXJlZm9yZSwgYQpAQCAtMTM2LDYgKzE1MywxMSBAQCBzdHJ1Y3QgaTkxNV92bWEgewogI2RlZmlu ZSBWTUFfSURfREVGQVVMVAkoMCkKIAl1bnNpZ25lZCBpbnQgaWQ7CiAKKwkvKioKKwkgKiBTdXBw b3J0IGRpZmZlcmVudCBHR1RUIHZpZXdzIGludG8gdGhlIHNhbWUgb2JqZWN0LgorCSAqLworCXN0 cnVjdCBpOTE1X2dndHRfdmlldyBnZ3R0X3ZpZXc7CisKIAkvKiogVGhpcyBvYmplY3QncyBwbGFj ZSBvbiB0aGUgYWN0aXZlL2luYWN0aXZlIGxpc3RzICovCiAJc3RydWN0IGxpc3RfaGVhZCBtbV9s aXN0OwogCkBAIC0xNjgsNyArMTkwLDcgQEAgc3RydWN0IGk5MTVfdm1hIHsKIAkgKiBzZXR0aW5n IHRoZSB2YWxpZCBQVEUgZW50cmllcyB0byBhIHJlc2VydmVkIHNjcmF0Y2ggcGFnZS4gKi8KIAl2 b2lkICgqdW5iaW5kX3ZtYSkoc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCS8qIE1hcCBhbiBvYmpl Y3QgaW50byBhbiBhZGRyZXNzIHNwYWNlIHdpdGggdGhlIGdpdmVuIGNhY2hlIGZsYWdzLiAqLwot CXZvaWQgKCpiaW5kX3ZtYSkoc3RydWN0IGk5MTVfdm1hICp2bWEsCisJdm9pZCAoKmJpbmRfdm1h KShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0IHNnX3RhYmxlICpwYWdlcywKIAkJCSBlbnVt IGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQkgdTMyIGZsYWdzKTsKIH07Ci0tIAoy LjEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK