From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 05/10] drm/i915: make dsm struct resource centric Date: Wed, 6 Dec 2017 18:17:25 +0000 Message-ID: <20171206181730.30551-6-matthew.auld@intel.com> References: <20171206181730.30551-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1868889B62 for ; Wed, 6 Dec 2017 18:17:45 +0000 (UTC) In-Reply-To: <20171206181730.30551-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 ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogUGF1bG8gWmFub25pIDxw YXVsby5yLnphbm9uaUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQu YyAgICAgICAgICAgfCAgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgfCAgMTIgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgfCAg IDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICB8ICAgMSAtCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8IDExMSArKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAg ICAgIHwgIDEzICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgIHwg IDE1ICsrKy0tCiBpbmNsdWRlL2RybS9pbnRlbC1ndHQuaCAgICAgICAgICAgICAgICB8ICAgMSAt CiA4IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtZ3R0LmMgYi9kcml2ZXJzL2NoYXIvYWdw L2ludGVsLWd0dC5jCmluZGV4IDliNmI2MDIzMTkzYi4uMDUwNzA4ZTQ1NjJlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvaW50 ZWwtZ3R0LmMKQEAgLTE0MjIsMTIgKzE0MjIsMTAgQEAgaW50IGludGVsX2dtY2hfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKmJyaWRnZV9wZGV2LCBzdHJ1Y3QgcGNpX2RldiAqZ3B1X3BkZXYsCiBFWFBP UlRfU1lNQk9MKGludGVsX2dtY2hfcHJvYmUpOwogCiB2b2lkIGludGVsX2d0dF9nZXQodTY0ICpn dHRfdG90YWwsCi0JCSAgIHUzMiAqc3RvbGVuX3NpemUsCiAJCSAgIHBoeXNfYWRkcl90ICptYXBw YWJsZV9iYXNlLAogCQkgICB1NjQgKm1hcHBhYmxlX2VuZCkKIHsKIAkqZ3R0X3RvdGFsID0gaW50 ZWxfcHJpdmF0ZS5ndHRfdG90YWxfZW50cmllcyA8PCBQQUdFX1NISUZUOwotCSpzdG9sZW5fc2l6 ZSA9IGludGVsX3ByaXZhdGUuc3RvbGVuX3NpemU7CiAJKm1hcHBhYmxlX2Jhc2UgPSBpbnRlbF9w cml2YXRlLmdtYV9idXNfYWRkcjsKIAkqbWFwcGFibGVfZW5kID0gaW50ZWxfcHJpdmF0ZS5ndHRf bWFwcGFibGVfZW50cmllcyA8PCBQQUdFX1NISUZUOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggMDI1NTFjNzgxZjBhLi5lODhmYWI1NTIyNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTUzNyw5ICsxNTM3LDYgQEAgc3RydWN0IGk5MTVfZ2VtX21tIHsKIAkgKi8KIAlzdHJ1 Y3QgcGFnZXZlYyB3Y19zdGFzaDsKIAotCS8qKiBVc2FibGUgcG9ydGlvbiBvZiB0aGUgR1RUIGZv ciBHRU0gKi8KLQlkbWFfYWRkcl90IHN0b2xlbl9iYXNlOyAvKiBsaW1pdGVkIHRvIGxvdyBtZW1v cnkgKDMyLWJpdCkgKi8KLQogCS8qKgogCSAqIHRtcGZzIGluc3RhbmNlIHVzZWQgZm9yIHNobWVt IGJhY2tlZCBvYmplY3RzCiAJICovCkBAIC0yMjUzLDYgKzIyNTAsMTUgQEAgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgewogCiAJY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGluZm87CiAK KwkvKioKKwkgKiBEYXRhIFN0b2xlbiBNZW1vcnkgLSBha2EgImk5MTUgc3RvbGVuIG1lbW9yeSIg Z2l2ZXMgdXMgdGhlIHN0YXJ0IGFuZAorCSAqIGVuZCBvZiBzdG9sZW4gd2hpY2ggd2UgY2FuIG9w dGlvbmFsbHkgdXNlIHRvIGNyZWF0ZSBHRU0gb2JqZWN0cworCSAqIGJhY2tlZCBieSBzdG9sZW4g bWVtb3J5LiBOb3RlIHRoYXQgZ2d0dC0+c3RvbGVuX3VzYWJsZV9zaXplIHRlbGxzIHVzCisJICog ZXhhY3RseSBob3cgbXVjaCBvZiB0aGlzIHdlIGFyZSBhY3R1YWxseSBhbGxvd2VkIHRvIHVzZSwg Z2l2ZW4gdGhhdAorCSAqIHNvbWUgcG9ydGlvbiBvZiBpdCBpcyBpbiBmYWN0IHJlc2VydmVkIGZv ciB1c2UgYnkgaGFyZHdhcmUgZnVuY3Rpb25zLgorCSAqLworCXN0cnVjdCByZXNvdXJjZSBkc207 CisKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CiAKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlIHVuY29yZTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMDM2YTc5ZmUyNTJkLi42MmRkOTBl MDBjM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zMjk5LDggKzMyOTks NiBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQog CiAJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgU05CX0dNQ0hfQ1RSTCwgJnNuYl9nbWNoX2N0 bCk7CiAKLQlnZ3R0LT5zdG9sZW5fc2l6ZSA9IHJlc291cmNlX3NpemUoJmludGVsX2dyYXBoaWNz X3N0b2xlbl9yZXMpOwotCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewogCQlzaXpl ID0gZ2VuOF9nZXRfdG90YWxfZ3R0X3NpemUoc25iX2dtY2hfY3RsKTsKIAl9IGVsc2UgaWYgKElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CkBAIC0zMzYzLDggKzMzNjEsNiBAQCBzdGF0aWMgaW50 IGdlbjZfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCQlEUk1fRVJST1IoIkNh bid0IHNldCBETUEgbWFzay9jb25zaXN0ZW50IG1hc2sgKCVkKVxuIiwgZXJyKTsKIAlwY2lfcmVh ZF9jb25maWdfd29yZChwZGV2LCBTTkJfR01DSF9DVFJMLCAmc25iX2dtY2hfY3RsKTsKIAotCWdn dHQtPnN0b2xlbl9zaXplID0gcmVzb3VyY2Vfc2l6ZSgmaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3Jl cyk7Ci0KIAlzaXplID0gZ2VuNl9nZXRfdG90YWxfZ3R0X3NpemUoc25iX2dtY2hfY3RsKTsKIAln Z3R0LT5iYXNlLnRvdGFsID0gKHNpemUgLyBzaXplb2YoZ2VuNl9wdGVfdCkpIDw8IFBBR0VfU0hJ RlQ7CiAKQEAgLTM0MTAsNyArMzQwNiw2IEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0 cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJfQogCiAJaW50ZWxfZ3R0X2dldCgmZ2d0dC0+YmFzZS50 b3RhbCwKLQkJICAgICAgJmdndHQtPnN0b2xlbl9zaXplLAogCQkgICAgICAmZ2d0dC0+bWFwcGFi bGVfYmFzZSwKIAkJICAgICAgJmdndHQtPm1hcHBhYmxlX2VuZCk7CiAKQEAgLTM0ODIsNyArMzQ3 Nyw4IEBAIGludCBpOTE1X2dndHRfcHJvYmVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCURSTV9JTkZPKCJNZW1vcnkgdXNhYmxlIGJ5IGdyYXBoaWNzIGRldmljZSA9ICVs bHVNXG4iLAogCQkgZ2d0dC0+YmFzZS50b3RhbCA+PiAyMCk7CiAJRFJNX0RFQlVHX0RSSVZFUigi R01BRFIgc2l6ZSA9ICVsbGRNXG4iLCBnZ3R0LT5tYXBwYWJsZV9lbmQgPj4gMjApOwotCURSTV9E RUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9ICV1TVxuIiwgZ2d0dC0+c3RvbGVuX3NpemUg Pj4gMjApOworCURSTV9ERUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9ICVsbHVNXG4iLAor CQkJICh1NjQpcmVzb3VyY2Vfc2l6ZSgmaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3JlcykgPj4gMjAp OwogCWlmIChpbnRlbF92dGRfYWN0aXZlKCkpCiAJCURSTV9JTkZPKCJWVC1kIGFjdGl2ZSBmb3Ig Z2Z4IGFjY2Vzc1xuIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggOTMy MTFhOTZmZGFkLi4zMGEyOTIwYjEyOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o CkBAIC0zODEsNyArMzgxLDYgQEAgc3RydWN0IGk5MTVfZ2d0dCB7CiAJICogYXZvaWQgdGhlIGZp cnN0IHBhZ2UhIFRoZSB1cHBlciBlbmQgb2Ygc3RvbGVuIG1lbW9yeSBpcyByZXNlcnZlZCBmb3IK IAkgKiBoYXJkd2FyZSBmdW5jdGlvbnMgYW5kIHNpbWlsYXJseSByZW1vdmVkIGZyb20gdGhlIGFj Y2Vzc2libGUgcmFuZ2UuCiAJICovCi0JdTMyIHN0b2xlbl9zaXplOwkJLyogVG90YWwgc2l6ZSBv ZiBzdG9sZW4gbWVtb3J5ICovCiAJdTMyIHN0b2xlbl91c2FibGVfc2l6ZTsJLyogVG90YWwgc2l6 ZSBtaW51cyByZXNlcnZlZCByYW5nZXMgKi8KIAl1MzIgc3RvbGVuX3Jlc2VydmVkX2Jhc2U7CiAJ dTMyIHN0b2xlbl9yZXNlcnZlZF9zaXplOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9s ZW4uYwppbmRleCBmOGFjMTQzOGMzNWQuLmYyZWY1YzM3ODhiOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTc2LDI3ICs3NiwyNCBAQCB2b2lkIGk5MTVfZ2VtX3N0 b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwogfQogCi1zdGF0aWMgZG1hX2Fk ZHJfdCBpOTE1X3N0b2xlbl90b19kbWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQorc3RhdGljIGludCBpOTE1X2FkanVzdF9zdG9sZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJICAgICAgc3RydWN0IHJlc291cmNlICpkc20pCiB7CiAJc3RydWN0IGk5 MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKLQlkbWFfYWRkcl90IGJhc2UgPSBpbnRl bF9ncmFwaGljc19zdG9sZW5fcmVzLnN0YXJ0OwogCXN0cnVjdCByZXNvdXJjZSAqcjsKIAotCUdF TV9CVUdfT04ob3ZlcmZsb3dzX3R5cGUoaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3Jlcy5zdGFydCwg YmFzZSkpOworCWlmIChkc20tPnN0YXJ0ID09IDAgfHwgYWRkX292ZXJmbG93cyhkc20tPnN0YXJ0 LCByZXNvdXJjZV9zaXplKGRzbSkpKQorCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChiYXNlID09 IDAgfHwgYWRkX292ZXJmbG93cyhiYXNlLCBnZ3R0LT5zdG9sZW5fc2l6ZSkpCi0JCXJldHVybiAw OwotCi0JLyogbWFrZSBzdXJlIHdlIGRvbid0IGNsb2JiZXIgdGhlIEdUVCBpZiBpdCdzIHdpdGhp biBzdG9sZW4gbWVtb3J5ICovCisJLyogTWFrZSBzdXJlIHdlIGRvbid0IGNsb2JiZXIgdGhlIEdU VCBpZiBpdCdzIHdpdGhpbiBzdG9sZW4gbWVtb3J5ICovCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPD0gNCAmJgogCSAgICAhSVNfRzMzKGRldl9wcml2KSAmJiAhSVNfUElORVZJRVcoZGV2X3By aXYpICYmICFJU19HNFgoZGV2X3ByaXYpKSB7Ci0JCXN0cnVjdCB7Ci0JCQlkbWFfYWRkcl90IHN0 YXJ0LCBlbmQ7Ci0JCX0gc3RvbGVuWzJdID0gewotCQkJeyAuc3RhcnQgPSBiYXNlLCAuZW5kID0g YmFzZSArIGdndHQtPnN0b2xlbl9zaXplLCB9LAotCQkJeyAuc3RhcnQgPSBiYXNlLCAuZW5kID0g YmFzZSArIGdndHQtPnN0b2xlbl9zaXplLCB9LAorCQlzdHJ1Y3QgcmVzb3VyY2Ugc3RvbGVuWzJd ID0geworCQkJREVGSU5FX1JFU19NRU0oZHNtLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShkc20pKSwK KwkJCURFRklORV9SRVNfTUVNKGRzbS0+c3RhcnQsIHJlc291cmNlX3NpemUoZHNtKSksCiAJCX07 Ci0JCXU2NCBnZ3R0X3N0YXJ0LCBnZ3R0X2VuZDsKKwkJc3RydWN0IHJlc291cmNlIGdndHRfcmVz OworCQl1NjQgZ2d0dF9zdGFydDsKIAogCQlnZ3R0X3N0YXJ0ID0gSTkxNV9SRUFEKFBHVEJMX0NU TCk7CiAJCWlmIChJU19HRU40KGRldl9wcml2KSkKQEAgLTEwNCw3MCArMTAxLDYzIEBAIHN0YXRp YyBkbWFfYWRkcl90IGk5MTVfc3RvbGVuX3RvX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCQkJICAgICAoZ2d0dF9zdGFydCAmIFBHVEJMX0FERFJFU1NfSElfTUFTSykg PDwgMjg7CiAJCWVsc2UKIAkJCWdndHRfc3RhcnQgJj0gUEdUQkxfQUREUkVTU19MT19NQVNLOwot CQlnZ3R0X2VuZCA9IGdndHRfc3RhcnQgKyBnZ3R0X3RvdGFsX2VudHJpZXMoZ2d0dCkgKiA0Owog Ci0JCWlmIChnZ3R0X3N0YXJ0ID49IHN0b2xlblswXS5zdGFydCAmJiBnZ3R0X3N0YXJ0IDwgc3Rv bGVuWzBdLmVuZCkKLQkJCXN0b2xlblswXS5lbmQgPSBnZ3R0X3N0YXJ0OwotCQlpZiAoZ2d0dF9l bmQgPiBzdG9sZW5bMV0uc3RhcnQgJiYgZ2d0dF9lbmQgPD0gc3RvbGVuWzFdLmVuZCkKLQkJCXN0 b2xlblsxXS5zdGFydCA9IGdndHRfZW5kOworCQlnZ3R0X3JlcyA9CisJCQkoc3RydWN0IHJlc291 cmNlKSBERUZJTkVfUkVTX01FTShnZ3R0X3N0YXJ0LAorCQkJCQkJCSBnZ3R0X3RvdGFsX2VudHJp ZXMoZ2d0dCkgKiA0KTsKKworCQlpZiAoZ2d0dF9yZXMuc3RhcnQgPj0gc3RvbGVuWzBdLnN0YXJ0 ICYmIGdndHRfcmVzLnN0YXJ0IDwgc3RvbGVuWzBdLmVuZCkKKwkJCXN0b2xlblswXS5lbmQgPSBn Z3R0X3Jlcy5zdGFydDsKKwkJaWYgKGdndHRfcmVzLmVuZCA+IHN0b2xlblsxXS5zdGFydCAmJiBn Z3R0X3Jlcy5lbmQgPD0gc3RvbGVuWzFdLmVuZCkKKwkJCXN0b2xlblsxXS5zdGFydCA9IGdndHRf cmVzLmVuZDsKIAogCQkvKiBwaWNrIHRoZSBsYXJnZXIgb2YgdGhlIHR3byBjaHVua3MgKi8KLQkJ aWYgKHN0b2xlblswXS5lbmQgLSBzdG9sZW5bMF0uc3RhcnQgPgotCQkgICAgc3RvbGVuWzFdLmVu ZCAtIHN0b2xlblsxXS5zdGFydCkgewotCQkJYmFzZSA9IHN0b2xlblswXS5zdGFydDsKLQkJCWdn dHQtPnN0b2xlbl9zaXplID0gc3RvbGVuWzBdLmVuZCAtIHN0b2xlblswXS5zdGFydDsKLQkJfSBl bHNlIHsKLQkJCWJhc2UgPSBzdG9sZW5bMV0uc3RhcnQ7Ci0JCQlnZ3R0LT5zdG9sZW5fc2l6ZSA9 IHN0b2xlblsxXS5lbmQgLSBzdG9sZW5bMV0uc3RhcnQ7Ci0JCX0KKwkJaWYgKHJlc291cmNlX3Np emUoJnN0b2xlblswXSkgPiByZXNvdXJjZV9zaXplKCZzdG9sZW5bMV0pKQorCQkJKmRzbSA9IHN0 b2xlblswXTsKKwkJZWxzZQorCQkJKmRzbSA9IHN0b2xlblsxXTsKIAogCQlpZiAoc3RvbGVuWzBd LnN0YXJ0ICE9IHN0b2xlblsxXS5zdGFydCB8fAogCQkgICAgc3RvbGVuWzBdLmVuZCAhPSBzdG9s ZW5bMV0uZW5kKSB7Ci0JCQlkbWFfYWRkcl90IGVuZCA9IGJhc2UgKyBnZ3R0LT5zdG9sZW5fc2l6 ZSAtIDE7Ci0KLQkJCURSTV9ERUJVR19LTVMoIkdUVCB3aXRoaW4gc3RvbGVuIG1lbW9yeSBhdCAw eCVsbHgtMHglbGx4XG4iLAotCQkJCSAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpZ2d0dF9zdGFy dCwKLQkJCQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWdndHRfZW5kIC0gMSk7Ci0JCQlEUk1f REVCVUdfS01TKCJTdG9sZW4gbWVtb3J5IGFkanVzdGVkIHRvICVwYWQgLSAlcGFkXG4iLAotCQkJ CSAgICAgICZiYXNlLCAmZW5kKTsKKwkJCURSTV9ERUJVR19LTVMoIkdUVCB3aXRoaW4gc3RvbGVu IG1lbW9yeSBhdCAlcFJcbiIsICZnZ3R0X3Jlcyk7CisJCQlEUk1fREVCVUdfS01TKCJTdG9sZW4g bWVtb3J5IGFkanVzdGVkIHRvICVwUlxuIiwgZHNtKTsKIAkJfQogCX0KIAotCiAJLyogVmVyaWZ5 IHRoYXQgbm90aGluZyBlbHNlIHVzZXMgdGhpcyBwaHlzaWNhbCBhZGRyZXNzLiBTdG9sZW4KIAkg KiBtZW1vcnkgc2hvdWxkIGJlIHJlc2VydmVkIGJ5IHRoZSBCSU9TIGFuZCBoaWRkZW4gZnJvbSB0 aGUKIAkgKiBrZXJuZWwuIFNvIGlmIHRoZSByZWdpb24gaXMgYWxyZWFkeSBtYXJrZWQgYXMgYnVz eSwgc29tZXRoaW5nCiAJICogaXMgc2VyaW91c2x5IHdyb25nLgogCSAqLwotCXIgPSBkZXZtX3Jl cXVlc3RfbWVtX3JlZ2lvbihkZXZfcHJpdi0+ZHJtLmRldiwgYmFzZSwgZ2d0dC0+c3RvbGVuX3Np emUsCisJciA9IGRldm1fcmVxdWVzdF9tZW1fcmVnaW9uKGRldl9wcml2LT5kcm0uZGV2LCBkc20t PnN0YXJ0LAorCQkJCSAgICByZXNvdXJjZV9zaXplKGRzbSksCiAJCQkJICAgICJHcmFwaGljcyBT dG9sZW4gTWVtb3J5Iik7CiAJaWYgKHIgPT0gTlVMTCkgewogCQkvKgogCQkgKiBPbmUgbW9yZSBh dHRlbXB0IGJ1dCB0aGlzIHRpbWUgcmVxdWVzdGluZyByZWdpb24gZnJvbQotCQkgKiBiYXNlICsg MSwgYXMgd2UgaGF2ZSBzZWVuIHRoYXQgdGhpcyByZXNvbHZlcyB0aGUgcmVnaW9uCisJCSAqIHN0 YXJ0ICsgMSwgYXMgd2UgaGF2ZSBzZWVuIHRoYXQgdGhpcyByZXNvbHZlcyB0aGUgcmVnaW9uCiAJ CSAqIGNvbmZsaWN0IHdpdGggdGhlIFBDSSBCdXMuCiAJCSAqIFRoaXMgaXMgYSBCSU9TIHcvYTog U29tZSBCSU9TIHdyYXAgc3RvbGVuIGluIHRoZSByb290CiAJCSAqIFBDSSBidXMsIGJ1dCBoYXZl IGFuIG9mZi1ieS1vbmUgZXJyb3IuIEhlbmNlIHJldHJ5IHRoZQogCQkgKiByZXNlcnZhdGlvbiBz dGFydGluZyBmcm9tIDEgaW5zdGVhZCBvZiAwLgogCQkgKiBUaGVyZSdzIGFsc28gQklPUyB3aXRo IG9mZi1ieS1vbmUgb24gdGhlIG90aGVyIGVuZC4KIAkJICovCi0JCXIgPSBkZXZtX3JlcXVlc3Rf bWVtX3JlZ2lvbihkZXZfcHJpdi0+ZHJtLmRldiwgYmFzZSArIDEsCi0JCQkJCSAgICBnZ3R0LT5z dG9sZW5fc2l6ZSAtIDIsCisJCXIgPSBkZXZtX3JlcXVlc3RfbWVtX3JlZ2lvbihkZXZfcHJpdi0+ ZHJtLmRldiwgZHNtLT5zdGFydCArIDEsCisJCQkJCSAgICByZXNvdXJjZV9zaXplKGRzbSkgLSAy LAogCQkJCQkgICAgIkdyYXBoaWNzIFN0b2xlbiBNZW1vcnkiKTsKIAkJLyoKIAkJICogR0VOMyBm aXJtd2FyZSBsaWtlcyB0byBzbWFzaCBwY2kgYnJpZGdlcyBpbnRvIHRoZSBzdG9sZW4KIAkJICog cmFuZ2UuIEFwcGFyZW50bHkgdGhpcyB3b3Jrcy4KIAkJICovCiAJCWlmIChyID09IE5VTEwgJiYg IUlTX0dFTjMoZGV2X3ByaXYpKSB7Ci0JCQlkbWFfYWRkcl90IGVuZCA9IGJhc2UgKyBnZ3R0LT5z dG9sZW5fc2l6ZTsKKwkJCURSTV9FUlJPUigiY29uZmxpY3QgZGV0ZWN0ZWQgd2l0aCBzdG9sZW4g cmVnaW9uOiAlcFJcbiIsCisJCQkJICBkc20pOwogCi0JCQlEUk1fRVJST1IoImNvbmZsaWN0IGRl dGVjdGVkIHdpdGggc3RvbGVuIHJlZ2lvbjogWyVwYWQgLSAlcGFkXVxuIiwKLQkJCQkgICZiYXNl LCAmZW5kKTsKLQkJCWJhc2UgPSAwOworCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCX0KIAotCXJl dHVybiBiYXNlOworCXJldHVybiAwOwogfQogCiB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfc3RvbGVu KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0xODMsMTEgKzE3MywxMCBAQCB2b2lkIGk5MTVf Z2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBn NHhfZ2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkJICAgIGRtYV9hZGRyX3QgKmJhc2UsIHUzMiAqc2l6ZSkKIHsKLQlzdHJ1Y3QgaTkxNV9n Z3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXVpbnQzMl90IHJlZ192YWwgPSBJOTE1X1JF QUQoSVNfR000NShkZXZfcHJpdikgPwogCQkJCSAgICAgQ1RHX1NUT0xFTl9SRVNFUlZFRCA6CiAJ CQkJICAgICBFTEtfU1RPTEVOX1JFU0VSVkVEKTsKLQlkbWFfYWRkcl90IHN0b2xlbl90b3AgPSBk ZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgKyBnZ3R0LT5zdG9sZW5fc2l6ZTsKKwlkbWFfYWRkcl90 IHN0b2xlbl90b3AgPSBkZXZfcHJpdi0+ZHNtLmVuZCArIDE7CiAKIAlpZiAoKHJlZ192YWwgJiBH NFhfU1RPTEVOX1JFU0VSVkVEX0VOQUJMRSkgPT0gMCkgewogCQkqYmFzZSA9IDA7CkBAIC0zMDgs NyArMjk3LDYgQEAgc3RhdGljIHZvaWQgY2h2X2dldF9zdG9sZW5fcmVzZXJ2ZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgYmR3X2dldF9zdG9sZW5fcmVz ZXJ2ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBkbWFfYWRk cl90ICpiYXNlLCB1MzIgKnNpemUpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZf cHJpdi0+Z2d0dDsKIAl1aW50MzJfdCByZWdfdmFsID0gSTkxNV9SRUFEKEdFTjZfU1RPTEVOX1JF U0VSVkVEKTsKIAlkbWFfYWRkcl90IHN0b2xlbl90b3A7CiAKQEAgLTMxOCw3ICszMDYsNyBAQCBz dGF0aWMgdm9pZCBiZHdfZ2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCXJldHVybjsKIAl9CiAKLQlzdG9sZW5fdG9wID0gZGV2X3ByaXYtPm1t LnN0b2xlbl9iYXNlICsgZ2d0dC0+c3RvbGVuX3NpemU7CisJc3RvbGVuX3RvcCA9IGRldl9wcml2 LT5kc20uZW5kICsgMTsKIAogCSpiYXNlID0gcmVnX3ZhbCAmIEdFTjZfU1RPTEVOX1JFU0VSVkVE X0FERFJfTUFTSzsKIApAQCAtMzUxLDE0ICszMzksMTggQEAgaW50IGk5MTVfZ2VtX2luaXRfc3Rv bGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuIDA7CiAJfQog Ci0JaWYgKGdndHQtPnN0b2xlbl9zaXplID09IDApCisJaWYgKHJlc291cmNlX3NpemUoJmludGVs X2dyYXBoaWNzX3N0b2xlbl9yZXMpID09IDApCiAJCXJldHVybiAwOwogCi0JZGV2X3ByaXYtPm1t LnN0b2xlbl9iYXNlID0gaTkxNV9zdG9sZW5fdG9fZG1hKGRldl9wcml2KTsKLQlpZiAoZGV2X3By aXYtPm1tLnN0b2xlbl9iYXNlID09IDApCisJZGV2X3ByaXYtPmRzbSA9IGludGVsX2dyYXBoaWNz X3N0b2xlbl9yZXM7CisKKwlpZiAoaTkxNV9hZGp1c3Rfc3RvbGVuKGRldl9wcml2LCAmZGV2X3By aXYtPmRzbSkpCiAJCXJldHVybiAwOwogCi0Jc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9s ZW5fYmFzZSArIGdndHQtPnN0b2xlbl9zaXplOworCUdFTV9CVUdfT04oZGV2X3ByaXYtPmRzbS5z dGFydCA9PSAwKTsKKwlHRU1fQlVHX09OKHJlc291cmNlX3NpemUoJmRldl9wcml2LT5kc20pID09 IDApOworCisJc3RvbGVuX3RvcCA9IGRldl9wcml2LT5kc20uZW5kICsgMTsKIAlyZXNlcnZlZF9i YXNlID0gMDsKIAlyZXNlcnZlZF9zaXplID0gMDsKIApAQCAtMzk5LDEyICszOTEsMTIgQEAgaW50 IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJcmVzZXJ2ZWRfYmFzZSA9IHN0b2xlbl90b3A7CiAJfQogCi0JaWYgKHJlc2VydmVkX2Jhc2Ug PCBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgfHwKKwlpZiAocmVzZXJ2ZWRfYmFzZSA8IGRldl9w cml2LT5kc20uc3RhcnQgfHwKIAkgICAgcmVzZXJ2ZWRfYmFzZSArIHJlc2VydmVkX3NpemUgPiBz dG9sZW5fdG9wKSB7CiAJCWRtYV9hZGRyX3QgcmVzZXJ2ZWRfdG9wID0gcmVzZXJ2ZWRfYmFzZSAr IHJlc2VydmVkX3NpemU7CiAJCURSTV9FUlJPUigiU3RvbGVuIHJlc2VydmVkIGFyZWEgWyVwYWQg LSAlcGFkXSBvdXRzaWRlIHN0b2xlbiBtZW1vcnkgWyVwYWQgLSAlcGFkXVxuIiwKIAkJCSAgJnJl c2VydmVkX2Jhc2UsICZyZXNlcnZlZF90b3AsCi0JCQkgICZkZXZfcHJpdi0+bW0uc3RvbGVuX2Jh c2UsICZzdG9sZW5fdG9wKTsKKwkJCSAgJmRldl9wcml2LT5kc20uc3RhcnQsICZzdG9sZW5fdG9w KTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC00MTUsOSArNDA3LDkgQEAgaW50IGk5MTVfZ2VtX2lu aXRfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBtZW1vcnks IHNvIGp1c3QgY29uc2lkZXIgdGhlIHN0YXJ0LiAqLwogCXJlc2VydmVkX3RvdGFsID0gc3RvbGVu X3RvcCAtIHJlc2VydmVkX2Jhc2U7CiAKLQlEUk1fREVCVUdfS01TKCJNZW1vcnkgcmVzZXJ2ZWQg Zm9yIGdyYXBoaWNzIGRldmljZTogJXVLLCB1c2FibGU6ICV1S1xuIiwKLQkJICAgICAgZ2d0dC0+ c3RvbGVuX3NpemUgPj4gMTAsCi0JCSAgICAgIChnZ3R0LT5zdG9sZW5fc2l6ZSAtIHJlc2VydmVk X3RvdGFsKSA+PiAxMCk7CisJRFJNX0RFQlVHX0tNUygiTWVtb3J5IHJlc2VydmVkIGZvciBncmFw aGljcyBkZXZpY2U6ICVsbHVLLCB1c2FibGU6ICVsbHVLXG4iLAorCQkgICAgICAodTY0KXJlc291 cmNlX3NpemUoJmRldl9wcml2LT5kc20pID4+IDEwLAorCQkgICAgICAoKHU2NClyZXNvdXJjZV9z aXplKCZkZXZfcHJpdi0+ZHNtKSAtIHJlc2VydmVkX3RvdGFsKSA+PiAxMCk7CiAKIAlzdG9sZW5f dXNhYmxlX3N0YXJ0ID0gMDsKIAkvKiBXYVNraXBTdG9sZW5NZW1vcnlGaXJzdFBhZ2U6YmR3KyAq LwpAQCAtNDI1LDcgKzQxNyw3IEBAIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXN0b2xlbl91c2FibGVfc3RhcnQgPSA0MDk2Owog CiAJZ2d0dC0+c3RvbGVuX3VzYWJsZV9zaXplID0KLQkJZ2d0dC0+c3RvbGVuX3NpemUgLSByZXNl cnZlZF90b3RhbCAtIHN0b2xlbl91c2FibGVfc3RhcnQ7CisJCXJlc291cmNlX3NpemUoJmRldl9w cml2LT5kc20pIC0gcmVzZXJ2ZWRfdG90YWwgLSBzdG9sZW5fdXNhYmxlX3N0YXJ0OwogCiAJLyog QmFzaWMgbWVtcmFuZ2UgYWxsb2NhdG9yIGZvciBzdG9sZW4gc3BhY2UuICovCiAJZHJtX21tX2lu aXQoJmRldl9wcml2LT5tbS5zdG9sZW4sIHN0b2xlbl91c2FibGVfc3RhcnQsCkBAIC00NDIsNyAr NDM0LDggQEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCXN0cnVjdCBzZ190YWJsZSAqc3Q7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKIAot CUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZsb3dzKG9mZnNldCwgc2l6ZSwgZGV2X3ByaXYtPmdndHQu c3RvbGVuX3NpemUpKTsKKwlHRU1fQlVHX09OKHJhbmdlX292ZXJmbG93c190KHJlc291cmNlX3Np emVfdCwgb2Zmc2V0LCBzaXplLAorCQkJCSAgICAgcmVzb3VyY2Vfc2l6ZSgmZGV2X3ByaXYtPmRz bSkpKTsKIAogCS8qIFdlIGhpZGUgdGhhdCB3ZSBoYXZlIG5vIHN0cnVjdCBwYWdlIGJhY2tpbmcg b3VyIHN0b2xlbiBvYmplY3QKIAkgKiBieSB3cmFwcGluZyB0aGUgY29udGlndW91cyBwaHlzaWNh bCBhbGxvY2F0aW9uIHdpdGggYSBmYWtlCkBAIC00NjIsNyArNDU1LDcgQEAgaTkxNV9wYWdlc19j cmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXNnLT5vZmZzZXQgPSAw OwogCXNnLT5sZW5ndGggPSBzaXplOwogCi0Jc2dfZG1hX2FkZHJlc3Moc2cpID0gKGRtYV9hZGRy X3QpZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlICsgb2Zmc2V0OworCXNnX2RtYV9hZGRyZXNzKHNn KSA9IChkbWFfYWRkcl90KWRldl9wcml2LT5kc20uc3RhcnQgKyBvZmZzZXQ7CiAJc2dfZG1hX2xl bihzZykgPSBzaXplOwogCiAJcmV0dXJuIHN0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwppbmRl eCA0YWVmYzY1OGE1Y2YuLmY4OGMxYjVkYWU0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMK QEAgLTUzMSw3ICs1MzEsNiBAQCBzdGF0aWMgaW50IGZpbmRfY29tcHJlc3Npb25fdGhyZXNob2xk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgICBpbnQgc2l6ZSwK IAkJCQkgICAgICBpbnQgZmJfY3BwKQogewotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2 X3ByaXYtPmdndHQ7CiAJaW50IGNvbXByZXNzaW9uX3RocmVzaG9sZCA9IDE7CiAJaW50IHJldDsK IAl1NjQgZW5kOwpAQCAtNTQxLDcgKzU0MCw3IEBAIHN0YXRpYyBpbnQgZmluZF9jb21wcmVzc2lv bl90aHJlc2hvbGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIElmIHdl IGVuYWJsZSBGQkMgdXNpbmcgYSBDRkIgb24gdGhhdCBtZW1vcnkgcmFuZ2Ugd2UnbGwgZ2V0IEZJ Rk8KIAkgKiB1bmRlcnJ1bnMsIGV2ZW4gaWYgdGhhdCByYW5nZSBpcyBub3QgcmVzZXJ2ZWQgYnkg dGhlIEJJT1MuICovCiAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfR0VOOV9CQyhk ZXZfcHJpdikpCi0JCWVuZCA9IGdndHQtPnN0b2xlbl9zaXplIC0gOCAqIDEwMjQgKiAxMDI0Owor CQllbmQgPSByZXNvdXJjZV9zaXplKCZkZXZfcHJpdi0+ZHNtKSAtIDggKiAxMDI0ICogMTAyNDsK IAllbHNlCiAJCWVuZCA9IFU2NF9NQVg7CiAKQEAgLTYxNSwxMCArNjE0LDE2IEBAIHN0YXRpYyBp bnQgaW50ZWxfZmJjX2FsbG9jX2NmYihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAogCQlmYmMt PmNvbXByZXNzZWRfbGxiID0gY29tcHJlc3NlZF9sbGI7CiAKKwkJR0VNX0JVR19PTihyYW5nZV9v dmVyZmxvd3NfdCh1NjQsIGRldl9wcml2LT5kc20uc3RhcnQsCisJCQkJCSAgICAgZmJjLT5jb21w cmVzc2VkX2ZiLnN0YXJ0LAorCQkJCQkgICAgIFUzMl9NQVgpKTsKKwkJR0VNX0JVR19PTihyYW5n ZV9vdmVyZmxvd3NfdCh1NjQsIGRldl9wcml2LT5kc20uc3RhcnQsCisJCQkJCSAgICAgZmJjLT5j b21wcmVzc2VkX2xsYi0+c3RhcnQsCisJCQkJCSAgICAgVTMyX01BWCkpOwogCQlJOTE1X1dSSVRF KEZCQ19DRkJfQkFTRSwKLQkJCSAgIGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGZiYy0+Y29t cHJlc3NlZF9mYi5zdGFydCk7CisJCQkgICBkZXZfcHJpdi0+ZHNtLnN0YXJ0ICsgZmJjLT5jb21w cmVzc2VkX2ZiLnN0YXJ0KTsKIAkJSTkxNV9XUklURShGQkNfTExfQkFTRSwKLQkJCSAgIGRldl9w cml2LT5tbS5zdG9sZW5fYmFzZSArIGNvbXByZXNzZWRfbGxiLT5zdGFydCk7CisJCQkgICBkZXZf cHJpdi0+ZHNtLnN0YXJ0ICsgY29tcHJlc3NlZF9sbGItPnN0YXJ0KTsKIAl9CiAKIAlEUk1fREVC VUdfS01TKCJyZXNlcnZlZCAlbGx1IGJ5dGVzIG9mIGNvbnRpZ3VvdXMgc3RvbGVuIHNwYWNlIGZv ciBGQkMsIHRocmVzaG9sZDogJWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA1ODM2 MTgxZDZmOGEuLjc5YjNmZDYxN2RlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC03MDIw LDcgKzcwMjAsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NoZWNrX3BjdHgoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXVuc2lnbmVkIGxvbmcgcGN0eF9hZGRyID0g STkxNV9SRUFEKFZMVl9QQ0JSKSAmIH40MDk1OwogCi0JV0FSTl9PTihwY3R4X2FkZHIgIT0gZGV2 X3ByaXYtPm1tLnN0b2xlbl9iYXNlICsKKwlXQVJOX09OKHBjdHhfYWRkciAhPSBkZXZfcHJpdi0+ ZHNtLnN0YXJ0ICsKIAkJCSAgICAgZGV2X3ByaXYtPnZsdl9wY3R4LT5zdG9sZW4tPnN0YXJ0KTsK IH0KIApAQCAtNzAzNSw3ICs3MDM1LDYgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19jaGVja19w Y3R4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIHZvaWQgY2hl cnJ5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXVuc2lnbmVkIGxv bmcgcGN0eF9wYWRkciwgcGFkZHI7CiAJdTMyIHBjYnI7CiAJaW50IHBjdHhfc2l6ZSA9IDMyKjEw MjQ7CkBAIC03MDQzLDggKzcwNDIsOCBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NldHVwX3Bj dHgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXBjYnIgPSBJOTE1X1JFQUQo VkxWX1BDQlIpOwogCWlmICgocGNiciA+PiBWTFZfUENCUl9BRERSX1NISUZUKSA9PSAwKSB7CiAJ CURSTV9ERUJVR19EUklWRVIoIkJJT1MgZGlkbid0IHNldCB1cCBQQ0JSLCBmaXhpbmcgdXBcbiIp OwotCQlwYWRkciA9IChkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgKwotCQkJIChnZ3R0LT5zdG9s ZW5fc2l6ZSAtIHBjdHhfc2l6ZSkpOworCQlwYWRkciA9IGRldl9wcml2LT5kc20uZW5kICsgMSAt IHBjdHhfc2l6ZTsKKwkJR0VNX0JVR19PTihwYWRkciA+IFUzMl9NQVgpOwogCiAJCXBjdHhfcGFk ZHIgPSAocGFkZHIgJiAofjQwOTUpKTsKIAkJSTkxNV9XUklURShWTFZfUENCUiwgcGN0eF9wYWRk cik7CkBAIC03MDY1LDcgKzcwNjQsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3Bj dHgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkvKiBCSU9TIHNldCBpdCB1 cCBhbHJlYWR5LCBncmFiIHRoZSBwcmUtYWxsb2MnZCBzcGFjZSAqLwogCQlpbnQgcGNicl9vZmZz ZXQ7CiAKLQkJcGNicl9vZmZzZXQgPSAocGNiciAmICh+NDA5NSkpIC0gZGV2X3ByaXYtPm1tLnN0 b2xlbl9iYXNlOworCQlwY2JyX29mZnNldCA9IChwY2JyICYgKH40MDk1KSkgLSBkZXZfcHJpdi0+ ZHNtLnN0YXJ0OwogCQlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3By ZWFsbG9jYXRlZChkZXZfcHJpdiwKIAkJCQkJCQkJICAgICAgcGNicl9vZmZzZXQsCiAJCQkJCQkJ CSAgICAgIEk5MTVfR1RUX09GRlNFVF9OT05FLApAQCAtNzA4OSw3ICs3MDg4LDExIEBAIHN0YXRp YyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJCWdvdG8gb3V0OwogCX0KIAotCXBjdHhfcGFkZHIgPSBkZXZfcHJpdi0+bW0uc3Rv bGVuX2Jhc2UgKyBwY3R4LT5zdG9sZW4tPnN0YXJ0OworCUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZs b3dzX3QodTY0LAorCQkJCSAgICAgZGV2X3ByaXYtPmRzbS5zdGFydCwKKwkJCQkgICAgIHBjdHgt PnN0b2xlbi0+c3RhcnQsCisJCQkJICAgICBVMzJfTUFYKSk7CisJcGN0eF9wYWRkciA9IGRldl9w cml2LT5kc20uc3RhcnQgKyBwY3R4LT5zdG9sZW4tPnN0YXJ0OwogCUk5MTVfV1JJVEUoVkxWX1BD QlIsIHBjdHhfcGFkZHIpOwogCiBvdXQ6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pbnRlbC1n dHQuaCBiL2luY2x1ZGUvZHJtL2ludGVsLWd0dC5oCmluZGV4IGM1ZGI3OTc1YzY0MC4uOGM1Nzdj YTM4ZTJlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9pbnRlbC1ndHQuaAorKysgYi9pbmNsdWRl L2RybS9pbnRlbC1ndHQuaApAQCAtNSw3ICs1LDYgQEAKICNkZWZpbmUJX0RSTV9JTlRFTF9HVFRf SAogCiB2b2lkIGludGVsX2d0dF9nZXQodTY0ICpndHRfdG90YWwsCi0JCSAgIHUzMiAqc3RvbGVu X3NpemUsCiAJCSAgIHBoeXNfYWRkcl90ICptYXBwYWJsZV9iYXNlLAogCQkgICB1NjQgKm1hcHBh YmxlX2VuZCk7CiAKLS0gCjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==