From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v1.1 2/5] drm/atomic: Make prepare_fb/cleanup_fb only take state, v2. Date: Thu, 16 Jul 2015 16:13:08 +0200 Message-ID: <55A7BBF4.404@linux.intel.com> References: <1437051471-15397-1-git-send-email-maarten.lankhorst@linux.intel.com> <1437051471-15397-3-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: In-Reply-To: <1437051471-15397-3-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org VGhpcyByZW1vdmVzIHRoZSBuZWVkIHRvIHNlcGFyYXRlbHkgdHJhY2sgZmIgY2hhbmdlcyBpOTE1 LgogICAgCkNoYW5nZXMgc2luY2UgdjE6Ci0gQWRkIGRyaS1kZXZlbCB0byBjYy4KLSBGaXggYSBj aGVjayBpbiBpbnRlbCdzIHByZXBhcmUgYW5kIGNsZWFudXAgZmIgdG8gdGFrZSByb3RhdGlvbgog IGludG8gYWNjb3VudC4KICAgIApDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpT aWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgotLS0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9h dG1lbF9obGNkY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hs Y2RjX3BsYW5lLmMKaW5kZXggYmU5ZmE4MjIwNDk5Li4zNmZkYTg2YjM1MTggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jCkBAIC03MTIsMTEg KzcxMiwxMyBAQCBzdGF0aWMgaW50IGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1 Y3QgZHJtX3BsYW5lICpwLAogfQogCiBzdGF0aWMgaW50IGF0bWVsX2hsY2RjX3BsYW5lX3ByZXBh cmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcCwKLQkJCQkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIsCiAJCQkJCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKIHsKIAlz dHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lID0gZHJtX3BsYW5lX3RvX2F0bWVsX2hsY2Rj X3BsYW5lKHApOwogCisJaWYgKCFuZXdfc3RhdGUtPmZiKQorCQlyZXR1cm4gMDsKKwogCXJldHVy biBhdG1lbF9obGNkY19sYXllcl91cGRhdGVfc3RhcnQoJnBsYW5lLT5sYXllcik7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggMDg5OGFmYmM5ZTIzLi5lNTJkZmM4Mjhl NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0xMDYzLDE3ICsxMDYzLDE0 IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqZnVuY3M7CiAJ CXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gc3RhdGUtPnBsYW5lc1tpXTsKIAkJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBzdGF0ZS0+cGxhbmVfc3RhdGVzW2ldOwotCQlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKIAogCQlpZiAoIXBsYW5lKQogCQkJY29udGludWU7 CiAKIAkJZnVuY3MgPSBwbGFuZS0+aGVscGVyX3ByaXZhdGU7CiAKLQkJZmIgPSBwbGFuZV9zdGF0 ZS0+ZmI7Ci0KLQkJaWYgKGZiICYmIGZ1bmNzLT5wcmVwYXJlX2ZiKSB7Ci0JCQlyZXQgPSBmdW5j cy0+cHJlcGFyZV9mYihwbGFuZSwgZmIsIHBsYW5lX3N0YXRlKTsKKwkJaWYgKGZ1bmNzLT5wcmVw YXJlX2ZiKSB7CisJCQlyZXQgPSBmdW5jcy0+cHJlcGFyZV9mYihwbGFuZSwgcGxhbmVfc3RhdGUp OwogCQkJaWYgKHJldCkKIAkJCQlnb3RvIGZhaWw7CiAJCX0KQEAgLTEwODYsMTcgKzEwODMsMTQg QEAgZmFpbDoKIAkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwog CQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IHN0YXRlLT5wbGFuZXNbaV07CiAJCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gc3RhdGUtPnBsYW5lX3N0YXRlc1tpXTsKLQkJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CiAKIAkJaWYgKCFwbGFuZSkKIAkJCWNvbnRpbnVl OwogCiAJCWZ1bmNzID0gcGxhbmUtPmhlbHBlcl9wcml2YXRlOwogCi0JCWZiID0gc3RhdGUtPnBs YW5lX3N0YXRlc1tpXS0+ZmI7Ci0KLQkJaWYgKGZiICYmIGZ1bmNzLT5jbGVhbnVwX2ZiKQotCQkJ ZnVuY3MtPmNsZWFudXBfZmIocGxhbmUsIGZiLCBwbGFuZV9zdGF0ZSk7CisJCWlmIChmdW5jcy0+ Y2xlYW51cF9mYikKKwkJCWZ1bmNzLT5jbGVhbnVwX2ZiKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAK IAl9CiAKQEAgLTEyNTIsMTQgKzEyNDYsMTEgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jbGVh bnVwX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZm9yX2VhY2hfcGxhbmVfaW5f c3RhdGUob2xkX3N0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKIAkJY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwotCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpvbGRfZmI7CiAKIAkJZnVuY3MgPSBwbGFuZS0+aGVscGVyX3ByaXZhdGU7CiAKLQkJb2xkX2Zi ID0gcGxhbmVfc3RhdGUtPmZiOwotCi0JCWlmIChvbGRfZmIgJiYgZnVuY3MtPmNsZWFudXBfZmIp Ci0JCQlmdW5jcy0+Y2xlYW51cF9mYihwbGFuZSwgb2xkX2ZiLCBwbGFuZV9zdGF0ZSk7CisJCWlm IChmdW5jcy0+Y2xlYW51cF9mYikKKwkJCWZ1bmNzLT5jbGVhbnVwX2ZiKHBsYW5lLCBwbGFuZV9z dGF0ZSk7CiAJfQogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3Bs YW5lcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwppbmRleCBiMDdhMjEzZjU2NTUuLjAz YjdhZmU0NTVlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCkBAIC00MjUsNyArNDI1 LDcgQEAgaW50IGRybV9wbGFuZV9oZWxwZXJfY29tbWl0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCiAJaWYgKHBsYW5lX2Z1bmNzLT5wcmVwYXJlX2ZiICYmIHBsYW5lX3N0YXRlLT5mYiAmJgog CSAgICBwbGFuZV9zdGF0ZS0+ZmIgIT0gb2xkX2ZiKSB7Ci0JCXJldCA9IHBsYW5lX2Z1bmNzLT5w cmVwYXJlX2ZiKHBsYW5lLCBwbGFuZV9zdGF0ZS0+ZmIsCisJCXJldCA9IHBsYW5lX2Z1bmNzLT5w cmVwYXJlX2ZiKHBsYW5lLAogCQkJCQkgICAgICBwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQpCiAJ CQlnb3RvIG91dDsKQEAgLTQ3OCw4ICs0NzgsOCBAQCBpbnQgZHJtX3BsYW5lX2hlbHBlcl9jb21t aXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXJldCA9IDA7CiAJfQogCi0JaWYgKHBsYW5l X2Z1bmNzLT5jbGVhbnVwX2ZiICYmIG9sZF9mYikKLQkJcGxhbmVfZnVuY3MtPmNsZWFudXBfZmIo cGxhbmUsIG9sZF9mYiwgcGxhbmVfc3RhdGUpOworCWlmIChwbGFuZV9mdW5jcy0+Y2xlYW51cF9m YikKKwkJcGxhbmVfZnVuY3MtPmNsZWFudXBfZmIocGxhbmUsIHBsYW5lX3N0YXRlKTsKIG91dDoK IAlpZiAocGxhbmVfc3RhdGUpIHsKIAkJaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2Rlc3Ryb3lf c3RhdGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggN2RiZmVhY2YwZjM4 Li5iMzk5MDI2NGUxMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTQ3 NzUsMTcgKzQ3NzUsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNl LmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjX2F0b21pY19jb21taXQgKmF0b21pYyA9ICZjcnRjLT5h dG9taWM7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcDsKLQotCS8qIFRyYWNrIGZiJ3MgZm9yIGFueSBw bGFuZXMgYmVpbmcgZGlzYWJsZWQgKi8KLQlkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwLCBkZXYs IGF0b21pYy0+ZGlzYWJsZWRfcGxhbmVzKSB7Ci0JCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwKTsKLQotCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 Ci0JCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihwbGFuZS0+YmFzZS5mYiksIE5VTEws Ci0JCQkJICBwbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7Ci0JfQogCiAJaWYgKGF0b21pYy0+d2FpdF9mb3JfZmxpcHMpCiAJCWludGVs X2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcygmY3J0Yy0+YmFzZSk7CkBAIC0xMTY2OCwxNCAr MTE2NTcsNiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCS8qCi0JICog RGlzYWJsaW5nIGEgcGxhbmUgaXMgYWx3YXlzIG9rYXk7IHdlIGp1c3QgbmVlZCB0byB1cGRhdGUK LQkgKiBmYiB0cmFja2luZyBpbiBhIHNwZWNpYWwgd2F5IHNpbmNlIGNsZWFudXBfZmIoKSB3b24n dAotCSAqIGdldCBjYWxsZWQgYnkgdGhlIHBsYW5lIGhlbHBlcnMuCi0JICovCi0JaWYgKG9sZF9w bGFuZV9zdGF0ZS0+YmFzZS5mYiAmJiAhZmIpCi0JCWludGVsX2NydGMtPmF0b21pYy5kaXNhYmxl ZF9wbGFuZXMgfD0gMSA8PCBpOwotCiAJd2FzX3Zpc2libGUgPSBvbGRfcGxhbmVfc3RhdGUtPnZp c2libGU7CiAJdmlzaWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+dmlz aWJsZTsKIApAQCAtMTM0NzksMjEgKzEzNDYwLDI2IEBAIHN0YXRpYyB2b2lkIGludGVsX3NoYXJl ZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKICAqLwogaW50CiBpbnRlbF9wcmVw YXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkgICAgICAgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpuZXdfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBuZXdfc3RhdGUtPmZiOwogCXN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPmZiKTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3Rh dGUtPmZiKTsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICghb2JqKQorCWlmICghb2JqICYmICFvbGRf b2JqKQorCQlyZXR1cm4gMDsKKworCWlmIChvYmogPT0gb2xkX29iaiAmJiBuZXdfc3RhdGUtPnJv dGF0aW9uID09IHBsYW5lLT5zdGF0ZS0+cm90YXRpb24pCiAJCXJldHVybiAwOwogCiAJbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCi0JaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFO RV9UWVBFX0NVUlNPUiAmJgorCWlmICghb2JqKSB7CisJCXJldCA9IDA7CisJfSBlbHNlIGlmIChw bGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgJiYKIAkgICAgSU5URUxfSU5GTyhk ZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2ljYWwpIHsKIAkJaW50IGFsaWduID0gSVNfSTgzMChkZXYp ID8gMTYgKiAxMDI0IDogMjU2OwogCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNoX3BoeXMo b2JqLCBhbGlnbik7CkBAIC0xMzUyMCwyMSArMTM1MDYsMjkgQEAgaW50ZWxfcHJlcGFyZV9wbGFu ZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKICAqLwogdm9pZAogaW50ZWxfY2xlYW51cF9w bGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAogCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xk X3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OwotCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBp bnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoob2xkX3N0YXRlLT5m Yik7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihwbGFu ZS0+ZmIpOwogCi0JaWYgKFdBUk5fT04oIW9iaikpCisJaWYgKCFvYmogJiYgIW9sZF9vYmopCiAJ CXJldHVybjsKIAotCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgfHwK LQkgICAgIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7Ci0JCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJaW50ZWxfdW5waW5fZmJfb2JqKGZiLCBvbGRf c3RhdGUpOwotCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQl9CisJaWYgKG9i aiA9PSBvbGRfb2JqICYmIG9sZF9zdGF0ZS0+cm90YXRpb24gPT0gcGxhbmUtPnN0YXRlLT5yb3Rh dGlvbikKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlm IChvbGRfb2JqICYmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgfHwKKwkg ICAgIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSkKKwkJaW50ZWxfdW5w aW5fZmJfb2JqKG9sZF9zdGF0ZS0+ZmIsIG9sZF9zdGF0ZSk7CisKKwkvKiBwcmVwYXJlX2ZiIGFi b3J0ZWQ/ICovCisJaWYgKChvbGRfb2JqICYmIChvbGRfb2JqLT5mcm9udGJ1ZmZlcl9iaXRzICYg aW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCkpIHx8CisJICAgIChvYmogJiYgIShvYmotPmZy b250YnVmZmVyX2JpdHMgJiBpbnRlbF9wbGFuZS0+ZnJvbnRidWZmZXJfYml0KSkpCisJCWk5MTVf Z2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwgaW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCk7 CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiB9CiAKIGludApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCAzYjAwZDAwYzBiYzAuLmJlZThhOTY2OTQ4MiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTQ5Nyw3ICs0OTcsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19h dG9taWNfY29tbWl0IHsKIAlib29sIGRpc2FibGVfY3hzcjsKIAlib29sIHByZV9kaXNhYmxlX3By aW1hcnk7CiAJYm9vbCB1cGRhdGVfd21fcHJlLCB1cGRhdGVfd21fcG9zdDsKLQl1bnNpZ25lZCBk aXNhYmxlZF9wbGFuZXM7CiAKIAkvKiBTbGVlcGFibGUgb3BlcmF0aW9ucyB0byBwZXJmb3JtIGFm dGVyIGNvbW1pdCAqLwogCXVuc2lnbmVkIGZiX2JpdHM7CkBAIC0xMDM5LDEwICsxMDM4LDggQEAg dm9pZCBpbnRlbF9maW5pc2hfcGFnZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBw aXBlKTsKIHZvaWQgaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9wbGFuZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBpbnQgcGxhbmUpOwogdm9pZCBpbnRlbF9jaGVja19wYWdlX2ZsaXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwogaW50IGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK IAkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSk7CiB2b2lkIGlu dGVsX2NsZWFudXBfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICAgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqb2xkX3N0YXRlKTsKIGludCBpbnRlbF9wbGFuZV9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpzdGF0ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRw NF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X3BsYW5lLmMKaW5k ZXggMGQxZGJiNzM3OTMzLi42MGU4M2MzNzY1YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDQvbWRwNF9wbGFuZS5jCkBAIC05OCwyMiArOTgsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fcGxhbmVfZnVuY3MgbWRwNF9wbGFuZV9mdW5jcyA9IHsKIH07CiAKIHN0YXRpYyBpbnQg bWRwNF9wbGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3 X3N0YXRlKQogewogCXN0cnVjdCBtZHA0X3BsYW5lICptZHA0X3BsYW5lID0gdG9fbWRwNF9wbGFu ZShwbGFuZSk7CiAJc3RydWN0IG1kcDRfa21zICptZHA0X2ttcyA9IGdldF9rbXMocGxhbmUpOwor CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3N0YXRlLT5mYjsKKworCWlmICghZmIp CisJCXJldHVybiAwOwogCiAJREJHKCIlczogcHJlcGFyZTogRkJbJXVdIiwgbWRwNF9wbGFuZS0+ bmFtZSwgZmItPmJhc2UuaWQpOwogCXJldHVybiBtc21fZnJhbWVidWZmZXJfcHJlcGFyZShmYiwg bWRwNF9rbXMtPmlkKTsKIH0KIAogc3RhdGljIHZvaWQgbWRwNF9wbGFuZV9jbGVhbnVwX2ZiKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJ Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewogCXN0cnVjdCBtZHA0 X3BsYW5lICptZHA0X3BsYW5lID0gdG9fbWRwNF9wbGFuZShwbGFuZSk7CiAJc3RydWN0IG1kcDRf a21zICptZHA0X2ttcyA9IGdldF9rbXMocGxhbmUpOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gb2xkX3N0YXRlLT5mYjsKKworCWlmICghZmIpCisJCXJldHVybjsKIAogCURCRygiJXM6 IGNsZWFudXA6IEZCWyV1XSIsIG1kcDRfcGxhbmUtPm5hbWUsIGZiLT5iYXNlLmlkKTsKIAltc21f ZnJhbWVidWZmZXJfY2xlYW51cChmYiwgbWRwNF9rbXMtPmlkKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKaW5kZXggNTdiOGY1NmFlOWQwLi5kMGY2MjdiOTYyZjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCkBAIC0xNTYsMTEg KzE1NiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBtZHA1X3BsYW5l X2Z1bmNzID0gewogfTsKIAogc3RhdGljIGludCBtZHA1X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCi0JCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQljb25z dCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpCiB7CiAJc3RydWN0IG1kcDVfcGxh bmUgKm1kcDVfcGxhbmUgPSB0b19tZHA1X3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgbWRwNV9rbXMg Km1kcDVfa21zID0gZ2V0X2ttcyhwbGFuZSk7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBuZXdfc3RhdGUtPmZiOworCisJaWYgKCFuZXdfc3RhdGUtPmZiKQorCQlyZXR1cm4gMDsKIAog CURCRygiJXM6IHByZXBhcmU6IEZCWyV1XSIsIG1kcDVfcGxhbmUtPm5hbWUsIGZiLT5iYXNlLmlk KTsKIAlyZXR1cm4gbXNtX2ZyYW1lYnVmZmVyX3ByZXBhcmUoZmIsIG1kcDVfa21zLT5pZCk7CkBA IC0xNzIsNiArMTc1LDEwIEBAIHN0YXRpYyB2b2lkIG1kcDVfcGxhbmVfY2xlYW51cF9mYihzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIHsKIAlzdHJ1Y3QgbWRwNV9wbGFuZSAqbWRwNV9wbGFuZSA9 IHRvX21kcDVfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSBnZXRf a21zKHBsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IG9sZF9zdGF0ZS0+ZmI7 CisKKwlpZiAoIWZiKQorCQlyZXR1cm47CiAKIAlEQkcoIiVzOiBjbGVhbnVwOiBGQlsldV0iLCBt ZHA1X3BsYW5lLT5uYW1lLCBmYi0+YmFzZS5pZCk7CiAJbXNtX2ZyYW1lYnVmZmVyX2NsZWFudXAo ZmIsIG1kcDVfa21zLT5pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKaW5kZXgg MDk4OTA0Njk2YTVjLi4wOWUzNjNiYjU1ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL29tYXBfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3Bs YW5lLmMKQEAgLTYwLDE3ICs2MCwxOSBAQCB0b19vbWFwX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnN0YXRlKQogfQogCiBzdGF0aWMgaW50IG9tYXBfcGxhbmVfcHJlcGFyZV9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIsCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKIHsKLQly ZXR1cm4gb21hcF9mcmFtZWJ1ZmZlcl9waW4oZmIpOworCWlmICghbmV3X3N0YXRlLT5mYikKKwkJ cmV0dXJuIDA7CisKKwlyZXR1cm4gb21hcF9mcmFtZWJ1ZmZlcl9waW4obmV3X3N0YXRlLT5mYik7 CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKLQkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewotCW9tYXBfZnJhbWVidWZmZXJf dW5waW4oZmIpOworCWlmIChvbGRfc3RhdGUtPmZiKQorCQlvbWFwX2ZyYW1lYnVmZmVyX3VucGlu KG9sZF9zdGF0ZS0+ZmIpOwogfQogCiBzdGF0aWMgdm9pZCBvbWFwX3BsYW5lX2F0b21pY191cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c3RpL3N0aV9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2RybV9wbGFuZS5j CmluZGV4IDY0ZDRlZDQzZGRhMy4uZjM3MTcyOTJlNzQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9k cm1fcGxhbmUuYwpAQCAtMTQ3LDE0ICsxNDcsMTIgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVf ZnVuY3Mgc3RpX2RybV9wbGFuZV9mdW5jcyA9IHsKIH07CiAKIHN0YXRpYyBpbnQgc3RpX2RybV9w bGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJCSAgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkJICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpu ZXdfc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHN0aV9kcm1fcGxhbmVf Y2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkgICBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRf ZmIpCiB7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyBiL2RyaXZl cnMvZ3B1L2RybS90ZWdyYS9kYy5jCmluZGV4IGEyODdlNGZlYzg2NS4uZDQ0NzcwMTE3M2U2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdGVncmEvZGMuYwpAQCAtNDcyLDE0ICs0NzIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfZnVuY3MgdGVncmFfcHJpbWFyeV9wbGFuZV9mdW5jcyA9IHsKIH07CiAKIHN0YXRp YyBpbnQgdGVncmFfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJ CQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgY29uc3Qgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqbmV3X3N0YXRlKQogewogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCB0 ZWdyYV9wbGFuZV9jbGVhbnVwX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJCSAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKm9sZF9mYikKIHsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9o ZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaAppbmRleCA5NmUxNjI4M2Fm YjkuLjVmZmNhNGU1MWU0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBl ci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaApAQCAtNTksMTAgKzU5LDgg QEAgZXh0ZXJuIGludCBkcm1fY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAgKi8K IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHsKIAlpbnQgKCpwcmVwYXJlX2ZiKShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCSAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJ CQkgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSk7CiAJdm9pZCAoKmNs ZWFudXBfZmIpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJICAgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIsCiAJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3Rh dGUpOwogCiAJaW50ICgqYXRvbWljX2NoZWNrKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==