From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 5/6] drm/i915: Convert flip_work to a list. Date: Wed, 23 Mar 2016 14:24:31 +0100 Message-ID: <1458739472-6582-6-git-send-email-maarten.lankhorst@linux.intel.com> References: <1458739472-6582-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 911556E857 for ; Wed, 23 Mar 2016 13:24:39 +0000 (UTC) In-Reply-To: <1458739472-6582-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 VGhpcyB3aWxsIGJlIHJlcXVpcmVkIHRvIGFsbG93IG1vcmUgdGhhbiAxIHVwZGF0ZSBpbiB0aGUg ZnV0dXJlLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyAgfCAgOTEgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgMTA5ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDQgKy0KIDQgZmlsZXMgY2hh bmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKaW5kZXggYmMyYWU3MGFiY2VhLi4xZjljYmU4MzI4NWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC01NTgsNiArNTU4LDU0IEBAIHN0YXRpYyBpbnQg aTkxNV9nZW1fZ3R0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXJldHVy biAwOwogfQogCitzdGF0aWMgdm9pZCBpOTE1X2R1bXBfcGFnZWZsaXAoc3RydWN0IHNlcV9maWxl ICptLAorCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZmxp cF93b3JrICp3b3JrKQoreworCWNvbnN0IGNoYXIgcGlwZSA9IHBpcGVfbmFtZShjcnRjLT5waXBl KTsKKwljb25zdCBjaGFyIHBsYW5lID0gcGxhbmVfbmFtZShjcnRjLT5wbGFuZSk7CisJdTMyIHBl bmRpbmc7CisJdTMyIGFkZHI7CisKKwlwZW5kaW5nID0gYXRvbWljX3JlYWQoJndvcmstPnBlbmRp bmcpOworCWlmIChwZW5kaW5nID09IElOVEVMX0ZMSVBfSU5BQ1RJVkUpIHsKKwkJc2VxX3ByaW50 ZihtLCAiRmxpcCBpb2N0bCBwcmVwYXJpbmcgb24gcGlwZSAlYyAocGxhbmUgJWMpXG4iLAorCQkJ ICAgcGlwZSwgcGxhbmUpOworCX0gZWxzZSB7CisJCXNlcV9wcmludGYobSwgIkZsaXAgcGVuZGlu ZyAod2FpdGluZyBmb3IgdnN5bmMpIG9uIHBpcGUgJWMgKHBsYW5lICVjKVxuIiwKKwkJCSAgIHBp cGUsIHBsYW5lKTsKKwl9CisJaWYgKHdvcmstPmZsaXBfcXVldWVkX3JlcSkgeworCQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQorCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5l KHdvcmstPmZsaXBfcXVldWVkX3JlcSk7CisKKwkJc2VxX3ByaW50ZihtLCAiRmxpcCBxdWV1ZWQg b24gJXMgYXQgc2Vxbm8gJXgsIG5leHQgc2Vxbm8gJXggW2N1cnJlbnQgYnJlYWRjcnVtYiAleF0s IGNvbXBsZXRlZD8gJWRcbiIsCisJCQkgICBlbmdpbmUtPm5hbWUsCisJCQkgICBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9zZXFubyh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpLAorCQkJICAgZGV2X3ByaXYt Pm5leHRfc2Vxbm8sCisJCQkgICBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUsIHRydWUpLAorCQkJ ICAgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQod29yay0+ZmxpcF9xdWV1ZWRfcmVxLCB0cnVl KSk7CisJfSBlbHNlCisJCXNlcV9wcmludGYobSwgIkZsaXAgbm90IGFzc29jaWF0ZWQgd2l0aCBh bnkgZW5naW5lXG4iKTsKKwlzZXFfcHJpbnRmKG0sICJGbGlwIHF1ZXVlZCBvbiBmcmFtZSAlZCwg KHdhcyByZWFkeSBvbiBmcmFtZSAlZCksIG5vdyAlZFxuIiwKKwkJICAgd29yay0+ZmxpcF9xdWV1 ZWRfdmJsYW5rLAorCQkgICB3b3JrLT5mbGlwX3JlYWR5X3ZibGFuaywKKwkJICAgZHJtX2NydGNf dmJsYW5rX2NvdW50KCZjcnRjLT5iYXNlKSk7CisJc2VxX3ByaW50ZihtLCAiJWQgcHJlcGFyZXNc biIsIGF0b21pY19yZWFkKCZ3b3JrLT5wZW5kaW5nKSk7CisKKwlpZiAoSU5URUxfSU5GTyhkZXZf cHJpdiktPmdlbiA+PSA0KQorCQlhZGRyID0gSTkxNV9ISV9ESVNQQkFTRShJOTE1X1JFQUQoRFNQ U1VSRihjcnRjLT5wbGFuZSkpKTsKKwllbHNlCisJCWFkZHIgPSBJOTE1X1JFQUQoRFNQQUREUihj cnRjLT5wbGFuZSkpOworCXNlcV9wcmludGYobSwgIkN1cnJlbnQgc2Nhbm91dCBhZGRyZXNzIDB4 JTA4eFxuIiwgYWRkcik7CisKKwlpZiAod29yay0+cGVuZGluZ19mbGlwX29iaikgeworCQlzZXFf cHJpbnRmKG0sICJOZXcgZnJhbWVidWZmZXIgYWRkcmVzcyAweCUwOGx4XG4iLCAobG9uZyl3b3Jr LT5ndHRfb2Zmc2V0KTsKKwkJc2VxX3ByaW50ZihtLCAiTU1JTyB1cGRhdGUgY29tcGxldGVkPyAl ZFxuIiwgIGFkZHIgPT0gd29yay0+Z3R0X29mZnNldCk7CisJfQorfQorCiBzdGF0aWMgaW50IGk5 MTVfZ2VtX3BhZ2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewog CXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKQEAgLTU3Niw0OCArNjI0 LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKmRhdGEpCiAJCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcms7CiAKIAkJc3Bp bl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKLQkJd29yayA9IGNydGMtPmZsaXBfd29yazsK LQkJaWYgKHdvcmsgPT0gTlVMTCkgeworCQlpZiAobGlzdF9lbXB0eSgmY3J0Yy0+ZmxpcF93b3Jr KSkgewogCQkJc2VxX3ByaW50ZihtLCAiTm8gZmxpcCBkdWUgb24gcGlwZSAlYyAocGxhbmUgJWMp XG4iLAogCQkJCSAgIHBpcGUsIHBsYW5lKTsKIAkJfSBlbHNlIHsKLQkJCXUzMiBwZW5kaW5nOwot CQkJdTMyIGFkZHI7Ci0KLQkJCXBlbmRpbmcgPSBhdG9taWNfcmVhZCgmd29yay0+cGVuZGluZyk7 Ci0JCQlpZiAocGVuZGluZyA9PSBJTlRFTF9GTElQX0lOQUNUSVZFKSB7Ci0JCQkJc2VxX3ByaW50 ZihtLCAiRmxpcCBpb2N0bCBwcmVwYXJpbmcgb24gcGlwZSAlYyAocGxhbmUgJWMpXG4iLAotCQkJ CQkgICBwaXBlLCBwbGFuZSk7Ci0JCQl9IGVsc2UgewotCQkJCXNlcV9wcmludGYobSwgIkZsaXAg cGVuZGluZyAod2FpdGluZyBmb3IgdnN5bmMpIG9uIHBpcGUgJWMgKHBsYW5lICVjKVxuIiwKLQkJ CQkJICAgcGlwZSwgcGxhbmUpOwotCQkJfQotCQkJaWYgKHdvcmstPmZsaXBfcXVldWVkX3JlcSkg ewotCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTVfZ2VtX3JlcXVlc3Rf Z2V0X2VuZ2luZSh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpOwotCi0JCQkJc2VxX3ByaW50ZihtLCAi RmxpcCBxdWV1ZWQgb24gJXMgYXQgc2Vxbm8gJXgsIG5leHQgc2Vxbm8gJXggW2N1cnJlbnQgYnJl YWRjcnVtYiAleF0sIGNvbXBsZXRlZD8gJWRcbiIsCi0JCQkJCSAgIGVuZ2luZS0+bmFtZSwKLQkJ CQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8od29yay0+ZmxpcF9xdWV1ZWRfcmVxKSwK LQkJCQkJICAgZGV2X3ByaXYtPm5leHRfc2Vxbm8sCi0JCQkJCSAgIGVuZ2luZS0+Z2V0X3NlcW5v KGVuZ2luZSwgdHJ1ZSksCi0JCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHdvcmst PmZsaXBfcXVldWVkX3JlcSwgdHJ1ZSkpOwotCQkJfSBlbHNlCi0JCQkJc2VxX3ByaW50ZihtLCAi RmxpcCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSByaW5nXG4iKTsKLQkJCXNlcV9wcmludGYobSwg IkZsaXAgcXVldWVkIG9uIGZyYW1lICVkLCAod2FzIHJlYWR5IG9uIGZyYW1lICVkKSwgbm93ICVk XG4iLAotCQkJCSAgIHdvcmstPmZsaXBfcXVldWVkX3ZibGFuaywKLQkJCQkgICB3b3JrLT5mbGlw X3JlYWR5X3ZibGFuaywKLQkJCQkgICBkcm1fY3J0Y192YmxhbmtfY291bnQoJmNydGMtPmJhc2Up KTsKLQkJCXNlcV9wcmludGYobSwgIiVkIHByZXBhcmVzXG4iLCBhdG9taWNfcmVhZCgmd29yay0+ cGVuZGluZykpOwotCi0JCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkKLQkJCQlhZGRy ID0gSTkxNV9ISV9ESVNQQkFTRShJOTE1X1JFQUQoRFNQU1VSRihjcnRjLT5wbGFuZSkpKTsKLQkJ CWVsc2UKLQkJCQlhZGRyID0gSTkxNV9SRUFEKERTUEFERFIoY3J0Yy0+cGxhbmUpKTsKLQkJCXNl cV9wcmludGYobSwgIkN1cnJlbnQgc2Nhbm91dCBhZGRyZXNzIDB4JTA4eFxuIiwgYWRkcik7Ci0K LQkJCWlmICh3b3JrLT5wZW5kaW5nX2ZsaXBfb2JqKSB7Ci0JCQkJc2VxX3ByaW50ZihtLCAiTmV3 IGZyYW1lYnVmZmVyIGFkZHJlc3MgMHglMDhseFxuIiwgKGxvbmcpd29yay0+Z3R0X29mZnNldCk7 Ci0JCQkJc2VxX3ByaW50ZihtLCAiTU1JTyB1cGRhdGUgY29tcGxldGVkPyAlZFxuIiwgIGFkZHIg PT0gd29yay0+Z3R0X29mZnNldCk7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHdvcmssICZjcnRj LT5mbGlwX3dvcmssIGhlYWQpOyB7CisJCQkJaTkxNV9kdW1wX3BhZ2VmbGlwKG0sIGRldl9wcml2 LCBjcnRjLCB3b3JrKTsKKwkJCQlzZXFfcHV0cyhtLCAiXG4iKTsKIAkJCX0KIAkJfQogCQlzcGlu X3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCA5ZDI5YWIwNmM5OWEuLjA2ZTQ3NzNhZTdmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC02MjIsNyArNjIyLDcgQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVuY3MgewogCQkJICBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCi0JCQkgIHVp bnQzMl90IGZsYWdzKTsKKwkJCSAgdWludDY0X3QgZ3R0X29mZnNldCk7CiAJdm9pZCAoKmhwZF9p cnFfc2V0dXApKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCS8qIGNsb2NrIHVwZGF0ZXMgZm9y IG1vZGUgc2V0ICovCiAJLyogY3Vyc29yIHVwZGF0ZXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCAzYjA4MjAyMGFhYjguLjhhZjFkZGJkMzU0OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMzI0MSwxNyArMzI0MSwxMiBAQCBzdGF0aWMgYm9v bCBpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JYm9vbCBwZW5kaW5nOwogCiAJaWYgKGk5 MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoJmRldl9wcml2LT5ncHVfZXJyb3IpIHx8CiAJICAgIGludGVs X2NydGMtPnJlc2V0X2NvdW50ZXIgIT0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5ncHVfZXJyb3Iu cmVzZXRfY291bnRlcikpCiAJCXJldHVybiBmYWxzZTsKIAotCXNwaW5fbG9ja19pcnEoJmRldi0+ ZXZlbnRfbG9jayk7Ci0JcGVuZGluZyA9IHRvX2ludGVsX2NydGMoY3J0YyktPmZsaXBfd29yayAh PSBOVUxMOwotCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKLQotCXJldHVybiBw ZW5kaW5nOworCXJldHVybiAhbGlzdF9lbXB0eV9jYXJlZnVsKCZ0b19pbnRlbF9jcnRjKGNydGMp LT5mbGlwX3dvcmspOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWco c3RydWN0IGludGVsX2NydGMgKmNydGMsCkBAIC0zODMwLDcgKzM4MjUsNyBAQCBib29sIGludGVs X2hhc19wZW5kaW5nX2ZiX3VucGluKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlmIChhdG9t aWNfcmVhZCgmY3J0Yy0+dW5waW5fd29ya19jb3VudCkgPT0gMCkKIAkJCWNvbnRpbnVlOwogCi0J CWlmIChjcnRjLT5mbGlwX3dvcmspCisJCWlmICghbGlzdF9lbXB0eV9jYXJlZnVsKCZjcnRjLT5m bGlwX3dvcmspKQogCQkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgY3J0Yy0+cGlwZSk7CiAK IAkJcmV0dXJuIHRydWU7CkBAIC0zODM5LDE0ICszODM0LDExIEBAIGJvb2wgaW50ZWxfaGFzX3Bl bmRpbmdfZmJfdW5waW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gZmFsc2U7CiB9 CiAKLXN0YXRpYyB2b2lkIHBhZ2VfZmxpcF9jb21wbGV0ZWQoc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMpCitzdGF0aWMgdm9pZCBwYWdlX2ZsaXBfY29tcGxldGVkKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLCBzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICp3b3JrKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5k ZXYpOwotCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcmsgPSBpbnRlbF9jcnRjLT5mbGlwX3dv cms7CiAKLQkvKiBlbnN1cmUgdGhhdCB0aGUgZmxpcCB3b3JrIGlzIGNvbnNpc3RlbnQgd3J0IC0+ cGVuZGluZy4gKi8KLQlzbXBfcm1iKCk7Ci0JaW50ZWxfY3J0Yy0+ZmxpcF93b3JrID0gTlVMTDsK KwlsaXN0X2RlbF9pbml0KCZ3b3JrLT5oZWFkKTsKIAogCWlmICh3b3JrLT5ldmVudCkKIAkJZHJt X3NlbmRfdmJsYW5rX2V2ZW50KGludGVsX2NydGMtPmJhc2UuZGV2LApAQCAtMzg4MywxMCArMzg3 NSwxMSBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcms7CiAKIAkJ c3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKLQkJd29yayA9IGludGVsX2NydGMtPmZs aXBfd29yazsKKwkJd29yayA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmaW50ZWxfY3J0Yy0+ ZmxpcF93b3JrLAorCQkJCQkJc3RydWN0IGludGVsX2ZsaXBfd29yaywgaGVhZCk7CiAJCWlmICh3 b3JrICYmICFpc19tbWlvX3dvcmsod29yaykpIHsKIAkJCVdBUk5fT05DRSgxLCAiUmVtb3Zpbmcg c3R1Y2sgcGFnZSBmbGlwXG4iKTsKLQkJCXBhZ2VfZmxpcF9jb21wbGV0ZWQoaW50ZWxfY3J0Yyk7 CisJCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2NydGMsIHdvcmspOwogCQl9CiAJCXNwaW5f dW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAl9CkBAIC02MjY2LDcgKzYyNTksNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpj cnRjKQogCQlyZXR1cm47CiAKIAlpZiAodG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+cHJpbWFy eS0+c3RhdGUpLT52aXNpYmxlKSB7Ci0JCVdBUk5fT04oaW50ZWxfY3J0Yy0+ZmxpcF93b3JrKTsK KwkJV0FSTl9PTihsaXN0X2VtcHR5KCZpbnRlbF9jcnRjLT5mbGlwX3dvcmspKTsKIAogCQlpbnRl bF9wcmVfZGlzYWJsZV9wcmltYXJ5X25vYXRvbWljKGNydGMpOwogCkBAIC0xMDc4OSwxNyArMTA3 ODIsMjQgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kZXN0cm95KHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgaW50ZWxf ZmxpcF93b3JrICp3b3JrOworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKworCUlOSVRfTElTVF9I RUFEKCZoZWFkKTsKIAogCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7Ci0Jd29yayA9 IGludGVsX2NydGMtPmZsaXBfd29yazsKLQlpbnRlbF9jcnRjLT5mbGlwX3dvcmsgPSBOVUxMOwot CXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKKwl3aGlsZSAoIWxpc3RfZW1wdHko JmludGVsX2NydGMtPmZsaXBfd29yaykpIHsKKwkJd29yayA9IGxpc3RfZmlyc3RfZW50cnkoJmlu dGVsX2NydGMtPmZsaXBfd29yaywKKwkJCQkJc3RydWN0IGludGVsX2ZsaXBfd29yaywgaGVhZCk7 CisJCWxpc3RfZGVsX2luaXQoJndvcmstPmhlYWQpOworCQlzcGluX3VubG9ja19pcnEoJmRldi0+ ZXZlbnRfbG9jayk7CiAKLQlpZiAod29yaykgewogCQljYW5jZWxfd29ya19zeW5jKCZ3b3JrLT5t bWlvX3dvcmspOwogCQljYW5jZWxfd29ya19zeW5jKCZ3b3JrLT51bnBpbl93b3JrKTsKIAkJa2Zy ZWUod29yayk7CisKKwkJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAl9CisJc3Bp bl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCiAJZHJtX2NydGNfY2xlYW51cChjcnRj KTsKIApAQCAtMTA4NDEsNyArMTA4NDEsOCBAQCBzdGF0aWMgYm9vbCBnNHhfZmxpcF9jb3VudF9h ZnRlcl9lcSh1MzIgYSwgdTMyIGIpCiAJcmV0dXJuICEoKGEgLSBiKSAmIDB4ODAwMDAwMDApOwog fQogCi1zdGF0aWMgYm9vbCBwYWdlX2ZsaXBfZmluaXNoZWQoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCitzdGF0aWMgYm9vbCBwYWdlX2ZsaXBfZmluaXNoZWQoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCisJCQkgICAgICAgc3RydWN0IGludGVsX2ZsaXBfd29yayAqd29yaykKIHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTEwODgyLDkgKzEwODgzLDkgQEAg c3RhdGljIGJvb2wgcGFnZV9mbGlwX2ZpbmlzaGVkKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQog CSAqIGFueXdheSwgd2UgZG9uJ3QgcmVhbGx5IGNhcmUuCiAJICovCiAJcmV0dXJuIChJOTE1X1JF QUQoRFNQU1VSRkxJVkUoY3J0Yy0+cGxhbmUpKSAmIH4weGZmZikgPT0KLQkJY3J0Yy0+ZmxpcF93 b3JrLT5ndHRfb2Zmc2V0ICYmCisJCXdvcmstPmd0dF9vZmZzZXQgJiYKIAkJZzR4X2ZsaXBfY291 bnRfYWZ0ZXJfZXEoSTkxNV9SRUFEKFBJUEVfRkxJUENPVU5UX0c0WChjcnRjLT5waXBlKSksCi0J CQkJICAgIGNydGMtPmZsaXBfd29yay0+ZmxpcF9jb3VudCk7CisJCQkJCXdvcmstPmZsaXBfY291 bnQpOwogfQogCiBzdGF0aWMgdm9pZCBkb19pbnRlbF9maW5pc2hfcGFnZV9mbGlwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCkBAIC0xMDkwMywxNiArMTA5MDQsMTggQEAgc3RhdGljIHZvaWQgZG9f aW50ZWxfZmluaXNoX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqIGxvc3Qg cGFnZWZsaXBzKSBzbyBuZWVkcyB0aGUgZnVsbCBpcnFzYXZlIHNwaW5sb2Nrcy4KIAkgKi8KIAlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0Jd29yayA9IGludGVs X2NydGMtPmZsaXBfd29yazsKKwl3b3JrID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZpbnRl bF9jcnRjLT5mbGlwX3dvcmssCisJCQkJCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmssCisJCQkJCWhl YWQpOwogCiAJaWYgKHdvcmsgPT0gTlVMTCB8fAogCSAgICBhdG9taWNfcmVhZCgmd29yay0+cGVu ZGluZykgPT0gSU5URUxfRkxJUF9JTkFDVElWRSB8fAotCSAgICAhcGFnZV9mbGlwX2ZpbmlzaGVk KGludGVsX2NydGMpKSB7CisJICAgICFwYWdlX2ZsaXBfZmluaXNoZWQoaW50ZWxfY3J0Yywgd29y aykpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7 CiAJCXJldHVybjsKIAl9CiAKLQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVsX2NydGMpOworCXBh Z2VfZmxpcF9jb21wbGV0ZWQoaW50ZWxfY3J0Yywgd29yayk7CiAKIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIH0KQEAgLTEwOTQ3LDcgKzEwOTUwLDcg QEAgc3RhdGljIGludCBpbnRlbF9nZW4yX3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkJIHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAotCQkJCSB1aW50MzJfdCBmbGFncykKKwkJCQkgdWludDY0X3QgZ3R0X29mZnNldCkKIHsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC0xMDk3MCw3ICsx MDk3Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfRElTUExBWV9GTElQIHwKIAkJ CU1JX0RJU1BMQVlfRkxJUF9QTEFORShpbnRlbF9jcnRjLT5wbGFuZSkpOwogCWludGVsX3Jpbmdf ZW1pdChlbmdpbmUsIGZiLT5waXRjaGVzWzBdKTsKLQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBp bnRlbF9jcnRjLT5mbGlwX3dvcmstPmd0dF9vZmZzZXQpOworCWludGVsX3JpbmdfZW1pdChlbmdp bmUsIGd0dF9vZmZzZXQpOwogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIDApOyAvKiBhdXggZGlz cGxheSBiYXNlIGFkZHJlc3MsIHVudXNlZCAqLwogCiAJcmV0dXJuIDA7CkBAIC0xMDk4MSw3ICsx MDk4NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuM19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwKLQkJCQkgdWludDMyX3QgZmxhZ3MpCisJCQkJIHVpbnQ2NF90IGd0dF9vZmZzZXQp CiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7CiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwpAQCAtMTEw MDEsNyArMTEwMDQsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjNfcXVldWVfZmxpcChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX0RJU1BMQVlfRkxJ UF9JOTE1IHwKIAkJCU1JX0RJU1BMQVlfRkxJUF9QTEFORShpbnRlbF9jcnRjLT5wbGFuZSkpOwog CWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGZiLT5waXRjaGVzWzBdKTsKLQlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLCBpbnRlbF9jcnRjLT5mbGlwX3dvcmstPmd0dF9vZmZzZXQpOworCWludGVsX3Jp bmdfZW1pdChlbmdpbmUsIGd0dF9vZmZzZXQpOwogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1J X05PT1ApOwogCiAJcmV0dXJuIDA7CkBAIC0xMTAxMiw3ICsxMTAxNSw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfZ2VuNF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJCQkgdWludDMy X3QgZmxhZ3MpCisJCQkJIHVpbnQ2NF90IGd0dF9vZmZzZXQpCiB7CiAJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTExMDMxLDggKzExMDM0LDcgQEAgc3Rh dGljIGludCBpbnRlbF9nZW40X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9ESVNQTEFZX0ZMSVAgfAogCQkJTUlfRElTUExBWV9G TElQX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKSk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg ZmItPnBpdGNoZXNbMF0pOwotCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGludGVsX2NydGMtPmZs aXBfd29yay0+Z3R0X29mZnNldCB8Ci0JCQlvYmotPnRpbGluZ19tb2RlKTsKKwlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBndHRfb2Zmc2V0IHwgb2JqLT50aWxpbmdfbW9kZSk7CiAKIAkvKiBYWFgg RW5hYmxpbmcgdGhlIHBhbmVsLWZpdHRlciBhY3Jvc3MgcGFnZS1mbGlwIGlzIHNvIGZhcgogCSAq IHVudGVzdGVkIG9uIG5vbi1uYXRpdmUgbW9kZXMsIHNvIGlnbm9yZSBpdCBmb3Igbm93LgpAQCAt MTEwNTAsNyArMTEwNTIsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJ CQkgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsCi0JCQkJIHVpbnQzMl90IGZsYWdzKQorCQkJCSB1aW50NjRfdCBn dHRfb2Zmc2V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5n aW5lOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CkBAIC0xMTA2NSw3ICsxMTA2Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9m bGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlf RElTUExBWV9GTElQIHwKIAkJCU1JX0RJU1BMQVlfRkxJUF9QTEFORShpbnRlbF9jcnRjLT5wbGFu ZSkpOwogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGZiLT5waXRjaGVzWzBdIHwgb2JqLT50aWxp bmdfbW9kZSk7Ci0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgaW50ZWxfY3J0Yy0+ZmxpcF93b3Jr LT5ndHRfb2Zmc2V0KTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBndHRfb2Zmc2V0KTsKIAog CS8qIENvbnRyYXJ5IHRvIHRoZSBzdWdnZXN0aW9ucyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwKIAkg KiAiRW5hYmxlIFBhbmVsIEZpdHRlciIgZG9lcyBub3Qgc2VlbSB0byBiZSByZXF1aXJlZCB3aGVu IHBhZ2UKQEAgLTExMDg1LDcgKzExMDg3LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW43X3F1ZXVl X2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAotCQkJCSB1aW50MzJfdCBmbGFncykKKwkJCQkg dWludDY0X3QgZ3R0X29mZnNldCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSByZXEtPmVuZ2luZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7CkBAIC0xMTE2OCw3ICsxMTE3MCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2Vu N19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlpbnRlbF9yaW5nX2VtaXQo ZW5naW5lLCBNSV9ESVNQTEFZX0ZMSVBfSTkxNSB8IHBsYW5lX2JpdCk7CiAJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgKGZiLT5waXRjaGVzWzBdIHwgb2JqLT50aWxpbmdfbW9kZSkpOwotCWludGVs X3JpbmdfZW1pdChlbmdpbmUsIGludGVsX2NydGMtPmZsaXBfd29yay0+Z3R0X29mZnNldCk7CisJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZ3R0X29mZnNldCk7CiAJaW50ZWxfcmluZ19lbWl0KGVu Z2luZSwgKE1JX05PT1ApKTsKIAogCXJldHVybiAwOwpAQCAtMTEyMzcsMTcgKzExMjM5LDE3IEBA IHN0YXRpYyBpbnQgaW50ZWxfZGVmYXVsdF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSwKLQkJCQkgICAgdWludDMyX3QgZmxhZ3MpCisJCQkJICAgIHVpbnQ2NF90IGd0 dF9vZmZzZXQpCiB7CiAJcmV0dXJuIC1FTk9ERVY7CiB9CiAKIHN0YXRpYyBib29sIF9faW50ZWxf cGFnZWZsaXBfc3RhbGxfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJIHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKKwkJCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkJIHN0 cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcmspCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2ZsaXBfd29yayAqd29y ayA9IGludGVsX2NydGMtPmZsaXBfd29yazsKIAl1MzIgYWRkcjsKIAl1MzIgcGVuZGluZzsKIApA QCAtMTEzMDAsMTIgKzExMzAyLDE0IEBAIHZvaWQgaW50ZWxfY2hlY2tfcGFnZV9mbGlwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQogCQlyZXR1cm47CiAKIAlzcGluX2xvY2soJmRl di0+ZXZlbnRfbG9jayk7Ci0Jd29yayA9IGludGVsX2NydGMtPmZsaXBfd29yazsKLQlpZiAod29y ayAhPSBOVUxMICYmIF9faW50ZWxfcGFnZWZsaXBfc3RhbGxfY2hlY2soZGV2LCBjcnRjKSkgewor CXdvcmsgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmludGVsX2NydGMtPmZsaXBfd29yaywK KwkJCQkJc3RydWN0IGludGVsX2ZsaXBfd29yaywgaGVhZCk7CisKKwlpZiAod29yayAhPSBOVUxM ICYmIF9faW50ZWxfcGFnZWZsaXBfc3RhbGxfY2hlY2soZGV2LCBjcnRjLCB3b3JrKSkgewogCQlX QVJOX09OQ0UoIWlzX21taW9fd29yayh3b3JrKSwKIAkJCSAgIktpY2tpbmcgc3R1Y2sgcGFnZSBm bGlwOiBxdWV1ZWQgYXQgJWQsIG5vdyAlZFxuIiwKIAkJCSB3b3JrLT5mbGlwX3F1ZXVlZF92Ymxh bmssIGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSk7Ci0JCXBhZ2VfZmxpcF9jb21wbGV0ZWQo aW50ZWxfY3J0Yyk7CisJCXBhZ2VfZmxpcF9jb21wbGV0ZWQoaW50ZWxfY3J0Yywgd29yayk7CiAJ CXdvcmsgPSBOVUxMOwogCX0KIAlpZiAod29yayAhPSBOVUxMICYmICFpc19tbWlvX3dvcmsod29y aykgJiYKQEAgLTExMzcxLDE0ICsxMTM3NSwxOSBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFn ZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCS8qIFdlIGJvcnJvdyB0aGUgZXZlbnQg c3BpbiBsb2NrIGZvciBwcm90ZWN0aW5nIGZsaXBfd29yayAqLwogCXNwaW5fbG9ja19pcnEoJmRl di0+ZXZlbnRfbG9jayk7Ci0JaWYgKGludGVsX2NydGMtPmZsaXBfd29yaykgeworCWlmICghbGlz dF9lbXB0eSgmaW50ZWxfY3J0Yy0+ZmxpcF93b3JrKSkgeworCQlzdHJ1Y3QgaW50ZWxfZmxpcF93 b3JrICpvbGRfd29yazsKKworCQlvbGRfd29yayA9IGxpc3RfZmlyc3RfZW50cnkoJmludGVsX2Ny dGMtPmZsaXBfd29yaywKKwkJCQkJICAgIHN0cnVjdCBpbnRlbF9mbGlwX3dvcmssIGhlYWQpOwor CiAJCS8qIEJlZm9yZSBkZWNsYXJpbmcgdGhlIGZsaXAgcXVldWUgd2VkZ2VkLCBjaGVjayBpZgog CQkgKiB0aGUgaGFyZHdhcmUgY29tcGxldGVkIHRoZSBvcGVyYXRpb24gYmVoaW5kIG91ciBiYWNr cy4KIAkJICovCi0JCWlmICghaXNfbW1pb193b3JrKGludGVsX2NydGMtPmZsaXBfd29yaykgJiYK LQkJICAgIF9faW50ZWxfcGFnZWZsaXBfc3RhbGxfY2hlY2soZGV2LCBjcnRjKSkgeworCQlpZiAo IWlzX21taW9fd29yayhvbGRfd29yaykgJiYKKwkJICAgIF9faW50ZWxfcGFnZWZsaXBfc3RhbGxf Y2hlY2soZGV2LCBjcnRjLCBvbGRfd29yaykpIHsKIAkJCURSTV9ERUJVR19EUklWRVIoImZsaXAg cXVldWU6IHByZXZpb3VzIGZsaXAgY29tcGxldGVkLCBjb250aW51aW5nXG4iKTsKLQkJCXBhZ2Vf ZmxpcF9jb21wbGV0ZWQoaW50ZWxfY3J0Yyk7CisJCQlwYWdlX2ZsaXBfY29tcGxldGVkKGludGVs X2NydGMsIG9sZF93b3JrKTsKIAkJfSBlbHNlIHsKIAkJCURSTV9ERUJVR19EUklWRVIoImZsaXAg cXVldWU6IGNydGMgYWxyZWFkeSBidXN5XG4iKTsKIAkJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5l dmVudF9sb2NrKTsKQEAgLTExMzg4LDcgKzExMzk3LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9 CiAJfQotCWludGVsX2NydGMtPmZsaXBfd29yayA9IHdvcms7CisJbGlzdF9hZGRfdGFpbCgmd29y ay0+aGVhZCwgJmludGVsX2NydGMtPmZsaXBfd29yayk7CiAJc3Bpbl91bmxvY2tfaXJxKCZkZXYt PmV2ZW50X2xvY2spOwogCiAJaWYgKGF0b21pY19yZWFkKCZpbnRlbF9jcnRjLT51bnBpbl93b3Jr X2NvdW50KSA+PSAyKQpAQCAtMTE0NjYsNyArMTE0NzUsNyBAQCBzdGF0aWMgaW50IGludGVsX2Ny dGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9IGVsc2UgewogCQlpOTE1X2dl bV9yZXF1ZXN0X2Fzc2lnbigmd29yay0+ZmxpcF9xdWV1ZWRfcmVxLCByZXF1ZXN0KTsKIAkJcmV0 ID0gZGV2X3ByaXYtPmRpc3BsYXkucXVldWVfZmxpcChkZXYsIGNydGMsIGZiLCBvYmosIHJlcXVl c3QsCi0JCQkJCQkgICBwYWdlX2ZsaXBfZmxhZ3MpOworCQkJCQkJICAgd29yay0+Z3R0X29mZnNl dCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGNsZWFudXBfdW5waW47CiAKQEAgLTExNTAyLDcgKzEx NTExLDcgQEAgY2xlYW51cDoKIAlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uod29yay0+b2xk X2ZiKTsKIAogCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7Ci0JaW50ZWxfY3J0Yy0+ ZmxpcF93b3JrID0gTlVMTDsKKwlsaXN0X2RlbCgmd29yay0+aGVhZCk7CiAJc3Bpbl91bmxvY2tf aXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCiAJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKQEAg LTE0MTA3LDYgKzE0MTE2LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQogCWludGVsX2NydGMtPmJhc2Uuc3RhdGUgPSAmY3J0 Y19zdGF0ZS0+YmFzZTsKIAljcnRjX3N0YXRlLT5iYXNlLmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFz ZTsKIAorCUlOSVRfTElTVF9IRUFEKCZpbnRlbF9jcnRjLT5mbGlwX3dvcmspOworCiAJLyogaW5p dGlhbGl6ZSBzaGFyZWQgc2NhbGVycyAqLwogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5 KSB7CiAJCWlmIChwaXBlID09IFBJUEVfQykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXgg Y2FjMzY4MTM4NzY0Li42OTdjZjY4NTg1OGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBA IC02MDYsNyArNjA2LDcgQEAgc3RydWN0IGludGVsX2NydGMgewogCXVuc2lnbmVkIGxvbmcgZW5h YmxlZF9wb3dlcl9kb21haW5zOwogCWJvb2wgbG93ZnJlcV9hdmFpbDsKIAlzdHJ1Y3QgaW50ZWxf b3ZlcmxheSAqb3ZlcmxheTsKLQlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICpmbGlwX3dvcms7CisJ c3RydWN0IGxpc3RfaGVhZCBmbGlwX3dvcms7CiAKIAlhdG9taWNfdCB1bnBpbl93b3JrX2NvdW50 OwogCkBAIC05MjgsNiArOTI4LDggQEAgaW50ZWxfZ2V0X2NydGNfZm9yX3BsYW5lKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSkKIH0KIAogc3RydWN0IGludGVsX2ZsaXBfd29yayB7 CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworCiAJc3RydWN0IHdvcmtfc3RydWN0IHVucGluX3dv cms7CiAJc3RydWN0IHdvcmtfc3RydWN0IG1taW9fd29yazsKIAotLSAKMi4xLjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=