From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/9] drm/i915: Convert flip_work to a list, v2. Date: Thu, 26 May 2016 12:37:58 +0200 Message-ID: <1464259085-13604-3-git-send-email-maarten.lankhorst@linux.intel.com> References: <1464259085-13604-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0BB146EA90 for ; Thu, 26 May 2016 10:38:10 +0000 (UTC) In-Reply-To: <1464259085-13604-1-git-send-email-maarten.lankhorst@linux.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 List-Id: intel-gfx@lists.freedesktop.org VGhpcyB3aWxsIGJlIHJlcXVpcmVkIHRvIGFsbG93IG1vcmUgdGhhbiAxIG91dHN0YW5kaW5nCnVw ZGF0ZSBpbiB0aGUgZnV0dXJlLiBGb3Igbm93IGl0J3MgdW5jbGVhciBob3cgdGhpcyB3aWxsCndp bGwgYmUgaGFuZGxlZCwgYnV0IHdpdGggYSBsaXN0IGl0J3MgZGVmaW5pdGVseSBwb3NzaWJsZS4K CkNoYW5nZXMgc2luY2UgdjE6Ci0gQ2hhbmdlZCB0byBwcmV2ZW50IGJyZWFraW5nIHdpdGggdGhl IGxlZ2FjeSBjdXJzb3IgdXBkYXRlIGNoYW5nZXMuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICA5MCArKysrKysrKysrKy0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxNTYgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgNCAr LQogNCBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgMTAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggYWM3ZTU2OTI0OTZkLi5jY2VkNTI3 YWYxMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC02MjEsNiArNjIxLDUz IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fZ3R0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICpkYXRhKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBpOTE1X2R1bXBfcGFnZWZsaXAo c3RydWN0IHNlcV9maWxlICptLAorCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSAgICAgICBz dHJ1Y3QgaW50ZWxfZmxpcF93b3JrICp3b3JrKQoreworCWNvbnN0IGNoYXIgcGlwZSA9IHBpcGVf bmFtZShjcnRjLT5waXBlKTsKKwljb25zdCBjaGFyIHBsYW5lID0gcGxhbmVfbmFtZShjcnRjLT5w bGFuZSk7CisJdTMyIHBlbmRpbmc7CisJdTMyIGFkZHI7CisKKwlwZW5kaW5nID0gYXRvbWljX3Jl YWQoJndvcmstPnBlbmRpbmcpOworCWlmIChwZW5kaW5nKSB7CisJCXNlcV9wcmludGYobSwgIkZs aXAgaW9jdGwgcHJlcGFyaW5nIG9uIHBpcGUgJWMgKHBsYW5lICVjKVxuIiwKKwkJCSAgIHBpcGUs IHBsYW5lKTsKKwl9IGVsc2UgeworCQlzZXFfcHJpbnRmKG0sICJGbGlwIHBlbmRpbmcgKHdhaXRp bmcgZm9yIHZzeW5jKSBvbiBwaXBlICVjIChwbGFuZSAlYylcbiIsCisJCQkgICBwaXBlLCBwbGFu ZSk7CisJfQorCWlmICh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpIHsKKwkJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKHdvcmstPmZsaXBf cXVldWVkX3JlcSk7CisKKwkJc2VxX3ByaW50ZihtLCAiRmxpcCBxdWV1ZWQgb24gJXMgYXQgc2Vx bm8gJXgsIG5leHQgc2Vxbm8gJXggW2N1cnJlbnQgYnJlYWRjcnVtYiAleF0sIGNvbXBsZXRlZD8g JWRcbiIsCisJCQkgICBlbmdpbmUtPm5hbWUsCisJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9z ZXFubyh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpLAorCQkJICAgZGV2X3ByaXYtPm5leHRfc2Vxbm8s CisJCQkgICBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpLAorCQkJICAgaTkxNV9nZW1fcmVxdWVz dF9jb21wbGV0ZWQod29yay0+ZmxpcF9xdWV1ZWRfcmVxLCB0cnVlKSk7CisJfSBlbHNlCisJCXNl cV9wcmludGYobSwgIkZsaXAgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgcmluZ1xuIik7CisJc2Vx X3ByaW50ZihtLCAiRmxpcCBxdWV1ZWQgb24gZnJhbWUgJWQsICh3YXMgcmVhZHkgb24gZnJhbWUg JWQpLCBub3cgJWRcbiIsCisJCSAgIHdvcmstPmZsaXBfcXVldWVkX3ZibGFuaywKKwkJICAgd29y ay0+ZmxpcF9yZWFkeV92YmxhbmssCisJCSAgIGludGVsX2NydGNfZ2V0X3ZibGFua19jb3VudGVy KGNydGMpKTsKKwlzZXFfcHJpbnRmKG0sICIlZCBwcmVwYXJlc1xuIiwgYXRvbWljX3JlYWQoJndv cmstPnBlbmRpbmcpKTsKKworCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDQpCisJ CWFkZHIgPSBJOTE1X0hJX0RJU1BCQVNFKEk5MTVfUkVBRChEU1BTVVJGKGNydGMtPnBsYW5lKSkp OworCWVsc2UKKwkJYWRkciA9IEk5MTVfUkVBRChEU1BBRERSKGNydGMtPnBsYW5lKSk7CisJc2Vx X3ByaW50ZihtLCAiQ3VycmVudCBzY2Fub3V0IGFkZHJlc3MgMHglMDh4XG4iLCBhZGRyKTsKKwor CWlmICh3b3JrLT5wZW5kaW5nX2ZsaXBfb2JqKSB7CisJCXNlcV9wcmludGYobSwgIk5ldyBmcmFt ZWJ1ZmZlciBhZGRyZXNzIDB4JTA4bHhcbiIsIChsb25nKXdvcmstPmd0dF9vZmZzZXQpOworCQlz ZXFfcHJpbnRmKG0sICJNTUlPIHVwZGF0ZSBjb21wbGV0ZWQ/ICVkXG4iLCAgYWRkciA9PSB3b3Jr LT5ndHRfb2Zmc2V0KTsKKwl9Cit9CisKIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGRybV9pbmZvX25v ZGUgKm5vZGUgPSBtLT5wcml2YXRlOwpAQCAtNjM5LDQ4ICs2ODYsMTMgQEAgc3RhdGljIGludCBp OTE1X2dlbV9wYWdlZmxpcF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkJ c3RydWN0IGludGVsX2ZsaXBfd29yayAqd29yazsKIAogCQlzcGluX2xvY2tfaXJxKCZkZXYtPmV2 ZW50X2xvY2spOwotCQl3b3JrID0gY3J0Yy0+ZmxpcF93b3JrOwotCQlpZiAod29yayA9PSBOVUxM KSB7CisJCWlmIChsaXN0X2VtcHR5KCZjcnRjLT5mbGlwX3dvcmspKSB7CiAJCQlzZXFfcHJpbnRm KG0sICJObyBmbGlwIGR1ZSBvbiBwaXBlICVjIChwbGFuZSAlYylcbiIsCiAJCQkJICAgcGlwZSwg cGxhbmUpOwogCQl9IGVsc2UgewotCQkJdTMyIHBlbmRpbmc7Ci0JCQl1MzIgYWRkcjsKLQotCQkJ cGVuZGluZyA9IGF0b21pY19yZWFkKCZ3b3JrLT5wZW5kaW5nKTsKLQkJCWlmIChwZW5kaW5nKSB7 Ci0JCQkJc2VxX3ByaW50ZihtLCAiRmxpcCBpb2N0bCBwcmVwYXJpbmcgb24gcGlwZSAlYyAocGxh bmUgJWMpXG4iLAotCQkJCQkgICBwaXBlLCBwbGFuZSk7Ci0JCQl9IGVsc2UgewotCQkJCXNlcV9w cmludGYobSwgIkZsaXAgcGVuZGluZyAod2FpdGluZyBmb3IgdnN5bmMpIG9uIHBpcGUgJWMgKHBs YW5lICVjKVxuIiwKLQkJCQkJICAgcGlwZSwgcGxhbmUpOwotCQkJfQotCQkJaWYgKHdvcmstPmZs aXBfcXVldWVkX3JlcSkgewotCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZSh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpOwotCi0JCQkJ c2VxX3ByaW50ZihtLCAiRmxpcCBxdWV1ZWQgb24gJXMgYXQgc2Vxbm8gJXgsIG5leHQgc2Vxbm8g JXggW2N1cnJlbnQgYnJlYWRjcnVtYiAleF0sIGNvbXBsZXRlZD8gJWRcbiIsCi0JCQkJCSAgIGVu Z2luZS0+bmFtZSwKLQkJCQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8od29yay0+Zmxp cF9xdWV1ZWRfcmVxKSwKLQkJCQkJICAgZGV2X3ByaXYtPm5leHRfc2Vxbm8sCi0JCQkJCSAgIGVu Z2luZS0+Z2V0X3NlcW5vKGVuZ2luZSksCi0JCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHdvcmstPmZsaXBfcXVldWVkX3JlcSwgdHJ1ZSkpOwotCQkJfSBlbHNlCi0JCQkJc2VxX3By aW50ZihtLCAiRmxpcCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSByaW5nXG4iKTsKLQkJCXNlcV9w cmludGYobSwgIkZsaXAgcXVldWVkIG9uIGZyYW1lICVkLCAod2FzIHJlYWR5IG9uIGZyYW1lICVk KSwgbm93ICVkXG4iLAotCQkJCSAgIHdvcmstPmZsaXBfcXVldWVkX3ZibGFuaywKLQkJCQkgICB3 b3JrLT5mbGlwX3JlYWR5X3ZibGFuaywKLQkJCQkgICBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291 bnRlcihjcnRjKSk7Ci0JCQlzZXFfcHJpbnRmKG0sICIlZCBwcmVwYXJlc1xuIiwgYXRvbWljX3Jl YWQoJndvcmstPnBlbmRpbmcpKTsKLQotCQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQp Ci0JCQkJYWRkciA9IEk5MTVfSElfRElTUEJBU0UoSTkxNV9SRUFEKERTUFNVUkYoY3J0Yy0+cGxh bmUpKSk7Ci0JCQllbHNlCi0JCQkJYWRkciA9IEk5MTVfUkVBRChEU1BBRERSKGNydGMtPnBsYW5l KSk7Ci0JCQlzZXFfcHJpbnRmKG0sICJDdXJyZW50IHNjYW5vdXQgYWRkcmVzcyAweCUwOHhcbiIs IGFkZHIpOwotCi0JCQlpZiAod29yay0+cGVuZGluZ19mbGlwX29iaikgewotCQkJCXNlcV9wcmlu dGYobSwgIk5ldyBmcmFtZWJ1ZmZlciBhZGRyZXNzIDB4JTA4bHhcbiIsIChsb25nKXdvcmstPmd0 dF9vZmZzZXQpOwotCQkJCXNlcV9wcmludGYobSwgIk1NSU8gdXBkYXRlIGNvbXBsZXRlZD8gJWRc biIsICBhZGRyID09IHdvcmstPmd0dF9vZmZzZXQpOworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh3 b3JrLCAmY3J0Yy0+ZmxpcF93b3JrLCBoZWFkKSB7CisJCQkJaTkxNV9kdW1wX3BhZ2VmbGlwKG0s IGRldl9wcml2LCBjcnRjLCB3b3JrKTsKKwkJCQlzZXFfcHV0cyhtLCAiXG4iKTsKIAkJCX0KIAkJ fQogCQlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCBlNGM4ZTM0MTY1NWMuLmNlMWQzNjhlNGU1MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC02MjIsNyArNjIyLDcgQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVuY3Mg ewogCQkJICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCSAgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Ci0JCQkgIHVpbnQzMl90IGZsYWdzKTsKKwkJCSAgdWludDY0X3QgZ3R0X29mZnNldCk7CiAJdm9p ZCAoKmhwZF9pcnFfc2V0dXApKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAJ LyogY2xvY2sgdXBkYXRlcyBmb3IgbW9kZSBzZXQgKi8KIAkvKiBjdXJzb3IgdXBkYXRlcyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGFlODAzNmI1ZmU3Yy4uZmZkOWI1 NTVkMjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zMjE0LDE3ICsz MjE0LDEyIEBAIHN0YXRpYyBib29sIGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxpcChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdW5z aWduZWQgcmVzZXRfY291bnRlcjsKLQlib29sIHBlbmRpbmc7CiAKIAlyZXNldF9jb3VudGVyID0g aTkxNV9yZXNldF9jb3VudGVyKCZ0b19pOTE1KGRldiktPmdwdV9lcnJvcik7CiAJaWYgKGludGVs X2NydGMtPnJlc2V0X2NvdW50ZXIgIT0gcmVzZXRfY291bnRlcikKIAkJcmV0dXJuIGZhbHNlOwog Ci0Jc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKLQlwZW5kaW5nID0gdG9faW50ZWxf Y3J0YyhjcnRjKS0+ZmxpcF93b3JrICE9IE5VTEw7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2 ZW50X2xvY2spOwotCi0JcmV0dXJuIHBlbmRpbmc7CisJcmV0dXJuICFsaXN0X2VtcHR5X2NhcmVm dWwoJnRvX2ludGVsX2NydGMoY3J0YyktPmZsaXBfd29yayk7CiB9CiAKIHN0YXRpYyB2b2lkIGlu dGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKQEAgLTM4MDAs NyArMzc5NSw3IEBAIGJvb2wgaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5waW4oc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkJaWYgKGF0b21pY19yZWFkKCZjcnRjLT51bnBpbl93b3JrX2NvdW50KSA9 PSAwKQogCQkJY29udGludWU7CiAKLQkJaWYgKGNydGMtPmZsaXBfd29yaykKKwkJaWYgKCFsaXN0 X2VtcHR5X2NhcmVmdWwoJmNydGMtPmZsaXBfd29yaykpCiAJCQlpbnRlbF93YWl0X2Zvcl92Ymxh bmsoZGV2LCBjcnRjLT5waXBlKTsKIAogCQlyZXR1cm4gdHJ1ZTsKQEAgLTM4MDksMTIgKzM4MDQs MTEgQEAgYm9vbCBpbnRlbF9oYXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgcGFnZV9mbGlwX2NvbXBsZXRl ZChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKK3N0YXRpYyB2b2lkIHBhZ2VfZmxpcF9j b21wbGV0ZWQoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIHN0cnVjdCBpbnRlbF9mbGlw X3dvcmsgKndvcmspCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2ZsaXBfd29yayAqd29y ayA9IGludGVsX2NydGMtPmZsaXBfd29yazsKIAotCWludGVsX2NydGMtPmZsaXBfd29yayA9IE5V TEw7CisJbGlzdF9kZWxfaW5pdCgmd29yay0+aGVhZCk7CiAKIAlpZiAod29yay0+ZXZlbnQpCiAJ CWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KCZpbnRlbF9jcnRjLT5iYXNlLCB3b3JrLT5ldmVu dCk7CkBAIC0zODQ5LDEwICszODQzLDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y193YWl0X2Zv cl9wZW5kaW5nX2ZsaXBzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJc3RydWN0IGludGVsX2Zs aXBfd29yayAqd29yazsKIAogCQlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwotCQl3 b3JrID0gaW50ZWxfY3J0Yy0+ZmxpcF93b3JrOworCisJCS8qCisJCSAqIElmIHdlJ3JlIHdhaXRp bmcgZm9yIHBhZ2UgZmxpcHMsIGl0J3MgdGhlIGZpcnN0CisJCSAqIGZsaXAgb24gdGhlIGxpc3Qg dGhhdCdzIHN0dWNrLgorCQkgKi8KKwkJd29yayA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgm aW50ZWxfY3J0Yy0+ZmxpcF93b3JrLAorCQkJCQkJc3RydWN0IGludGVsX2ZsaXBfd29yaywgaGVh ZCk7CiAJCWlmICh3b3JrICYmICFpc19tbWlvX3dvcmsod29yaykpIHsKIAkJCVdBUk5fT05DRSgx LCAiUmVtb3Zpbmcgc3R1Y2sgcGFnZSBmbGlwXG4iKTsKLQkJCXBhZ2VfZmxpcF9jb21wbGV0ZWQo aW50ZWxfY3J0Yyk7CisJCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2NydGMsIHdvcmspOwog CQl9CiAJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAl9CkBAIC02MjczLDcg KzYyNzMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogCQlyZXR1cm47CiAKIAlpZiAodG9faW50ZWxfcGxhbmVfc3RhdGUo Y3J0Yy0+cHJpbWFyeS0+c3RhdGUpLT52aXNpYmxlKSB7Ci0JCVdBUk5fT04oaW50ZWxfY3J0Yy0+ ZmxpcF93b3JrKTsKKwkJV0FSTl9PTihsaXN0X2VtcHR5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmsp KTsKIAogCQlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5X25vYXRvbWljKGNydGMpOwogCkBAIC0x MDkzNSwxNSArMTA5MzUsMTkgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kZXN0cm95KHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICp3b3JrOwogCiAJc3Bp bl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKLQl3b3JrID0gaW50ZWxfY3J0Yy0+ZmxpcF93 b3JrOwotCWludGVsX2NydGMtPmZsaXBfd29yayA9IE5VTEw7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZk ZXYtPmV2ZW50X2xvY2spOworCXdoaWxlICghbGlzdF9lbXB0eSgmaW50ZWxfY3J0Yy0+ZmxpcF93 b3JrKSkgeworCQl3b3JrID0gbGlzdF9maXJzdF9lbnRyeSgmaW50ZWxfY3J0Yy0+ZmxpcF93b3Jr LAorCQkJCQlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrLCBoZWFkKTsKKwkJbGlzdF9kZWxfaW5pdCgm d29yay0+aGVhZCk7CisJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAotCWlm ICh3b3JrKSB7CiAJCWNhbmNlbF93b3JrX3N5bmMoJndvcmstPm1taW9fd29yayk7CiAJCWNhbmNl bF93b3JrX3N5bmMoJndvcmstPnVucGluX3dvcmspOwogCQlrZnJlZSh3b3JrKTsKKworCQlzcGlu X2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCX0KKwlzcGluX3VubG9ja19pcnEoJmRldi0+ ZXZlbnRfbG9jayk7CiAKIAlkcm1fY3J0Y19jbGVhbnVwKGNydGMpOwogCkBAIC0xMTAzMSw5ICsx MTAzNSw5IEBAIHN0YXRpYyBib29sIF9fcGFnZWZsaXBfZmluaXNoZWRfY3Moc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJICogYW55d2F5LCB3ZSBkb24ndCByZWFsbHkgY2FyZS4KIAkgKi8KIAly ZXR1cm4gKEk5MTVfUkVBRChEU1BTVVJGTElWRShjcnRjLT5wbGFuZSkpICYgfjB4ZmZmKSA9PQot CQljcnRjLT5mbGlwX3dvcmstPmd0dF9vZmZzZXQgJiYKKwkJd29yay0+Z3R0X29mZnNldCAmJgog CQlnNHhfZmxpcF9jb3VudF9hZnRlcl9lcShJOTE1X1JFQUQoUElQRV9GTElQQ09VTlRfRzRYKGNy dGMtPnBpcGUpKSwKLQkJCQkgICAgY3J0Yy0+ZmxpcF93b3JrLT5mbGlwX2NvdW50KTsKKwkJCQkJ d29yay0+ZmxpcF9jb3VudCk7CiB9CiAKIHN0YXRpYyBib29sCkBAIC0xMTA4MywxMyArMTEwODcs MTkgQEAgdm9pZCBpbnRlbF9maW5pc2hfcGFnZV9mbGlwX2NzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgaW50IHBpcGUpCiAJICogbG9zdCBwYWdlZmxpcHMpIHNvIG5lZWRzIHRo ZSBmdWxsIGlycXNhdmUgc3BpbmxvY2tzLgogCSAqLwogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYt PmV2ZW50X2xvY2ssIGZsYWdzKTsKLQl3b3JrID0gaW50ZWxfY3J0Yy0+ZmxpcF93b3JrOworCXdo aWxlICghbGlzdF9lbXB0eSgmaW50ZWxfY3J0Yy0+ZmxpcF93b3JrKSkgeworCQl3b3JrID0gbGlz dF9maXJzdF9lbnRyeSgmaW50ZWxfY3J0Yy0+ZmxpcF93b3JrLAorCQkJCQlzdHJ1Y3QgaW50ZWxf ZmxpcF93b3JrLAorCQkJCQloZWFkKTsKKworCQlpZiAoaXNfbW1pb193b3JrKHdvcmspKQorCQkJ YnJlYWs7CiAKLQlpZiAod29yayAhPSBOVUxMICYmCi0JICAgICFpc19tbWlvX3dvcmsod29yaykg JiYKLQkgICAgcGFnZWZsaXBfZmluaXNoZWQoaW50ZWxfY3J0Yywgd29yaykpCi0JCXBhZ2VfZmxp cF9jb21wbGV0ZWQoaW50ZWxfY3J0Yyk7CisJCWlmICghcGFnZWZsaXBfZmluaXNoZWQoaW50ZWxf Y3J0Yywgd29yaykpCisJCQlicmVhazsKIAorCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2Ny dGMsIHdvcmspOworCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ss IGZsYWdzKTsKIH0KIApAQCAtMTExMTAsMTMgKzExMTIwLDE5IEBAIHZvaWQgaW50ZWxfZmluaXNo X3BhZ2VfZmxpcF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHBp cGUpCiAJICogbG9zdCBwYWdlZmxpcHMpIHNvIG5lZWRzIHRoZSBmdWxsIGlycXNhdmUgc3Bpbmxv Y2tzLgogCSAqLwogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsK LQl3b3JrID0gaW50ZWxfY3J0Yy0+ZmxpcF93b3JrOworCXdoaWxlICghbGlzdF9lbXB0eSgmaW50 ZWxfY3J0Yy0+ZmxpcF93b3JrKSkgeworCQl3b3JrID0gbGlzdF9maXJzdF9lbnRyeSgmaW50ZWxf Y3J0Yy0+ZmxpcF93b3JrLAorCQkJCQlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrLAorCQkJCQloZWFk KTsKIAotCWlmICh3b3JrICE9IE5VTEwgJiYKLQkgICAgaXNfbW1pb193b3JrKHdvcmspICYmCi0J ICAgIHBhZ2VmbGlwX2ZpbmlzaGVkKGludGVsX2NydGMsIHdvcmspKQotCQlwYWdlX2ZsaXBfY29t cGxldGVkKGludGVsX2NydGMpOworCQlpZiAoIWlzX21taW9fd29yayh3b3JrKSkKKwkJCWJyZWFr OwogCisJCWlmICghcGFnZWZsaXBfZmluaXNoZWQoaW50ZWxfY3J0Yywgd29yaykpCisJCQlicmVh azsKKworCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2NydGMsIHdvcmspOworCX0KIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIH0KIApAQCAtMTEx MzUsNyArMTExNTEsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCQkg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCi0JCQkJIHVpbnQzMl90IGZsYWdzKQorCQkJCSB1aW50NjRfdCBndHRf b2Zmc2V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5l OwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK QEAgLTExMTU4LDcgKzExMTc0LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW4yX3F1ZXVlX2ZsaXAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9ESVNQ TEFZX0ZMSVAgfAogCQkJTUlfRElTUExBWV9GTElQX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKSk7 CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZmItPnBpdGNoZXNbMF0pOwotCWludGVsX3Jpbmdf ZW1pdChlbmdpbmUsIGludGVsX2NydGMtPmZsaXBfd29yay0+Z3R0X29mZnNldCk7CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwgZ3R0X29mZnNldCk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg MCk7IC8qIGF1eCBkaXNwbGF5IGJhc2UgYWRkcmVzcywgdW51c2VkICovCiAKIAlyZXR1cm4gMDsK QEAgLTExMTY5LDcgKzExMTg1LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW4zX3F1ZXVlX2ZsaXAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs CiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAotCQkJCSB1aW50MzJfdCBmbGFncykKKwkJCQkgdWludDY0 X3QgZ3R0X29mZnNldCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEt PmVuZ2luZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7CkBAIC0xMTE4OSw3ICsxMTIwNSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuM19xdWV1 ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg TUlfRElTUExBWV9GTElQX0k5MTUgfAogCQkJTUlfRElTUExBWV9GTElQX1BMQU5FKGludGVsX2Ny dGMtPnBsYW5lKSk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZmItPnBpdGNoZXNbMF0pOwot CWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGludGVsX2NydGMtPmZsaXBfd29yay0+Z3R0X29mZnNl dCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZ3R0X29mZnNldCk7CiAJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgTUlfTk9PUCk7CiAKIAlyZXR1cm4gMDsKQEAgLTExMjAwLDcgKzExMjE2LDcg QEAgc3RhdGljIGludCBpbnRlbF9nZW40X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkJIHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAotCQkJCSB1aW50MzJfdCBmbGFncykKKwkJCQkgdWludDY0X3QgZ3R0X29mZnNldCkKIHsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMTEyMTksOCAr MTEyMzUsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjRfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX0RJU1BMQVlfRkxJUCB8CiAJ CQlNSV9ESVNQTEFZX0ZMSVBfUExBTkUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsKIAlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBmYi0+cGl0Y2hlc1swXSk7Ci0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg aW50ZWxfY3J0Yy0+ZmxpcF93b3JrLT5ndHRfb2Zmc2V0IHwKLQkJCW9iai0+dGlsaW5nX21vZGUp OworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGd0dF9vZmZzZXQgfCBvYmotPnRpbGluZ19tb2Rl KTsKIAogCS8qIFhYWCBFbmFibGluZyB0aGUgcGFuZWwtZml0dGVyIGFjcm9zcyBwYWdlLWZsaXAg aXMgc28gZmFyCiAJICogdW50ZXN0ZWQgb24gbm9uLW5hdGl2ZSBtb2Rlcywgc28gaWdub3JlIGl0 IGZvciBub3cuCkBAIC0xMTIzOCw3ICsxMTI1Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9x dWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJCQkgdWludDMyX3QgZmxhZ3MpCisJ CQkJIHVpbnQ2NF90IGd0dF9vZmZzZXQpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gcmVxLT5lbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTExMjUzLDcgKzExMjY4LDcgQEAgc3RhdGljIGludCBpbnRl bF9nZW42X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLCBNSV9ESVNQTEFZX0ZMSVAgfAogCQkJTUlfRElTUExBWV9GTElQX1BMQU5FKGlu dGVsX2NydGMtPnBsYW5lKSk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZmItPnBpdGNoZXNb MF0gfCBvYmotPnRpbGluZ19tb2RlKTsKLQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBpbnRlbF9j cnRjLT5mbGlwX3dvcmstPmd0dF9vZmZzZXQpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGd0 dF9vZmZzZXQpOwogCiAJLyogQ29udHJhcnkgdG8gdGhlIHN1Z2dlc3Rpb25zIGluIHRoZSBkb2N1 bWVudGF0aW9uLAogCSAqICJFbmFibGUgUGFuZWwgRml0dGVyIiBkb2VzIG5vdCBzZWVtIHRvIGJl IHJlcXVpcmVkIHdoZW4gcGFnZQpAQCAtMTEyNzMsNyArMTEyODgsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCi0JCQkJIHVpbnQzMl90 IGZsYWdzKQorCQkJCSB1aW50NjRfdCBndHRfb2Zmc2V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5lOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTExMzU2LDcgKzExMzcxLDcgQEAgc3RhdGlj IGludCBpbnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWlu dGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX0RJU1BMQVlfRkxJUF9JOTE1IHwgcGxhbmVfYml0KTsK IAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCAoZmItPnBpdGNoZXNbMF0gfCBvYmotPnRpbGluZ19t b2RlKSk7Ci0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgaW50ZWxfY3J0Yy0+ZmxpcF93b3JrLT5n dHRfb2Zmc2V0KTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBndHRfb2Zmc2V0KTsKIAlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLCAoTUlfTk9PUCkpOwogCiAJcmV0dXJuIDA7CkBAIC0xMTQyMyw3 ICsxMTQzOCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZGVmYXVsdF9xdWV1ZV9mbGlwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJ CSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJCQkgICAgdWludDMyX3QgZmxhZ3MpCisJCQkJICAg IHVpbnQ2NF90IGd0dF9vZmZzZXQpCiB7CiAJcmV0dXJuIC1FTk9ERVY7CiB9CkBAIC0xMTQ3OCwy MCArMTE0OTMsMjYgQEAgdm9pZCBpbnRlbF9jaGVja19wYWdlX2ZsaXAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgcGlwZSkKIAkJcmV0dXJuOwogCiAJc3Bpbl9sb2NrKCZk ZXYtPmV2ZW50X2xvY2spOwotCXdvcmsgPSBpbnRlbF9jcnRjLT5mbGlwX3dvcms7CisJd2hpbGUg KCFsaXN0X2VtcHR5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmspKSB7CisJCXdvcmsgPSBsaXN0X2Zp cnN0X2VudHJ5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmssCisJCQkJCXN0cnVjdCBpbnRlbF9mbGlw X3dvcmssIGhlYWQpOwogCi0JaWYgKHdvcmsgIT0gTlVMTCAmJiAhaXNfbW1pb193b3JrKHdvcmsp ICYmCi0JICAgIF9fcGFnZWZsaXBfc3RhbGxfY2hlY2tfY3MoZGV2X3ByaXYsIGludGVsX2NydGMs IHdvcmspKSB7Ci0JCVdBUk5fT05DRSgxLAotCQkJICAiS2lja2luZyBzdHVjayBwYWdlIGZsaXA6 IHF1ZXVlZCBhdCAlZCwgbm93ICVkXG4iLAotCQkJd29yay0+ZmxpcF9xdWV1ZWRfdmJsYW5rLCBp bnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihpbnRlbF9jcnRjKSk7Ci0JCXBhZ2VfZmxpcF9j b21wbGV0ZWQoaW50ZWxfY3J0Yyk7Ci0JCXdvcmsgPSBOVUxMOwotCX0KKwkJaWYgKGlzX21taW9f d29yayh3b3JrKSkKKwkJCWJyZWFrOworCisJCWlmIChfX3BhZ2VmbGlwX3N0YWxsX2NoZWNrX2Nz KGRldl9wcml2LCBpbnRlbF9jcnRjLCB3b3JrKSkgeworCQkJV0FSTl9PTkNFKDEsCisJCQkJICAi S2lja2luZyBzdHVjayBwYWdlIGZsaXA6IHF1ZXVlZCBhdCAlZCwgbm93ICVkXG4iLAorCQkJCXdv cmstPmZsaXBfcXVldWVkX3ZibGFuaywgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoaW50 ZWxfY3J0YykpOworCQkJcGFnZV9mbGlwX2NvbXBsZXRlZChpbnRlbF9jcnRjLCB3b3JrKTsKKwkJ CWNvbnRpbnVlOworCQl9CiAKLQlpZiAod29yayAhPSBOVUxMICYmICFpc19tbWlvX3dvcmsod29y aykgJiYKLQkgICAgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoaW50ZWxfY3J0YykgLSB3 b3JrLT5mbGlwX3F1ZXVlZF92YmxhbmsgPiAxKQotCQlpbnRlbF9xdWV1ZV9ycHNfYm9vc3RfZm9y X3JlcXVlc3Qod29yay0+ZmxpcF9xdWV1ZWRfcmVxKTsKKwkJaWYgKGludGVsX2NydGNfZ2V0X3Zi bGFua19jb3VudGVyKGludGVsX2NydGMpIC0gd29yay0+ZmxpcF9xdWV1ZWRfdmJsYW5rID4gMSkK KwkJCWludGVsX3F1ZXVlX3Jwc19ib29zdF9mb3JfcmVxdWVzdCh3b3JrLT5mbGlwX3F1ZXVlZF9y ZXEpOworCisJCWJyZWFrOworCX0KIAlzcGluX3VubG9jaygmZGV2LT5ldmVudF9sb2NrKTsKIH0K IApAQCAtMTE1NTQsMTMgKzExNTc1LDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2Zs aXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJLyogV2UgYm9ycm93IHRoZSBldmVudCBzcGlu IGxvY2sgZm9yIHByb3RlY3RpbmcgZmxpcF93b3JrICovCiAJc3Bpbl9sb2NrX2lycSgmZGV2LT5l dmVudF9sb2NrKTsKLQlpZiAoaW50ZWxfY3J0Yy0+ZmxpcF93b3JrKSB7CisJaWYgKCFsaXN0X2Vt cHR5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmspKSB7CisJCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsg Km9sZF93b3JrOworCisJCW9sZF93b3JrID0gbGlzdF9sYXN0X2VudHJ5KCZpbnRlbF9jcnRjLT5m bGlwX3dvcmssCisJCQkJCSAgIHN0cnVjdCBpbnRlbF9mbGlwX3dvcmssIGhlYWQpOworCiAJCS8q IEJlZm9yZSBkZWNsYXJpbmcgdGhlIGZsaXAgcXVldWUgd2VkZ2VkLCBjaGVjayBpZgogCQkgKiB0 aGUgaGFyZHdhcmUgY29tcGxldGVkIHRoZSBvcGVyYXRpb24gYmVoaW5kIG91ciBiYWNrcy4KIAkJ ICovCi0JCWlmIChwYWdlZmxpcF9maW5pc2hlZChpbnRlbF9jcnRjLCBpbnRlbF9jcnRjLT5mbGlw X3dvcmspKSB7CisJCWlmIChwYWdlZmxpcF9maW5pc2hlZChpbnRlbF9jcnRjLCBvbGRfd29yaykp IHsKIAkJCURSTV9ERUJVR19EUklWRVIoImZsaXAgcXVldWU6IHByZXZpb3VzIGZsaXAgY29tcGxl dGVkLCBjb250aW51aW5nXG4iKTsKLQkJCXBhZ2VfZmxpcF9jb21wbGV0ZWQoaW50ZWxfY3J0Yyk7 CisJCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2NydGMsIG9sZF93b3JrKTsKIAkJfSBlbHNl IHsKIAkJCURSTV9ERUJVR19EUklWRVIoImZsaXAgcXVldWU6IGNydGMgYWxyZWFkeSBidXN5XG4i KTsKIAkJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKQEAgLTExNTcwLDcgKzEx NTk2LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAJfQotCWludGVsX2NydGMtPmZsaXBfd29y ayA9IHdvcms7CisJbGlzdF9hZGRfdGFpbCgmd29yay0+aGVhZCwgJmludGVsX2NydGMtPmZsaXBf d29yayk7CiAJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCiAJaWYgKGF0b21p Y19yZWFkKCZpbnRlbF9jcnRjLT51bnBpbl93b3JrX2NvdW50KSA+PSAyKQpAQCAtMTE2NTIsNyAr MTE2NzgsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAl9IGVsc2UgewogCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmd29yay0+Zmxp cF9xdWV1ZWRfcmVxLCByZXF1ZXN0KTsKIAkJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkucXVldWVf ZmxpcChkZXYsIGNydGMsIGZiLCBvYmosIHJlcXVlc3QsCi0JCQkJCQkgICBwYWdlX2ZsaXBfZmxh Z3MpOworCQkJCQkJICAgd29yay0+Z3R0X29mZnNldCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGNs ZWFudXBfdW5waW47CiAKQEAgLTExNjg3LDcgKzExNzEzLDcgQEAgY2xlYW51cDoKIAlkcm1fZnJh bWVidWZmZXJfdW5yZWZlcmVuY2Uod29yay0+b2xkX2ZiKTsKIAogCXNwaW5fbG9ja19pcnEoJmRl di0+ZXZlbnRfbG9jayk7Ci0JaW50ZWxfY3J0Yy0+ZmxpcF93b3JrID0gTlVMTDsKKwlsaXN0X2Rl bCgmd29yay0+aGVhZCk7CiAJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCiAJ ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKQEAgLTEzNzAxLDExICsxMzcyNywxNSBAQCBzdGF0 aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaW50 ZWxfbW9kZXNldF92ZXJpZnlfY3J0YyhjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgY3J0Yy0+c3RhdGUp OwogCiAJCWlmIChzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUgJiYKLQkJICAgIHRvX2ludGVs X2NydGMoY3J0YyktPmZsaXBfd29yaykgewotCQkJc3RydWN0IGludGVsX2ZsaXBfd29yayAqd29y azsKKwkJICAgICFsaXN0X2VtcHR5X2NhcmVmdWwoJnRvX2ludGVsX2NydGMoY3J0YyktPmZsaXBf d29yaykpIHsKKwkJCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcmsgPSBOVUxMOworCQkJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCiAJCQlz cGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwotCQkJd29yayA9IHRvX2ludGVsX2NydGMo Y3J0YyktPmZsaXBfd29yazsKKwkJCWlmICghbGlzdF9lbXB0eSgmaW50ZWxfY3J0Yy0+ZmxpcF93 b3JrKSkKKwkJCQl3b3JrID0gbGlzdF9sYXN0X2VudHJ5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmss CisJCQkJCQkgICAgICAgc3RydWN0IGludGVsX2ZsaXBfd29yaywgaGVhZCk7CisKIAkJCWlmICh3 b3JrICYmICZ3b3JrLT5uZXdfY3J0Y19zdGF0ZS0+YmFzZSA9PSBvbGRfY3J0Y19zdGF0ZSkgewog CQkJCXN0YXRlLT5jcnRjc1tpXSA9IE5VTEw7CiAJCQkJc3RhdGUtPmNydGNfc3RhdGVzW2ldID0g TlVMTDsKQEAgLTE0MzE5LDYgKzE0MzQ5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQogCWludGVsX2NydGMtPmJhc2Uuc3Rh dGUgPSAmY3J0Y19zdGF0ZS0+YmFzZTsKIAljcnRjX3N0YXRlLT5iYXNlLmNydGMgPSAmaW50ZWxf Y3J0Yy0+YmFzZTsKIAorCUlOSVRfTElTVF9IRUFEKCZpbnRlbF9jcnRjLT5mbGlwX3dvcmspOwor CiAJLyogaW5pdGlhbGl6ZSBzaGFyZWQgc2NhbGVycyAqLwogCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA5KSB7CiAJCWlmIChwaXBlID09IFBJUEVfQykKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKaW5kZXggYWI3NzgxOTNiY2NkLi42OTQ0MjAyZDNkZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCkBAIC02NDQsNyArNjQ0LDcgQEAgc3RydWN0IGludGVsX2NydGMgewogCXVuc2lnbmVk IGxvbmcgZW5hYmxlZF9wb3dlcl9kb21haW5zOwogCWJvb2wgbG93ZnJlcV9hdmFpbDsKIAlzdHJ1 Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheTsKLQlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICpmbGlw X3dvcms7CisJc3RydWN0IGxpc3RfaGVhZCBmbGlwX3dvcms7CiAKIAlhdG9taWNfdCB1bnBpbl93 b3JrX2NvdW50OwogCkBAIC05NzMsNiArOTczLDggQEAgaW50ZWxfZ2V0X2NydGNfZm9yX3BsYW5l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSkKIH0KIAogc3RydWN0IGludGVsX2Zs aXBfd29yayB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworCiAJc3RydWN0IHdvcmtfc3RydWN0 IHVucGluX3dvcms7CiAJc3RydWN0IHdvcmtfc3RydWN0IG1taW9fd29yazsKIAotLSAKMi41LjUK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=