From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH] drm/i915: Partial revert of atomic watermark series Date: Thu, 8 Oct 2015 15:28:25 -0700 Message-ID: <1444343305-321-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id ECA796E2F5 for ; Thu, 8 Oct 2015 15:28:28 -0700 (PDT) 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: "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org SXQncyBiZWVuIHJlcG9ydGVkIHRoYXQgdGhlIGF0b21pYyB3YXRlcm1hcmsgc2VyaWVzIHRyaWdn ZXJzIHNvbWUKcmVncmVzc2lvbnMgb24gU0tMLCB3aGljaCB3ZSBoYXZlbid0IGJlZW4gYWJsZSB0 byB0cmFjayBkb3duIHlldC4gIExldCdzCnRlbXBvcmFyaWx5IHJldmVydCB0aGVzZSBwYXRjaGVz IHdoaWxlIHdlIHRyYWNrIGRvd24gdGhlIHJvb3QgY2F1c2UuCgpUaGlzIGNvbW1pdCBzcXVhc2hl cyB0aGUgcmV2ZXJ0cyBvZjoKICA3NjMwNWIxIGRybS9pOTE1OiBDYWxjdWxhdGUgd2F0ZXJtYXJr IGNvbmZpZ3VyYXRpb24gZHVyaW5nIGF0b21pYyBjaGVjayAodjIpCiAgYTQ2MTFlNCBkcm0vaTkx NTogRG9uJ3Qgc2V0IHBsYW5lIHZpc2libGUgZHVyaW5nIEhXIHJlYWRvdXQgaWYgQ1JUQyBpcyBv ZmYKICBhMjgxNzBmIGRybS9pOTE1OiBDYWxjdWxhdGUgSUxLLXN0eWxlIHdhdGVybWFya3MgZHVy aW5nIGF0b21pYyBjaGVjayAodjMpCiAgZGU0YTlmOCBkcm0vaTkxNTogQ2FsY3VsYXRlIHBpcGUg d2F0ZXJtYXJrcyBpbnRvIENSVEMgc3RhdGUgKHYzKQogIGRlMTY1ZTAgZHJtL2k5MTU6IFJlZmFj dG9yIGlsa191cGRhdGVfd20gKHYzKQoKUmVmZXJlbmNlOiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE1LU9jdG9iZXIvMDc3MTkwLmh0bWwKQ2M6ICJa YW5vbmksIFBhdWxvIFIiIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CkNjOiAiVmV0dGVyLCBE YW5pZWwiIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dCBSb3Bl ciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCkkganVzdCBnb3QgYWNjZXNzIHRvIEJY VCBoYXJkd2FyZSwgc28gSSdtIGhvcGluZyB0aGF0IHRoZSBTS0wgcHJvYmxlbXMgcmVwb3J0ZWQK YnkgUGF1bG8gd2lsbCBhbHNvIGJlIHJlcHJvZHVjaWJsZSBvbiBCWFQuICBIb3dldmVyIEknbSBu b3QgZ29pbmcgdG8gYmUgYWJsZSB0bwp3b3JrIG9uIHRoaXMgZm9yIGEgY291cGxlIGRheXMsIHNv IGl0J3MgcHJvYmFibHkgYmV0dGVyIHRvIGRvIHNvbWUgcmV2ZXJ0cyBub3cKc28gdGhhdCB3ZSBk b24ndCBsZWF2ZSBkaS1uaWdodGx5IGluIGEgYnJva2VuIHN0YXRlIGluIHRoZSBtZWFudGltZS4K CkFsc28gbm90ZSB0aGF0IHRoaXMgaXMgYSBkaWZmZXJlbnQgcmVncmVzc2lvbiB0aGFuIHRoZSBv bmUgcmVwb3J0ZWQgYnkgSmFuaQooZm9yIHdoaWNoIHdlJ3ZlIGFscmVhZHkgcmV2ZXJ0ZWQgYSBj b3VwbGUgcGF0Y2hlcyk7IGhpcyBpc3N1ZSBoYXBwZW5zIG9uIHRoZQpJTEstc3R5bGUgd2F0ZXJt YXJrIHBhdGggd2hpY2ggaXNuJ3QgcmVsZXZhbnQgZm9yIFBhdWxvJ3MgaXNzdWVzIGhlcmUuCgog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDEyIC0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNjAgKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNDkgKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMgICAgICB8IDIzMiArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMjAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGZiZjBhZTkuLjRiMDJiZTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtNjI3LDggKzYyNyw2IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNw bGF5X2Z1bmNzIHsKIAkJCSAgaW50IHRhcmdldCwgaW50IHJlZmNsaywKIAkJCSAgc3RydWN0IGRw bGwgKm1hdGNoX2Nsb2NrLAogCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7Ci0JaW50ICgq Y29tcHV0ZV9waXBlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKLQkJCSAgICAgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBk cm1fY3J0YyAqY3J0Yyk7CiAJaW50ICgqbW9kZXNldF9jYWxjX2NkY2xrKShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwogCXZvaWQgKCptb2Rlc2V0X2NvbW1pdF9jZGNsaykoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKQEAgLTE2OTIsMTMgKzE2OTAsNiBAQCBzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtcyB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICAg ICAqcmVxdWVzdDsKIH07CiAKLS8qIHVzZWQgaW4gY29tcHV0aW5nIHRoZSBuZXcgd2F0ZXJtYXJr cyBzdGF0ZSAqLwotc3RydWN0IGludGVsX3dtX2NvbmZpZyB7Ci0JdW5zaWduZWQgaW50IG51bV9w aXBlc19hY3RpdmU7Ci0JYm9vbCBzcHJpdGVzX2VuYWJsZWQ7Ci0JYm9vbCBzcHJpdGVzX3NjYWxl ZDsKLX07Ci0KIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2OwogCXN0cnVjdCBrbWVtX2NhY2hlICpvYmplY3RzOwpAQCAtMTkyMyw5ICsxOTE0LDYgQEAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQkgKi8KIAkJdWludDE2X3Qgc2tsX2xhdGVuY3lb OF07CiAKLQkJLyogQ29tbWl0dGVkIHdtIGNvbmZpZyAqLwotCQlzdHJ1Y3QgaW50ZWxfd21fY29u ZmlnIGNvbmZpZzsKLQogCQkvKgogCQkgKiBUaGUgc2tsX3dtX3ZhbHVlcyBzdHJ1Y3R1cmUgaXMg YSBiaXQgdG9vIGJpZyBmb3Igc3RhY2sKIAkJICogYWxsb2NhdGlvbiwgc28gd2Uga2VlcCB0aGUg c3RhZ2luZyBzdHJ1Y3Qgd2hlcmUgd2Ugc3RvcmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCA1MzljMzczLi5kODRkNWMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC0xMTgzNywxMiArMTE4MzcsNiBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiAKIAlyZXQgPSAwOwotCWlmIChk ZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20pIHsKLQkJcmV0ID0gZGV2X3ByaXYtPmRp c3BsYXkuY29tcHV0ZV9waXBlX3dtKGludGVsX2NydGMsIHN0YXRlKTsKLQkJaWYgKHJldCkKLQkJ CXJldHVybiByZXQ7Ci0JfQotCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKIAkJ aWYgKG1vZGVfY2hhbmdlZCkKIAkJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX2NydGMocGlwZV9j b25maWcpOwpAQCAtMTMwNDgsNDUgKzEzMDQyLDYgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0 X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAK LS8qCi0gKiBIYW5kbGUgY2FsY3VsYXRpb24gb2YgdmFyaW91cyB3YXRlcm1hcmsgZGF0YSBhdCB0 aGUgZW5kIG9mIHRoZSBhdG9taWMgY2hlY2sKLSAqIHBoYXNlLiAgVGhlIGNvZGUgaGVyZSBzaG91 bGQgYmUgcnVuIGFmdGVyIHRoZSBwZXItY3J0YyBhbmQgcGVyLXBsYW5lICdjaGVjaycKLSAqIGhh bmRsZXJzIHRvIGVuc3VyZSB0aGF0IGFsbCBkZXJpdmVkIHN0YXRlIGhhcyBiZWVuIHVwZGF0ZWQu Ci0gKi8KLXN0YXRpYyB2b2lkIGNhbGNfd2F0ZXJtYXJrX2RhdGEoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owot CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKHN0YXRlKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRj X3N0YXRlICpjc3RhdGU7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcHN0YXRlOwotCi0JLyoKLQkgKiBDYWxjdWxhdGUgd2F0ZXJtYXJrIGNvbmZp Z3VyYXRpb24gZGV0YWlscyBub3cgdGhhdCBkZXJpdmVkCi0JICogcGxhbmUvY3J0YyBzdGF0ZSBp cyBhbGwgcHJvcGVybHkgdXBkYXRlZC4KLQkgKi8KLQlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBk ZXYpIHsKLQkJY3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0 ZSwgY3J0YykgPzoKLQkJCWNydGMtPnN0YXRlOwotCi0JCWlmIChjc3RhdGUtPmFjdGl2ZSkKLQkJ CWludGVsX3N0YXRlLT53bV9jb25maWcubnVtX3BpcGVzX2FjdGl2ZSsrOwotCX0KLQlkcm1fZm9y X2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCBkZXYpIHsKLQkJcHN0YXRlID0gZHJtX2F0b21pY19n ZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKSA/OgotCQkJcGxhbmUtPnN0YXRl OwotCi0JCWlmICghdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKS0+dmlzaWJsZSkKLQkJCWNv bnRpbnVlOwotCi0JCWludGVsX3N0YXRlLT53bV9jb25maWcuc3ByaXRlc19lbmFibGVkID0gdHJ1 ZTsKLQkJaWYgKHBzdGF0ZS0+Y3J0Y193ICE9IHBzdGF0ZS0+c3JjX3cgPj4gMTYgfHwKLQkJICAg IHBzdGF0ZS0+Y3J0Y19oICE9IHBzdGF0ZS0+c3JjX2ggPj4gMTYpCi0JCQlpbnRlbF9zdGF0ZS0+ d21fY29uZmlnLnNwcml0ZXNfc2NhbGVkID0gdHJ1ZTsKLQl9Ci19Ci0KIC8qKgogICogaW50ZWxf YXRvbWljX2NoZWNrIC0gdmFsaWRhdGUgc3RhdGUgb2JqZWN0CiAgKiBAZGV2OiBkcm0gZGV2aWNl CkBAIC0xMzA5NSw3ICsxMzA1MCw2IEBAIHN0YXRpYyB2b2lkIGNhbGNfd2F0ZXJtYXJrX2RhdGEo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGljIGludCBpbnRlbF9hdG9taWNf Y2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7CiAJc3RydWN0IGRybV9jcnRjICpjcnRj OwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAlpbnQgcmV0LCBpOwpAQCAt MTMxNTksMTUgKzEzMTEzLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZQot CQlpbnRlbF9zdGF0ZS0+Y2RjbGsgPSB0b19pOTE1KHN0YXRlLT5kZXYpLT5jZGNsa19mcmVxOwot Ci0JcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVzKHN0YXRlLT5kZXYsIHN0YXRl KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JY2FsY193YXRlcm1hcmtfZGF0YShzdGF0 ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0KKwkJCXRvX2k5MTUo c3RhdGUtPmRldiktPmNkY2xrX2ZyZXE7CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfcGxhbmVzKHN0YXRlLT5kZXYsIHN0YXRlKTsKIH0KIAogLyoqCkBAIC0x MzIwNyw3ICsxMzE1Niw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gcmV0OwogCiAJZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZShkZXYsIHN0YXRlKTsKLQlkZXZfcHJpdi0+d20uY29uZmlnID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKHN0YXRlKS0+d21fY29uZmlnOwogCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewogCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC0xNTIyMSw3ICsxNTE2OSw3IEBAIHN0YXRp YyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9CiAJCXRvX2ludGVsX3BsYW5lX3N0 YXRlKHByaW1hcnktPnN0YXRlKTsKIAotCXBsYW5lX3N0YXRlLT52aXNpYmxlID0gY3J0Yy0+YWN0 aXZlICYmCisJcGxhbmVfc3RhdGUtPnZpc2libGUgPQogCQlwcmltYXJ5X2dldF9od19zdGF0ZSh0 b19pbnRlbF9wbGFuZShwcmltYXJ5KSk7CiAKIAlpZiAocGxhbmVfc3RhdGUtPnZpc2libGUpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGUzMjA4MjUuLjkxYjZiNDAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC0yNTAsNyArMjUwLDYgQEAgc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSB7CiAJdW5zaWduZWQgaW50IGNkY2xrOwogCWJvb2wgZHBsbF9zZXQ7CiAJc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRfZHBsbFtJOTE1X05VTV9QTExTXTsKLQlzdHJ1 Y3QgaW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsKIH07CiAKIHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSB7CkBAIC0zMzUsMjEgKzMzNCw2IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0 ZSB7CiAvKiBkcm1fbW9kZS0+cHJpdmF0ZV9mbGFncyAqLwogI2RlZmluZSBJOTE1X01PREVfRkxB R19JTkhFUklURUQgMQogCi1zdHJ1Y3QgaW50ZWxfcGlwZV93bSB7Ci0Jc3RydWN0IGludGVsX3dt X2xldmVsIHdtWzVdOwotCXVpbnQzMl90IGxpbmV0aW1lOwotCWJvb2wgZmJjX3dtX2VuYWJsZWQ7 Ci0JYm9vbCBwaXBlX2VuYWJsZWQ7Ci0JYm9vbCBzcHJpdGVzX2VuYWJsZWQ7Ci0JYm9vbCBzcHJp dGVzX3NjYWxlZDsKLX07Ci0KLXN0cnVjdCBza2xfcGlwZV93bSB7Ci0Jc3RydWN0IHNrbF93bV9s ZXZlbCB3bVs4XTsKLQlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHRyYW5zX3dtOwotCXVpbnQzMl90IGxp bmV0aW1lOwotfTsKLQogc3RydWN0IGludGVsX2NydGNfc3RhdGUgewogCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSBiYXNlOwogCkBAIC00ODcsMTcgKzQ3MSw2IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlIHsKIAogCS8qIElWQiBzcHJpdGUgc2NhbGluZyB3L2EgKFdhQ3hTUkRpc2FibGVkRm9yU3By aXRlU2NhbGluZzppdmIpICovCiAJYm9vbCBkaXNhYmxlX2xwX3dtOwotCi0Jc3RydWN0IHsKLQkJ LyoKLQkJICogb3B0aW1hbCB3YXRlcm1hcmtzLCBwcm9ncmFtbWVkIHBvc3QtdmJsYW5rIHdoZW4g dGhpcyBzdGF0ZQotCQkgKiBpcyBjb21taXR0ZWQKLQkJICovCi0JCXVuaW9uIHsKLQkJCXN0cnVj dCBpbnRlbF9waXBlX3dtIGlsazsKLQkJCXN0cnVjdCBza2xfcGlwZV93bSBza2w7Ci0JCX0gb3B0 aW1hbDsKLQl9IHdtOwogfTsKIAogc3RydWN0IHZsdl93bV9zdGF0ZSB7CkBAIC01MDksNiArNDgy LDE1IEBAIHN0cnVjdCB2bHZfd21fc3RhdGUgewogCWJvb2wgY3hzcjsKIH07CiAKK3N0cnVjdCBp bnRlbF9waXBlX3dtIHsKKwlzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgd21bNV07CisJdWludDMyX3Qg bGluZXRpbWU7CisJYm9vbCBmYmNfd21fZW5hYmxlZDsKKwlib29sIHBpcGVfZW5hYmxlZDsKKwli b29sIHNwcml0ZXNfZW5hYmxlZDsKKwlib29sIHNwcml0ZXNfc2NhbGVkOworfTsKKwogc3RydWN0 IGludGVsX21taW9fZmxpcCB7CiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTU7CkBAIC01MTYsNiArNDk4LDEyIEBAIHN0cnVjdCBpbnRlbF9t bWlvX2ZsaXAgewogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogfTsKIAorc3RydWN0IHNrbF9w aXBlX3dtIHsKKwlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHdtWzhdOworCXN0cnVjdCBza2xfd21fbGV2 ZWwgdHJhbnNfd207CisJdWludDMyX3QgbGluZXRpbWU7Cit9OworCiAvKgogICogVHJhY2tpbmcg b2Ygb3BlcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGVyZm9ybWVkIGF0IHRoZSBiZWdpbm5pbmcv ZW5kIG9mIGFuCiAgKiBhdG9taWMgY29tbWl0LCBvdXRzaWRlIHRoZSBhdG9taWMgc2VjdGlvbiB3 aGVyZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KQEAgLTU4MywxMCArNTcxLDkgQEAgc3RydWN0 IGludGVsX2NydGMgewogCS8qIHBlci1waXBlIHdhdGVybWFyayBzdGF0ZSAqLwogCXN0cnVjdCB7 CiAJCS8qIHdhdGVybWFya3MgY3VycmVudGx5IGJlaW5nIHVzZWQgICovCi0JCXVuaW9uIHsKLQkJ CXN0cnVjdCBpbnRlbF9waXBlX3dtIGlsazsKLQkJCXN0cnVjdCBza2xfcGlwZV93bSBza2w7Ci0J CX0gYWN0aXZlOworCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBhY3RpdmU7CisJCS8qIFNLTCB3bSB2 YWx1ZXMgY3VycmVudGx5IGluIHVzZSAqLworCQlzdHJ1Y3Qgc2tsX3BpcGVfd20gc2tsX2FjdGl2 ZTsKIAkJLyogYWxsb3cgQ3hTUiBvbiB0aGlzIHBpcGUgKi8KIAkJYm9vbCBjeHNyX2FsbG93ZWQ7 CiAJfSB3bTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDYwZDEyMGMuLjQ5OTM2OTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMTc3Miw2ICsxNzcyLDEzIEBAIHN0cnVjdCBpbGtf d21fbWF4aW11bXMgewogCXVpbnQxNl90IGZiYzsKIH07CiAKKy8qIHVzZWQgaW4gY29tcHV0aW5n IHRoZSBuZXcgd2F0ZXJtYXJrcyBzdGF0ZSAqLworc3RydWN0IGludGVsX3dtX2NvbmZpZyB7CisJ dW5zaWduZWQgaW50IG51bV9waXBlc19hY3RpdmU7CisJYm9vbCBzcHJpdGVzX2VuYWJsZWQ7CisJ Ym9vbCBzcHJpdGVzX3NjYWxlZDsKK307CisKIC8qCiAgKiBGb3IgYm90aCBXTV9QSVBFIGFuZCBX TV9MUC4KICAqIG1lbV92YWx1ZSBtdXN0IGJlIGluIDAuMXVzIHVuaXRzLgpAQCAtMjAyMiwxMSAr MjAyOSw5IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCiAJCQkJIGludCBsZXZlbCwKIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSwKLQkJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcmlzdGF0ZSwKLQkJ CQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzcHJzdGF0ZSwKLQkJCQkgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpjdXJzdGF0ZSwKIAkJCQkgc3RydWN0IGludGVsX3dtX2xldmVsICpyZXN1 bHQpCiB7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKIAl1aW50MTZfdCBwcmlf bGF0ZW5jeSA9IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF07CiAJdWludDE2X3Qgc3By X2xhdGVuY3kgPSBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbbGV2ZWxdOwogCXVpbnQxNl90IGN1 cl9sYXRlbmN5ID0gZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5W2xldmVsXTsKQEAgLTIwMzgsMTEg KzIwNDMsMjkgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQljdXJfbGF0ZW5jeSAqPSA1OwogCX0KIAot CXJlc3VsdC0+cHJpX3ZhbCA9IGlsa19jb21wdXRlX3ByaV93bShjc3RhdGUsIHByaXN0YXRlLAot CQkJCQkgICAgIHByaV9sYXRlbmN5LCBsZXZlbCk7Ci0JcmVzdWx0LT5zcHJfdmFsID0gaWxrX2Nv bXB1dGVfc3ByX3dtKGNzdGF0ZSwgc3Byc3RhdGUsIHNwcl9sYXRlbmN5KTsKLQlyZXN1bHQtPmN1 cl92YWwgPSBpbGtfY29tcHV0ZV9jdXJfd20oY3N0YXRlLCBjdXJzdGF0ZSwgY3VyX2xhdGVuY3kp OwotCXJlc3VsdC0+ZmJjX3ZhbCA9IGlsa19jb21wdXRlX2ZiY193bShjc3RhdGUsIHByaXN0YXRl LCByZXN1bHQtPnByaV92YWwpOworCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2X3By aXYtPmRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKKwkJc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwc3RhdGUgPQorCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoaW50ZWxfcGxhbmUtPmJh c2Uuc3RhdGUpOworCisJCXN3aXRjaCAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSkgeworCQljYXNl IERSTV9QTEFORV9UWVBFX1BSSU1BUlk6CisJCQlyZXN1bHQtPnByaV92YWwgPSBpbGtfY29tcHV0 ZV9wcmlfd20oY3N0YXRlLCBwc3RhdGUsCisJCQkJCQkJICAgICBwcmlfbGF0ZW5jeSwKKwkJCQkJ CQkgICAgIGxldmVsKTsKKwkJCXJlc3VsdC0+ZmJjX3ZhbCA9IGlsa19jb21wdXRlX2ZiY193bShj c3RhdGUsIHBzdGF0ZSwKKwkJCQkJCQkgICAgIHJlc3VsdC0+cHJpX3ZhbCk7CisJCQlicmVhazsK KwkJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOgorCQkJcmVzdWx0LT5zcHJfdmFsID0gaWxr X2NvbXB1dGVfc3ByX3dtKGNzdGF0ZSwgcHN0YXRlLAorCQkJCQkJCSAgICAgc3ByX2xhdGVuY3kp OworCQkJYnJlYWs7CisJCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgorCQkJcmVzdWx0LT5j dXJfdmFsID0gaWxrX2NvbXB1dGVfY3VyX3dtKGNzdGF0ZSwgcHN0YXRlLAorCQkJCQkJCSAgICAg Y3VyX2xhdGVuY3kpOworCQkJYnJlYWs7CisJCX0KKwl9CisKIAlyZXN1bHQtPmVuYWJsZSA9IHRy dWU7CiB9CiAKQEAgLTIzMDEsMTkgKzIzMjQsMzQgQEAgc3RhdGljIHZvaWQgc2tsX3NldHVwX3dt X2xhdGVuY3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpbnRlbF9wcmludF93bV9sYXRlbmN5 KGRldiwgIkdlbjkgUGxhbmUiLCBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3kpOwogfQogCitzdGF0 aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9jb25maWcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJ CQkgIHN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZykKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YzsKKworCS8qIENvbXB1dGUgdGhlIGN1cnJlbnRseSBfYWN0aXZlXyBjb25m aWcgKi8KKwlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0YykgeworCQljb25zdCBz dHJ1Y3QgaW50ZWxfcGlwZV93bSAqd20gPSAmaW50ZWxfY3J0Yy0+d20uYWN0aXZlOworCisJCWlm ICghd20tPnBpcGVfZW5hYmxlZCkKKwkJCWNvbnRpbnVlOworCisJCWNvbmZpZy0+c3ByaXRlc19l bmFibGVkIHw9IHdtLT5zcHJpdGVzX2VuYWJsZWQ7CisJCWNvbmZpZy0+c3ByaXRlc19zY2FsZWQg fD0gd20tPnNwcml0ZXNfc2NhbGVkOworCQljb25maWctPm51bV9waXBlc19hY3RpdmUrKzsKKwl9 Cit9CisKIC8qIENvbXB1dGUgbmV3IHdhdGVybWFya3MgZm9yIHRoZSBwaXBlICovCi1zdGF0aWMg aW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCi0J CQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorc3RhdGljIGJvb2wgaW50 ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCisJCQkJ ICBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcGlwZV93 bSAqcGlwZV93bTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5k ZXY7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUgPSBOVUxMOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwotCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzOwotCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHJp c3RhdGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Byc3RhdGUgPSBOVUxM OwotCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3Vyc3RhdGUgPSBOVUxMOwogCWludCBsZXZl bCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwogCS8qIExQMCB3YXRlcm1hcmsg bWF4aW11bXMgZGVwZW5kIG9uIHRoaXMgcGlwZSBhbG9uZSAqLwogCXN0cnVjdCBpbnRlbF93bV9j b25maWcgY29uZmlnID0gewpAQCAtMjMyMSwyNCArMjM1OSwxMSBAQCBzdGF0aWMgaW50IGlsa19j b21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJfTsKIAlzdHJ1 Y3QgaWxrX3dtX21heGltdW1zIG1heDsKIAotCWNzdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0 Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7Ci0JaWYgKElTX0VSUihjc3RhdGUpKQotCQlyZXR1 cm4gUFRSX0VSUihjc3RhdGUpOwotCi0JcGlwZV93bSA9ICZjc3RhdGUtPndtLm9wdGltYWwuaWxr OwotCiAJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGludGVsX2NydGMsIGludGVs X3BsYW5lKSB7Ci0JCXBzID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsCi0JCQkJ CQkmaW50ZWxfcGxhbmUtPmJhc2UpOwotCQlpZiAoSVNfRVJSKHBzKSkKLQkJCXJldHVybiBQVFJf RVJSKHBzKTsKLQotCQlpZiAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKQotCQkJcHJpc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwcyk7Ci0JCWVs c2UgaWYgKGludGVsX3BsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkK LQkJCXNwcnN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHMpOwotCQllbHNlIGlmIChpbnRl bF9wbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKLQkJCWN1cnN0YXRl ID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHMpOworCQlpZiAoaW50ZWxfcGxhbmUtPmJhc2UudHlw ZSA9PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKSB7CisJCQlzcHJzdGF0ZSA9IHRvX2ludGVsX3Bs YW5lX3N0YXRlKGludGVsX3BsYW5lLT5iYXNlLnN0YXRlKTsKKwkJCWJyZWFrOworCQl9CiAJfQog CiAJY29uZmlnLnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxlOwpAQCAtMjM0Nyw3 ICsyMzcyLDcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAogCQlkcm1fcmVjdF9oZWlnaHQoJnNwcnN0YXRlLT5kc3QpICE9IGRy bV9yZWN0X2hlaWdodCgmc3Byc3RhdGUtPnNyYykgPj4gMTYpOwogCiAJcGlwZV93bS0+cGlwZV9l bmFibGVkID0gY3N0YXRlLT5iYXNlLmFjdGl2ZTsKLQlwaXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQg PSBjb25maWcuc3ByaXRlc19lbmFibGVkOworCXBpcGVfd20tPnNwcml0ZXNfZW5hYmxlZCA9IHNw cnN0YXRlLT52aXNpYmxlOwogCXBpcGVfd20tPnNwcml0ZXNfc2NhbGVkID0gY29uZmlnLnNwcml0 ZXNfc2NhbGVkOwogCiAJLyogSUxLL1NOQjogTFAyKyB3YXRlcm1hcmtzIG9ubHkgdy9vIHNwcml0 ZXMgKi8KQEAgLTIzNTgsMjcgKzIzODMsMjQgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBl X3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCWlmIChjb25maWcuc3ByaXRlc19z Y2FsZWQpCiAJCW1heF9sZXZlbCA9IDA7CiAKLQlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJp diwgaW50ZWxfY3J0YywgMCwgY3N0YXRlLAotCQkJICAgICBwcmlzdGF0ZSwgc3Byc3RhdGUsIGN1 cnN0YXRlLCAmcGlwZV93bS0+d21bMF0pOworCWlsa19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2 LCBpbnRlbF9jcnRjLCAwLCBjc3RhdGUsICZwaXBlX3dtLT53bVswXSk7CiAKIAlpZiAoSVNfSEFT V0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKQotCQlwaXBlX3dtLT5saW5ldGltZSA9IGhz d19jb21wdXRlX2xpbmV0aW1lX3dtKGRldiwKLQkJCQkJCQkgICAgJmludGVsX2NydGMtPmJhc2Up OworCQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGRldiwgY3J0 Yyk7CiAKIAkvKiBMUDAgd2F0ZXJtYXJrcyBhbHdheXMgdXNlIDEvMiBEREIgcGFydGl0aW9uaW5n ICovCiAJaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAwLCAmY29uZmlnLCBJTlRFTF9EREJf UEFSVF8xXzIsICZtYXgpOwogCiAJLyogQXQgbGVhc3QgTFAwIG11c3QgYmUgdmFsaWQgKi8KIAlp ZiAoIWlsa192YWxpZGF0ZV93bV9sZXZlbCgwLCAmbWF4LCAmcGlwZV93bS0+d21bMF0pKQotCQly ZXR1cm4gLUVJTlZBTDsKKwkJcmV0dXJuIGZhbHNlOwogCiAJaWxrX2NvbXB1dGVfd21fcmVnX21h eGltdW1zKGRldiwgMSwgJm1heCk7CiAKIAlmb3IgKGxldmVsID0gMTsgbGV2ZWwgPD0gbWF4X2xl dmVsOyBsZXZlbCsrKSB7CiAJCXN0cnVjdCBpbnRlbF93bV9sZXZlbCB3bSA9IHt9OwogCi0JCWls a19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2LCBpbnRlbF9jcnRjLCBsZXZlbCwgY3N0YXRlLAot CQkJCSAgICAgcHJpc3RhdGUsIHNwcnN0YXRlLCBjdXJzdGF0ZSwgJndtKTsKKwkJaWxrX2NvbXB1 dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIGxldmVsLCBjc3RhdGUsICZ3bSk7CiAK IAkJLyoKIAkJICogRGlzYWJsZSBhbnkgd2F0ZXJtYXJrIGxldmVsIHRoYXQgZXhjZWVkcyB0aGUK QEAgLTIzOTEsNyArMjQxMyw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJcGlwZV93bS0+d21bbGV2ZWxdID0gd207CiAJ fQogCi0JcmV0dXJuIDA7CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qCkBAIC0yNDA2LDkgKzI0Mjgs NyBAQCBzdGF0aWMgdm9pZCBpbGtfbWVyZ2Vfd21fbGV2ZWwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAlyZXRfd20tPmVuYWJsZSA9IHRydWU7CiAKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwg aW50ZWxfY3J0YykgewotCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0K LQkJCXRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0JCWNvbnN0 IHN0cnVjdCBpbnRlbF9waXBlX3dtICphY3RpdmUgPSAmY3N0YXRlLT53bS5vcHRpbWFsLmlsazsK KwkJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKmFjdGl2ZSA9ICZpbnRlbF9jcnRjLT53bS5h Y3RpdmU7CiAJCWNvbnN0IHN0cnVjdCBpbnRlbF93bV9sZXZlbCAqd20gPSAmYWN0aXZlLT53bVts ZXZlbF07CiAKIAkJaWYgKCFhY3RpdmUtPnBpcGVfZW5hYmxlZCkKQEAgLTI1NTYsMTUgKzI1NzYs MTQgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcmVzdWx0cyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCiAJLyogTFAwIHJlZ2lzdGVyIHZhbHVlcyAqLwogCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBpbnRlbF9jcnRjKSB7Ci0JCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUgPQotCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0YXRlKTsK IAkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCQljb25zdCBzdHJ1Y3QgaW50 ZWxfd21fbGV2ZWwgKnIgPSAmY3N0YXRlLT53bS5vcHRpbWFsLmlsay53bVswXTsKKwkJY29uc3Qg c3RydWN0IGludGVsX3dtX2xldmVsICpyID0KKwkJCSZpbnRlbF9jcnRjLT53bS5hY3RpdmUud21b MF07CiAKIAkJaWYgKFdBUk5fT04oIXItPmVuYWJsZSkpCiAJCQljb250aW51ZTsKIAotCQlyZXN1 bHRzLT53bV9saW5ldGltZVtwaXBlXSA9IGNzdGF0ZS0+d20ub3B0aW1hbC5pbGsubGluZXRpbWU7 CisJCXJlc3VsdHMtPndtX2xpbmV0aW1lW3BpcGVdID0gaW50ZWxfY3J0Yy0+d20uYWN0aXZlLmxp bmV0aW1lOwogCiAJCXJlc3VsdHMtPndtX3BpcGVbcGlwZV0gPQogCQkJKHItPnByaV92YWwgPDwg V00wX1BJUEVfUExBTkVfU0hJRlQpIHwKQEAgLTI5NDYsMTIgKzI5NjUsMTEgQEAgc2tsX2dldF90 b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSkKIAogc3RhdGljIHZvaWQKIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfd21fY29uZmln ICpjb25maWcsCiAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQg Ki8pCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29u ZmlnID0gJmRldl9wcml2LT53bS5jb25maWc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmU7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwpAQCAtMzEyNiw2ICszMTQ0 LDE1IEBAIHN0YXRpYyBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9jaGFuZ2VkKGNvbnN0IHN0cnVj dCBza2xfZGRiX2FsbG9jYXRpb24gKm5ld19kZGIsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0 aWMgdm9pZCBza2xfY29tcHV0ZV93bV9nbG9iYWxfcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAorCQkJCQkgICAgIHN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZykKK3sKKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYt Pm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkKKwkJY29uZmlnLT5udW1fcGlwZXNfYWN0aXZl ICs9IHRvX2ludGVsX2NydGMoY3J0YyktPmFjdGl2ZTsKK30KKwogc3RhdGljIGJvb2wgc2tsX2Nv bXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkJCSBzdHJ1Y3QgaW50ZWxf cGxhbmUgKmludGVsX3BsYW5lLApAQCAtMzUzMCwyNSArMzU1NywyNyBAQCBzdGF0aWMgdm9pZCBz a2xfZmx1c2hfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0K IAogc3RhdGljIGJvb2wgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK KwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpjb25maWcsCiAJCQkgICAgICAgc3Ry dWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLCAvKiBvdXQgKi8KIAkJCSAgICAgICBzdHJ1Y3Qg c2tsX3BpcGVfd20gKnBpcGVfd20gLyogb3V0ICovKQogewogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLQlza2xfYWxs b2NhdGVfcGlwZV9kZGIoY3N0YXRlLCBkZGIpOworCXNrbF9hbGxvY2F0ZV9waXBlX2RkYihjc3Rh dGUsIGNvbmZpZywgZGRiKTsKIAlza2xfY29tcHV0ZV9waXBlX3dtKGNzdGF0ZSwgZGRiLCBwaXBl X3dtKTsKIAotCWlmICghbWVtY21wKCZpbnRlbF9jcnRjLT53bS5hY3RpdmUuc2tsLCBwaXBlX3dt LCBzaXplb2YoKnBpcGVfd20pKSkKKwlpZiAoIW1lbWNtcCgmaW50ZWxfY3J0Yy0+d20uc2tsX2Fj dGl2ZSwgcGlwZV93bSwgc2l6ZW9mKCpwaXBlX3dtKSkpCiAJCXJldHVybiBmYWxzZTsKIAotCWlu dGVsX2NydGMtPndtLmFjdGl2ZS5za2wgPSAqcGlwZV93bTsKKwlpbnRlbF9jcnRjLT53bS5za2xf YWN0aXZlID0gKnBpcGVfd207CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgc2ts X3VwZGF0ZV9vdGhlcl9waXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAgICBzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpj b25maWcsCiAJCQkJICAgICBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqcikKIHsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YzsKQEAgLTM1NzgsNyArMzYwNyw3IEBAIHN0YXRpYyB2b2lkIHNr bF91cGRhdGVfb3RoZXJfcGlwZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpZiAoIWlu dGVsX2NydGMtPmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCi0JCXdtX2NoYW5nZWQgPSBza2xfdXBk YXRlX3BpcGVfd20oJmludGVsX2NydGMtPmJhc2UsCisJCXdtX2NoYW5nZWQgPSBza2xfdXBkYXRl X3BpcGVfd20oJmludGVsX2NydGMtPmJhc2UsIGNvbmZpZywKIAkJCQkJCSZyLT5kZGIsICZwaXBl X3dtKTsKIAogCQkvKgpAQCAtMzYxOSw4ICszNjQ4LDggQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0 ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBza2xfd21fdmFsdWVzICpyZXN1bHRzID0gJmRldl9wcml2LT53bS5z a2xfcmVzdWx0czsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Ci0Jc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0g JmNzdGF0ZS0+d20ub3B0aW1hbC5za2w7CisJc3RydWN0IHNrbF9waXBlX3dtIHBpcGVfd20gPSB7 fTsKKwlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIGNvbmZpZyA9IHt9OwogCiAKIAkvKiBDbGVhciBh bGwgZGlydHkgZmxhZ3MgKi8KQEAgLTM2MjgsMTMgKzM2NTcsMTUgQEAgc3RhdGljIHZvaWQgc2ts X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAlza2xfY2xlYXJfd20ocmVzdWx0 cywgaW50ZWxfY3J0Yy0+cGlwZSk7CiAKLQlpZiAoIXNrbF91cGRhdGVfcGlwZV93bShjcnRjLCAm cmVzdWx0cy0+ZGRiLCBwaXBlX3dtKSkKKwlza2xfY29tcHV0ZV93bV9nbG9iYWxfcGFyYW1ldGVy cyhkZXYsICZjb25maWcpOworCisJaWYgKCFza2xfdXBkYXRlX3BpcGVfd20oY3J0YywgJmNvbmZp ZywgJnJlc3VsdHMtPmRkYiwgJnBpcGVfd20pKQogCQlyZXR1cm47CiAKLQlza2xfY29tcHV0ZV93 bV9yZXN1bHRzKGRldiwgcGlwZV93bSwgcmVzdWx0cywgaW50ZWxfY3J0Yyk7CisJc2tsX2NvbXB1 dGVfd21fcmVzdWx0cyhkZXYsICZwaXBlX3dtLCByZXN1bHRzLCBpbnRlbF9jcnRjKTsKIAlyZXN1 bHRzLT5kaXJ0eVtpbnRlbF9jcnRjLT5waXBlXSA9IHRydWU7CiAKLQlza2xfdXBkYXRlX290aGVy X3BpcGVfd20oZGV2LCBjcnRjLCByZXN1bHRzKTsKKwlza2xfdXBkYXRlX290aGVyX3BpcGVfd20o ZGV2LCBjcnRjLCAmY29uZmlnLCByZXN1bHRzKTsKIAlza2xfd3JpdGVfd21fdmFsdWVzKGRldl9w cml2LCByZXN1bHRzKTsKIAlza2xfZmx1c2hfd21fdmFsdWVzKGRldl9wcml2LCByZXN1bHRzKTsK IApAQCAtMzY0MiwyMyArMzY3Myw1MCBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dtKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKIAlkZXZfcHJpdi0+d20uc2tsX2h3ID0gKnJlc3VsdHM7CiB9CiAK LXN0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Ci0Jc3Ry dWN0IGludGVsX3BpcGVfd20gbHBfd21fMV8yID0ge30sIGxwX3dtXzVfNiA9IHt9LCAqYmVzdF9s cF93bTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Yy0+c3RhdGUpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKLQlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpjb25m aWcgPSAmZGV2X3ByaXYtPndtLmNvbmZpZzsKIAlzdHJ1Y3QgaWxrX3dtX3ZhbHVlcyByZXN1bHRz ID0ge307CiAJZW51bSBpbnRlbF9kZGJfcGFydGl0aW9uaW5nIHBhcnRpdGlvbmluZzsKKwlzdHJ1 Y3QgaW50ZWxfcGlwZV93bSBwaXBlX3dtID0ge307CisJc3RydWN0IGludGVsX3BpcGVfd20gbHBf d21fMV8yID0ge30sIGxwX3dtXzVfNiA9IHt9LCAqYmVzdF9scF93bTsKKwlzdHJ1Y3QgaW50ZWxf d21fY29uZmlnIGNvbmZpZyA9IHt9OwogCi0JaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAx LCBjb25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwgJm1heCk7Ci0JaWxrX3dtX21lcmdlKGRldiwg Y29uZmlnLCAmbWF4LCAmbHBfd21fMV8yKTsKKwlXQVJOX09OKGNzdGF0ZS0+YmFzZS5hY3RpdmUg IT0gaW50ZWxfY3J0Yy0+YWN0aXZlKTsKKworCS8qCisJICogSVZCIHdvcmthcm91bmQ6IG11c3Qg ZGlzYWJsZSBsb3cgcG93ZXIgd2F0ZXJtYXJrcyBmb3IgYXQgbGVhc3QKKwkgKiBvbmUgZnJhbWUg YmVmb3JlIGVuYWJsaW5nIHNjYWxpbmcuICBMUCB3YXRlcm1hcmtzIGNhbiBiZSByZS1lbmFibGVk CisJICogd2hlbiBzY2FsaW5nIGlzIGRpc2FibGVkLgorCSAqCisJICogV2FDeFNSRGlzYWJsZWRG b3JTcHJpdGVTY2FsaW5nOml2YgorCSAqLworCWlmIChjc3RhdGUtPmRpc2FibGVfbHBfd20pIHsK KwkJaWxrX2Rpc2FibGVfbHBfd20oZGV2KTsKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwg aW50ZWxfY3J0Yy0+cGlwZSk7CisJfQorCisJaW50ZWxfY29tcHV0ZV9waXBlX3dtKGNzdGF0ZSwg JnBpcGVfd20pOworCisJaWYgKCFtZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2ZSwgJnBpcGVf d20sIHNpemVvZihwaXBlX3dtKSkpCisJCXJldHVybjsKKworCWludGVsX2NydGMtPndtLmFjdGl2 ZSA9IHBpcGVfd207CisKKwlpbGtfY29tcHV0ZV93bV9jb25maWcoZGV2LCAmY29uZmlnKTsKKwor CWlsa19jb21wdXRlX3dtX21heGltdW1zKGRldiwgMSwgJmNvbmZpZywgSU5URUxfRERCX1BBUlRf MV8yLCAmbWF4KTsKKwlpbGtfd21fbWVyZ2UoZGV2LCAmY29uZmlnLCAmbWF4LCAmbHBfd21fMV8y KTsKIAogCS8qIDUvNiBzcGxpdCBvbmx5IGluIHNpbmdsZSBwaXBlIGNvbmZpZyBvbiBJVkIrICov CiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcgJiYKLQkgICAgY29uZmlnLT5udW1fcGlw ZXNfYWN0aXZlID09IDEgJiYgY29uZmlnLT5zcHJpdGVzX2VuYWJsZWQpIHsKLQkJaWxrX2NvbXB1 dGVfd21fbWF4aW11bXMoZGV2LCAxLCBjb25maWcsIElOVEVMX0REQl9QQVJUXzVfNiwgJm1heCk7 Ci0JCWlsa193bV9tZXJnZShkZXYsIGNvbmZpZywgJm1heCwgJmxwX3dtXzVfNik7CisJICAgIGNv bmZpZy5udW1fcGlwZXNfYWN0aXZlID09IDEgJiYgY29uZmlnLnNwcml0ZXNfZW5hYmxlZCkgewor CQlpbGtfY29tcHV0ZV93bV9tYXhpbXVtcyhkZXYsIDEsICZjb25maWcsIElOVEVMX0REQl9QQVJU XzVfNiwgJm1heCk7CisJCWlsa193bV9tZXJnZShkZXYsICZjb25maWcsICZtYXgsICZscF93bV81 XzYpOwogCiAJCWJlc3RfbHBfd20gPSBpbGtfZmluZF9iZXN0X3Jlc3VsdChkZXYsICZscF93bV8x XzIsICZscF93bV81XzYpOwogCX0gZWxzZSB7CkBAIC0zNjczLDMxICszNzMxLDYgQEAgc3RhdGlj IHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJaWxrX3dyaXRlX3dtX3ZhbHVlcyhkZXZfcHJpdiwgJnJlc3VsdHMpOwogfQogCi1z dGF0aWMgdm9pZCBpbGtfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKLXsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0 YXRlKTsKLQotCVdBUk5fT04oY3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBpbnRlbF9jcnRjLT5hY3Rp dmUpOwotCi0JLyoKLQkgKiBJVkIgd29ya2Fyb3VuZDogbXVzdCBkaXNhYmxlIGxvdyBwb3dlciB3 YXRlcm1hcmtzIGZvciBhdCBsZWFzdAotCSAqIG9uZSBmcmFtZSBiZWZvcmUgZW5hYmxpbmcgc2Nh bGluZy4gIExQIHdhdGVybWFya3MgY2FuIGJlIHJlLWVuYWJsZWQKLQkgKiB3aGVuIHNjYWxpbmcg aXMgZGlzYWJsZWQuCi0JICoKLQkgKiBXYUN4U1JEaXNhYmxlZEZvclNwcml0ZVNjYWxpbmc6aXZi Ci0JICovCi0JaWYgKGNzdGF0ZS0+ZGlzYWJsZV9scF93bSkgewotCQlpbGtfZGlzYWJsZV9scF93 bShjcnRjLT5kZXYpOwotCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoY3J0Yy0+ZGV2LCBpbnRlbF9j cnRjLT5waXBlKTsKLQl9Ci0KLQlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53 bS5vcHRpbWFsLmlsazsKLQotCWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwotfQot CiBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodWludDMyX3QgdmFsLAogCQkJ CSAgICAgc3RydWN0IHNrbF9waXBlX3dtICphY3RpdmUsCiAJCQkJICAgICBib29sIGlzX3RyYW5z d20sCkBAIC0zNzQ4LDggKzM3ODEsNyBAQCBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9nZXRfaHdf c3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHNrbF93bV92YWx1ZXMgKmh3ID0g JmRldl9wcml2LT53bS5za2xfaHc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0 b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQlzdHJ1Y3Qgc2tsX3BpcGVfd20gKmFj dGl2ZSA9ICZjc3RhdGUtPndtLm9wdGltYWwuc2tsOworCXN0cnVjdCBza2xfcGlwZV93bSAqYWN0 aXZlID0gJmludGVsX2NydGMtPndtLnNrbF9hY3RpdmU7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwogCWludCBsZXZlbCwgaSwgbWF4X2xldmVsOwogCXVpbnQzMl90IHRlbXA7 CkBAIC0zNzkzLDggKzM4MjUsNiBAQCBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9nZXRfaHdfc3Rh dGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJdGVtcCA9IGh3LT5wbGFuZV90cmFuc1twaXBl XVtQTEFORV9DVVJTT1JdOwogCXNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh0ZW1wLCBhY3RpdmUs IHRydWUsIHRydWUsIGksIDApOwotCi0JaW50ZWxfY3J0Yy0+d20uYWN0aXZlLnNrbCA9ICphY3Rp dmU7CiB9CiAKIHZvaWQgc2tsX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQpAQCAtMzgxNCw4ICszODQ0LDcgQEAgc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbGtfd21fdmFsdWVzICpodyA9ICZk ZXZfcHJpdi0+d20uaHc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYWN0aXZl ID0gJmNzdGF0ZS0+d20ub3B0aW1hbC5pbGs7CisJc3RydWN0IGludGVsX3BpcGVfd20gKmFjdGl2 ZSA9ICZpbnRlbF9jcnRjLT53bS5hY3RpdmU7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwogCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgd20wX3BpcGVfcmVnW10gPSB7CiAJ CVtQSVBFX0FdID0gV00wX1BJUEVBX0lMSywKQEAgLTM4NTQsOCArMzg4Myw2IEBAIHN0YXRpYyB2 b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWZv ciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspCiAJCQlhY3RpdmUtPndt W2xldmVsXS5lbmFibGUgPSB0cnVlOwogCX0KLQotCWludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsg PSAqYWN0aXZlOwogfQogCiAjZGVmaW5lIF9GV19XTSh2YWx1ZSwgcGxhbmUpIFwKQEAgLTcwMTUs NyArNzA0Miw2IEBAIHZvaWQgaW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkgICAgKCFJU19HRU41KGRldikgJiYgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzBdICYmCiAJ CSAgICAgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5WzBdICYmIGRldl9wcml2LT53bS5jdXJfbGF0 ZW5jeVswXSkpIHsKIAkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGlsa191cGRhdGVf d207Ci0JCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20gPSBpbGtfY29tcHV0ZV9w aXBlX3dtOwogCQl9IGVsc2UgewogCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlz cGxheSBwbGFuZSBsYXRlbmN5LiAiCiAJCQkJICAgICAgIkRpc2FibGUgQ3hTUlxuIik7Ci0tIAoy LjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK