From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 5/6] drm/atomic: Fix freeing connector/plane state too early by tracking commits, v3. Date: Mon, 4 Sep 2017 12:48:37 +0200 Message-ID: <20170904104838.23822-6-maarten.lankhorst@linux.intel.com> References: <20170904104838.23822-1-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: <20170904104838.23822-1-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: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org Q3VycmVudGx5IHdlIG5lYXRseSB0cmFjayB0aGUgY3J0YyBzdGF0ZSwgYnV0IGZvcmdldCB0byBs b29rIGF0CnBsYW5lL2Nvbm5lY3RvciBzdGF0ZS4KCldoZW4gZG9pbmcgYSBub25ibG9ja2luZyBt b2Rlc2V0LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIHNldHByb3AKYmVmb3JlIHRoZSBtb2Rl c2V0IGNvbXBsZXRlcywgdGhlIHNldHByb3Agd2lsbCBzZWUgdGhlIG1vZGVzZXRzIG5ldwpzdGF0 ZSBhcyB0aGUgb2xkIHN0YXRlIGFuZCBmcmVlIGl0LgoKVGhpcyBoYXMgdG8gYmUgc29sdmVkIGJ5 IHdhaXRpbmcgZm9yIGh3X2RvbmUgb24gdGhlIGNvbm5lY3RvciwgZXZlbgppZiBpdCdzIG5vdCBh c3NpZ25lZCB0byBhIGNydGMuIFdoZW4gYSBjb25uZWN0b3IgaXMgdW5ib3VuZCB3ZSB0YWtlCnRo ZSBsYXN0IGNydGMgY29tbWl0LCBhbmQgd2hlbiBpdCBzdGF5cyB1bmJvdW5kIHdlIGNyZWF0ZSBh IG5ldwpmYWtlIGNydGMgY29tbWl0IGZvciB0aGF0IGdldHMgc2lnbmFsZWQgb24gaHdfZG9uZSBm b3IgYWxsIHRoZQpwbGFuZXMvY29ubmVjdG9ycy4KCldlIHdhaXQgZm9yIGl0IHRoZSBzYW1lIHdh eSBhcyB3ZSBkbyBmb3IgY3J0YydzLCB3aGljaCB3aWxsIG1ha2UKc3VyZSB3ZSBuZXZlciBydW4g aW50byBhIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbi4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gT25s eSBjcmVhdGUgYSBzaW5nbGUgZGlzYWJsZSBjb21taXQuIChkYW52ZXQpCi0gRml4IGxlYWsgaW4g aW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUuCkNoYW5nZXMgc2luY2UgdjI6Ci0gTWFrZSByZWZl cmVuY2UgY291bnRpbmcgaW4gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0CiAgbW9yZSBv YnZpb3VzLiAocGluY2hhcnRsKQotIENhbGwgY2xlYW51cF9kb25lIGZvciBmYWtlIGNvbW1pdC4g KGRhbnZldCkKLSBBZGQgY29tbWVudHMgdG8gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0 LiAoZGFudmV0LCBwaW5jaGFydGwpCi0gQWRkIGNvbW1lbnQgdG8gZHJtX2F0b21pY19oZWxwZXJf c3dhcF9zdGF0ZS4gKHBpbmNoYXJ0bCkKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClRlc3RjYXNlOiBrbXNfYXRvbWlj X3RyYW5zaXRpb24ucGxhbmUtdXNlLWFmdGVyLW5vbmJsb2NraW5nLXVuYmluZCoKQ2M6IExhdXJl bnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgfCAgIDQgKwogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMgIHwgMTcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgIDIgKwogaW5j bHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgIHwgIDEyICsrKwogaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgIHwgICA3ICsrCiBpbmNsdWRlL2RybS9kcm1fcGxhbmUu aCAgICAgICAgICAgICAgfCAgIDcgKysKIDYgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggMmNjZTQ4ZjIwM2UwLi43 NWY1Zjc0ZGU5YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMTkyLDYgKzE5MiwxMCBAQCB2b2lk IGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCiAJfQogCXN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzID0gMDsKIAorCWlmIChzdGF0ZS0+ ZmFrZV9jb21taXQpIHsKKwkJZHJtX2NydGNfY29tbWl0X3B1dChzdGF0ZS0+ZmFrZV9jb21taXQp OworCQlzdGF0ZS0+ZmFrZV9jb21taXQgPSBOVUxMOworCX0KIH0KIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwppbmRleCAwNDYyOWQ4ODMxMTQuLmM4MWQ0NjkyN2E3NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMKQEAgLTE2NjcsNiArMTY2NywzOCBAQCBzdGF0aWMgdm9pZCByZWxlYXNl X2NydGNfY29tbWl0KHN0cnVjdCBjb21wbGV0aW9uICpjb21wbGV0aW9uKQogCWRybV9jcnRjX2Nv bW1pdF9wdXQoY29tbWl0KTsKIH0KIAorc3RhdGljIHZvaWQgaW5pdF9jb21taXQoc3RydWN0IGRy bV9jcnRjX2NvbW1pdCAqY29tbWl0LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJaW5pdF9j b21wbGV0aW9uKCZjb21taXQtPmZsaXBfZG9uZSk7CisJaW5pdF9jb21wbGV0aW9uKCZjb21taXQt Pmh3X2RvbmUpOworCWluaXRfY29tcGxldGlvbigmY29tbWl0LT5jbGVhbnVwX2RvbmUpOworCUlO SVRfTElTVF9IRUFEKCZjb21taXQtPmNvbW1pdF9lbnRyeSk7CisJa3JlZl9pbml0KCZjb21taXQt PnJlZik7CisJY29tbWl0LT5jcnRjID0gY3J0YzsKK30KKworc3RhdGljIHN0cnVjdCBkcm1fY3J0 Y19jb21taXQgKgorY3J0Y19vcl9mYWtlX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlpZiAoY3J0YykgeworCQlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOworCisJCW5ld19jcnRjX3N0YXRlID0gZHJt X2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCisJCXJldHVybiBuZXdf Y3J0Y19zdGF0ZS0+Y29tbWl0OworCX0KKworCWlmICghc3RhdGUtPmZha2VfY29tbWl0KSB7CisJ CXN0YXRlLT5mYWtlX2NvbW1pdCA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZS0+ZmFrZV9jb21taXQp LCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFzdGF0ZS0+ZmFrZV9jb21taXQpCisJCQlyZXR1cm4gTlVM TDsKKworCQlpbml0X2NvbW1pdChzdGF0ZS0+ZmFrZV9jb21taXQsIE5VTEwpOworCX0KKworCXJl dHVybiBzdGF0ZS0+ZmFrZV9jb21taXQ7Cit9CisKIC8qKgogICogZHJtX2F0b21pY19oZWxwZXJf c2V0dXBfY29tbWl0IC0gc2V0dXAgcG9zc2libHkgbm9uYmxvY2tpbmcgY29tbWl0CiAgKiBAc3Rh dGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNvbW1pdHRlZApAQCAtMTcxNSw2ICsxNzQ3LDEw IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLAogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7CisJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm47CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0 YXRlLCAqbmV3X2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwogCXN0 cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKIAlpbnQgaSwgcmV0OwogCkBAIC0xNzIzLDEy ICsxNzU5LDcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdChzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCWlmICghY29tbWl0KQogCQkJcmV0dXJuIC1FTk9NRU07 CiAKLQkJaW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmZsaXBfZG9uZSk7Ci0JCWluaXRfY29tcGxl dGlvbigmY29tbWl0LT5od19kb25lKTsKLQkJaW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmNsZWFu dXBfZG9uZSk7Ci0JCUlOSVRfTElTVF9IRUFEKCZjb21taXQtPmNvbW1pdF9lbnRyeSk7Ci0JCWty ZWZfaW5pdCgmY29tbWl0LT5yZWYpOwotCQljb21taXQtPmNydGMgPSBjcnRjOworCQlpbml0X2Nv bW1pdChjb21taXQsIGNydGMpOwogCiAJCW5ld19jcnRjX3N0YXRlLT5jb21taXQgPSBjb21taXQ7 CiAKQEAgLTE3NjQsNiArMTc5NSw0MiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29t bWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJZHJtX2NydGNfY29tbWl0X2dl dChjb21taXQpOwogCX0KIAorCWZvcl9lYWNoX29sZG5ld19jb25uZWN0b3JfaW5fc3RhdGUoc3Rh dGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQkvKiBjb21t aXQgdHJhY2tlZCB0aHJvdWdoIG5ld19jcnRjX3N0YXRlLT5jb21taXQsIG5vIG5lZWQgdG8gZG8g aXQgZXhwbGljaXRseSAqLworCQlpZiAobmV3X2Nvbm5fc3RhdGUtPmNydGMpCisJCQljb250aW51 ZTsKKworCQkvKiBVc2Vyc3BhY2UgaXMgbm90IGFsbG93ZWQgdG8gZ2V0IGFoZWFkIG9mIHRoZSBw cmV2aW91cworCQkgKiBjb21taXQgd2l0aCBub25ibG9ja2luZyBvbmVzLiAqLworCQlpZiAobm9u YmxvY2sgJiYgb2xkX2Nvbm5fc3RhdGUtPmNvbW1pdCAmJgorCQkgICAgIXRyeV93YWl0X2Zvcl9j b21wbGV0aW9uKCZvbGRfY29ubl9zdGF0ZS0+Y29tbWl0LT5mbGlwX2RvbmUpKQorCQkJcmV0dXJu IC1FQlVTWTsKKworCQljb21taXQgPSBjcnRjX29yX2Zha2VfY29tbWl0KHN0YXRlLCBvbGRfY29u bl9zdGF0ZS0+Y3J0Yyk7CisJCWlmICghY29tbWl0KQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJ bmV3X2Nvbm5fc3RhdGUtPmNvbW1pdCA9IGRybV9jcnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKKwl9 CisKKwlmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxh bmVfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSwgaSkgeworCQkvKiBjb21taXQgdHJhY2tlZCB0aHJv dWdoIG5ld19jcnRjX3N0YXRlLT5jb21taXQsIG5vIG5lZWQgdG8gZG8gaXQgZXhwbGljaXRseSAq LworCQlpZiAobmV3X3BsYW5lX3N0YXRlLT5jcnRjKQorCQkJY29udGludWU7CisKKwkJLyogVXNl cnNwYWNlIGlzIG5vdCBhbGxvd2VkIHRvIGdldCBhaGVhZCBvZiB0aGUgcHJldmlvdXMKKwkJICog Y29tbWl0IHdpdGggbm9uYmxvY2tpbmcgb25lcy4gKi8KKwkJaWYgKG5vbmJsb2NrICYmIG9sZF9w bGFuZV9zdGF0ZS0+Y29tbWl0ICYmCisJCSAgICAhdHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oJm9s ZF9wbGFuZV9zdGF0ZS0+Y29tbWl0LT5mbGlwX2RvbmUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKwor CQljb21taXQgPSBjcnRjX29yX2Zha2VfY29tbWl0KHN0YXRlLCBvbGRfcGxhbmVfc3RhdGUtPmNy dGMpOworCQlpZiAoIWNvbW1pdCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCW5ld19wbGFuZV9z dGF0ZS0+Y29tbWl0ID0gZHJtX2NydGNfY29tbWl0X2dldChjb21taXQpOworCX0KKwogCXJldHVy biAwOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQpOwpA QCAtMTc4NCw2ICsxODUxLDEwIEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVw ZW5kZW5jaWVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7 CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xk X3BsYW5lX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCXN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0 ICpjb21taXQ7CiAJaW50IGk7CiAJbG9uZyByZXQ7CkBAIC0xODA4LDYgKzE4NzksNDggQEAgdm9p ZCBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAkJCURSTV9FUlJPUigiW0NSVEM6JWQ6JXNdIGZsaXBfZG9u ZSB0aW1lZCBvdXRcbiIsCiAJCQkJICBjcnRjLT5iYXNlLmlkLCBjcnRjLT5uYW1lKTsKIAl9CisK Kwlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nv bm5fc3RhdGUsIGkpIHsKKwkJY29tbWl0ID0gb2xkX2Nvbm5fc3RhdGUtPmNvbW1pdDsKKworCQlp ZiAoIWNvbW1pdCkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25f dGltZW91dCgmY29tbWl0LT5od19kb25lLAorCQkJCQkJICAxMCpIWik7CisJCWlmIChyZXQgPT0g MCkKKwkJCURSTV9FUlJPUigiW0NPTk5FQ1RPUjolZDolc10gaHdfZG9uZSB0aW1lZCBvdXRcbiIs CisJCQkJICBjb25uLT5iYXNlLmlkLCBjb25uLT5uYW1lKTsKKworCQkvKiBDdXJyZW50bHkgbm8g c3VwcG9ydCBmb3Igb3ZlcndyaXRpbmcgZmxpcHMsIGhlbmNlCisJCSAqIHN0YWxsIGZvciBwcmV2 aW91cyBvbmUgdG8gZXhlY3V0ZSBjb21wbGV0ZWx5LiAqLworCQlyZXQgPSB3YWl0X2Zvcl9jb21w bGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+ZmxpcF9kb25lLAorCQkJCQkJICAxMCpIWik7CisJCWlm IChyZXQgPT0gMCkKKwkJCURSTV9FUlJPUigiW0NPTk5FQ1RPUjolZDolc10gZmxpcF9kb25lIHRp bWVkIG91dFxuIiwKKwkJCQkgIGNvbm4tPmJhc2UuaWQsIGNvbm4tPm5hbWUpOworCX0KKworCWZv cl9lYWNoX29sZF9wbGFuZV9pbl9zdGF0ZShvbGRfc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3Rh dGUsIGkpIHsKKwkJY29tbWl0ID0gb2xkX3BsYW5lX3N0YXRlLT5jb21taXQ7CisKKwkJaWYgKCFj b21taXQpCisJCQljb250aW51ZTsKKworCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVv dXQoJmNvbW1pdC0+aHdfZG9uZSwKKwkJCQkJCSAgMTAqSFopOworCQlpZiAocmV0ID09IDApCisJ CQlEUk1fRVJST1IoIltQTEFORTolZDolc10gaHdfZG9uZSB0aW1lZCBvdXRcbiIsCisJCQkJICBw bGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUpOworCisJCS8qIEN1cnJlbnRseSBubyBzdXBwb3J0 IGZvciBvdmVyd3JpdGluZyBmbGlwcywgaGVuY2UKKwkJICogc3RhbGwgZm9yIHByZXZpb3VzIG9u ZSB0byBleGVjdXRlIGNvbXBsZXRlbHkuICovCisJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25f dGltZW91dCgmY29tbWl0LT5mbGlwX2RvbmUsCisJCQkJCQkgIDEwKkhaKTsKKwkJaWYgKHJldCA9 PSAwKQorCQkJRFJNX0VSUk9SKCJbUExBTkU6JWQ6JXNdIGZsaXBfZG9uZSB0aW1lZCBvdXRcbiIs CisJCQkJICBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUpOworCX0KIH0KIEVYUE9SVF9TWU1C T0woZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKIApAQCAtMTg0Miw2 ICsxOTU1LDExIEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAkJV0FSTl9PTihuZXdfY3J0Y19zdGF0ZS0+ ZXZlbnQpOwogCQljb21wbGV0ZV9hbGwoJmNvbW1pdC0+aHdfZG9uZSk7CiAJfQorCisJaWYgKG9s ZF9zdGF0ZS0+ZmFrZV9jb21taXQpIHsKKwkJY29tcGxldGVfYWxsKCZvbGRfc3RhdGUtPmZha2Vf Y29tbWl0LT5od19kb25lKTsKKwkJY29tcGxldGVfYWxsKCZvbGRfc3RhdGUtPmZha2VfY29tbWl0 LT5mbGlwX2RvbmUpOworCX0KIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29t bWl0X2h3X2RvbmUpOwogCkBAIC0xODc1LDYgKzE5OTMsOSBAQCB2b2lkIGRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0 ZSkKIAkJbGlzdF9kZWwoJmNvbW1pdC0+Y29tbWl0X2VudHJ5KTsKIAkJc3Bpbl91bmxvY2soJmNy dGMtPmNvbW1pdF9sb2NrKTsKIAl9CisKKwlpZiAob2xkX3N0YXRlLT5mYWtlX2NvbW1pdCkKKwkJ Y29tcGxldGVfYWxsKCZvbGRfc3RhdGUtPmZha2VfY29tbWl0LT5jbGVhbnVwX2RvbmUpOwogfQog RVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25lKTsKIApA QCAtMjI1NCw2ICsyMzc1LDE1IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUg Km9sZF9vYmpfc3RhdGUsICpuZXdfb2JqX3N0YXRlOwogCiAJaWYgKHN0YWxsKSB7CisJCS8qCisJ CSAqIFdlIGhhdmUgdG8gc3RhbGwgZm9yIGh3X2RvbmUgaGVyZSBiZWZvcmUKKwkJICogZHJtX2F0 b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKCkgYmVjYXVzZSBmbGlwCisJCSAqIGRl cHRoID4gMSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgZHJpdmVycy4gQXMgbG9uZyBhcwor CQkgKiBvYmotPnN0YXRlIGlzIGRpcmVjdGx5IGRlcmVmZXJlbmNlZCBhbnl3aGVyZSBpbiB0aGUg ZHJpdmVycworCQkgKiBhdG9taWNfY29tbWl0X3RhaWwgZnVuY3Rpb24sIHRoZW4gaXQncyB1bnNh ZmUgdG8gc3dhcCBzdGF0ZQorCQkgKiBiZWZvcmUgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3 X2RvbmUoKSBpcyBjYWxsZWQuCisJCSAqLworCiAJCWZvcl9lYWNoX29sZF9jcnRjX2luX3N0YXRl KHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkgewogCQkJY29tbWl0ID0gb2xkX2NydGNf c3RhdGUtPmNvbW1pdDsKIApAQCAtMjI2NCw2ICsyMzk0LDI4IEBAIGludCBkcm1fYXRvbWljX2hl bHBlcl9zd2FwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCWlmIChy ZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQorCisJCWZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5f c3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKKwkJCWNvbW1pdCA9 IG9sZF9jb25uX3N0YXRlLT5jb21taXQ7CisKKwkJCWlmICghY29tbWl0KQorCQkJCWNvbnRpbnVl OworCisJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+ aHdfZG9uZSk7CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CisJCX0KKworCQlmb3JfZWFj aF9vbGRfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsIGkpIHsK KwkJCWNvbW1pdCA9IG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0OworCisJCQlpZiAoIWNvbW1pdCkK KwkJCQljb250aW51ZTsKKworCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRp YmxlKCZjb21taXQtPmh3X2RvbmUpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQl9 CiAJfQogCiAJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVj dG9yLCBvbGRfY29ubl9zdGF0ZSwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKQEAgLTMyNDYsNiArMzM5 OCw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWRybV9mcmFtZWJ1ZmZlcl9nZXQoc3RhdGUtPmZiKTsK IAogCXN0YXRlLT5mZW5jZSA9IE5VTEw7CisJc3RhdGUtPmNvbW1pdCA9IE5VTEw7CiB9CiBFWFBP UlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKIApA QCAtMzI4Nyw2ICszNDQwLDkgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ry b3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAKIAlpZiAoc3RhdGUtPmZl bmNlKQogCQlkbWFfZmVuY2VfcHV0KHN0YXRlLT5mZW5jZSk7CisKKwlpZiAoc3RhdGUtPmNvbW1p dCkKKwkJZHJtX2NydGNfY29tbWl0X3B1dChzdGF0ZS0+Y29tbWl0KTsKIH0KIEVYUE9SVF9TWU1C T0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKTsKIApAQCAtMzM2NSw2 ICszNTIxLDcgQEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJbWVtY3B5KHN0YXRlLCBjb25uZWN0 b3ItPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CiAJaWYgKHN0YXRlLT5jcnRjKQogCQlkcm1fY29u bmVjdG9yX2dldChjb25uZWN0b3IpOworCXN0YXRlLT5jb21taXQgPSBOVUxMOwogfQogRVhQT1JU X1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUpOwog CkBAIC0zNDkxLDYgKzM2NDgsOSBAQCBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0 cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSkKIHsKIAlpZiAoc3Rh dGUtPmNydGMpCiAJCWRybV9jb25uZWN0b3JfcHV0KHN0YXRlLT5jb25uZWN0b3IpOworCisJaWYg KHN0YXRlLT5jb21taXQpCisJCWRybV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmNvbW1pdCk7CiB9 CiBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3Rh dGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYTZjZjFjMjBjNzEy Li43YWJiYzc2MWE2MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEz MTMyLDggKzEzMTMyLDEwIEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCiAJLyogU3dhcCBwbGFuZSBzdGF0ZSAqLwogCW5ld19wbGFuZV9zdGF0 ZS0+ZmVuY2UgPSBvbGRfcGxhbmVfc3RhdGUtPmZlbmNlOworCW5ld19wbGFuZV9zdGF0ZS0+Y29t bWl0ID0gb2xkX3BsYW5lX3N0YXRlLT5jb21taXQ7CiAJKnRvX2ludGVsX3BsYW5lX3N0YXRlKG9s ZF9wbGFuZV9zdGF0ZSkgPSAqdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3BsYW5lX3N0YXRlKTsK IAluZXdfcGxhbmVfc3RhdGUtPmZlbmNlID0gTlVMTDsKKwluZXdfcGxhbmVfc3RhdGUtPmNvbW1p dCA9IE5VTEw7CiAJbmV3X3BsYW5lX3N0YXRlLT5mYiA9IG9sZF9mYjsKIAl0b19pbnRlbF9wbGFu ZV9zdGF0ZShuZXdfcGxhbmVfc3RhdGUpLT52bWEgPSBOVUxMOwogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKaW5kZXggYTgw YThkYWRlZjAwLi4wN2E3MWRhYTM1ODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9t aWMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKQEAgLTIzNiw2ICsyMzYsMTggQEAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgewogCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCAqYWNxdWlyZV9jdHg7CiAKIAkvKioKKwkgKiBAZmFrZV9jb21taXQ6CisJICoKKwkgKiBVc2Vk IGZvciBzaWduYWxpbmcgdW5ib3VuZCBwbGFuZXMvY29ubmVjdG9ycy4KKwkgKiBXaGVuIGEgY29u bmVjdG9yIG9yIHBsYW5lIGlzIG5vdCBib3VuZCB0byBhbnkgQ1JUQywgaXQncyBzdGlsbCBpbXBv cnRhbnQKKwkgKiB0byBwcmVzZXJ2ZSBsaW5lYXJpdHkgdG8gcHJldmVudCB0aGUgYXRvbWljIHN0 YXRlcyBmcm9tIGJlaW5nIGZyZWVkIHRvIGVhcmx5LgorCSAqCisJICogVGhpcyBjb21taXQgKGlm IHNldCkgaXMgbm90IGJvdW5kIHRvIGFueSBjcnRjLCBidXQgd2lsbCBiZSBjb21wbGV0ZWQgd2hl bgorCSAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCkgaXMgY2FsbGVkLgorCSAq LworCXN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmZha2VfY29tbWl0OworCisJLyoqCiAJICogQGNv bW1pdF93b3JrOgogCSAqCiAJICogV29yayBpdGVtIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHRoZSBk cml2ZXIgb3IgaGVscGVycyB0byBleGVjdXRlIHRoZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4IGVhOGRh NDAxYzkzYy4uODgzNzY0OWQxNmU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC0zNDcsNiArMzQ3LDEz IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKIAogCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZTsKIAorCS8qKgorCSAqIEBjb21taXQ6IFRyYWNrcyB0aGUgcGVuZGluZyBjb21t aXQgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBjb25kaXRpb25zLgorCSAqCisJICogSXMgb25s eSBzZXQgd2hlbiBAY3J0YyBpcyBOVUxMLgorCSAqLworCXN0cnVjdCBkcm1fY3J0Y19jb21taXQg KmNvbW1pdDsKKwogCXN0cnVjdCBkcm1fdHZfY29ubmVjdG9yX3N0YXRlIHR2OwogCiAJLyoqCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFu ZS5oCmluZGV4IDczZjkwZjlkMDU3Zi4uN2Q5NjExNmZkNGM0IDEwMDY0NAotLS0gYS9pbmNsdWRl L2RybS9kcm1fcGxhbmUuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaApAQCAtMTIzLDYg KzEyMywxMyBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKIAkgKi8KIAlib29sIHZpc2libGU7 CiAKKwkvKioKKwkgKiBAY29tbWl0OiBUcmFja3MgdGhlIHBlbmRpbmcgY29tbWl0IHRvIHByZXZl bnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4KKwkgKgorCSAqIElzIG9ubHkgc2V0IHdoZW4g QGNydGMgaXMgTlVMTC4KKwkgKi8KKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7CisK IAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CiB9OwogCi0tIAoyLjExLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=