From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 24/27] drm/i915: Use full atomic modeset. Date: Thu, 4 Jun 2015 14:47:54 +0200 Message-ID: <1433422077-14907-25-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433422077-14907-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 [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id 532686EAFA for ; Thu, 4 Jun 2015 05:48:13 -0700 (PDT) In-Reply-To: <1433422077-14907-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 SHV6emFoISBcby8KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljLmMgIHwgMTI4IC0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDI4MCArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA1IC0KIDMgZmlsZXMgY2hh bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMzcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljLmMKaW5kZXggNTYyN2RmMjgwN2IwLi45MGM1ZjkzZDliMTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCkBAIC0zNSwxMzQgKzM1LDYgQEAKICNpbmNsdWRlIDxk cm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgImludGVsX2Rydi5oIgogCi0KLS8qKgot ICogaW50ZWxfYXRvbWljX2NoZWNrIC0gdmFsaWRhdGUgc3RhdGUgb2JqZWN0Ci0gKiBAZGV2OiBk cm0gZGV2aWNlCi0gKiBAc3RhdGU6IHN0YXRlIHRvIHZhbGlkYXRlCi0gKi8KLWludCBpbnRlbF9h dG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJICAgICAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKLXsKLQlpbnQgbnBsYW5lcyA9IGRldi0+bW9kZV9jb25maWcu bnVtX3RvdGFsX3BsYW5lOwotCWludCBuY3J0Y3MgPSBkZXYtPm1vZGVfY29uZmlnLm51bV9jcnRj OwotCWludCBuY29ubmVjdG9ycyA9IGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3RvcjsKLQll bnVtIHBpcGUgbnVjbGVhcl9waXBlID0gSU5WQUxJRF9QSVBFOwotCXN0cnVjdCBpbnRlbF9jcnRj ICpudWNsZWFyX2NydGMgPSBOVUxMOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlID0gTlVMTDsKLQlpbnQgcmV0OwotCWludCBpOwotCWJvb2wgbm90X251Y2xlYXIgPSBmYWxz ZTsKLQotCS8qCi0JICogRklYTUU6ICBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5IHN1cHBvcnQgIm51 Y2xlYXIgcGFnZWZsaXAiIG9uIGEKLQkgKiBzaW5nbGUgQ1JUQy4gIENyb3NzLWNydGMgdXBkYXRl cyB3aWxsIGJlIGFkZGVkIGxhdGVyLgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCBucGxhbmVzOyBp KyspIHsKLQkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHN0YXRl LT5wbGFuZXNbaV0pOwotCQlpZiAoIXBsYW5lKQotCQkJY29udGludWU7Ci0KLQkJaWYgKG51Y2xl YXJfcGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKLQkJCW51Y2xlYXJfcGlwZSA9IHBsYW5lLT5waXBl OwotCQl9IGVsc2UgaWYgKG51Y2xlYXJfcGlwZSAhPSBwbGFuZS0+cGlwZSkgewotCQkJRFJNX0RF QlVHX0tNUygiaTkxNSBvbmx5IHN1cHBvcnQgYXRvbWljIHBsYW5lIG9wZXJhdGlvbnMgb24gYSBz aW5nbGUgQ1JUQyBhdCB0aGUgbW9tZW50XG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0J fQotCi0JLyoKLQkgKiBGSVhNRTogIFdlIG9ubHkgaGFuZGxlIHBsYW5lcyBmb3Igbm93OyBtYWtl IHN1cmUgdGhlcmUgYXJlIG5vIENSVEMncwotCSAqIG9yIGNvbm5lY3RvcnMgaW52b2x2ZWQuCi0J ICovCi0Jc3RhdGUtPmFsbG93X21vZGVzZXQgPSBmYWxzZTsKLQlmb3IgKGkgPSAwOyBpIDwgbmNy dGNzOyBpKyspIHsKLQkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHN0 YXRlLT5jcnRjc1tpXSk7Ci0JCWlmIChjcnRjKQotCQkJbWVtc2V0KCZjcnRjLT5hdG9taWMsIDAs IHNpemVvZihjcnRjLT5hdG9taWMpKTsKLQkJaWYgKGNydGMgJiYgY3J0Yy0+cGlwZSAhPSBudWNs ZWFyX3BpcGUpCi0JCQlub3RfbnVjbGVhciA9IHRydWU7Ci0JCWlmIChjcnRjICYmIGNydGMtPnBp cGUgPT0gbnVjbGVhcl9waXBlKSB7Ci0JCQludWNsZWFyX2NydGMgPSBjcnRjOwotCQkJY3J0Y19z dGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUtPmNydGNfc3RhdGVzW2ldKTsKLQkJfQot CX0KLQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3RvcnM7IGkrKykKLQkJaWYgKHN0YXRlLT5jb25u ZWN0b3JzW2ldICE9IE5VTEwpCi0JCQlub3RfbnVjbGVhciA9IHRydWU7Ci0KLQlpZiAobm90X251 Y2xlYXIpIHsKLQkJRFJNX0RFQlVHX0tNUygiaTkxNSBvbmx5IHN1cHBvcnRzIGF0b21pYyBwbGFu ZSBvcGVyYXRpb25zIGF0IHRoZSBtb21lbnRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0K LQlpZiAoY3J0Y19zdGF0ZSAmJgotCSAgICBjcnRjX3N0YXRlLT5xdWlya3MgJiBQSVBFX0NPTkZJ R19RVUlSS19JTkhFUklURURfTU9ERSkgewotCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3Rl ZF9wbGFuZXMoc3RhdGUsICZudWNsZWFyX2NydGMtPmJhc2UpOwotCQlpZiAocmV0KQotCQkJcmV0 dXJuIHJldDsKLQl9Ci0KLQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZXMoZGV2 LCBzdGF0ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldHVybiByZXQ7Ci19Ci0K LQotLyoqCi0gKiBpbnRlbF9hdG9taWNfY29tbWl0IC0gY29tbWl0IHZhbGlkYXRlZCBzdGF0ZSBv YmplY3QKLSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBzdGF0ZTogdGhlIHRvcC1sZXZlbCBkcml2 ZXIgc3RhdGUgb2JqZWN0Ci0gKiBAYXN5bmM6IGFzeW5jaHJvbm91cyBjb21taXQKLSAqCi0gKiBU aGlzIGZ1bmN0aW9uIGNvbW1pdHMgYSB0b3AtbGV2ZWwgc3RhdGUgb2JqZWN0IHRoYXQgaGFzIGJl ZW4gdmFsaWRhdGVkCi0gKiB3aXRoIGRybV9hdG9taWNfaGVscGVyX2NoZWNrKCkuCi0gKgotICog RklYTUU6ICBBdG9taWMgbW9kZXNldCBzdXBwb3J0IGZvciBpOTE1IGlzIG5vdCB5ZXQgY29tcGxl dGUuICBBdCB0aGUgbW9tZW50Ci0gKiB3ZSBjYW4gb25seSBoYW5kbGUgcGxhbmUtcmVsYXRlZCBv cGVyYXRpb25zIGFuZCBkbyBub3QgeWV0IHN1cHBvcnQKLSAqIGFzeW5jaHJvbm91cyBjb21taXQu Ci0gKgotICogUkVUVVJOUwotICogWmVybyBmb3Igc3VjY2VzcyBvciAtZXJybm8uCi0gKi8KLWlu dCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQlib29sIGFzeW5jKQotewotCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0JaW50IHJl dDsKLQlpbnQgaTsKLQotCWlmIChhc3luYykgewotCQlEUk1fREVCVUdfS01TKCJpOTE1IGRvZXMg bm90IHlldCBzdXBwb3J0IGFzeW5jIGNvbW1pdFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0K LQotCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwgc3RhdGUpOwot CWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkvKiBQb2ludCBvZiBubyByZXR1cm4gKi8KLQlk cm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKGRldiwgc3RhdGUpOwotCi0JZm9yX2VhY2hfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQl0b19pbnRlbF9jcnRj KGNydGMpLT5jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQotCQlk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGMoY3J0Y19zdGF0ZSk7Ci0JfQot Ci0JLyogRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGV2ZW50dWFsbHkgY2FsbCBfX2ludGVs X3NldF9tb2RlIHdoZW4gbmVlZGVkICovCi0KLQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92 YmxhbmtzKGRldiwgc3RhdGUpOwotCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRl diwgc3RhdGUpOwotCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Ci0KLQlyZXR1cm4gMDsK LX0KLQogLyoqCiAgKiBpbnRlbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eSAtIGZldGNo IGNvbm5lY3RvciBwcm9wZXJ0eSB2YWx1ZQogICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGZl dGNoIHByb3BlcnR5IGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGQy YTFiZjRmMzFkYy4uZDVlNzgzYzE3MGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCkBAIC04Niw3ICs4Niw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19jbG9ja19nZXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hfY2xvY2tfZ2V0 KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZyk7CiAKLXN0YXRpYyBpbnQgaW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKTsKIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICpp ZmIsCiAJCQkJICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCkBAIC0xMTAsMTQg KzEwOSw2IEBAIHN0YXRpYyB2b2lkIHNrbF9pbml0X3NjYWxlcnMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NyCiBzdGF0aWMgaW50IGk5eHhfZ2V0X3Jl ZmNsayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgIGlu dCBudW1fY29ubmVjdG9ycyk7CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZmluZF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgaW50IHBpcGUp Ci17Ci0JaWYgKCFjb25uZWN0b3ItPm1zdF9wb3J0KQotCQlyZXR1cm4gY29ubmVjdG9yLT5lbmNv ZGVyOwotCWVsc2UKLQkJcmV0dXJuICZjb25uZWN0b3ItPm1zdF9wb3J0LT5tc3RfZW5jb2RlcnNb cGlwZV0tPmJhc2U7Ci19Ci0KIHR5cGVkZWYgc3RydWN0IHsKIAlpbnQJbWluLCBtYXg7CiB9IGlu dGVsX3JhbmdlX3Q7CkBAIC02MTM1LDcgKzYxMjYsNyBAQCBpbnQgaW50ZWxfZGlzcGxheV9zdXNw ZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJaWYgKGNydGNfbWFzaykgewotCQly ZXQgPSBpbnRlbF9zZXRfbW9kZShzdGF0ZSk7CisJCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0 YXRlKTsKIAogCQlpZiAoIXJldCkgewogCQkJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpCkBAIC02 MjE1LDcgKzYyMDYsNyBAQCBpbnQgaW50ZWxfY3J0Y19jb250cm9sKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgYm9vbCBhY3RpdmUsIGJvb2wgZm9yY2UpCiAJCX0KIAl9CiAKLQlyZXQgPSBpbnRlbF9z ZXRfbW9kZShzdGF0ZSk7CisJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwogCWlmICgh cmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xMDE3NSw3ICsxMDE2Niw3IEBAIHJldHJ5OgogCiAJ ZHJtX21vZGVfY29weSgmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLCBtb2RlKTsKIAotCWlmIChpbnRl bF9zZXRfbW9kZShzdGF0ZSkpIHsKKwlpZiAoZHJtX2F0b21pY19jb21taXQoc3RhdGUpKSB7CiAJ CURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBzZXQgbW9kZSBvbiBsb2FkLWRldGVjdCBwaXBlXG4i KTsKIAkJaWYgKG9sZC0+cmVsZWFzZV9mYikKIAkJCW9sZC0+cmVsZWFzZV9mYi0+ZnVuY3MtPmRl c3Ryb3kob2xkLT5yZWxlYXNlX2ZiKTsKQEAgLTEwMjQzLDcgKzEwMjM0LDcgQEAgdm9pZCBpbnRl bF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKIAkJaWYgKHJldCkKIAkJCWdvdG8gZmFpbDsKIAotCQlyZXQgPSBpbnRlbF9zZXRfbW9kZShz dGF0ZSk7CisJCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKIAkJaWYgKHJldCkKIAkJ CWdvdG8gZmFpbDsKIApAQCAtMTI3NjQsNyArMTI3NTUsNiBAQCBzdGF0aWMgaW50IGhhc3dlbGxf bW9kZV9zZXRfcGxhbmVzX3dvcmthcm91bmQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQogCXJldHVybiAwOwogfQogCi0vKiBDb2RlIHRoYXQgc2hvdWxkIGV2ZW50dWFsbHkgYmUgcGFy dCBvZiBhdG9taWNfY2hlY2soKSAqLwogc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5kZXY7CkBAIC0xMjc5NiwxNSArMTI3ODYsMjAgQEAgc3RhdGljIGludCBpbnRl bF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQKLWludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorLyoqCisgKiBpbnRlbF9hdG9taWNfY2hlY2sgLSB2 YWxpZGF0ZSBzdGF0ZSBvYmplY3QKKyAqIEBkZXY6IGRybSBkZXZpY2UKKyAqIEBzdGF0ZTogc3Rh dGUgdG8gdmFsaWRhdGUKKyAqLworc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwogCWludCByZXQsIGk7CiAJYm9vbCBhbnlfbXMgPSBmYWxzZTsKIAotCXJldCA9 IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RhdGUtPmRldiwgc3RhdGUpOworCXJl dCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoZGV2LCBzdGF0ZSk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTI4MjcsNyArMTI4MjIsNiBAQCBpbnRlbF9tb2Rlc2V0 X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCQkJdG9f aW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0 OwotCiAJCWludGVsX2R1bXBfcGlwZV9jb25maWcodG9faW50ZWxfY3J0YyhjcnRjKSwKIAkJCQkg ICAgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKSwKIAkJCQkgICAgICAgIlttb2Rl c2V0XSIpOwpAQCAtMTI4NDMsOSArMTI4MzcsMjYgQEAgaW50ZWxfbW9kZXNldF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIGRybV9hdG9taWNf aGVscGVyX2NoZWNrX3BsYW5lcyhzdGF0ZS0+ZGV2LCBzdGF0ZSk7CiB9CiAKLXN0YXRpYyBpbnQg X19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisvKioKKyAq IGludGVsX2F0b21pY19jb21taXQgLSBjb21taXQgdmFsaWRhdGVkIHN0YXRlIG9iamVjdAorICog QGRldjogRFJNIGRldmljZQorICogQHN0YXRlOiB0aGUgdG9wLWxldmVsIGRyaXZlciBzdGF0ZSBv YmplY3QKKyAqIEBhc3luYzogYXN5bmNocm9ub3VzIGNvbW1pdAorICoKKyAqIFRoaXMgZnVuY3Rp b24gY29tbWl0cyBhIHRvcC1sZXZlbCBzdGF0ZSBvYmplY3QgdGhhdCBoYXMgYmVlbiB2YWxpZGF0 ZWQKKyAqIHdpdGggZHJtX2F0b21pY19oZWxwZXJfY2hlY2soKS4KKyAqCisgKiBGSVhNRTogIEF0 b21pYyBtb2Rlc2V0IHN1cHBvcnQgZm9yIGk5MTUgaXMgbm90IHlldCBjb21wbGV0ZS4gIEF0IHRo ZSBtb21lbnQKKyAqIHdlIGNhbiBvbmx5IGhhbmRsZSBwbGFuZS1yZWxhdGVkIG9wZXJhdGlvbnMg YW5kIGRvIG5vdCB5ZXQgc3VwcG9ydAorICogYXN5bmNocm9ub3VzIGNvbW1pdC4KKyAqCisgKiBS RVRVUk5TCisgKiBaZXJvIGZvciBzdWNjZXNzIG9yIC1lcnJuby4KKyAqLworc3RhdGljIGludCBp bnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgIGJvb2wgYXN5bmMpCiB7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwpAQCAtMTI4NTMsNiArMTI4 NjQsMTEgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKIAlpbnQgaTsKIAlib29sIGFueV9tcyA9IGZhbHNlOwogCisJaWYgKGFzeW5j KSB7CisJCURSTV9ERUJVR19LTVMoImk5MTUgZG9lcyBub3QgeWV0IHN1cHBvcnQgYXN5bmMgY29t bWl0XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK QEAgLTEyOTAyLDM0ICsxMjkxOCwxNCBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGUoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJLyogRklYTUU6IGFkZCBzdWJwaXhlbCBv cmRlciAqLwogCisJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcyhkZXYsIHN0YXRl KTsKIAlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKLQogCWRy bV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiAKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlu dCBpbnRlbF9zZXRfbW9kZV9jaGVja2VkKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK LXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQlpbnQgcmV0OwotCi0J cmV0ID0gX19pbnRlbF9zZXRfbW9kZShzdGF0ZSk7Ci0JaWYgKHJldCA9PSAwKQorCWlmIChhbnlf bXMpCiAJCWludGVsX21vZGVzZXRfY2hlY2tfc3RhdGUoZGV2KTsKIAotCXJldHVybiByZXQ7Ci19 Ci0KLXN0YXRpYyBpbnQgaW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQotewotCWludCByZXQ7Ci0KLQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmln KHN0YXRlKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIGludGVsX3NldF9t b2RlX2NoZWNrZWQoc3RhdGUpOworCXJldHVybiAwOwogfQogCiB2b2lkIGludGVsX2NydGNfcmVz dG9yZV9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKQEAgLTEyOTU2LDExICsxMjk1MiwxMCBA QCByZXRyeToKIAkJCWdvdG8gb3V0OwogCiAJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRy dWU7Ci0JCXJldCA9IGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RhdGUpOwogCX0KIAog CWlmICghcmV0KQotCQlyZXQgPSBpbnRlbF9zZXRfbW9kZV9jaGVja2VkKHN0YXRlKTsKKwkJcmV0 ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwogCiAJaWYgKHJldCA9PSAtRURFQURMSykgewog CQlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKQEAgLTEyOTc1LDIwMCArMTI5NzAsOSBA QCBvdXQ6CiAKICN1bmRlZiBmb3JfZWFjaF9pbnRlbF9jcnRjX21hc2tlZAogCi1zdGF0aWMgYm9v bCBpbnRlbF9jb25uZWN0b3JfaW5fbW9kZV9zZXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLAotCQkJCQlzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCi17Ci0JaW50IHJvOwotCi0J Zm9yIChybyA9IDA7IHJvIDwgc2V0LT5udW1fY29ubmVjdG9yczsgcm8rKykKLQkJaWYgKHNldC0+ Y29ubmVjdG9yc1tyb10gPT0gJmNvbm5lY3Rvci0+YmFzZSkKLQkJCXJldHVybiB0cnVlOwotCi0J cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW50Ci1pbnRlbF9tb2Rlc2V0X3N0YWdlX291dHB1 dF9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZHJtX21vZGVfc2V0 ICpzZXQsCi0JCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKLXsKLQlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmRybV9j b25uZWN0b3I7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsK LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOwotCWludCBpLCByZXQ7Ci0KLQkvKiBUaGUgdXBwZXIgbGF5ZXJzIGVuc3VyZSB0aGF0IHdl IGVpdGhlciBkaXNhYmxlIGEgY3J0YyBvciBoYXZlIGEgbGlzdAotCSAqIG9mIGNvbm5lY3RvcnMu IEZvciBwYXJhbm9pYSwgZG91YmxlLWNoZWNrIHRoaXMuICovCi0JV0FSTl9PTighc2V0LT5mYiAm JiAoc2V0LT5udW1fY29ubmVjdG9ycyAhPSAwKSk7Ci0JV0FSTl9PTihzZXQtPmZiICYmIChzZXQt Pm51bV9jb25uZWN0b3JzID09IDApKTsKLQotCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3RvcihkZXYs IGNvbm5lY3RvcikgewotCQlib29sIGluX21vZGVfc2V0ID0gaW50ZWxfY29ubmVjdG9yX2luX21v ZGVfc2V0KGNvbm5lY3Rvciwgc2V0KTsKLQotCQlpZiAoIWluX21vZGVfc2V0ICYmIGNvbm5lY3Rv ci0+YmFzZS5zdGF0ZS0+Y3J0YyAhPSBzZXQtPmNydGMpCi0JCQljb250aW51ZTsKLQotCQljb25u ZWN0b3Jfc3RhdGUgPQotCQkJZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCAm Y29ubmVjdG9yLT5iYXNlKTsKLQkJaWYgKElTX0VSUihjb25uZWN0b3Jfc3RhdGUpKQotCQkJcmV0 dXJuIFBUUl9FUlIoY29ubmVjdG9yX3N0YXRlKTsKLQotCQlpZiAoaW5fbW9kZV9zZXQpIHsKLQkJ CWludCBwaXBlID0gdG9faW50ZWxfY3J0YyhzZXQtPmNydGMpLT5waXBlOwotCQkJY29ubmVjdG9y X3N0YXRlLT5iZXN0X2VuY29kZXIgPQotCQkJCSZpbnRlbF9maW5kX2VuY29kZXIoY29ubmVjdG9y LCBwaXBlKS0+YmFzZTsKLQkJfQotCi0JCWlmIChjb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmNydGMg IT0gc2V0LT5jcnRjKQotCQkJY29udGludWU7Ci0KLQkJLyogSWYgd2UgZGlzYWJsZSB0aGUgY3J0 YywgZGlzYWJsZSBhbGwgaXRzIGNvbm5lY3RvcnMuIEFsc28sIGlmCi0JCSAqIHRoZSBjb25uZWN0 b3IgaXMgb24gdGhlIGNoYW5naW5nIGNydGMgYnV0IG5vdCBvbiB0aGUgbmV3Ci0JCSAqIGNvbm5l Y3RvciBsaXN0LCBkaXNhYmxlIGl0LiAqLwotCQlpZiAoIXNldC0+ZmIgfHwgIWluX21vZGVfc2V0 KSB7Ci0JCQljb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlciA9IE5VTEw7Ci0KLQkJCURSTV9E RUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIHRvIFtOT0NSVENdXG4iLAotCQkJCWNvbm5lY3Rv ci0+YmFzZS5iYXNlLmlkLAotCQkJCWNvbm5lY3Rvci0+YmFzZS5uYW1lKTsKLQkJfQotCX0KLQkv KiBjb25uZWN0b3ItPm5ld19lbmNvZGVyIGlzIG5vdyB1cGRhdGVkIGZvciBhbGwgY29ubmVjdG9y cy4gKi8KLQotCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgZHJtX2Nvbm5lY3Rv ciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Ci0JCWNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rv cihkcm1fY29ubmVjdG9yKTsKLQotCQlpZiAoIWNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVy KSB7Ci0JCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IoY29ubmVjdG9y X3N0YXRlLAotCQkJCQkJCQlOVUxMKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKLQot CQkJY29udGludWU7Ci0JCX0KLQotCQlpZiAoaW50ZWxfY29ubmVjdG9yX2luX21vZGVfc2V0KGNv bm5lY3Rvciwgc2V0KSkgewotCQkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY29ubmVjdG9yLT5i YXNlLnN0YXRlLT5jcnRjOwotCi0JCQkvKiBJZiB0aGlzIGNvbm5lY3RvciB3YXMgaW4gYSBwcmV2 aW91cyBjcnRjLCBhZGQgaXQKLQkJCSAqIHRvIHRoZSBzdGF0ZS4gV2UgbWlnaHQgbmVlZCB0byBk aXNhYmxlIGl0LiAqLwotCQkJaWYgKGNydGMpIHsKLQkJCQljcnRjX3N0YXRlID0KLQkJCQkJZHJt X2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JCQkJaWYgKElTX0VSUihjcnRj X3N0YXRlKSkKLQkJCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Ci0JCQl9Ci0KLQkJCXJl dCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3Rvcihjb25uZWN0b3Jfc3RhdGUsCi0J CQkJCQkJCXNldC0+Y3J0Yyk7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7Ci0JCX0KLQot CQkvKiBNYWtlIHN1cmUgdGhlIG5ldyBDUlRDIHdpbGwgd29yayB3aXRoIHRoZSBlbmNvZGVyICov Ci0JCWlmICghZHJtX2VuY29kZXJfY3J0Y19vayhjb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2Rl ciwKLQkJCQkJIGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YykpIHsKLQkJCXJldHVybiAtRUlOVkFMOwot CQl9Ci0KLQkJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gdG8gW0NSVEM6JWRdXG4i LAotCQkJY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCi0JCQljb25uZWN0b3ItPmJhc2UubmFtZSwK LQkJCWNvbm5lY3Rvcl9zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Ci0KLQkJaWYgKGNvbm5lY3Rvcl9z dGF0ZS0+YmVzdF9lbmNvZGVyICE9ICZjb25uZWN0b3ItPmVuY29kZXItPmJhc2UpCi0JCQljb25u ZWN0b3ItPmVuY29kZXIgPQotCQkJCXRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5i ZXN0X2VuY29kZXIpOwotCX0KLQotCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKLQkJYm9vbCBoYXNfY29ubmVjdG9yczsKLQotCQlyZXQgPSBkcm1f YXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsKLQkJaWYgKHJldCkK LQkJCXJldHVybiByZXQ7Ci0KLQkJaGFzX2Nvbm5lY3RvcnMgPSAhIWRybV9hdG9taWNfY29ubmVj dG9yc19mb3JfY3J0YyhzdGF0ZSwgY3J0Yyk7Ci0JCWlmIChoYXNfY29ubmVjdG9ycyAhPSBjcnRj X3N0YXRlLT5lbmFibGUpCi0JCQljcnRjX3N0YXRlLT5lbmFibGUgPQotCQkJY3J0Y19zdGF0ZS0+ YWN0aXZlID0gaGFzX2Nvbm5lY3RvcnM7Ci0JfQotCi0JcmV0ID0gaW50ZWxfbW9kZXNldF9zZXR1 cF9wbGFuZV9zdGF0ZShzdGF0ZSwgc2V0LT5jcnRjLCBzZXQtPm1vZGUsCi0JCQkJCSAgICAgIHNl dC0+ZmIsIHNldC0+eCwgc2V0LT55KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JY3J0 Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIHNldC0+Y3J0Yyk7Ci0J aWYgKElTX0VSUihjcnRjX3N0YXRlKSkKLQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Ci0K LQlpZiAoc2V0LT5tb2RlKQotCQlkcm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5tb2RlLCBzZXQt Pm1vZGUpOwotCi0JaWYgKHNldC0+bnVtX2Nvbm5lY3RvcnMpCi0JCWNydGNfc3RhdGUtPmFjdGl2 ZSA9IHRydWU7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBpbnRlbF9jcnRjX3NldF9j b25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXY7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gTlVMTDsKLQlpbnQgcmV0Owot Ci0JQlVHX09OKCFzZXQpOwotCUJVR19PTighc2V0LT5jcnRjKTsKLQlCVUdfT04oIXNldC0+Y3J0 Yy0+aGVscGVyX3ByaXZhdGUpOwotCi0JLyogRW5mb3JjZSBzYW5lIGludGVyZmFjZSBhcGkgLSBo YXMgYmVlbiBhYnVzZWQgYnkgdGhlIGZiIGhlbHBlci4gKi8KLQlCVUdfT04oIXNldC0+bW9kZSAm JiBzZXQtPmZiKTsKLQlCVUdfT04oc2V0LT5mYiAmJiBzZXQtPm51bV9jb25uZWN0b3JzID09IDAp OwotCi0JaWYgKHNldC0+ZmIpIHsKLQkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdIFtGQjolZF0g I2Nvbm5lY3RvcnM9JWQgKHggeSkgKCVpICVpKVxuIiwKLQkJCQlzZXQtPmNydGMtPmJhc2UuaWQs IHNldC0+ZmItPmJhc2UuaWQsCi0JCQkJKGludClzZXQtPm51bV9jb25uZWN0b3JzLCBzZXQtPngs IHNldC0+eSk7Ci0JfSBlbHNlIHsKLQkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdIFtOT0ZCXVxu Iiwgc2V0LT5jcnRjLT5iYXNlLmlkKTsKLQl9Ci0KLQlkZXYgPSBzZXQtPmNydGMtPmRldjsKLQot CXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhkZXYpOwotCWlmICghc3RhdGUpCi0JCXJl dHVybiAtRU5PTUVNOwotCi0Jc3RhdGUtPmFjcXVpcmVfY3R4ID0gZGV2LT5tb2RlX2NvbmZpZy5h Y3F1aXJlX2N0eDsKLQotCXJldCA9IGludGVsX21vZGVzZXRfc3RhZ2Vfb3V0cHV0X3N0YXRlKGRl diwgc2V0LCBzdGF0ZSk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXQ7Ci0KLQlyZXQgPSBpbnRlbF9t b2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0YXRlKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsKLQot CWludGVsX3VwZGF0ZV9waXBlX3NpemUodG9faW50ZWxfY3J0YyhzZXQtPmNydGMpKTsKLQotCXJl dCA9IGludGVsX3NldF9tb2RlX2NoZWNrZWQoc3RhdGUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0RF QlVHX0tNUygiZmFpbGVkIHRvIHNldCBtb2RlIG9uIFtDUlRDOiVkXSwgZXJyID0gJWRcbiIsCi0J CQkgICAgICBzZXQtPmNydGMtPmJhc2UuaWQsIHJldCk7Ci0JfQotCi1vdXQ6Ci0JaWYgKHJldCkK LQkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGludGVsX2NydGNfZnVuY3MgPSB7CiAJLmdh bW1hX3NldCA9IGludGVsX2NydGNfZ2FtbWFfc2V0LAotCS5zZXRfY29uZmlnID0gaW50ZWxfY3J0 Y19zZXRfY29uZmlnLAorCS5zZXRfY29uZmlnID0gZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZp ZywKIAkuZGVzdHJveSA9IGludGVsX2NydGNfZGVzdHJveSwKIAkucGFnZV9mbGlwID0gaW50ZWxf Y3J0Y19wYWdlX2ZsaXAsCiAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9jcnRjX2R1 cGxpY2F0ZV9zdGF0ZSwKQEAgLTE1MzM4LDcgKzE1MTQyLDcgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0 X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJaTkxNV9yZWRpc2Fi bGVfdmdhKGRldik7CiAKLQkJcmV0ID0gaW50ZWxfc2V0X21vZGUoc3RhdGUpOworCQlyZXQgPSBk cm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9FUlJPUigiRmFp bGVkIHRvIHJlc3RvcmUgcHJldmlvdXMgbW9kZVxuIik7CiAJCQlkcm1fYXRvbWljX3N0YXRlX2Zy ZWUoc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA1MDZhN2UzMjBmYmQuLjg5 NGY3ZGYxMDVjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTEzOTQsMTEgKzEzOTQs NiBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywg dTMyIHN0YXJ0X3ZibF9jb3VudCk7CiB2b2lkIGludGVsX3R2X2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7CiAKIC8qIGludGVsX2F0b21pYy5jICovCi1pbnQgaW50ZWxfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpOwotaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKLQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCWJvb2wgYXN5bmMpOwog aW50IGludGVsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCiAJCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpz dGF0ZSwKIAkJCQkJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCi0tIAoyLjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK