From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH 34/35] drm/i915: Swap atomic state in legacy modeset Date: Tue, 21 Apr 2015 17:13:23 +0300 Message-ID: <1429625604-22252-35-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1429625604-22252-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3C6B46E5E1 for ; Tue, 21 Apr 2015 07:14:34 -0700 (PDT) In-Reply-To: <1429625604-22252-1-git-send-email-ander.conselvan.de.oliveira@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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org UmVwbGFjZSB0aGUgY29tbWl0IG91dHB1dCBzdGF0ZSBmdW5jdGlvbiB3aXRoIGEgc2ltcGxlIHN3 YXAgb2Ygc3RhdGVzLgpOb3RlIHRoYXQgd2Ugc3RpbGwgbmVlZCB0byByZWNvbmNpbGUgdGhlIGxl Z2FjeSBzdGF0ZSBhZnRlciB0aGUgc3dhcCwKc2luY2UgdGhlcmUgYXJlIHN0aWxsIGNvZGUgdGhh dCByZWxpZXMgb24gdGhvc2UuCgpBbHNvIG5vdGUgdGhhdCBldmVuIHRob3VnaCBjaGFuZ2VzIHRv IHRoZSBzdGF0ZSBvZiBhIGNydGMgZGlmZmVyZW50IHRoYW4KdGhlIG9uZSBwYXNzZWQgYXMgYW4g YXJndW1lbnQgdG8gX19pbnRlbF9zZXRfbW9kZSgpIHdpbGwgYmUgc2F2ZWQsIHRoZQptb2Rlc2V0 IGxvZ2ljIHN0aWxsIGRlYWxzIHdpdGggb25seSBvbmUgY3J0Yy4KClNpZ25lZC1vZmYtYnk6IEFu ZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMTcg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOSBp bnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKaW5kZXggOTlhM2JjMC4uNWI4YjY2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwpAQCAtNTY0MCwxNiArNTY0MCwyMSBAQCBzdGF0aWMgaW50IGJyb3h0b25fY2FsY19j ZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybiAxNDQwMDA7 CiB9CiAKLS8qIGNvbXB1dGUgdGhlIG1heCBwaXhlbCBjbG9jayBmb3IgbmV3IGNvbmZpZ3VyYXRp b24gKi8KLXN0YXRpYyBpbnQgaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKKy8qIENvbXB1dGUgdGhlIG1heCBwaXhlbCBjbG9jayBmb3IgbmV3IGNv bmZpZ3VyYXRpb24uIFVzZXMgYXRvbWljIHN0YXRlIGlmCisgKiB0aGF0J3Mgbm9uLU5VTEwsIGxv b2sgYXQgY3VycmVudCBzdGF0ZSBvdGhlcndpc2UuICovCitzdGF0aWMgaW50IGludGVsX21vZGVf bWF4X3BpeGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7 CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGU7CiAJaW50IG1heF9waXhjbGsgPSAwOwogCiAJZm9yX2VhY2hfaW50ZWxf Y3J0YyhkZXYsIGludGVsX2NydGMpIHsKLQkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRf Y3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7CisJCWlmIChzdGF0ZSkKKwkJCWNydGNfc3Rh dGUgPQorCQkJCWludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7 CisJCWVsc2UKKwkJCWNydGNfc3RhdGUgPSBpbnRlbF9jcnRjLT5jb25maWc7CiAJCWlmIChJU19F UlIoY3J0Y19zdGF0ZSkpCiAJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKIApAQCAtNTY2 OCw3ICs1NjczLDcgQEAgc3RhdGljIGludCB2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3BpcGVz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YzsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Ci0JaW50IG1heF9waXhjbGsg PSBpbnRlbF9tb2RlX21heF9waXhjbGsoc3RhdGUpOworCWludCBtYXhfcGl4Y2xrID0gaW50ZWxf bW9kZV9tYXhfcGl4Y2xrKHN0YXRlLT5kZXYsIHN0YXRlKTsKIAlpbnQgY2RjbGssIGk7CiAKIAlp ZiAobWF4X3BpeGNsayA8IDApCkBAIC01NzM2LDE4ICs1NzQxLDE1IEBAIHN0YXRpYyB2b2lkIHZs dl9wcm9ncmFtX3BmaV9jcmVkaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlXQVJOX09OKEk5MTVfUkVBRChHQ0lfQ09OVFJPTCkgJiBQRklfQ1JFRElUX1JFU0VORCk7CiB9 CiAKLXN0YXRpYyB2b2lkIHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIHZhbGxleXZpZXdfbW9kZXNl dF9nbG9iYWxfcmVzb3VyY2VzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IG9sZF9zdGF0ZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IG1heF9waXhjbGsgPSBpbnRlbF9tb2RlX21h eF9waXhjbGsoc3RhdGUpOworCWludCBtYXhfcGl4Y2xrID0gaW50ZWxfbW9kZV9tYXhfcGl4Y2xr KGRldiwgTlVMTCk7CiAJaW50IHJlcV9jZGNsazsKIAotCS8qIFRoZSBvbmx5IHJlYXNvbiB0aGlz IGNhbiBmYWlsIGlzIGlmIHdlIGZhaWwgdG8gYWRkIHRoZSBjcnRjX3N0YXRlCi0JICogdG8gdGhl IGF0b21pYyBzdGF0ZS4gQnV0IHRoYXQgY2FuJ3QgaGFwcGVuIHNpbmNlIHRoZSBjYWxsIHRvCi0J ICogaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKCkgaW4gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9w aXBlcygpICh3aGljaAotCSAqIGNhbid0IGhhdmUgZmFpbGVkIG90aGVyd2lzZSB0aGUgbW9kZSBz ZXQgd291bGQgYmUgYWJvcnRlZCkgYWRkZWQgYWxsCi0JICogdGhlIHN0YXRlcyBhbHJlYWR5LiAq LworCS8qIFRoZSBwYXRoIGluIGludGVsX21vZGVfbWF4X3BpeGNsaygpIHdpdGggYSBOVUxMIGF0 b21pYyBzdGF0ZSBzaG91bGQKKwkgKiBuZXZlciBmYWlsLiAqLwogCWlmIChXQVJOX09OKG1heF9w aXhjbGsgPCAwKSkKIAkJcmV0dXJuOwogCkBAIC05MDY2LDExICs5MDY4LDExIEBAIHZvaWQgaHN3 X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF9w cmVwYXJlX2RkaShkZXYpOwogfQogCi1zdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRfZ2xvYmFs X3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBi cm94dG9uX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq b2xkX3N0YXRlKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBtYXhfcGl4Y2xrID0g aW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0YXRlKTsKKwlpbnQgbWF4X3BpeGNsayA9IGludGVsX21v ZGVfbWF4X3BpeGNsayhkZXYsIE5VTEwpOwogCWludCByZXFfY2RjbGs7CiAKIAkvKiBzZWUgdGhl IGNvbW1lbnQgaW4gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgKi8KQEAgLTEx MDY0LDQ2ICsxMTA2NiwzNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9jb25u ZWN0b3JfYXRvbWljX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogfQogCi0vKioK LSAqIGludGVsX21vZGVzZXRfY29tbWl0X291dHB1dF9zdGF0ZQotICoKLSAqIFRoaXMgZnVuY3Rp b24gY29waWVzIHRoZSBzdGFnZSBkaXNwbGF5IHBpcGUgY29uZmlndXJhdGlvbiB0byB0aGUgcmVh bCBvbmUuCi0gKgotICogRklYTUU6IHdlIHdhbnQgdG8gcmVwbGFjZSB0aGlzIHdpdGggYSBwcm9w ZXIgc3RhdGUgc3dhcCBpbiB0aGUgZnV0dXJlCisvKiBGaXh1cCBsZWdhY3kgc3RhdGUgYWZ0ZXIg YW4gYXRvbWljIHN0YXRlIHN3YXAuCiAgKi8KLXN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfY29t bWl0X291dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMg dm9pZCBpbnRlbF9tb2Rlc2V0X2ZpeHVwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9jb25uZWN0 b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Ci0JCSpj b25uZWN0b3ItPnN0YXRlID0gKmNvbm5lY3Rvcl9zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3I7CiAKLQkJY29ubmVjdG9yLT5lbmNvZGVyID0gY29ubmVjdG9yX3N0YXRl LT5iZXN0X2VuY29kZXI7Ci0JCWlmIChjb25uZWN0b3ItPmVuY29kZXIpCi0JCQljb25uZWN0b3It PmVuY29kZXItPmNydGMgPSBjb25uZWN0b3Jfc3RhdGUtPmNydGM7CisJZm9yX2VhY2hfaW50ZWxf Y29ubmVjdG9yKHN0YXRlLT5kZXYsIGNvbm5lY3RvcikgeworCQljb25uZWN0b3ItPmJhc2UuZW5j b2RlciA9IGNvbm5lY3Rvci0+YmFzZS5zdGF0ZS0+YmVzdF9lbmNvZGVyOworCQlpZiAoY29ubmVj dG9yLT5iYXNlLmVuY29kZXIpCisJCQljb25uZWN0b3ItPmJhc2UuZW5jb2Rlci0+Y3J0YyA9CisJ CQkJY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5jcnRjOwogCX0KIAogCS8qIFVwZGF0ZSBjcnRjIG9m IGRpc2FibGVkIGVuY29kZXJzICovCiAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihzdGF0ZS0+ZGV2 LCBlbmNvZGVyKSB7CiAJCWludCBudW1fY29ubmVjdG9ycyA9IDA7CiAKLQkJZm9yX2VhY2hfaW50 ZWxfY29ubmVjdG9yKHN0YXRlLT5kZXYsIGludGVsX2Nvbm5lY3RvcikKLQkJCWlmIChpbnRlbF9j b25uZWN0b3ItPmJhc2UuZW5jb2RlciA9PSAmZW5jb2Rlci0+YmFzZSkKKwkJZm9yX2VhY2hfaW50 ZWxfY29ubmVjdG9yKHN0YXRlLT5kZXYsIGNvbm5lY3RvcikKKwkJCWlmIChjb25uZWN0b3ItPmJh c2UuZW5jb2RlciA9PSAmZW5jb2Rlci0+YmFzZSkKIAkJCQludW1fY29ubmVjdG9ycysrOwogCiAJ CWlmIChudW1fY29ubmVjdG9ycyA9PSAwKQogCQkJZW5jb2Rlci0+YmFzZS5jcnRjID0gTlVMTDsK IAl9CiAKLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBp KSB7Ci0JCWNydGMtPnN0YXRlLT5lbmFibGUgPSBjcnRjX3N0YXRlLT5lbmFibGU7Ci0JCWNydGMt PmVuYWJsZWQgPSBjcnRjX3N0YXRlLT5lbmFibGU7CisJZm9yX2VhY2hfaW50ZWxfY3J0YyhzdGF0 ZS0+ZGV2LCBjcnRjKSB7CisJCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGMtPmJhc2Uuc3RhdGUt PmVuYWJsZTsKKwkJY3J0Yy0+Y29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNl LnN0YXRlKTsKIAl9CiAKIAkvKiBDb3B5IHRoZSBuZXcgY29uZmlndXJhdGlvbiB0byB0aGUgc3Rh Z2VkIHN0YXRlLCB0byBrZWVwIHRoZSBmZXcKQEAgLTExNTYwLDcgKzExNTUyLDggQEAgaW50ZWxf bW9kZXNldF91cGRhdGVfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJ aW50ZWxfZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgPSBmYWxzZTsKIAl9CiAKLQlpbnRlbF9t b2Rlc2V0X2NvbW1pdF9vdXRwdXRfc3RhdGUoc3RhdGUpOworCWRybV9hdG9taWNfaGVscGVyX3N3 YXBfc3RhdGUoc3RhdGUtPmRldiwgc3RhdGUpOworCWludGVsX21vZGVzZXRfZml4dXBfc3RhdGUo c3RhdGUpOwogCiAJLyogRG91YmxlIGNoZWNrIHN0YXRlLiAqLwogCWZvcl9lYWNoX2NydGMoZGV2 LCBjcnRjKSB7CkBAIC0xMTU3OCw3ICsxMTU3MSw3IEBAIGludGVsX21vZGVzZXRfdXBkYXRlX3N0 YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJaWYgKGNydGMgIT0gY29ubmVj dG9yLT5lbmNvZGVyLT5jcnRjKQogCQkJY29udGludWU7CiAKLQkJaWYgKGNydGNfc3RhdGUtPmVu YWJsZSAmJiBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKSB7CisJCWlmIChjcnRjLT5zdGF0ZS0+ ZW5hYmxlICYmIG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKSB7CiAJCQlzdHJ1Y3QgZHJtX3By b3BlcnR5ICpkcG1zX3Byb3BlcnR5ID0KIAkJCQlkZXYtPm1vZGVfY29uZmlnLmRwbXNfcHJvcGVy dHk7CiAKQEAgLTEyMjQ0LDMxICsxMjIzNywxMiBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21v ZGVfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIHZvaWQgX19pbnRlbF9zZXRfbW9kZV9zd2FwX3BsYW5lX3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCi0JCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBkZXYtPm1vZGVfY29uZmlnLm51bV90 b3RhbF9wbGFuZTsgaSsrKSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gc3RhdGUtPnBs YW5lc1tpXTsKLQotCQlpZiAoIXBsYW5lKQotCQkJY29udGludWU7Ci0KLQkJcGxhbmUtPnN0YXRl LT5zdGF0ZSA9IHN0YXRlOwotCQlzd2FwKHN0YXRlLT5wbGFuZV9zdGF0ZXNbaV0sIHBsYW5lLT5z dGF0ZSk7Ci0JCXBsYW5lLT5zdGF0ZS0+c3RhdGUgPSBOVUxMOwotCX0KLX0KLQogc3RhdGljIGlu dCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqbW9kZXNldF9jcnRjLAogCQkJICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gbW9kZXNldF9jcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZV9jb3B5ID0gTlVMTDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YzsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwogCWludCByZXQgPSAwOwpAQCAtMTIyODIsMTAgKzEyMjU2LDYgQEAgc3RhdGljIGlu dCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqbW9kZXNldF9jcnRjLAogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKLQljcnRjX3N0YXRlX2NvcHkgPSBrbWFsbG9jKHNpemVvZigq Y3J0Y19zdGF0ZV9jb3B5KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjcnRjX3N0YXRlX2NvcHkpCi0J CXJldHVybiAtRU5PTUVNOwotCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywg Y3J0Y19zdGF0ZSwgaSkgewogCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQlj b250aW51ZTsKQEAgLTEyMzA3LDkgKzEyMjc3LDYgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9t b2RlKHN0cnVjdCBkcm1fY3J0YyAqbW9kZXNldF9jcnRjLAogCSAqLwogCWlmIChwaXBlX2NvbmZp Zy0+YmFzZS5lbmFibGUgJiYgbmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmJhc2UpKSB7CiAJ CW1vZGVzZXRfY3J0Yy0+bW9kZSA9IHBpcGVfY29uZmlnLT5iYXNlLm1vZGU7Ci0JCS8qIG1vZGVf c2V0L2VuYWJsZS9kaXNhYmxlIGZ1bmN0aW9ucyByZWx5IG9uIGEgY29ycmVjdCBwaXBlCi0JCSAq IGNvbmZpZy4gKi8KLQkJaW50ZWxfY3J0Y19zZXRfc3RhdGUodG9faW50ZWxfY3J0Yyhtb2Rlc2V0 X2NydGMpLCBwaXBlX2NvbmZpZyk7CiAKIAkJLyoKIAkJICogQ2FsY3VsYXRlIGFuZCBzdG9yZSB2 YXJpb3VzIGNvbnN0YW50cyB3aGljaApAQCAtMTIzMjQsMTQgKzEyMjkxLDE2IEBAIHN0YXRpYyBp bnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKm1vZGVzZXRfY3J0YywKIAkgKiB1 cGRhdGUgdGhlIHRoZSBvdXRwdXQgY29uZmlndXJhdGlvbi4gKi8KIAlpbnRlbF9tb2Rlc2V0X3Vw ZGF0ZV9zdGF0ZShzdGF0ZSk7CiAKKwkvKiBUaGUgc3RhdGUgaGFzIGJlZW4gc3dhcGVkIGFib3Zl LCBzbyBzdGF0ZSBhY3R1YWxseSBjb250YWlucyB0aGUKKwkgKiBvbGQgc3RhdGUgbm93LiAqLwor CiAJbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKHN0YXRlKTsKIAotCV9faW50ZWxf c2V0X21vZGVfc3dhcF9wbGFuZV9zdGF0ZShkZXYsIHN0YXRlKTsKIAlkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfcGxhbmVzKGRldiwgc3RhdGUpOwogCiAJLyogTm93IGVuYWJsZSB0aGUgY2xvY2tz LCBwbGFuZSwgcGlwZSwgYW5kIGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICovCiAJZm9yX2Vh Y2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIW5l ZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwgIWNydGNfc3RhdGUtPmVuYWJsZSkKKwkJaWYgKCFu ZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8fCAhY3J0Yy0+c3RhdGUtPmVuYWJsZSkKIAkJCWNv bnRpbnVlOwogCiAJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7 CkBAIC0xMjM0MiwxNCArMTIzMTEsNiBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGUoc3Ry dWN0IGRybV9jcnRjICptb2Rlc2V0X2NydGMsCiAKIAkvKiBGSVhNRTogYWRkIHN1YnBpeGVsIG9y ZGVyICovCiAKLQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhtb2Rlc2V0X2NydGMpOwotCi0J LyogVGhlIHBpcGVfY29uZmlnIHdpbGwgYmUgZnJlZWQgd2l0aCB0aGUgYXRvbWljIHN0YXRlLCBz bwotCSAqIG1ha2UgYSBjb3B5LiAqLwotCW1lbWNweShjcnRjX3N0YXRlX2NvcHksIGludGVsX2Ny dGMtPmNvbmZpZywgc2l6ZW9mICpjcnRjX3N0YXRlX2NvcHkpOwotCWludGVsX2NydGMtPmNvbmZp ZyA9IGNydGNfc3RhdGVfY29weTsKLQlpbnRlbF9jcnRjLT5iYXNlLnN0YXRlID0gJmNydGNfc3Rh dGVfY29weS0+YmFzZTsKLQogCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwg c3RhdGUpOwogCiAJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKLS0gCjIuMS4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=