From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v8 5/9] drm/i915: make dsm struct resource centric Date: Mon, 11 Dec 2017 15:18:18 +0000 Message-ID: <20171211151822.20953-6-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 0249F6E2EA for ; Mon, 11 Dec 2017 15:18:36 +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 IHJlZ2lvbiwgaXQgaXMKbW9yZSBjb252ZW5pZW50IGlmIHdlIHRyYWNrIGRzbSBpbiBhIHJlc291 cmNlIGFzIHdlbGwuCgp2MjogY2hlY2sgcmFuZ2Vfb3ZlcmZsb3cgd2hlbiB3cml0aW5nIHRvIDMy YiByZWdpc3RlcnMgKENocmlzKQogICAgcGVwcGVyIGluIHNvbWUgY29tbWVudHMgKENocmlzKQp2 MzogcmVmaXQgaTkxNV9zdG9sZW5fdG9fZG1hKCkKdjQ6IGtpbGwgZ2d0dC0+c3RvbGVuX3NpemUK djU6IHNvbWUgbW9yZSBwb2xpc2gKClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhl dy5hdWxkQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxp bnV4LmludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgpDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ClJldmlld2VkLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2No YXIvYWdwL2ludGVsLWd0dC5jICAgICAgICAgICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICB8ICAxMiArKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyAgICB8ICAgOCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIHwg MTI1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMgICAgICAgfCAgMTMgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyAgICAgICAgfCAgMTUgKystLQogaW5jbHVkZS9kcm0vaW50ZWwtZ3R0LmggICAgICAg ICAgICAgICAgfCAgIDEgLQogOCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA4OCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jIGIv ZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQuYwppbmRleCBkZGU3Y2FhYzdmOWYuLjBjODZiNGRm ZDU5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQuYworKysgYi9kcml2 ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jCkBAIC0xNDI0LDEyICsxNDI0LDEwIEBAIGludCBpbnRl bF9nbWNoX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpicmlkZ2VfcGRldiwgc3RydWN0IHBjaV9kZXYg KmdwdV9wZGV2LAogRVhQT1JUX1NZTUJPTChpbnRlbF9nbWNoX3Byb2JlKTsKIAogdm9pZCBpbnRl bF9ndHRfZ2V0KHU2NCAqZ3R0X3RvdGFsLAotCQkgICB1MzIgKnN0b2xlbl9zaXplLAogCQkgICBw aHlzX2FkZHJfdCAqbWFwcGFibGVfYmFzZSwKIAkJICAgdTY0ICptYXBwYWJsZV9lbmQpCiB7CiAJ Kmd0dF90b3RhbCA9IGludGVsX3ByaXZhdGUuZ3R0X3RvdGFsX2VudHJpZXMgPDwgUEFHRV9TSElG VDsKLQkqc3RvbGVuX3NpemUgPSBpbnRlbF9wcml2YXRlLnN0b2xlbl9zaXplOwogCSptYXBwYWJs ZV9iYXNlID0gaW50ZWxfcHJpdmF0ZS5nbWFfYnVzX2FkZHI7CiAJKm1hcHBhYmxlX2VuZCA9IGlu dGVsX3ByaXZhdGUuZ3R0X21hcHBhYmxlX2VudHJpZXMgPDwgUEFHRV9TSElGVDsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCmluZGV4IGQ1Nzg1OWNmYWQ4ZS4uMTY3N2I3ZTBkNjcxIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE1MzgsOSArMTUzOCw2IEBAIHN0cnVjdCBpOTE1X2dlbV9t bSB7CiAJICovCiAJc3RydWN0IHBhZ2V2ZWMgd2Nfc3Rhc2g7CiAKLQkvKiogVXNhYmxlIHBvcnRp b24gb2YgdGhlIEdUVCBmb3IgR0VNICovCi0JZG1hX2FkZHJfdCBzdG9sZW5fYmFzZTsgLyogbGlt aXRlZCB0byBsb3cgbWVtb3J5ICgzMi1iaXQpICovCi0KIAkvKioKIAkgKiB0bXBmcyBpbnN0YW5j ZSB1c2VkIGZvciBzaG1lbSBiYWNrZWQgb2JqZWN0cwogCSAqLwpAQCAtMjI1NCw2ICsyMjUxLDE1 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCWNvbnN0IHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyBpbmZvOwogCisJLyoqCisJICogRGF0YSBTdG9sZW4gTWVtb3J5IC0gYWthICJpOTE1 IHN0b2xlbiBtZW1vcnkiIGdpdmVzIHVzIHRoZSBzdGFydCBhbmQKKwkgKiBlbmQgb2Ygc3RvbGVu IHdoaWNoIHdlIGNhbiBvcHRpb25hbGx5IHVzZSB0byBjcmVhdGUgR0VNIG9iamVjdHMKKwkgKiBi YWNrZWQgYnkgc3RvbGVuIG1lbW9yeS4gTm90ZSB0aGF0IGdndHQtPnN0b2xlbl91c2FibGVfc2l6 ZSB0ZWxscyB1cworCSAqIGV4YWN0bHkgaG93IG11Y2ggb2YgdGhpcyB3ZSBhcmUgYWN0dWFsbHkg YWxsb3dlZCB0byB1c2UsIGdpdmVuIHRoYXQKKwkgKiBzb21lIHBvcnRpb24gb2YgaXQgaXMgaW4g ZmFjdCByZXNlcnZlZCBmb3IgdXNlIGJ5IGhhcmR3YXJlIGZ1bmN0aW9ucy4KKwkgKi8KKwlzdHJ1 Y3QgcmVzb3VyY2UgZHNtOworCiAJdm9pZCBfX2lvbWVtICpyZWdzOwogCiAJc3RydWN0IGludGVs X3VuY29yZSB1bmNvcmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGMxYjhi MWM4NDAxZS4uN2E1MzAyMzE4ZDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpA QCAtMzI5OSw4ICszMjk5LDYgQEAgc3RhdGljIGludCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5 MTVfZ2d0dCAqZ2d0dCkKIAogCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIFNOQl9HTUNIX0NU UkwsICZzbmJfZ21jaF9jdGwpOwogCi0JZ2d0dC0+c3RvbGVuX3NpemUgPSByZXNvdXJjZV9zaXpl KCZpbnRlbF9ncmFwaGljc19zdG9sZW5fcmVzKTsKLQogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpIHsKIAkJc2l6ZSA9IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXplKHNuYl9nbWNoX2N0bCk7 CiAJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewpAQCAtMzM2Myw4ICszMzYx LDYgQEAgc3RhdGljIGludCBnZW42X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkK IAkJRFJNX0VSUk9SKCJDYW4ndCBzZXQgRE1BIG1hc2svY29uc2lzdGVudCBtYXNrICglZClcbiIs IGVycik7CiAJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgU05CX0dNQ0hfQ1RSTCwgJnNuYl9n bWNoX2N0bCk7CiAKLQlnZ3R0LT5zdG9sZW5fc2l6ZSA9IHJlc291cmNlX3NpemUoJmludGVsX2dy YXBoaWNzX3N0b2xlbl9yZXMpOwotCiAJc2l6ZSA9IGdlbjZfZ2V0X3RvdGFsX2d0dF9zaXplKHNu Yl9nbWNoX2N0bCk7CiAJZ2d0dC0+YmFzZS50b3RhbCA9IChzaXplIC8gc2l6ZW9mKGdlbjZfcHRl X3QpKSA8PCBQQUdFX1NISUZUOwogCkBAIC0zNDEwLDcgKzM0MDYsNiBAQCBzdGF0aWMgaW50IGk5 MTVfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCX0KIAogCWludGVsX2d0dF9n ZXQoJmdndHQtPmJhc2UudG90YWwsCi0JCSAgICAgICZnZ3R0LT5zdG9sZW5fc2l6ZSwKIAkJICAg ICAgJmdndHQtPm1hcHBhYmxlX2Jhc2UsCiAJCSAgICAgICZnZ3R0LT5tYXBwYWJsZV9lbmQpOwog CkBAIC0zNDgyLDcgKzM0NzcsOCBAQCBpbnQgaTkxNV9nZ3R0X3Byb2JlX2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlEUk1fSU5GTygiTWVtb3J5IHVzYWJsZSBieSBncmFw aGljcyBkZXZpY2UgPSAlbGx1TVxuIiwKIAkJIGdndHQtPmJhc2UudG90YWwgPj4gMjApOwogCURS TV9ERUJVR19EUklWRVIoIkdNQURSIHNpemUgPSAlbGxkTVxuIiwgZ2d0dC0+bWFwcGFibGVfZW5k ID4+IDIwKTsKLQlEUk1fREVCVUdfRFJJVkVSKCJHVFQgc3RvbGVuIHNpemUgPSAldU1cbiIsIGdn dHQtPnN0b2xlbl9zaXplID4+IDIwKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJHVFQgc3RvbGVuIHNp emUgPSAlbGx1TVxuIiwKKwkJCSAodTY0KXJlc291cmNlX3NpemUoJmludGVsX2dyYXBoaWNzX3N0 b2xlbl9yZXMpID4+IDIwKTsKIAlpZiAoaW50ZWxfdnRkX2FjdGl2ZSgpKQogCQlEUk1fSU5GTygi VlQtZCBhY3RpdmUgZm9yIGdmeCBhY2Nlc3NcbiIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oCmluZGV4IDkzMjExYTk2ZmRhZC4uMzBhMjkyMGIxMjkxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaApAQCAtMzgxLDcgKzM4MSw2IEBAIHN0cnVjdCBpOTE1X2dndHQgewog CSAqIGF2b2lkIHRoZSBmaXJzdCBwYWdlISBUaGUgdXBwZXIgZW5kIG9mIHN0b2xlbiBtZW1vcnkg aXMgcmVzZXJ2ZWQgZm9yCiAJICogaGFyZHdhcmUgZnVuY3Rpb25zIGFuZCBzaW1pbGFybHkgcmVt b3ZlZCBmcm9tIHRoZSBhY2Nlc3NpYmxlIHJhbmdlLgogCSAqLwotCXUzMiBzdG9sZW5fc2l6ZTsJ CS8qIFRvdGFsIHNpemUgb2Ygc3RvbGVuIG1lbW9yeSAqLwogCXUzMiBzdG9sZW5fdXNhYmxlX3Np emU7CS8qIFRvdGFsIHNpemUgbWludXMgcmVzZXJ2ZWQgcmFuZ2VzICovCiAJdTMyIHN0b2xlbl9y ZXNlcnZlZF9iYXNlOwogCXUzMiBzdG9sZW5fcmVzZXJ2ZWRfc2l6ZTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggZjhhYzE0MzhjMzVkLi41YjU1NThmZTcwY2MgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC03NiwyNyArNzYsMjYgQEAg dm9pZCBpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKIH0K IAotc3RhdGljIGRtYV9hZGRyX3QgaTkxNV9zdG9sZW5fdG9fZG1hKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyBpbnQgaTkxNV9hZGp1c3Rfc3RvbGVuKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgIHN0cnVjdCByZXNvdXJjZSAqZHNt KQogewogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7Ci0JZG1hX2Fk ZHJfdCBiYXNlID0gaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3Jlcy5zdGFydDsKIAlzdHJ1Y3QgcmVz b3VyY2UgKnI7CiAKLQlHRU1fQlVHX09OKG92ZXJmbG93c190eXBlKGludGVsX2dyYXBoaWNzX3N0 b2xlbl9yZXMuc3RhcnQsIGJhc2UpKTsKKwlpZiAoZHNtLT5zdGFydCA9PSAwIHx8IGRzbS0+ZW5k IDw9IGRzbS0+c3RhcnQpCisJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKGJhc2UgPT0gMCB8fCBh ZGRfb3ZlcmZsb3dzKGJhc2UsIGdndHQtPnN0b2xlbl9zaXplKSkKLQkJcmV0dXJuIDA7CisJLyoK KwkgKiBUT0RPOiBXZSBoYXZlIHlldCB0b28gZW5jb3VudGVyIHRoZSBjYXNlIHdoZXJlIHRoZSBH VFQgd2Fzbid0IGF0IHRoZQorCSAqIGVuZCBvZiBzdG9sZW4uIFdpdGggdGhhdCBhc3N1bXB0aW9u IHdlIGNvdWxkIHNpbXBsaWZ5IHRoaXMuCisJICovCiAKLQkvKiBtYWtlIHN1cmUgd2UgZG9uJ3Qg Y2xvYmJlciB0aGUgR1RUIGlmIGl0J3Mgd2l0aGluIHN0b2xlbiBtZW1vcnkgKi8KKwkvKiBNYWtl IHN1cmUgd2UgZG9uJ3QgY2xvYmJlciB0aGUgR1RUIGlmIGl0J3Mgd2l0aGluIHN0b2xlbiBtZW1v cnkgKi8KIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSA0ICYmCiAJICAgICFJU19HMzMoZGV2 X3ByaXYpICYmICFJU19QSU5FVklFVyhkZXZfcHJpdikgJiYgIUlTX0c0WChkZXZfcHJpdikpIHsK LQkJc3RydWN0IHsKLQkJCWRtYV9hZGRyX3Qgc3RhcnQsIGVuZDsKLQkJfSBzdG9sZW5bMl0gPSB7 Ci0JCQl7IC5zdGFydCA9IGJhc2UsIC5lbmQgPSBiYXNlICsgZ2d0dC0+c3RvbGVuX3NpemUsIH0s Ci0JCQl7IC5zdGFydCA9IGJhc2UsIC5lbmQgPSBiYXNlICsgZ2d0dC0+c3RvbGVuX3NpemUsIH0s Ci0JCX07Ci0JCXU2NCBnZ3R0X3N0YXJ0LCBnZ3R0X2VuZDsKKwkJc3RydWN0IHJlc291cmNlIHN0 b2xlblsyXSA9IHsqZHNtLCAqZHNtfTsKKwkJc3RydWN0IHJlc291cmNlIGdndHRfcmVzOworCQl1 NjQgZ2d0dF9zdGFydDsKIAogCQlnZ3R0X3N0YXJ0ID0gSTkxNV9SRUFEKFBHVEJMX0NUTCk7CiAJ CWlmIChJU19HRU40KGRldl9wcml2KSkKQEAgLTEwNCw3MCArMTAzLDY0IEBAIHN0YXRpYyBkbWFf YWRkcl90IGk5MTVfc3RvbGVuX3RvX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJCQkJICAgICAoZ2d0dF9zdGFydCAmIFBHVEJMX0FERFJFU1NfSElfTUFTSykgPDwgMjg7 CiAJCWVsc2UKIAkJCWdndHRfc3RhcnQgJj0gUEdUQkxfQUREUkVTU19MT19NQVNLOwotCQlnZ3R0 X2VuZCA9IGdndHRfc3RhcnQgKyBnZ3R0X3RvdGFsX2VudHJpZXMoZ2d0dCkgKiA0OwotCi0JCWlm IChnZ3R0X3N0YXJ0ID49IHN0b2xlblswXS5zdGFydCAmJiBnZ3R0X3N0YXJ0IDwgc3RvbGVuWzBd LmVuZCkKLQkJCXN0b2xlblswXS5lbmQgPSBnZ3R0X3N0YXJ0OwotCQlpZiAoZ2d0dF9lbmQgPiBz dG9sZW5bMV0uc3RhcnQgJiYgZ2d0dF9lbmQgPD0gc3RvbGVuWzFdLmVuZCkKLQkJCXN0b2xlblsx XS5zdGFydCA9IGdndHRfZW5kOwotCi0JCS8qIHBpY2sgdGhlIGxhcmdlciBvZiB0aGUgdHdvIGNo dW5rcyAqLwotCQlpZiAoc3RvbGVuWzBdLmVuZCAtIHN0b2xlblswXS5zdGFydCA+Ci0JCSAgICBz dG9sZW5bMV0uZW5kIC0gc3RvbGVuWzFdLnN0YXJ0KSB7Ci0JCQliYXNlID0gc3RvbGVuWzBdLnN0 YXJ0OwotCQkJZ2d0dC0+c3RvbGVuX3NpemUgPSBzdG9sZW5bMF0uZW5kIC0gc3RvbGVuWzBdLnN0 YXJ0OwotCQl9IGVsc2UgewotCQkJYmFzZSA9IHN0b2xlblsxXS5zdGFydDsKLQkJCWdndHQtPnN0 b2xlbl9zaXplID0gc3RvbGVuWzFdLmVuZCAtIHN0b2xlblsxXS5zdGFydDsKLQkJfQorCisJCWdn dHRfcmVzID0KKwkJCShzdHJ1Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKGdndHRfc3RhcnQs CisJCQkJCQkJIGdndHRfdG90YWxfZW50cmllcyhnZ3R0KSAqIDQpOworCisJCWlmIChnZ3R0X3Jl cy5zdGFydCA+PSBzdG9sZW5bMF0uc3RhcnQgJiYgZ2d0dF9yZXMuc3RhcnQgPCBzdG9sZW5bMF0u ZW5kKQorCQkJc3RvbGVuWzBdLmVuZCA9IGdndHRfcmVzLnN0YXJ0OworCQlpZiAoZ2d0dF9yZXMu ZW5kID4gc3RvbGVuWzFdLnN0YXJ0ICYmIGdndHRfcmVzLmVuZCA8PSBzdG9sZW5bMV0uZW5kKQor CQkJc3RvbGVuWzFdLnN0YXJ0ID0gZ2d0dF9yZXMuZW5kOworCisJCS8qIFBpY2sgdGhlIGxhcmdl ciBvZiB0aGUgdHdvIGNodW5rcyAqLworCQlpZiAocmVzb3VyY2Vfc2l6ZSgmc3RvbGVuWzBdKSA+ IHJlc291cmNlX3NpemUoJnN0b2xlblsxXSkpCisJCQkqZHNtID0gc3RvbGVuWzBdOworCQllbHNl CisJCQkqZHNtID0gc3RvbGVuWzFdOwogCiAJCWlmIChzdG9sZW5bMF0uc3RhcnQgIT0gc3RvbGVu WzFdLnN0YXJ0IHx8CiAJCSAgICBzdG9sZW5bMF0uZW5kICE9IHN0b2xlblsxXS5lbmQpIHsKLQkJ CWRtYV9hZGRyX3QgZW5kID0gYmFzZSArIGdndHQtPnN0b2xlbl9zaXplIC0gMTsKLQotCQkJRFJN X0RFQlVHX0tNUygiR1RUIHdpdGhpbiBzdG9sZW4gbWVtb3J5IGF0IDB4JWxseC0weCVsbHhcbiIs Ci0JCQkJICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylnZ3R0X3N0YXJ0LAotCQkJCSAgICAgICh1 bnNpZ25lZCBsb25nIGxvbmcpZ2d0dF9lbmQgLSAxKTsKLQkJCURSTV9ERUJVR19LTVMoIlN0b2xl biBtZW1vcnkgYWRqdXN0ZWQgdG8gJXBhZCAtICVwYWRcbiIsCi0JCQkJICAgICAgJmJhc2UsICZl bmQpOworCQkJRFJNX0RFQlVHX0tNUygiR1RUIHdpdGhpbiBzdG9sZW4gbWVtb3J5IGF0ICVwUlxu IiwgJmdndHRfcmVzKTsKKwkJCURSTV9ERUJVR19LTVMoIlN0b2xlbiBtZW1vcnkgYWRqdXN0ZWQg dG8gJXBSXG4iLCBkc20pOwogCQl9CiAJfQogCi0KLQkvKiBWZXJpZnkgdGhhdCBub3RoaW5nIGVs c2UgdXNlcyB0aGlzIHBoeXNpY2FsIGFkZHJlc3MuIFN0b2xlbgorCS8qCisJICogVmVyaWZ5IHRo YXQgbm90aGluZyBlbHNlIHVzZXMgdGhpcyBwaHlzaWNhbCBhZGRyZXNzLiBTdG9sZW4KIAkgKiBt ZW1vcnkgc2hvdWxkIGJlIHJlc2VydmVkIGJ5IHRoZSBCSU9TIGFuZCBoaWRkZW4gZnJvbSB0aGUK IAkgKiBrZXJuZWwuIFNvIGlmIHRoZSByZWdpb24gaXMgYWxyZWFkeSBtYXJrZWQgYXMgYnVzeSwg c29tZXRoaW5nCiAJICogaXMgc2VyaW91c2x5IHdyb25nLgogCSAqLwotCXIgPSBkZXZtX3JlcXVl c3RfbWVtX3JlZ2lvbihkZXZfcHJpdi0+ZHJtLmRldiwgYmFzZSwgZ2d0dC0+c3RvbGVuX3NpemUs CisJciA9IGRldm1fcmVxdWVzdF9tZW1fcmVnaW9uKGRldl9wcml2LT5kcm0uZGV2LCBkc20tPnN0 YXJ0LAorCQkJCSAgICByZXNvdXJjZV9zaXplKGRzbSksCiAJCQkJICAgICJHcmFwaGljcyBTdG9s ZW4gTWVtb3J5Iik7CiAJaWYgKHIgPT0gTlVMTCkgewogCQkvKgogCQkgKiBPbmUgbW9yZSBhdHRl bXB0IGJ1dCB0aGlzIHRpbWUgcmVxdWVzdGluZyByZWdpb24gZnJvbQotCQkgKiBiYXNlICsgMSwg YXMgd2UgaGF2ZSBzZWVuIHRoYXQgdGhpcyByZXNvbHZlcyB0aGUgcmVnaW9uCisJCSAqIHN0YXJ0 ICsgMSwgYXMgd2UgaGF2ZSBzZWVuIHRoYXQgdGhpcyByZXNvbHZlcyB0aGUgcmVnaW9uCiAJCSAq IGNvbmZsaWN0IHdpdGggdGhlIFBDSSBCdXMuCiAJCSAqIFRoaXMgaXMgYSBCSU9TIHcvYTogU29t ZSBCSU9TIHdyYXAgc3RvbGVuIGluIHRoZSByb290CiAJCSAqIFBDSSBidXMsIGJ1dCBoYXZlIGFu IG9mZi1ieS1vbmUgZXJyb3IuIEhlbmNlIHJldHJ5IHRoZQogCQkgKiByZXNlcnZhdGlvbiBzdGFy dGluZyBmcm9tIDEgaW5zdGVhZCBvZiAwLgogCQkgKiBUaGVyZSdzIGFsc28gQklPUyB3aXRoIG9m Zi1ieS1vbmUgb24gdGhlIG90aGVyIGVuZC4KIAkJICovCi0JCXIgPSBkZXZtX3JlcXVlc3RfbWVt X3JlZ2lvbihkZXZfcHJpdi0+ZHJtLmRldiwgYmFzZSArIDEsCi0JCQkJCSAgICBnZ3R0LT5zdG9s ZW5fc2l6ZSAtIDIsCisJCXIgPSBkZXZtX3JlcXVlc3RfbWVtX3JlZ2lvbihkZXZfcHJpdi0+ZHJt LmRldiwgZHNtLT5zdGFydCArIDEsCisJCQkJCSAgICByZXNvdXJjZV9zaXplKGRzbSkgLSAyLAog CQkJCQkgICAgIkdyYXBoaWNzIFN0b2xlbiBNZW1vcnkiKTsKIAkJLyoKIAkJICogR0VOMyBmaXJt d2FyZSBsaWtlcyB0byBzbWFzaCBwY2kgYnJpZGdlcyBpbnRvIHRoZSBzdG9sZW4KIAkJICogcmFu Z2UuIEFwcGFyZW50bHkgdGhpcyB3b3Jrcy4KIAkJICovCiAJCWlmIChyID09IE5VTEwgJiYgIUlT X0dFTjMoZGV2X3ByaXYpKSB7Ci0JCQlkbWFfYWRkcl90IGVuZCA9IGJhc2UgKyBnZ3R0LT5zdG9s ZW5fc2l6ZTsKKwkJCURSTV9FUlJPUigiY29uZmxpY3QgZGV0ZWN0ZWQgd2l0aCBzdG9sZW4gcmVn aW9uOiAlcFJcbiIsCisJCQkJICBkc20pOwogCi0JCQlEUk1fRVJST1IoImNvbmZsaWN0IGRldGVj dGVkIHdpdGggc3RvbGVuIHJlZ2lvbjogWyVwYWQgLSAlcGFkXVxuIiwKLQkJCQkgICZiYXNlLCAm ZW5kKTsKLQkJCWJhc2UgPSAwOworCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCX0KIAotCXJldHVy biBiYXNlOworCXJldHVybiAwOwogfQogCiB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0xODMsMTEgKzE3NiwxMCBAQCB2b2lkIGk5MTVfZ2Vt X2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBnNHhf Z2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkJICAgIGRtYV9hZGRyX3QgKmJhc2UsIHUzMiAqc2l6ZSkKIHsKLQlzdHJ1Y3QgaTkxNV9nZ3R0 ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXVpbnQzMl90IHJlZ192YWwgPSBJOTE1X1JFQUQo SVNfR000NShkZXZfcHJpdikgPwogCQkJCSAgICAgQ1RHX1NUT0xFTl9SRVNFUlZFRCA6CiAJCQkJ ICAgICBFTEtfU1RPTEVOX1JFU0VSVkVEKTsKLQlkbWFfYWRkcl90IHN0b2xlbl90b3AgPSBkZXZf cHJpdi0+bW0uc3RvbGVuX2Jhc2UgKyBnZ3R0LT5zdG9sZW5fc2l6ZTsKKwlkbWFfYWRkcl90IHN0 b2xlbl90b3AgPSBkZXZfcHJpdi0+ZHNtLmVuZCArIDE7CiAKIAlpZiAoKHJlZ192YWwgJiBHNFhf U1RPTEVOX1JFU0VSVkVEX0VOQUJMRSkgPT0gMCkgewogCQkqYmFzZSA9IDA7CkBAIC0zMDgsNyAr MzAwLDYgQEAgc3RhdGljIHZvaWQgY2h2X2dldF9zdG9sZW5fcmVzZXJ2ZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgYmR3X2dldF9zdG9sZW5fcmVzZXJ2 ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBkbWFfYWRkcl90 ICpiYXNlLCB1MzIgKnNpemUpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJp di0+Z2d0dDsKIAl1aW50MzJfdCByZWdfdmFsID0gSTkxNV9SRUFEKEdFTjZfU1RPTEVOX1JFU0VS VkVEKTsKIAlkbWFfYWRkcl90IHN0b2xlbl90b3A7CiAKQEAgLTMxOCw3ICszMDksNyBAQCBzdGF0 aWMgdm9pZCBiZHdfZ2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCXJldHVybjsKIAl9CiAKLQlzdG9sZW5fdG9wID0gZGV2X3ByaXYtPm1tLnN0 b2xlbl9iYXNlICsgZ2d0dC0+c3RvbGVuX3NpemU7CisJc3RvbGVuX3RvcCA9IGRldl9wcml2LT5k c20uZW5kICsgMTsKIAogCSpiYXNlID0gcmVnX3ZhbCAmIEdFTjZfU1RPTEVOX1JFU0VSVkVEX0FE RFJfTUFTSzsKIApAQCAtMzUxLDE0ICszNDIsMTggQEAgaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVu KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuIDA7CiAJfQogCi0J aWYgKGdndHQtPnN0b2xlbl9zaXplID09IDApCisJaWYgKHJlc291cmNlX3NpemUoJmludGVsX2dy YXBoaWNzX3N0b2xlbl9yZXMpID09IDApCiAJCXJldHVybiAwOwogCi0JZGV2X3ByaXYtPm1tLnN0 b2xlbl9iYXNlID0gaTkxNV9zdG9sZW5fdG9fZG1hKGRldl9wcml2KTsKLQlpZiAoZGV2X3ByaXYt Pm1tLnN0b2xlbl9iYXNlID09IDApCisJZGV2X3ByaXYtPmRzbSA9IGludGVsX2dyYXBoaWNzX3N0 b2xlbl9yZXM7CisKKwlpZiAoaTkxNV9hZGp1c3Rfc3RvbGVuKGRldl9wcml2LCAmZGV2X3ByaXYt PmRzbSkpCiAJCXJldHVybiAwOwogCi0Jc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5f YmFzZSArIGdndHQtPnN0b2xlbl9zaXplOworCUdFTV9CVUdfT04oZGV2X3ByaXYtPmRzbS5zdGFy dCA9PSAwKTsKKwlHRU1fQlVHX09OKGRldl9wcml2LT5kc20uZW5kIDw9IGRldl9wcml2LT5kc20u c3RhcnQpOworCisJc3RvbGVuX3RvcCA9IGRldl9wcml2LT5kc20uZW5kICsgMTsKIAlyZXNlcnZl ZF9iYXNlID0gMDsKIAlyZXNlcnZlZF9zaXplID0gMDsKIApAQCAtMzk5LDEyICszOTQsMTEgQEAg aW50IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAkJcmVzZXJ2ZWRfYmFzZSA9IHN0b2xlbl90b3A7CiAJfQogCi0JaWYgKHJlc2VydmVkX2Jh c2UgPCBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgfHwKKwlpZiAocmVzZXJ2ZWRfYmFzZSA8IGRl dl9wcml2LT5kc20uc3RhcnQgfHwKIAkgICAgcmVzZXJ2ZWRfYmFzZSArIHJlc2VydmVkX3NpemUg PiBzdG9sZW5fdG9wKSB7CiAJCWRtYV9hZGRyX3QgcmVzZXJ2ZWRfdG9wID0gcmVzZXJ2ZWRfYmFz ZSArIHJlc2VydmVkX3NpemU7Ci0JCURSTV9FUlJPUigiU3RvbGVuIHJlc2VydmVkIGFyZWEgWyVw YWQgLSAlcGFkXSBvdXRzaWRlIHN0b2xlbiBtZW1vcnkgWyVwYWQgLSAlcGFkXVxuIiwKLQkJCSAg JnJlc2VydmVkX2Jhc2UsICZyZXNlcnZlZF90b3AsCi0JCQkgICZkZXZfcHJpdi0+bW0uc3RvbGVu X2Jhc2UsICZzdG9sZW5fdG9wKTsKKwkJRFJNX0VSUk9SKCJTdG9sZW4gcmVzZXJ2ZWQgYXJlYSBb JXBhZCAtICVwYWRdIG91dHNpZGUgc3RvbGVuIG1lbW9yeSAlcFJcbiIsCisJCQkgICZyZXNlcnZl ZF9iYXNlLCAmcmVzZXJ2ZWRfdG9wLCAmZGV2X3ByaXYtPmRzbSk7CiAJCXJldHVybiAwOwogCX0K IApAQCAtNDE1LDkgKzQwOSw5IEBAIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogbWVtb3J5LCBzbyBqdXN0IGNvbnNpZGVyIHRo ZSBzdGFydC4gKi8KIAlyZXNlcnZlZF90b3RhbCA9IHN0b2xlbl90b3AgLSByZXNlcnZlZF9iYXNl OwogCi0JRFJNX0RFQlVHX0tNUygiTWVtb3J5IHJlc2VydmVkIGZvciBncmFwaGljcyBkZXZpY2U6 ICV1SywgdXNhYmxlOiAldUtcbiIsCi0JCSAgICAgIGdndHQtPnN0b2xlbl9zaXplID4+IDEwLAot CQkgICAgICAoZ2d0dC0+c3RvbGVuX3NpemUgLSByZXNlcnZlZF90b3RhbCkgPj4gMTApOworCURS TV9ERUJVR19LTVMoIk1lbW9yeSByZXNlcnZlZCBmb3IgZ3JhcGhpY3MgZGV2aWNlOiAlbGx1Sywg dXNhYmxlOiAlbGx1S1xuIiwKKwkJICAgICAgKHU2NClyZXNvdXJjZV9zaXplKCZkZXZfcHJpdi0+ ZHNtKSA+PiAxMCwKKwkJICAgICAgKCh1NjQpcmVzb3VyY2Vfc2l6ZSgmZGV2X3ByaXYtPmRzbSkg LSByZXNlcnZlZF90b3RhbCkgPj4gMTApOwogCiAJc3RvbGVuX3VzYWJsZV9zdGFydCA9IDA7CiAJ LyogV2FTa2lwU3RvbGVuTWVtb3J5Rmlyc3RQYWdlOmJkdysgKi8KQEAgLTQyNSw3ICs0MTksNyBA QCBpbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCQlzdG9sZW5fdXNhYmxlX3N0YXJ0ID0gNDA5NjsKIAogCWdndHQtPnN0b2xlbl91c2Fi bGVfc2l6ZSA9Ci0JCWdndHQtPnN0b2xlbl9zaXplIC0gcmVzZXJ2ZWRfdG90YWwgLSBzdG9sZW5f dXNhYmxlX3N0YXJ0OworCQlyZXNvdXJjZV9zaXplKCZkZXZfcHJpdi0+ZHNtKSAtIHJlc2VydmVk X3RvdGFsIC0gc3RvbGVuX3VzYWJsZV9zdGFydDsKIAogCS8qIEJhc2ljIG1lbXJhbmdlIGFsbG9j YXRvciBmb3Igc3RvbGVuIHNwYWNlLiAqLwogCWRybV9tbV9pbml0KCZkZXZfcHJpdi0+bW0uc3Rv bGVuLCBzdG9sZW5fdXNhYmxlX3N0YXJ0LApAQCAtNDQyLDcgKzQzNiw4IEBAIGk5MTVfcGFnZXNf Y3JlYXRlX2Zvcl9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3Qgc2dfdGFi bGUgKnN0OwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAKLQlHRU1fQlVHX09OKHJhbmdlX292 ZXJmbG93cyhvZmZzZXQsIHNpemUsIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplKSk7CisJR0VN X0JVR19PTihyYW5nZV9vdmVyZmxvd3NfdChyZXNvdXJjZV9zaXplX3QsIG9mZnNldCwgc2l6ZSwK KwkJCQkgICAgIHJlc291cmNlX3NpemUoJmRldl9wcml2LT5kc20pKSk7CiAKIAkvKiBXZSBoaWRl IHRoYXQgd2UgaGF2ZSBubyBzdHJ1Y3QgcGFnZSBiYWNraW5nIG91ciBzdG9sZW4gb2JqZWN0CiAJ ICogYnkgd3JhcHBpbmcgdGhlIGNvbnRpZ3VvdXMgcGh5c2ljYWwgYWxsb2NhdGlvbiB3aXRoIGEg ZmFrZQpAQCAtNDYyLDcgKzQ1Nyw3IEBAIGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlzZy0+b2Zmc2V0ID0gMDsKIAlzZy0+bGVuZ3RoID0gc2l6 ZTsKIAotCXNnX2RtYV9hZGRyZXNzKHNnKSA9IChkbWFfYWRkcl90KWRldl9wcml2LT5tbS5zdG9s ZW5fYmFzZSArIG9mZnNldDsKKwlzZ19kbWFfYWRkcmVzcyhzZykgPSAoZG1hX2FkZHJfdClkZXZf cHJpdi0+ZHNtLnN0YXJ0ICsgb2Zmc2V0OwogCXNnX2RtYV9sZW4oc2cpID0gc2l6ZTsKIAogCXJl dHVybiBzdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKaW5kZXggNGFlZmM2NThhNWNmLi5mODhj MWI1ZGFlNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCkBAIC01MzEsNyArNTMxLDYgQEAg c3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9uX3RocmVzaG9sZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgaW50IHNpemUsCiAJCQkJICAgICAgaW50IGZiX2Nw cCkKIHsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCWludCBj b21wcmVzc2lvbl90aHJlc2hvbGQgPSAxOwogCWludCByZXQ7CiAJdTY0IGVuZDsKQEAgLTU0MSw3 ICs1NDAsNyBAQCBzdGF0aWMgaW50IGZpbmRfY29tcHJlc3Npb25fdGhyZXNob2xkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiBJZiB3ZSBlbmFibGUgRkJDIHVzaW5nIGEg Q0ZCIG9uIHRoYXQgbWVtb3J5IHJhbmdlIHdlJ2xsIGdldCBGSUZPCiAJICogdW5kZXJydW5zLCBl dmVuIGlmIHRoYXQgcmFuZ2UgaXMgbm90IHJlc2VydmVkIGJ5IHRoZSBCSU9TLiAqLwogCWlmIChJ U19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0dFTjlfQkMoZGV2X3ByaXYpKQotCQllbmQgPSBn Z3R0LT5zdG9sZW5fc2l6ZSAtIDggKiAxMDI0ICogMTAyNDsKKwkJZW5kID0gcmVzb3VyY2Vfc2l6 ZSgmZGV2X3ByaXYtPmRzbSkgLSA4ICogMTAyNCAqIDEwMjQ7CiAJZWxzZQogCQllbmQgPSBVNjRf TUFYOwogCkBAIC02MTUsMTAgKzYxNCwxNiBAQCBzdGF0aWMgaW50IGludGVsX2ZiY19hbGxvY19j ZmIoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIAkJZmJjLT5jb21wcmVzc2VkX2xsYiA9IGNv bXByZXNzZWRfbGxiOwogCisJCUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZsb3dzX3QodTY0LCBkZXZf cHJpdi0+ZHNtLnN0YXJ0LAorCQkJCQkgICAgIGZiYy0+Y29tcHJlc3NlZF9mYi5zdGFydCwKKwkJ CQkJICAgICBVMzJfTUFYKSk7CisJCUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZsb3dzX3QodTY0LCBk ZXZfcHJpdi0+ZHNtLnN0YXJ0LAorCQkJCQkgICAgIGZiYy0+Y29tcHJlc3NlZF9sbGItPnN0YXJ0 LAorCQkJCQkgICAgIFUzMl9NQVgpKTsKIAkJSTkxNV9XUklURShGQkNfQ0ZCX0JBU0UsCi0JCQkg ICBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgKyBmYmMtPmNvbXByZXNzZWRfZmIuc3RhcnQpOwor CQkJICAgZGV2X3ByaXYtPmRzbS5zdGFydCArIGZiYy0+Y29tcHJlc3NlZF9mYi5zdGFydCk7CiAJ CUk5MTVfV1JJVEUoRkJDX0xMX0JBU0UsCi0JCQkgICBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2Ug KyBjb21wcmVzc2VkX2xsYi0+c3RhcnQpOworCQkJICAgZGV2X3ByaXYtPmRzbS5zdGFydCArIGNv bXByZXNzZWRfbGxiLT5zdGFydCk7CiAJfQogCiAJRFJNX0RFQlVHX0tNUygicmVzZXJ2ZWQgJWxs dSBieXRlcyBvZiBjb250aWd1b3VzIHN0b2xlbiBzcGFjZSBmb3IgRkJDLCB0aHJlc2hvbGQ6ICVk XG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggZWExODdjMTgyMzgzLi4zNzVmNTcyMTNi YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNzAyMCw3ICs3MDIwLDcgQEAgc3RhdGlj IHZvaWQgdmFsbGV5dmlld19jaGVja19wY3R4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKIAl1bnNpZ25lZCBsb25nIHBjdHhfYWRkciA9IEk5MTVfUkVBRChWTFZfUENCUikg JiB+NDA5NTsKIAotCVdBUk5fT04ocGN0eF9hZGRyICE9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFz ZSArCisJV0FSTl9PTihwY3R4X2FkZHIgIT0gZGV2X3ByaXYtPmRzbS5zdGFydCArCiAJCQkgICAg IGRldl9wcml2LT52bHZfcGN0eC0+c3RvbGVuLT5zdGFydCk7CiB9CiAKQEAgLTcwMzUsNyArNzAz NSw2IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfY2hlY2tfcGN0eChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc2V0dXBfcGN0eChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAq Z2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAl1bnNpZ25lZCBsb25nIHBjdHhfcGFkZHIsIHBhZGRy OwogCXUzMiBwY2JyOwogCWludCBwY3R4X3NpemUgPSAzMioxMDI0OwpAQCAtNzA0Myw4ICs3MDQy LDggQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlwY2JyID0gSTkxNV9SRUFEKFZMVl9QQ0JSKTsKIAlpZiAoKHBj YnIgPj4gVkxWX1BDQlJfQUREUl9TSElGVCkgPT0gMCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJC SU9TIGRpZG4ndCBzZXQgdXAgUENCUiwgZml4aW5nIHVwXG4iKTsKLQkJcGFkZHIgPSAoZGV2X3By aXYtPm1tLnN0b2xlbl9iYXNlICsKLQkJCSAoZ2d0dC0+c3RvbGVuX3NpemUgLSBwY3R4X3NpemUp KTsKKwkJcGFkZHIgPSBkZXZfcHJpdi0+ZHNtLmVuZCArIDEgLSBwY3R4X3NpemU7CisJCUdFTV9C VUdfT04ocGFkZHIgPiBVMzJfTUFYKTsKIAogCQlwY3R4X3BhZGRyID0gKHBhZGRyICYgKH40MDk1 KSk7CiAJCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwpAQCAtNzA2NSw3ICs3MDY0 LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJLyogQklPUyBzZXQgaXQgdXAgYWxyZWFkeSwgZ3JhYiB0aGUg cHJlLWFsbG9jJ2Qgc3BhY2UgKi8KIAkJaW50IHBjYnJfb2Zmc2V0OwogCi0JCXBjYnJfb2Zmc2V0 ID0gKHBjYnIgJiAofjQwOTUpKSAtIGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZTsKKwkJcGNicl9v ZmZzZXQgPSAocGNiciAmICh+NDA5NSkpIC0gZGV2X3ByaXYtPmRzbS5zdGFydDsKIAkJcGN0eCA9 IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoZGV2X3ByaXYs CiAJCQkJCQkJCSAgICAgIHBjYnJfb2Zmc2V0LAogCQkJCQkJCQkgICAgICBJOTE1X0dUVF9PRkZT RVRfTk9ORSwKQEAgLTcwODksNyArNzA4OCwxMSBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3Nl dHVwX3BjdHgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlnb3RvIG91dDsK IAl9CiAKLQlwY3R4X3BhZGRyID0gZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlICsgcGN0eC0+c3Rv bGVuLT5zdGFydDsKKwlHRU1fQlVHX09OKHJhbmdlX292ZXJmbG93c190KHU2NCwKKwkJCQkgICAg IGRldl9wcml2LT5kc20uc3RhcnQsCisJCQkJICAgICBwY3R4LT5zdG9sZW4tPnN0YXJ0LAorCQkJ CSAgICAgVTMyX01BWCkpOworCXBjdHhfcGFkZHIgPSBkZXZfcHJpdi0+ZHNtLnN0YXJ0ICsgcGN0 eC0+c3RvbGVuLT5zdGFydDsKIAlJOTE1X1dSSVRFKFZMVl9QQ0JSLCBwY3R4X3BhZGRyKTsKIAog b3V0OgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaW50ZWwtZ3R0LmggYi9pbmNsdWRlL2RybS9p bnRlbC1ndHQuaAppbmRleCBjNWRiNzk3NWM2NDAuLjhjNTc3Y2EzOGUyZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vaW50ZWwtZ3R0LmgKKysrIGIvaW5jbHVkZS9kcm0vaW50ZWwtZ3R0LmgKQEAg LTUsNyArNSw2IEBACiAjZGVmaW5lCV9EUk1fSU5URUxfR1RUX0gKIAogdm9pZCBpbnRlbF9ndHRf Z2V0KHU2NCAqZ3R0X3RvdGFsLAotCQkgICB1MzIgKnN0b2xlbl9zaXplLAogCQkgICBwaHlzX2Fk ZHJfdCAqbWFwcGFibGVfYmFzZSwKIAkJICAgdTY0ICptYXBwYWJsZV9lbmQpOwogCi0tIAoyLjE0 LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=