From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v8 7/9] drm/i915: make mappable struct resource centric Date: Mon, 11 Dec 2017 15:18:20 +0000 Message-ID: <20171211151822.20953-8-matthew.auld@intel.com> References: <20171211151822.20953-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51AFD6E2F3 for ; Mon, 11 Dec 2017 15:18:40 +0000 (UTC) In-Reply-To: <20171211151822.20953-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 ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICAgICB8ICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgOCAr KysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICAgICB8IDI5 ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmggICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1h LmMgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zlcmxh eS5jICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfZ2VtX2d0dC5jIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZ3R0LmMgICAgIHwgIDQgKystLQogMTIgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2d2dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCmluZGV4IDc3ZGY5YmFkNWRl YS4uMTAzOTEwYTI0ZTRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCkBAIC0zNDgsNyArMzQ4LDcg QEAgaW50IGludGVsX2d2dF9sb2FkX2Zpcm13YXJlKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCk7CiAK IC8qIEFwZXJ0dXJlL0dNIHNwYWNlIGRlZmluaXRpb25zIGZvciBHVlQgZGV2aWNlICovCiAjZGVm aW5lIGd2dF9hcGVydHVyZV9zeihndnQpCSAgKGd2dC0+ZGV2X3ByaXYtPmdndHQubWFwcGFibGVf ZW5kKQotI2RlZmluZSBndnRfYXBlcnR1cmVfcGFfYmFzZShndnQpIChndnQtPmRldl9wcml2LT5n Z3R0Lm1hcHBhYmxlX2Jhc2UpCisjZGVmaW5lIGd2dF9hcGVydHVyZV9wYV9iYXNlKGd2dCkgKGd2 dC0+ZGV2X3ByaXYtPmdndHQuZ21hZHIuc3RhcnQpCiAKICNkZWZpbmUgZ3Z0X2dndHRfZ21fc3oo Z3Z0KQkgIChndnQtPmRldl9wcml2LT5nZ3R0LmJhc2UudG90YWwpCiAjZGVmaW5lIGd2dF9nZ3R0 X3N6KGd2dCkgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggNWIxZmQ1ZjFkZWZiLi41NGE4 ZmNhN2U3YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNzI2LDcgKzcyNiw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJaWYgKCFhcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlhcC0+cmFuZ2Vz WzBdLmJhc2UgPSBnZ3R0LT5tYXBwYWJsZV9iYXNlOworCWFwLT5yYW5nZXNbMF0uYmFzZSA9IGdn dHQtPmdtYWRyLnN0YXJ0OwogCWFwLT5yYW5nZXNbMF0uc2l6ZSA9IGdndHQtPm1hcHBhYmxlX2Vu ZDsKIAogCXByaW1hcnkgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZmNjOWI1Mzg2NGYw Li5lODk0OTZhZWM4NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTExNiw3ICsxMTE2 LDcgQEAgaTkxNV9nZW1fZ3R0X3ByZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCQlwYWdlX2Jhc2UgKz0gb2Zmc2V0ICYgUEFHRV9NQVNLOwogCQl9CiAKLQkJaWYgKGd0dF91 c2VyX3JlYWQoJmdndHQtPm1hcHBhYmxlLCBwYWdlX2Jhc2UsIHBhZ2Vfb2Zmc2V0LAorCQlpZiAo Z3R0X3VzZXJfcmVhZCgmZ2d0dC0+aW9tYXAsIHBhZ2VfYmFzZSwgcGFnZV9vZmZzZXQsCiAJCQkJ ICB1c2VyX2RhdGEsIHBhZ2VfbGVuZ3RoKSkgewogCQkJcmV0ID0gLUVGQVVMVDsKIAkJCWJyZWFr OwpAQCAtMTMyNCw3ICsxMzI0LDcgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAqIElmIHRoZSBvYmplY3QgaXMgbm9uLXNobWVt IGJhY2tlZCwgd2UgcmV0cnkgYWdhaW4gd2l0aCB0aGUKIAkJICogcGF0aCB0aGF0IGhhbmRsZXMg cGFnZSBmYXVsdC4KIAkJICovCi0JCWlmIChnZ3R0X3dyaXRlKCZnZ3R0LT5tYXBwYWJsZSwgcGFn ZV9iYXNlLCBwYWdlX29mZnNldCwKKwkJaWYgKGdndHRfd3JpdGUoJmdndHQtPmlvbWFwLCBwYWdl X2Jhc2UsIHBhZ2Vfb2Zmc2V0LAogCQkJICAgICAgIHVzZXJfZGF0YSwgcGFnZV9sZW5ndGgpKSB7 CiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJYnJlYWs7CkBAIC0xOTY3LDkgKzE5NjcsOSBAQCBpbnQg aTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJLyogRmluYWxseSwgcmVtYXAg aXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0ICovCiAJcmV0ID0gcmVtYXBfaW9fbWFwcGluZyhh cmVhLAogCQkJICAgICAgIGFyZWEtPnZtX3N0YXJ0ICsgKHZtYS0+Z2d0dF92aWV3LnBhcnRpYWwu b2Zmc2V0IDw8IFBBR0VfU0hJRlQpLAotCQkJICAgICAgIChnZ3R0LT5tYXBwYWJsZV9iYXNlICsg dm1hLT5ub2RlLnN0YXJ0KSA+PiBQQUdFX1NISUZULAorCQkJICAgICAgIChnZ3R0LT5nbWFkci5z dGFydCArIHZtYS0+bm9kZS5zdGFydCkgPj4gUEFHRV9TSElGVCwKIAkJCSAgICAgICBtaW5fdCh1 NjQsIHZtYS0+c2l6ZSwgYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQpLAotCQkJICAgICAg ICZnZ3R0LT5tYXBwYWJsZSk7CisJCQkgICAgICAgJmdndHQtPmlvbWFwKTsKIAlpZiAocmV0KQog CQlnb3RvIGVycl9mZW5jZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jCmluZGV4IDcwY2NkNjNjYmY4ZS4uNDQwMTA2OGZmNDY4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0xMDEyLDcgKzEwMTIsNyBAQCBzdGF0 aWMgdm9pZCAqcmVsb2NfaW9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJ b2Zmc2V0ICs9IHBhZ2UgPDwgUEFHRV9TSElGVDsKIAl9CiAKLQl2YWRkciA9ICh2b2lkIF9fZm9y Y2UgKilpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoJmdndHQtPm1hcHBhYmxlLAorCXZhZGRyID0g KHZvaWQgX19mb3JjZSAqKWlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+aW9tYXAsCiAJ CQkJCQkJIG9mZnNldCk7CiAJY2FjaGUtPnBhZ2UgPSBwYWdlOwogCWNhY2hlLT52YWRkciA9ICh1 bnNpZ25lZCBsb25nKXZhZGRyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA3 YTUzMDIzMThkMzEuLmZiYzFmNDY3MjczYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMKQEAgLTI5MTIsNyArMjkxMiw3IEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCiAJYXJjaF9waHlzX3djX2RlbChnZ3R0LT5tdHJyKTsKLQlpb19t YXBwaW5nX2ZpbmkoJmdndHQtPm1hcHBhYmxlKTsKKwlpb19tYXBwaW5nX2ZpbmkoJmdndHQtPmlv bWFwKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGludCBnZW42X2dldF90b3RhbF9ndHRfc2l6ZSh1 MTYgc25iX2dtY2hfY3RsKQpAQCAtMzI4OCw4ICszMjg4LDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9n bWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJaW50IGVycjsKIAogCS8qIFRPRE86 IFdlJ3JlIG5vdCBhd2FyZSBvZiBtYXBwYWJsZSBjb25zdHJhaW50cyBvbiBnZW44IHlldCAqLwot CWdndHQtPm1hcHBhYmxlX2Jhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMik7Ci0JZ2d0 dC0+bWFwcGFibGVfZW5kID0gcGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKTsKKwlnZ3R0LT5nbWFk ciA9CisJCShzdHJ1Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKHBjaV9yZXNvdXJjZV9zdGFy dChwZGV2LCAyKSwKKwkJCQkJCSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpKTsKKwlnZ3R0LT5t YXBwYWJsZV9lbmQgPSByZXNvdXJjZV9zaXplKCZnZ3R0LT5nbWFkcik7CiAKIAllcnIgPSBwY2lf c2V0X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSygzOSkpOwogCWlmICghZXJyKQpAQCAtMzM0 Myw4ICszMzQ1LDEwIEBAIHN0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dn dHQgKmdndHQpCiAJdTE2IHNuYl9nbWNoX2N0bDsKIAlpbnQgZXJyOwogCi0JZ2d0dC0+bWFwcGFi bGVfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAyKTsKLQlnZ3R0LT5tYXBwYWJsZV9l bmQgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpOworCWdndHQtPmdtYWRyID0KKwkJKHN0cnVj dCByZXNvdXJjZSkgREVGSU5FX1JFU19NRU0ocGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDIpLAor CQkJCQkJIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMikpOworCWdndHQtPm1hcHBhYmxlX2VuZCA9 IHJlc291cmNlX3NpemUoJmdndHQtPmdtYWRyKTsKIAogCS8qIDY0LzUxMk1CIGlzIHRoZSBjdXJy ZW50IG1pbi9tYXggd2UgYWN0dWFsbHkga25vdyBvZiwgYnV0IHRoaXMgaXMganVzdAogCSAqIGEg Y29hcnNlIHNhbml0eSBjaGVjay4KQEAgLTMzOTcsNiArMzQwMSw3IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZ21jaF9yZW1vdmUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiBzdGF0aWMgaW50 IGk5MTVfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGdndHQtPmJhc2UuaTkxNTsKKwlwaHlzX2FkZHJfdCBn bWFkcl9iYXNlOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9nbWNoX3Byb2JlKGRldl9wcml2 LT5icmlkZ2VfZGV2LCBkZXZfcHJpdi0+ZHJtLnBkZXYsIE5VTEwpOwpAQCAtMzQwNiw5ICszNDEx LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQp CiAJfQogCiAJaW50ZWxfZ3R0X2dldCgmZ2d0dC0+YmFzZS50b3RhbCwKLQkJICAgICAgJmdndHQt Pm1hcHBhYmxlX2Jhc2UsCisJCSAgICAgICZnbWFkcl9iYXNlLAogCQkgICAgICAmZ2d0dC0+bWFw cGFibGVfZW5kKTsKIAorCWdndHQtPmdtYWRyID0KKwkJKHN0cnVjdCByZXNvdXJjZSkgREVGSU5F X1JFU19NRU0oZ21hZHJfYmFzZSwKKwkJCQkJCSBnZ3R0LT5tYXBwYWJsZV9lbmQpOworCiAJZ2d0 dC0+ZG9faWRsZV9tYXBzID0gbmVlZHNfaWRsZV9tYXBzKGRldl9wcml2KTsKIAlnZ3R0LT5iYXNl Lmluc2VydF9wYWdlID0gaTkxNV9nZ3R0X2luc2VydF9wYWdlOwogCWdndHQtPmJhc2UuaW5zZXJ0 X2VudHJpZXMgPSBpOTE1X2dndHRfaW5zZXJ0X2VudHJpZXM7CkBAIC0zNDc2LDcgKzM0ODUsNyBA QCBpbnQgaTkxNV9nZ3R0X3Byb2JlX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAkvKiBHTUFEUiBpcyB0aGUgUENJIG1taW8gYXBlcnR1cmUgaW50byB0aGUgZ2xvYmFsIEdU VC4gKi8KIAlEUk1fSU5GTygiTWVtb3J5IHVzYWJsZSBieSBncmFwaGljcyBkZXZpY2UgPSAlbGx1 TVxuIiwKIAkJIGdndHQtPmJhc2UudG90YWwgPj4gMjApOwotCURSTV9ERUJVR19EUklWRVIoIkdN QURSIHNpemUgPSAlbGxkTVxuIiwgZ2d0dC0+bWFwcGFibGVfZW5kID4+IDIwKTsKKwlEUk1fREVC VUdfRFJJVkVSKCJHTUFEUiBzaXplID0gJWxsdU1cbiIsICh1NjQpZ2d0dC0+bWFwcGFibGVfZW5k ID4+IDIwKTsKIAlEUk1fREVCVUdfRFJJVkVSKCJHVFQgc3RvbGVuIHNpemUgPSAlbGx1TVxuIiwK IAkJCSAodTY0KXJlc291cmNlX3NpemUoJmludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMpID4+IDIw KTsKIAlpZiAoaW50ZWxfdnRkX2FjdGl2ZSgpKQpAQCAtMzUwNywxNCArMzUxNiwxNCBAQCBpbnQg aTkxNV9nZ3R0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQln Z3R0LT5iYXNlLm1tLmNvbG9yX2FkanVzdCA9IGk5MTVfZ3R0X2NvbG9yX2FkanVzdDsKIAltdXRl eF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWlmICghaW9fbWFwcGlu Z19pbml0X3djKCZkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZSwKLQkJCQlkZXZfcHJpdi0+Z2d0dC5t YXBwYWJsZV9iYXNlLAorCWlmICghaW9fbWFwcGluZ19pbml0X3djKCZkZXZfcHJpdi0+Z2d0dC5p b21hcCwKKwkJCQlkZXZfcHJpdi0+Z2d0dC5nbWFkci5zdGFydCwKIAkJCQlkZXZfcHJpdi0+Z2d0 dC5tYXBwYWJsZV9lbmQpKSB7CiAJCXJldCA9IC1FSU87CiAJCWdvdG8gb3V0X2d0dF9jbGVhbnVw OwogCX0KIAotCWdndHQtPm10cnIgPSBhcmNoX3BoeXNfd2NfYWRkKGdndHQtPm1hcHBhYmxlX2Jh c2UsIGdndHQtPm1hcHBhYmxlX2VuZCk7CisJZ2d0dC0+bXRyciA9IGFyY2hfcGh5c193Y19hZGQo Z2d0dC0+Z21hZHIuc3RhcnQsIGdndHQtPm1hcHBhYmxlX2VuZCk7CiAKIAkvKgogCSAqIEluaXRp YWxpc2Ugc3RvbGVuIGVhcmx5IHNvIHRoYXQgd2UgbWF5IHJlc2VydmUgcHJlYWxsb2NhdGVkCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IGRiMjBjNzJlY2ZjOC4uNGExN2NlMzYy ODFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtMzY4LDkgKzM2OCw5IEBA IGk5MTVfdm1faGFzX3NjcmF0Y2hfNjRLKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQog ICovCiBzdHJ1Y3QgaTkxNV9nZ3R0IHsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIGJhc2U7 Ci0Jc3RydWN0IGlvX21hcHBpbmcgbWFwcGFibGU7CS8qIE1hcHBpbmcgdG8gb3VyIENQVSBtYXBw YWJsZSByZWdpb24gKi8KIAotCXBoeXNfYWRkcl90IG1hcHBhYmxlX2Jhc2U7CS8qIFBBIG9mIG91 ciBHTUFEUiAqLworCXN0cnVjdCBpb19tYXBwaW5nIGlvbWFwOwkvKiBNYXBwaW5nIHRvIG91ciBD UFUgbWFwcGFibGUgcmVnaW9uICovCisJc3RydWN0IHJlc291cmNlIGdtYWRyOyAgICAgICAgICAv KiBHTUFEUiByZXNvdXJjZSAqLwogCXU2NCBtYXBwYWJsZV9lbmQ7CQkvKiBFbmQgb2Zmc2V0IHRo YXQgd2UgY2FuIENQVSBtYXAgKi8KIAogCS8qIFN0b2xlbiBtZW1vcnkgaXMgc2VnbWVudGVkIGlu IGhhcmR3YXJlIHdpdGggZGlmZmVyZW50IHBvcnRpb25zCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYwppbmRleCA0ODQxOGZiODEwNjYuLmFiYTUwYWE2MTNmMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC05NTYsNyArOTU2LDcgQEAgaTkxNV9lcnJvcl9v YmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlnZ3R0LT5iYXNl Lmluc2VydF9wYWdlKCZnZ3R0LT5iYXNlLCBkbWEsIHNsb3QsCiAJCQkJICAgICAgIEk5MTVfQ0FD SEVfTk9ORSwgMCk7CiAKLQkJcyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+bWFw cGFibGUsIHNsb3QpOworCQlzID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKCZnZ3R0LT5pb21h cCwgc2xvdCk7CiAJCXJldCA9IGNvbXByZXNzX3BhZ2UoJmNvbXByZXNzLCAodm9pZCAgX19mb3Jj ZSAqKXMsIGRzdCk7CiAJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKHMpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV92bWEuYwppbmRleCA5MmMxMWU3MGZlYTQuLmUwZTdjNDhmNDVkYyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jCkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBfX2lvbWVtICppOTE1X3ZtYV9w aW5faW9tYXAoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAKIAlwdHIgPSB2bWEtPmlvbWFwOwogCWlm IChwdHIgPT0gTlVMTCkgewotCQlwdHIgPSBpb19tYXBwaW5nX21hcF93YygmaTkxNV92bV90b19n Z3R0KHZtYS0+dm0pLT5tYXBwYWJsZSwKKwkJcHRyID0gaW9fbWFwcGluZ19tYXBfd2MoJmk5MTVf dm1fdG9fZ2d0dCh2bWEtPnZtKS0+aW9tYXAsCiAJCQkJCXZtYS0+bm9kZS5zdGFydCwKIAkJCQkJ dm1hLT5ub2RlLnNpemUpOwogCQlpZiAocHRyID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCBmMGE4Njg2ZjA1MTMuLmY5ZmYxYzdmYTA1NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTQ1OTUsNyArMTQ1OTUsNyBAQCBpbnQgaW50 ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRldi0+bW9kZV9jb25m aWcuY3Vyc29yX2hlaWdodCA9IE1BWF9DVVJTT1JfSEVJR0hUOwogCX0KIAotCWRldi0+bW9kZV9j b25maWcuZmJfYmFzZSA9IGdndHQtPm1hcHBhYmxlX2Jhc2U7CisJZGV2LT5tb2RlX2NvbmZpZy5m Yl9iYXNlID0gZ2d0dC0+Z21hZHIuc3RhcnQ7CiAKIAlEUk1fREVCVUdfS01TKCIlZCBkaXNwbGF5 IHBpcGUlcyBhdmFpbGFibGUuXG4iLAogCQkgICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVt X3BpcGVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCmluZGV4IDFiMzk3YjQxY2I0 Zi4uNDFlOTQ2NWQ0NGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9v dmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCkBAIC0y MTksNyArMjE5LDcgQEAgaW50ZWxfb3ZlcmxheV9tYXBfcmVncyhzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSkKIAlpZiAoT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChkZXZfcHJpdikpCiAJCXJl Z3MgPSAoc3RydWN0IG92ZXJsYXlfcmVnaXN0ZXJzIF9faW9tZW0gKilvdmVybGF5LT5yZWdfYm8t PnBoeXNfaGFuZGxlLT52YWRkcjsKIAllbHNlCi0JCXJlZ3MgPSBpb19tYXBwaW5nX21hcF93Yygm ZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCisJCXJlZ3MgPSBpb19tYXBwaW5nX21hcF93YygmZGV2 X3ByaXYtPmdndHQuaW9tYXAsCiAJCQkJCSBvdmVybGF5LT5mbGlwX2FkZHIsCiAJCQkJCSBQQUdF X1NJWkUpOwogCkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBpbnRlbF9vdmVybGF5X21hcF9yZWdzX2F0 b21pYyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAkJcmVncyA9IChzdHJ1Y3Qgb3Zl cmxheV9yZWdpc3RlcnMgX19pb21lbSAqKQogCQkJb3ZlcmxheS0+cmVnX2JvLT5waHlzX2hhbmRs ZS0+dmFkZHI7CiAJZWxzZQotCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKCZkZXZf cHJpdi0+Z2d0dC5tYXBwYWJsZSwKKwkJcmVncyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193Yygm ZGV2X3ByaXYtPmdndHQuaW9tYXAsCiAJCQkJCQlvdmVybGF5LT5mbGlwX2FkZHIpOwogCiAJcmV0 dXJuIHJlZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0 LmMKaW5kZXggNjQ5MWNmMGE0ZjQ2Li40YTI4ZDcxM2E3ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKQEAgLTEwNzQsNyArMTA3NCw3IEBAIHN0 YXRpYyBpbnQgaWd0X2dndHRfcGFnZSh2b2lkICphcmcpCiAJCQkJICAgICAgIGk5MTVfZ2VtX29i amVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCAwKSwKIAkJCQkgICAgICAgb2Zmc2V0LCBJOTE1X0NB Q0hFX05PTkUsIDApOwogCi0JCXZhZGRyID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKCZnZ3R0 LT5tYXBwYWJsZSwgb2Zmc2V0KTsKKwkJdmFkZHIgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2Mo JmdndHQtPmlvbWFwLCBvZmZzZXQpOwogCQlpb3dyaXRlMzIobiwgdmFkZHIgKyBuKTsKIAkJaW9f bWFwcGluZ191bm1hcF9hdG9taWModmFkZHIpOwogCkBAIC0xMDkyLDcgKzEwOTIsNyBAQCBzdGF0 aWMgaW50IGlndF9nZ3R0X3BhZ2Uodm9pZCAqYXJnKQogCQkJCSAgICAgICBpOTE1X2dlbV9vYmpl Y3RfZ2V0X2RtYV9hZGRyZXNzKG9iaiwgMCksCiAJCQkJICAgICAgIG9mZnNldCwgSTkxNV9DQUNI RV9OT05FLCAwKTsKIAotCQl2YWRkciA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+ bWFwcGFibGUsIG9mZnNldCk7CisJCXZhZGRyID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKCZn Z3R0LT5pb21hcCwgb2Zmc2V0KTsKIAkJdmFsID0gaW9yZWFkMzIodmFkZHIgKyBuKTsKIAkJaW9f bWFwcGluZ191bm1hcF9hdG9taWModmFkZHIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2d0dC5jCmluZGV4IDMzNmUxYWZiMjUwZi4uZTk2ODczZjk2MTE2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYwpAQCAtMTEwLDggKzExMCw4IEBA IHZvaWQgbW9ja19pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAln Z3R0LT5iYXNlLmk5MTUgPSBpOTE1OwogCi0JZ2d0dC0+bWFwcGFibGVfYmFzZSA9IDA7Ci0JZ2d0 dC0+bWFwcGFibGVfZW5kID0gMjA0OCAqIFBBR0VfU0laRTsKKwlnZ3R0LT5nbWFkciA9IChzdHJ1 Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKDAsIDIwNDggKiBQQUdFX1NJWkUpOworCWdndHQt Pm1hcHBhYmxlX2VuZCA9IHJlc291cmNlX3NpemUoJmdndHQtPmdtYWRyKTsKIAlnZ3R0LT5iYXNl LnRvdGFsID0gNDA5NiAqIFBBR0VfU0laRTsKIAogCWdndHQtPmJhc2UuY2xlYXJfcmFuZ2UgPSBu b3BfY2xlYXJfcmFuZ2U7Ci0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=