From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 7/9] drm/i915: make mappable struct resource centric Date: Tue, 5 Dec 2017 21:02:47 +0000 Message-ID: <20171205210249.8875-8-matthew.auld@intel.com> References: <20171205210249.8875-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id C20586E639 for ; Tue, 5 Dec 2017 21:03:04 +0000 (UTC) In-Reply-To: <20171205210249.8875-1-matthew.auld@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: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org Tm93IHRoYXQgd2UgYXJlIHVzaW5nIHN0cnVjdCByZXNvdXJjZSB0byB0cmFjayB0aGUgc3RvbGVu IHJlZ2lvbiwgaXQgaXMKbW9yZSBjb252ZW5pZW50IGlmIHdlIHRyYWNrIHRoZSBtYXBwYWJsZSBy ZWdpb24gaW4gYSByZXNvdXJjZSBhcyB3ZWxsLgoKdjI6IHByZWZlciBpb21hcCBhbmQgZ21hZHIg bmFtaW5nIHNjaGVtZQogICAgcHJlZmVyIERFRklORV9SRVNfTUVNCgpTaWduZWQtb2ZmLWJ5OiBN YXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCAgICAgICAgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwg IDggKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICAgICB8 IDMxICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmggICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zl cmxheS5jICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtX2d0dC5jIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L21vY2tfZ3R0LmMgICAgIHwgIDQgKystLQogMTIgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9u cygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2d2dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCmluZGV4IDM5MzA2Njcy Njk5My4uMGUxNjBiZDAwZTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3Z0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCkBAIC0zMzYsNyArMzM2 LDcgQEAgaW50IGludGVsX2d2dF9sb2FkX2Zpcm13YXJlKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCk7 CiAKIC8qIEFwZXJ0dXJlL0dNIHNwYWNlIGRlZmluaXRpb25zIGZvciBHVlQgZGV2aWNlICovCiAj ZGVmaW5lIGd2dF9hcGVydHVyZV9zeihndnQpCSAgKGd2dC0+ZGV2X3ByaXYtPmdndHQubWFwcGFi bGVfZW5kKQotI2RlZmluZSBndnRfYXBlcnR1cmVfcGFfYmFzZShndnQpIChndnQtPmRldl9wcml2 LT5nZ3R0Lm1hcHBhYmxlX2Jhc2UpCisjZGVmaW5lIGd2dF9hcGVydHVyZV9wYV9iYXNlKGd2dCkg KGd2dC0+ZGV2X3ByaXYtPmdndHQuZ21hZHIuc3RhcnQpCiAKICNkZWZpbmUgZ3Z0X2dndHRfZ21f c3ooZ3Z0KQkgIChndnQtPmRldl9wcml2LT5nZ3R0LmJhc2UudG90YWwpCiAjZGVmaW5lIGd2dF9n Z3R0X3N6KGd2dCkgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggN2ZhZjIwYWZmMjVhLi5k ODllN2IwN2ViNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNzI2LDcgKzcyNiw3IEBA IHN0YXRpYyBpbnQgaTkxNV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFhcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlhcC0+cmFu Z2VzWzBdLmJhc2UgPSBnZ3R0LT5tYXBwYWJsZV9iYXNlOworCWFwLT5yYW5nZXNbMF0uYmFzZSA9 IGdndHQtPmdtYWRyLnN0YXJ0OwogCWFwLT5yYW5nZXNbMF0uc2l6ZSA9IGdndHQtPm1hcHBhYmxl X2VuZDsKIAogCXByaW1hcnkgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZTA4M2YyNDJi OGRjLi44NzM4OGUyZDU4ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTEwNiw3ICsx MTA2LDcgQEAgaTkxNV9nZW1fZ3R0X3ByZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJCQlwYWdlX2Jhc2UgKz0gb2Zmc2V0ICYgUEFHRV9NQVNLOwogCQl9CiAKLQkJaWYgKGd0 dF91c2VyX3JlYWQoJmdndHQtPm1hcHBhYmxlLCBwYWdlX2Jhc2UsIHBhZ2Vfb2Zmc2V0LAorCQlp ZiAoZ3R0X3VzZXJfcmVhZCgmZ2d0dC0+aW9tYXAsIHBhZ2VfYmFzZSwgcGFnZV9vZmZzZXQsCiAJ CQkJICB1c2VyX2RhdGEsIHBhZ2VfbGVuZ3RoKSkgewogCQkJcmV0ID0gLUVGQVVMVDsKIAkJCWJy ZWFrOwpAQCAtMTMxNCw3ICsxMzE0LDcgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAqIElmIHRoZSBvYmplY3QgaXMgbm9uLXNo bWVtIGJhY2tlZCwgd2UgcmV0cnkgYWdhaW4gd2l0aCB0aGUKIAkJICogcGF0aCB0aGF0IGhhbmRs ZXMgcGFnZSBmYXVsdC4KIAkJICovCi0JCWlmIChnZ3R0X3dyaXRlKCZnZ3R0LT5tYXBwYWJsZSwg cGFnZV9iYXNlLCBwYWdlX29mZnNldCwKKwkJaWYgKGdndHRfd3JpdGUoJmdndHQtPmlvbWFwLCBw YWdlX2Jhc2UsIHBhZ2Vfb2Zmc2V0LAogCQkJICAgICAgIHVzZXJfZGF0YSwgcGFnZV9sZW5ndGgp KSB7CiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJYnJlYWs7CkBAIC0xOTYwLDkgKzE5NjAsOSBAQCBp bnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJLyogRmluYWxseSwgcmVt YXAgaXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0ICovCiAJcmV0ID0gcmVtYXBfaW9fbWFwcGlu ZyhhcmVhLAogCQkJICAgICAgIGFyZWEtPnZtX3N0YXJ0ICsgKHZtYS0+Z2d0dF92aWV3LnBhcnRp YWwub2Zmc2V0IDw8IFBBR0VfU0hJRlQpLAotCQkJICAgICAgIChnZ3R0LT5tYXBwYWJsZV9iYXNl ICsgdm1hLT5ub2RlLnN0YXJ0KSA+PiBQQUdFX1NISUZULAorCQkJICAgICAgIChnZ3R0LT5nbWFk ci5zdGFydCArIHZtYS0+bm9kZS5zdGFydCkgPj4gUEFHRV9TSElGVCwKIAkJCSAgICAgICBtaW5f dCh1NjQsIHZtYS0+c2l6ZSwgYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQpLAotCQkJICAg ICAgICZnZ3R0LT5tYXBwYWJsZSk7CisJCQkgICAgICAgJmdndHQtPmlvbWFwKTsKIAlpZiAocmV0 KQogCQlnb3RvIGVycl9mZW5jZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCmluZGV4IDcwY2NkNjNjYmY4ZS4uNDQwMTA2OGZmNDY4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0xMDEyLDcgKzEwMTIsNyBAQCBz dGF0aWMgdm9pZCAqcmVsb2NfaW9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK IAkJb2Zmc2V0ICs9IHBhZ2UgPDwgUEFHRV9TSElGVDsKIAl9CiAKLQl2YWRkciA9ICh2b2lkIF9f Zm9yY2UgKilpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoJmdndHQtPm1hcHBhYmxlLAorCXZhZGRy ID0gKHZvaWQgX19mb3JjZSAqKWlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+aW9tYXAs CiAJCQkJCQkJIG9mZnNldCk7CiAJY2FjaGUtPnBhZ2UgPSBwYWdlOwogCWNhY2hlLT52YWRkciA9 ICh1bnNpZ25lZCBsb25nKXZhZGRyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRl eCAzMmUwNmQ5Y2NjNTIuLjhkMTk0ODBiNjVjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKQEAgLTI5MTIsNyArMjkxMiw3IEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJYXJjaF9waHlzX3djX2RlbChnZ3R0LT5tdHJyKTsKLQlp b19tYXBwaW5nX2ZpbmkoJmdndHQtPm1hcHBhYmxlKTsKKwlpb19tYXBwaW5nX2ZpbmkoJmdndHQt PmlvbWFwKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGludCBnZW42X2dldF90b3RhbF9ndHRfc2l6 ZSh1MTYgc25iX2dtY2hfY3RsKQpAQCAtMzI4OCw4ICszMjg4LDEwIEBAIHN0YXRpYyBpbnQgZ2Vu OF9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJaW50IGVycjsKIAogCS8qIFRP RE86IFdlJ3JlIG5vdCBhd2FyZSBvZiBtYXBwYWJsZSBjb25zdHJhaW50cyBvbiBnZW44IHlldCAq LwotCWdndHQtPm1hcHBhYmxlX2Jhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMik7Ci0J Z2d0dC0+bWFwcGFibGVfZW5kID0gcGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKTsKKwlnZ3R0LT5n bWFkciA9CisJCShzdHJ1Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKHBjaV9yZXNvdXJjZV9z dGFydChwZGV2LCAyKSwKKwkJCQkJCSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpKTsKKwlnZ3R0 LT5tYXBwYWJsZV9lbmQgPSByZXNvdXJjZV9zaXplKCZnZ3R0LT5nbWFkcik7CiAKIAllcnIgPSBw Y2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSygzOSkpOwogCWlmICghZXJyKQpAQCAt MzM0NSw4ICszMzQ3LDEwIEBAIHN0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1 X2dndHQgKmdndHQpCiAJdTE2IHNuYl9nbWNoX2N0bDsKIAlpbnQgZXJyOwogCi0JZ2d0dC0+bWFw cGFibGVfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAyKTsKLQlnZ3R0LT5tYXBwYWJs ZV9lbmQgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpOworCWdndHQtPmdtYWRyID0KKwkJKHN0 cnVjdCByZXNvdXJjZSkgREVGSU5FX1JFU19NRU0ocGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDIp LAorCQkJCQkJIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMikpOworCWdndHQtPm1hcHBhYmxlX2Vu ZCA9IHJlc291cmNlX3NpemUoJmdndHQtPmdtYWRyKTsKIAogCS8qIDY0LzUxMk1CIGlzIHRoZSBj dXJyZW50IG1pbi9tYXggd2UgYWN0dWFsbHkga25vdyBvZiwgYnV0IHRoaXMgaXMganVzdAogCSAq IGEgY29hcnNlIHNhbml0eSBjaGVjay4KQEAgLTM0MDEsNiArMzQwNSw3IEBAIHN0YXRpYyB2b2lk IGk5MTVfZ21jaF9yZW1vdmUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiBzdGF0aWMg aW50IGk5MTVfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGdndHQtPmJhc2UuaTkxNTsKKwlwaHlzX2FkZHJf dCBnbWFkcl9iYXNlOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9nbWNoX3Byb2JlKGRldl9w cml2LT5icmlkZ2VfZGV2LCBkZXZfcHJpdi0+ZHJtLnBkZXYsIE5VTEwpOwpAQCAtMzQxMSw5ICsz NDE2LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdn dHQpCiAKIAlpbnRlbF9ndHRfZ2V0KCZnZ3R0LT5iYXNlLnRvdGFsLAogCQkgICAgICAmZ2d0dC0+ c3RvbGVuX3NpemUsCi0JCSAgICAgICZnZ3R0LT5tYXBwYWJsZV9iYXNlLAorCQkgICAgICAmZ21h ZHJfYmFzZSwKIAkJICAgICAgJmdndHQtPm1hcHBhYmxlX2VuZCk7CiAKKwlnZ3R0LT5nbWFkciA9 CisJCShzdHJ1Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKGdtYWRyX2Jhc2UsCisJCQkJCQkg Z2d0dC0+bWFwcGFibGVfZW5kKTsKKwogCWdndHQtPmRvX2lkbGVfbWFwcyA9IG5lZWRzX2lkbGVf bWFwcyhkZXZfcHJpdik7CiAJZ2d0dC0+YmFzZS5pbnNlcnRfcGFnZSA9IGk5MTVfZ2d0dF9pbnNl cnRfcGFnZTsKIAlnZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gaTkxNV9nZ3R0X2luc2VydF9l bnRyaWVzOwpAQCAtMzQ4MSw4ICszNDkwLDggQEAgaW50IGk5MTVfZ2d0dF9wcm9iZV9odyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogR01BRFIgaXMgdGhlIFBDSSBtbWlv IGFwZXJ0dXJlIGludG8gdGhlIGdsb2JhbCBHVFQuICovCiAJRFJNX0lORk8oIk1lbW9yeSB1c2Fi bGUgYnkgZ3JhcGhpY3MgZGV2aWNlID0gJWxsdU1cbiIsCiAJCSBnZ3R0LT5iYXNlLnRvdGFsID4+ IDIwKTsKLQlEUk1fREVCVUdfRFJJVkVSKCJHTUFEUiBzaXplID0gJWxsZE1cbiIsIGdndHQtPm1h cHBhYmxlX2VuZCA+PiAyMCk7Ci0JRFJNX0RFQlVHX0RSSVZFUigiR1RUIHN0b2xlbiBzaXplID0g JXVNXG4iLCBnZ3R0LT5zdG9sZW5fc2l6ZSA+PiAyMCk7CisJRFJNX0RFQlVHX0RSSVZFUigiR01B RFIgc2l6ZSA9ICVsbHVNXG4iLCAodTY0KWdndHQtPm1hcHBhYmxlX2VuZCA+PiAyMCk7CisJRFJN X0RFQlVHX0RSSVZFUigiR1RUIHN0b2xlbiBzaXplID0gJWxsdU1cbiIsICh1NjQpZ2d0dC0+c3Rv bGVuX3NpemUgPj4gMjApOwogCWlmIChpbnRlbF92dGRfYWN0aXZlKCkpCiAJCURSTV9JTkZPKCJW VC1kIGFjdGl2ZSBmb3IgZ2Z4IGFjY2Vzc1xuIik7CiAKQEAgLTM1MTEsMTQgKzM1MjAsMTQgQEAg aW50IGk5MTVfZ2d0dF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJZ2d0dC0+YmFzZS5tbS5jb2xvcl9hZGp1c3QgPSBpOTE1X2d0dF9jb2xvcl9hZGp1c3Q7CiAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlpZiAoIWlvX21h cHBpbmdfaW5pdF93YygmZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCi0JCQkJZGV2X3ByaXYtPmdn dHQubWFwcGFibGVfYmFzZSwKKwlpZiAoIWlvX21hcHBpbmdfaW5pdF93YygmZGV2X3ByaXYtPmdn dHQuaW9tYXAsCisJCQkJZGV2X3ByaXYtPmdndHQuZ21hZHIuc3RhcnQsCiAJCQkJZGV2X3ByaXYt PmdndHQubWFwcGFibGVfZW5kKSkgewogCQlyZXQgPSAtRUlPOwogCQlnb3RvIG91dF9ndHRfY2xl YW51cDsKIAl9CiAKLQlnZ3R0LT5tdHJyID0gYXJjaF9waHlzX3djX2FkZChnZ3R0LT5tYXBwYWJs ZV9iYXNlLCBnZ3R0LT5tYXBwYWJsZV9lbmQpOworCWdndHQtPm10cnIgPSBhcmNoX3BoeXNfd2Nf YWRkKGdndHQtPmdtYWRyLnN0YXJ0LCBnZ3R0LT5tYXBwYWJsZV9lbmQpOwogCiAJLyoKIAkgKiBJ bml0aWFsaXNlIHN0b2xlbiBlYXJseSBzbyB0aGF0IHdlIG1heSByZXNlcnZlIHByZWFsbG9jYXRl ZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCA4NGJiM2VlMTdkZDcuLjMyZmJl MWQ1OTQ0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTM2OCw5ICszNjgs OSBAQCBpOTE1X3ZtX2hhc19zY3JhdGNoXzY0SyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSkKICAqLwogc3RydWN0IGk5MTVfZ2d0dCB7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSBi YXNlOwotCXN0cnVjdCBpb19tYXBwaW5nIG1hcHBhYmxlOwkvKiBNYXBwaW5nIHRvIG91ciBDUFUg bWFwcGFibGUgcmVnaW9uICovCiAKLQlwaHlzX2FkZHJfdCBtYXBwYWJsZV9iYXNlOwkvKiBQQSBv ZiBvdXIgR01BRFIgKi8KKwlzdHJ1Y3QgaW9fbWFwcGluZyBpb21hcDsJLyogTWFwcGluZyB0byBv dXIgQ1BVIG1hcHBhYmxlIHJlZ2lvbiAqLworCXN0cnVjdCByZXNvdXJjZSBnbWFkcjsgICAgICAg ICAgLyogR01BRFIgcmVzb3VyY2UgKi8KIAl1NjQgbWFwcGFibGVfZW5kOwkJLyogRW5kIG9mZnNl dCB0aGF0IHdlIGNhbiBDUFUgbWFwICovCiAKIAkvKiBTdG9sZW4gbWVtb3J5IGlzIHNlZ21lbnRl ZCBpbiBoYXJkd2FyZSB3aXRoIGRpZmZlcmVudCBwb3J0aW9ucwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKaW5kZXggNDg0MThmYjgxMDY2Li5hYmE1MGFhNjEzZjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtOTU2LDcgKzk1Niw3IEBAIGk5MTVfZXJy b3Jfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJZ2d0dC0+ YmFzZS5pbnNlcnRfcGFnZSgmZ2d0dC0+YmFzZSwgZG1hLCBzbG90LAogCQkJCSAgICAgICBJOTE1 X0NBQ0hFX05PTkUsIDApOwogCi0JCXMgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoJmdndHQt Pm1hcHBhYmxlLCBzbG90KTsKKwkJcyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+ aW9tYXAsIHNsb3QpOwogCQlyZXQgPSBjb21wcmVzc19wYWdlKCZjb21wcmVzcywgKHZvaWQgIF9f Zm9yY2UgKilzLCBkc3QpOwogCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdm1hLmMKaW5kZXggYmY2ZDhkMWVhYWJlLi43NDE5NjIzZmYxNDQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuYwpAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgX19pb21lbSAqaTkxNV92 bWFfcGluX2lvbWFwKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCiAJcHRyID0gdm1hLT5pb21hcDsK IAlpZiAocHRyID09IE5VTEwpIHsKLQkJcHRyID0gaW9fbWFwcGluZ19tYXBfd2MoJmk5MTVfdm1f dG9fZ2d0dCh2bWEtPnZtKS0+bWFwcGFibGUsCisJCXB0ciA9IGlvX21hcHBpbmdfbWFwX3djKCZp OTE1X3ZtX3RvX2dndHQodm1hLT52bSktPmlvbWFwLAogCQkJCQl2bWEtPm5vZGUuc3RhcnQsCiAJ CQkJCXZtYS0+bm9kZS5zaXplKTsKIAkJaWYgKHB0ciA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMWY3ZTMxMmQwZDBkLi4wMDk4NzM4ZDM3NDAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0NjIxLDcgKzE0NjIxLDcgQEAgaW50 IGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlkZXYtPm1vZGVf Y29uZmlnLmN1cnNvcl9oZWlnaHQgPSBNQVhfQ1VSU09SX0hFSUdIVDsKIAl9CiAKLQlkZXYtPm1v ZGVfY29uZmlnLmZiX2Jhc2UgPSBnZ3R0LT5tYXBwYWJsZV9iYXNlOworCWRldi0+bW9kZV9jb25m aWcuZmJfYmFzZSA9IGdndHQtPmdtYWRyLnN0YXJ0OwogCiAJRFJNX0RFQlVHX0tNUygiJWQgZGlz cGxheSBwaXBlJXMgYXZhaWxhYmxlLlxuIiwKIAkJICAgICAgSU5URUxfSU5GTyhkZXZfcHJpdikt Pm51bV9waXBlcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCAxYjM5N2I0 MWNiNGYuLjQxZTk0NjVkNDRhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ZlcmxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpA QCAtMjE5LDcgKzIxOSw3IEBAIGludGVsX292ZXJsYXlfbWFwX3JlZ3Moc3RydWN0IGludGVsX292 ZXJsYXkgKm92ZXJsYXkpCiAJaWYgKE9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2X3ByaXYpKQog CQlyZWdzID0gKHN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lvbWVtICopb3ZlcmxheS0+cmVn X2JvLT5waHlzX2hhbmRsZS0+dmFkZHI7CiAJZWxzZQotCQlyZWdzID0gaW9fbWFwcGluZ19tYXBf d2MoJmRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlLAorCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfd2Mo JmRldl9wcml2LT5nZ3R0LmlvbWFwLAogCQkJCQkgb3ZlcmxheS0+ZmxpcF9hZGRyLAogCQkJCQkg UEFHRV9TSVpFKTsKIApAQCAtMTUwOCw3ICsxNTA4LDcgQEAgaW50ZWxfb3ZlcmxheV9tYXBfcmVn c19hdG9taWMoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiAJCXJlZ3MgPSAoc3RydWN0 IG92ZXJsYXlfcmVnaXN0ZXJzIF9faW9tZW0gKikKIAkJCW92ZXJsYXktPnJlZ19iby0+cGh5c19o YW5kbGUtPnZhZGRyOwogCWVsc2UKLQkJcmVncyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193Yygm ZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCisJCXJlZ3MgPSBpb19tYXBwaW5nX21hcF9hdG9taWNf d2MoJmRldl9wcml2LT5nZ3R0LmlvbWFwLAogCQkJCQkJb3ZlcmxheS0+ZmxpcF9hZGRyKTsKIAog CXJldHVybiByZWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt X2d0dC5jCmluZGV4IDY0OTFjZjBhNGY0Ni4uNGEyOGQ3MTNhN2Q4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCkBAIC0xMDc0LDcgKzEwNzQsNyBA QCBzdGF0aWMgaW50IGlndF9nZ3R0X3BhZ2Uodm9pZCAqYXJnKQogCQkJCSAgICAgICBpOTE1X2dl bV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKG9iaiwgMCksCiAJCQkJICAgICAgIG9mZnNldCwgSTkx NV9DQUNIRV9OT05FLCAwKTsKIAotCQl2YWRkciA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193Yygm Z2d0dC0+bWFwcGFibGUsIG9mZnNldCk7CisJCXZhZGRyID0gaW9fbWFwcGluZ19tYXBfYXRvbWlj X3djKCZnZ3R0LT5pb21hcCwgb2Zmc2V0KTsKIAkJaW93cml0ZTMyKG4sIHZhZGRyICsgbik7CiAJ CWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKHZhZGRyKTsKIApAQCAtMTA5Miw3ICsxMDkyLDcgQEAg c3RhdGljIGludCBpZ3RfZ2d0dF9wYWdlKHZvaWQgKmFyZykKIAkJCQkgICAgICAgaTkxNV9nZW1f b2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmosIDApLAogCQkJCSAgICAgICBvZmZzZXQsIEk5MTVf Q0FDSEVfTk9ORSwgMCk7CiAKLQkJdmFkZHIgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoJmdn dHQtPm1hcHBhYmxlLCBvZmZzZXQpOworCQl2YWRkciA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193 YygmZ2d0dC0+aW9tYXAsIG9mZnNldCk7CiAJCXZhbCA9IGlvcmVhZDMyKHZhZGRyICsgbik7CiAJ CWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKHZhZGRyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19ndHQuYwppbmRleCAzMzZlMWFmYjI1MGYuLmU5Njg3M2Y5NjExNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKQEAgLTExMCw4ICsxMTAs OCBAQCB2b2lkIG1vY2tfaW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQog CiAJZ2d0dC0+YmFzZS5pOTE1ID0gaTkxNTsKIAotCWdndHQtPm1hcHBhYmxlX2Jhc2UgPSAwOwot CWdndHQtPm1hcHBhYmxlX2VuZCA9IDIwNDggKiBQQUdFX1NJWkU7CisJZ2d0dC0+Z21hZHIgPSAo c3RydWN0IHJlc291cmNlKSBERUZJTkVfUkVTX01FTSgwLCAyMDQ4ICogUEFHRV9TSVpFKTsKKwln Z3R0LT5tYXBwYWJsZV9lbmQgPSByZXNvdXJjZV9zaXplKCZnZ3R0LT5nbWFkcik7CiAJZ2d0dC0+ YmFzZS50b3RhbCA9IDQwOTYgKiBQQUdFX1NJWkU7CiAKIAlnZ3R0LT5iYXNlLmNsZWFyX3Jhbmdl ID0gbm9wX2NsZWFyX3JhbmdlOwotLSAKMi4xNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK