From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 4/4] drm/vmwgfx: Rework locking around register accesses Date: Fri, 30 Oct 2015 02:42:46 -0700 Message-ID: <1446198166-3068-4-git-send-email-thellstrom@vmware.com> References: <1446198166-3068-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp-outbound-1.vmware.com (smtp-outbound-1.vmware.com [208.91.2.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E76C6E692 for ; Fri, 30 Oct 2015 02:43:46 -0700 (PDT) Received: from sc9-mailhost3.vmware.com (sc9-mailhost3.vmware.com [10.113.161.73]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 2D334280EF for ; Fri, 30 Oct 2015 02:43:46 -0700 (PDT) Received: from EX13-CAS-003.vmware.com (ex13-cas-003.vmware.com [10.113.191.53]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id CFB2040416 for ; Fri, 30 Oct 2015 02:43:45 -0700 (PDT) In-Reply-To: <1446198166-3068-1-git-send-email-thellstrom@vmware.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: Thomas Hellstrom List-Id: dri-devel@lists.freedesktop.org UmVsYXggdGhlIHJlcXVpcmVkIGxvY2tpbmcgdG8sIGluc3RlYWQgb2YgZGlzYWJsaW5nIGlycXMs IGRpc2FibGUgdGFza2xldHMuCkFsbG93IHRoZSBjYWxsZXIgdG8gcGVyZm9ybSB0aGUgbG9ja2lu ZyB1c2luZyB1dGlsaXR5IGZ1bmN0aW9ucywgd2hpY2gKYWxsb3dzIHRoZSBjYWxsZXIgdG8gY29t YmluZSBhIG51bWJlciBvZiByZWdpc3RlciBhY2Nlc3NlcyB3aXRoaW4gdGhlCnNhbWUgY3JpdGlj YWwgc2VjdGlvbi4gSW1wbGVtZW50IHRoaXMgZm9yIGNhcGFiaWxpdHkgcmVhZHMgYW5kIGNvbW1h bmQKYnVmZmVyIHN1Ym1pc3Npb24uCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0cm9tIDx0 aGVsbHN0cm9tQHZtd2FyZS5jb20+ClJldmlld2VkLWJ5OiBTaW5jbGFpciBZZWggPHN5ZWhAdm13 YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jbWRidWYuYyB8ICAg OCArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgfCAgIDkgKy0tCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAgICB8IDEzMCArKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNl LmMgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMgICB8ICA0 MCArKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pb2N0bC5jICB8ICAy MCArKy0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMgICAgfCAgIDIgKy0K IDcgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZGJ1Zi5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKaW5kZXggOGE3NjgyMS4uYjhkMjQzNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKQEAgLTI5MCwxOCArMjkwLDIw IEBAIHZvaWQgdm13X2NtZGJ1Zl9oZWFkZXJfZnJlZShzdHJ1Y3Qgdm13X2NtZGJ1Zl9oZWFkZXIg KmhlYWRlcikKICAqLwogc3RhdGljIGludCB2bXdfY21kYnVmX2hlYWRlcl9zdWJtaXQoc3RydWN0 IHZtd19jbWRidWZfaGVhZGVyICpoZWFkZXIpCiB7Ci0Jc3RydWN0IHZtd19jbWRidWZfbWFuICpt YW4gPSBoZWFkZXItPm1hbjsKKwlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gaGVhZGVy LT5tYW4tPmRldl9wcml2OwogCXUzMiB2YWw7CiAKIAlpZiAoc2l6ZW9mKGhlYWRlci0+aGFuZGxl KSA+IDQpCiAJCXZhbCA9IChoZWFkZXItPmhhbmRsZSA+PiAzMik7CiAJZWxzZQogCQl2YWwgPSAw OwotCXZtd193cml0ZShtYW4tPmRldl9wcml2LCBTVkdBX1JFR19DT01NQU5EX0hJR0gsIHZhbCk7 CisJdm13X2h3X2xvY2soZGV2X3ByaXYsIHRydWUpOworCV9fdm13X3dyaXRlKGRldl9wcml2LCBT VkdBX1JFR19DT01NQU5EX0hJR0gsIHZhbCk7CiAKIAl2YWwgPSAoaGVhZGVyLT5oYW5kbGUgJiAw eEZGRkZGRkZGVUxMKTsKIAl2YWwgfD0gaGVhZGVyLT5jYl9jb250ZXh0ICYgU1ZHQV9DQl9DT05U RVhUX01BU0s7Ci0Jdm13X3dyaXRlKG1hbi0+ZGV2X3ByaXYsIFNWR0FfUkVHX0NPTU1BTkRfTE9X LCB2YWwpOworCV9fdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19DT01NQU5EX0xPVywgdmFs KTsKKwl2bXdfaHdfdW5sb2NrKGRldl9wcml2LCB0cnVlKTsKIAogCXJldHVybiBoZWFkZXItPmNi X2hlYWRlci0+c3RhdHVzOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwppbmRleCBh MDljZjg1Li4yYTU0OTZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwpAQCAtNjMx LDcgKzYzMSw2IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAl0dG1fbG9ja19pbml0KCZkZXZfcHJpdi0+ cmVzZXJ2YXRpb25fc2VtKTsKIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmh3X2xvY2spOwog CXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+d2FpdGVyX2xvY2spOwotCXNwaW5fbG9ja19pbml0 KCZkZXZfcHJpdi0+Y2FwX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+c3ZnYV9s b2NrKTsKIAogCWZvciAoaSA9IHZtd19yZXNfY29udGV4dDsgaSA8IHZtd19yZXNfbWF4OyArK2kp IHsKQEAgLTg1NCwxMCArODUzLDEwIEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAl9CiAKIAlpZiAoZGV2 X3ByaXYtPmhhc19tb2IpIHsKLQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+Y2FwX2xvY2spOwotCQl2 bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RFVl9DQVAsIFNWR0EzRF9ERVZDQVBfRFgpOwot CQlkZXZfcHJpdi0+aGFzX2R4ID0gISF2bXdfcmVhZChkZXZfcHJpdiwgU1ZHQV9SRUdfREVWX0NB UCk7Ci0JCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+Y2FwX2xvY2spOworCQl2bXdfaHdfbG9jayhk ZXZfcHJpdiwgdHJ1ZSk7CisJCV9fdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19ERVZfQ0FQ LCBTVkdBM0RfREVWQ0FQX0RYKTsKKwkJZGV2X3ByaXYtPmhhc19keCA9ICEhX192bXdfcmVhZChk ZXZfcHJpdiwgU1ZHQV9SRUdfREVWX0NBUCk7CisJCXZtd19od191bmxvY2soZGV2X3ByaXYsIHRy dWUpOwogCX0KIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCmluZGV4IGE4YWU5ZGYu LmY3ZGNiY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC0zODUsNyArMzg1 LDYgQEAgc3RydWN0IHZtd19wcml2YXRlIHsKIAlib29sIGhhc19nbXI7CiAJYm9vbCBoYXNfbW9i OwogCXNwaW5sb2NrX3QgaHdfbG9jazsKLQlzcGlubG9ja190IGNhcF9sb2NrOwogCWJvb2wgaGFz X2R4OwogCiAJLyoKQEAgLTU0NiwzNCArNTQ1LDEyNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2 bXdfbWFzdGVyICp2bXdfbWFzdGVyKHN0cnVjdCBkcm1fbWFzdGVyICptYXN0ZXIpCiAJcmV0dXJu IChzdHJ1Y3Qgdm13X21hc3RlciAqKSBtYXN0ZXItPmRyaXZlcl9wcml2OwogfQogCi0vKgotICog VGhlIGxvY2tpbmcgaGVyZSBpcyBmaW5lLWdyYWluZWQsIHNvIHRoYXQgaXQgaXMgcGVyZm9ybWVk IG9uY2UKLSAqIGZvciBldmVyeSByZWFkLSBhbmQgd3JpdGUgb3BlcmF0aW9uLiBUaGlzIGlzIG9m IGNvdXJzZSBjb3N0bHksIGJ1dCB3ZQotICogZG9uJ3QgcGVyZm9ybSBtdWNoIHJlZ2lzdGVyIGFj Y2VzcyBpbiB0aGUgdGltaW5nIGNyaXRpY2FsIHBhdGhzIGFueXdheS4KLSAqIEluc3RlYWQgd2Ug aGF2ZSB0aGUgZXh0cmEgYmVuZWZpdCBvZiBiZWluZyBzdXJlIHRoYXQgd2UgZG9uJ3QgZm9yZ2V0 Ci0gKiB0aGUgaHcgbG9jayBhcm91bmQgcmVnaXN0ZXIgYWNjZXNzZXMuCisvKioKKyAqIHZtd19o d19sb2NrIC0gUGVyZm9ybSBuZWNlc3NhcnkgbG9ja2luZyBmb3IgcmVnaXN0ZXIgYWNjZXNzCisg KgorICogQGRldl9wcml2OiBQb2ludGVyIHRvIGRldmljZSBwcml2YXRlIHN0cnVjdHVyZQorICog QGxvY2tfYmg6IERpc2FibGUgYm90dG9tIGhhbHZlcy4gQWx3YXlzIHNldCB0byB0cnVlIHVubGVz cyBpcnFzIGFyZSBkaXNhYmxlZC4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIHZtd193cml0ZShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0 LCB1aW50MzJfdCB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCB2bXdfaHdfbG9jayhzdHJ1Y3Qg dm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgIGJvb2wgbG9ja19iaCkKIHsKLQl1bnNp Z25lZCBsb25nIGlycV9mbGFnczsKKwlpZiAobG9ja19iaCkKKwkJc3Bpbl9sb2NrX2JoKCZkZXZf cHJpdi0+aHdfbG9jayk7CisJZWxzZQorCQlzcGluX2xvY2soJmRldl9wcml2LT5od19sb2NrKTsK K30KIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aHdfbG9jaywgaXJxX2ZsYWdzKTsK Ky8qKgorICogdm13X2h3X3VubG9jayAtIFBlcmZvcm0gbmVjZXNzYXJ5IHVubG9ja2luZyBhZnRl ciByZWdpc3RlciBhY2Nlc3MKKyAqCisgKiBAZGV2X3ByaXY6IFBvaW50ZXIgdG8gZGV2aWNlIHBy aXZhdGUgc3RydWN0dXJlCisgKiBAdW5sb2NrX2JoOiBEaXNhYmxlIGJvdHRvbSBoYWx2ZXMuIEFs d2F5cyBzZXQgdG8gdHJ1ZSBpZiBpdCB3YXMgc2V0IHRvIHRydQorICogaW4gdGhlIGNvcnJlc3Bv bmRpbmcgbG9jay4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHZtd19od191bmxvY2soc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgYm9vbCB1bmxvY2tfYmgpCit7CisJaWYgKHVu bG9ja19iaCkKKwkJc3Bpbl91bmxvY2tfYmgoJmRldl9wcml2LT5od19sb2NrKTsKKwllbHNlCisJ CXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+aHdfbG9jayk7Cit9CisKKy8qKgorICogX192bXdfd3Jp dGUgLSBXcml0ZSBhIHZhbHVlIHRvIGEgZGV2aWNlIHJlZ2lzdGVyIHdpdGggZXh0ZXJuYWwgbG9j a2luZy4KKyAqCisgKiBAZGV2X3ByaXY6IFBvaW50ZXIgdG8gdGhlIGRldmljZSBwcml2YXRlIHN0 cnVjdHVyZQorICogQG9mZnNldDogRGV2aWNlIHJlZ2lzdGVyIG9mZnNldAorICogQHZhbHVlOiBW YWx1ZSB0byB3cml0ZQorICoKKyAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIG11c3QgZW5zdXJlIHRo YXQgd2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sCisgKiBAZGV2X3ByaXY6Omh3X2xvY2sgbXVz dCBiZSBoZWxkIGFuZCB0aGF0IHdlJ3JlIHNhZmUgYWdhaW5zdCByYWNpbmcKKyAqIGFnYWluc3Qg dGFza2xldHMuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3Ztd193cml0ZShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsIHVpbnQz Ml90IHZhbHVlKQoreworI2lmZGVmIENPTkZJR19MT0NLREVQCisJbG9ja2RlcF9hc3NlcnRfaGVs ZF9vbmNlKCZkZXZfcHJpdi0+aHdfbG9jay5ybG9jayk7CisJV0FSTl9PTl9PTkNFKCEoaW5fc29m dGlycSgpIHx8IGlycXNfZGlzYWJsZWQoKSkpOworI2VuZGlmCiAJb3V0bChvZmZzZXQsIGRldl9w cml2LT5pb19zdGFydCArIFZNV0dGWF9JTkRFWF9QT1JUKTsKIAlvdXRsKHZhbHVlLCBkZXZfcHJp di0+aW9fc3RhcnQgKyBWTVdHRlhfVkFMVUVfUE9SVCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGV2X3ByaXYtPmh3X2xvY2ssIGlycV9mbGFncyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdWlu dDMyX3Qgdm13X3JlYWQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKLQkJCQl1bnNpZ25l ZCBpbnQgb2Zmc2V0KQorLyoqCisgKiBfX3Ztd19yZWFkIC0gUmVhZCBhIHZhbHVlIGZyb20gYSBk ZXZpY2UgcmVnaXN0ZXIgd2l0aCBleHRlcm5hbCBsb2NraW5nLgorICoKKyAqIEBkZXZfcHJpdjog UG9pbnRlciB0byB0aGUgZGV2aWNlIHByaXZhdGUgc3RydWN0dXJlCisgKiBAb2Zmc2V0OiBEZXZp Y2UgcmVnaXN0ZXIgb2Zmc2V0CisgKiBAdmFsdWU6IFZhbHVlIHRvIHdyaXRlCisgKgorICogTm90 ZSB0aGF0IHRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgdGhhdCB3aGVuIGNhbGxpbmcgdGhpcyBmdW5j dGlvbiwKKyAqIEBkZXZfcHJpdjo6aHdfbG9jayBpcyBiZSBoZWxkIGFuZCB0aGF0IHdlJ3JlIHNh ZmUgYWdhaW5zdCByYWNpbmcKKyAqIGFnYWluc3QgdGFza2xldHMuCisgKi8KK3N0YXRpYyBpbmxp bmUgdWludDMyX3QgX192bXdfcmVhZChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ CSAgdW5zaWduZWQgaW50IG9mZnNldCkKIHsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKIAl1 MzIgdmFsOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5od19sb2NrLCBpcnFfZmxh Z3MpOworI2lmZGVmIENPTkZJR19MT0NLREVQCisJbG9ja2RlcF9hc3NlcnRfaGVsZF9vbmNlKCZk ZXZfcHJpdi0+aHdfbG9jay5ybG9jayk7CisJV0FSTl9PTl9PTkNFKCEoaW5fc29mdGlycSgpIHx8 IGlycXNfZGlzYWJsZWQoKSkpOworI2VuZGlmCiAJb3V0bChvZmZzZXQsIGRldl9wcml2LT5pb19z dGFydCArIFZNV0dGWF9JTkRFWF9QT1JUKTsKIAl2YWwgPSBpbmwoZGV2X3ByaXYtPmlvX3N0YXJ0 ICsgVk1XR0ZYX1ZBTFVFX1BPUlQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2 LT5od19sb2NrLCBpcnFfZmxhZ3MpOworCisJcmV0dXJuIHZhbDsKK30KKworLyoqCisgKiB2bXdf d3JpdGUgLSBXcml0ZSBhIHZhbHVlIHRvIGEgZGV2aWNlIHJlZ2lzdGVyCisgKgorICogQGRldl9w cml2OiBQb2ludGVyIHRvIHRoZSBkZXZpY2UgcHJpdmF0ZSBzdHJ1Y3R1cmUKKyAqIEBvZmZzZXQ6 IERldmljZSByZWdpc3RlciBvZmZzZXQKKyAqIEB2YWx1ZTogVmFsdWUgdG8gd3JpdGUKKyAqCisg KiBUaGlzIGZ1bmN0aW9uIG1heSBub3QgYmUgY2FsbGVkIHdoZW4gaXJxcyBhcmUgZGlzYWJsZWQs IHNpbmNlCisgKiBpdHMgY2FsbCB0byB2bXdfaHdfdW5sb2NrIHdpbGwgcmUtZW5hYmxlIGlycXMu CisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB2bXdfd3JpdGUoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwKKwkJCSAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdWludDMyX3QgdmFsdWUpCit7 CisjaWZkZWYgQ09ORklHX0xPQ0tERVAKKwlXQVJOX09OX09OQ0UoaXJxc19kaXNhYmxlZCgpKTsK KyNlbmRpZgorCXZtd19od19sb2NrKGRldl9wcml2LCB0cnVlKTsKKwlfX3Ztd193cml0ZShkZXZf cHJpdiwgb2Zmc2V0LCB2YWx1ZSk7CisJdm13X2h3X3VubG9jayhkZXZfcHJpdiwgdHJ1ZSk7Cit9 CisKKy8qKgorICogdm13X3dyaXRlIC0gUmVhZCBhIHZhbHVlIGZyb20gYSBkZXZpY2UgcmVnaXN0 ZXIKKyAqCisgKiBAZGV2X3ByaXY6IFBvaW50ZXIgdG8gdGhlIGRldmljZSBwcml2YXRlIHN0cnVj dHVyZQorICogQG9mZnNldDogRGV2aWNlIHJlZ2lzdGVyIG9mZnNldAorICogQHZhbHVlOiBWYWx1 ZSB0byB3cml0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IG5vdCBiZSBjYWxsZWQgd2hlbiBp cnFzIGFyZSBkaXNhYmxlZCwgc2luY2UKKyAqIGl0cyBjYWxsIHRvIHZtd19od191bmxvY2sgd2ls bCByZS1lbmFibGUgaXJxcy4KKyAqLworc3RhdGljIGlubGluZSB1aW50MzJfdCB2bXdfcmVhZChz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCXVuc2lnbmVkIGludCBvZmZzZXQpCit7 CisJdTMyIHZhbDsKKworI2lmZGVmIENPTkZJR19MT0NLREVQCisJV0FSTl9PTl9PTkNFKGlycXNf ZGlzYWJsZWQoKSk7CisjZW5kaWYKKwl2bXdfaHdfbG9jayhkZXZfcHJpdiwgdHJ1ZSk7CisJdmFs ID0gX192bXdfcmVhZChkZXZfcHJpdiwgb2Zmc2V0KTsKKwl2bXdfaHdfdW5sb2NrKGRldl9wcml2 LCB0cnVlKTsKIAogCXJldHVybiB2YWw7CiB9CkBAIC03MjIsOCArODE0LDggQEAgZXh0ZXJuIHZv aWQgdm13X2ZpZm9fY29tbWl0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90 IGJ5dGVzKTsKIGV4dGVybiB2b2lkIHZtd19maWZvX2NvbW1pdF9mbHVzaChzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBieXRlcyk7CiBleHRlcm4gaW50IHZtd19maWZvX3Nl bmRfZmVuY2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgICB1aW50MzJf dCAqc2Vxbm8pOwotZXh0ZXJuIHZvaWQgdm13X2ZpZm9fcGluZ19ob3N0X2xvY2tlZChzdHJ1Y3Qg dm13X3ByaXZhdGUgKiwgdWludDMyX3QgcmVhc29uKTsKLWV4dGVybiB2b2lkIHZtd19maWZvX3Bp bmdfaG9zdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCByZWFzb24pOwor ZXh0ZXJuIHZvaWQgdm13X2ZpZm9fcGluZ19ob3N0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYsIHVpbnQzMl90IHJlYXNvbiwKKwkJCSAgICAgICBib29sIGxvY2tfYmgpOwogZXh0ZXJuIGJv b2wgdm13X2ZpZm9faGF2ZV8zZChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVy biBib29sIHZtd19maWZvX2hhdmVfcGl0Y2hsb2NrKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYpOwogZXh0ZXJuIGludCB2bXdfZmlmb19lbWl0X2R1bW15X3F1ZXJ5KHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwppbmRleCBm NDBjMzZlLi5hYzY2YWFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKQEAg LTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhz dHJ1Y3QgZmVuY2UgKmYpCiAJaWYgKHNlcW5vIC0gZmVuY2UtPmJhc2Uuc2Vxbm8gPCBWTVdfRkVO Q0VfV1JBUCkKIAkJcmV0dXJuIGZhbHNlOwogCi0Jdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2 LCBTVkdBX1NZTkNfR0VORVJJQyk7CisJdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2LCBTVkdB X1NZTkNfR0VORVJJQywgZmFsc2UpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0xODMsNyArMTgz LDcgQEAgc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNlICpmLCBib29sIGlu dHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJaWYgKGxpa2VseSh2bXdfZmVuY2Vfb2JqX3NpZ25h bGVkKGZlbmNlKSkpCiAJCXJldHVybiB0aW1lb3V0OwogCi0Jdm13X2ZpZm9fcGluZ19ob3N0KGRl dl9wcml2LCBTVkdBX1NZTkNfR0VORVJJQyk7CisJdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2 LCBTVkdBX1NZTkNfR0VORVJJQywgdHJ1ZSk7CiAJdm13X3NlcW5vX3dhaXRlcl9hZGQoZGV2X3By aXYpOwogCiAJc3Bpbl9sb2NrX2JoKGYtPmxvY2spOwpAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQg dm13X2ZlbmNlX29ial9mbHVzaChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiB7CiAJc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IGZtYW5fZnJvbV9mZW5jZShmZW5jZSktPmRldl9w cml2OwogCi0Jdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2LCBTVkdBX1NZTkNfR0VORVJJQyk7 CisJdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2LCBTVkdBX1NZTkNfR0VORVJJQywgdHJ1ZSk7 CiB9CiAKIHN0YXRpYyB2b2lkIHZtd19mZW5jZV9kZXN0cm95KHN0cnVjdCB2bXdfZmVuY2Vfb2Jq ICpmZW5jZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8u YyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYwppbmRleCBhOGJhZjVmLi5h NzBjYzg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5jCkBAIC00OSwxMCArNDks MTAgQEAgYm9vbCB2bXdfZmlmb19oYXZlXzNkKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJCWlmICghZGV2X3ByaXYtPmhhc19tb2IpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJc3Bpbl9s b2NrKCZkZXZfcHJpdi0+Y2FwX2xvY2spOwotCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVH X0RFVl9DQVAsIFNWR0EzRF9ERVZDQVBfM0QpOwotCQlyZXN1bHQgPSB2bXdfcmVhZChkZXZfcHJp diwgU1ZHQV9SRUdfREVWX0NBUCk7Ci0JCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+Y2FwX2xvY2sp OworCQl2bXdfaHdfbG9jayhkZXZfcHJpdiwgdHJ1ZSk7CisJCV9fdm13X3dyaXRlKGRldl9wcml2 LCBTVkdBX1JFR19ERVZfQ0FQLCBTVkdBM0RfREVWQ0FQXzNEKTsKKwkJcmVzdWx0ID0gX192bXdf cmVhZChkZXZfcHJpdiwgU1ZHQV9SRUdfREVWX0NBUCk7CisJCXZtd19od191bmxvY2soZGV2X3By aXYsIHRydWUpOwogCiAJCXJldHVybiAocmVzdWx0ICE9IDApOwogCX0KQEAgLTE2MywxNCArMTYz LDMyIEBAIGludCB2bXdfZmlmb19pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHN0 cnVjdCB2bXdfZmlmb19zdGF0ZSAqZmlmbykKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCB2bXdfZmlm b19waW5nX2hvc3Qoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3QgcmVhc29u KQorLyoqCisgKiB2bXdfZmlmb19waW5nX2hvc3QgLSBOb3RpZnkgdGhlIGRldmljZSB0aGF0IHRo ZXJlIGFyZSBkZXZpY2UgY29tbWFuZHMKKyAqIHRvIHByb2Nlc3MKKyAqCisgKiBAZGV2X3ByaXY6 IFBvaW50ZXIgdG8gYSBkZXZpY2UgcHJpdmF0ZSBzdHJ1Y3QuCisgKiBAcmVhc29uOiBBIHZhbGlk IHJlYXNvbiB0byBwaW5nIHRoZSBob3N0LiBTZWUgZGV2aWNlIGhlYWRlcnMuCisgKiBAbG9ja19i aDogQWx3YXlzIHNldCB0byB0cnVlIHVubGVzcyBpcnFzIGFyZSBkaXNhYmxlZCBpbiB3aGljaCBj YXNlCisgKiBpdCBtdXN0IGJlIHNldCB0byBmYWxzZS4KKyAqCisgKiBBa2EgdGhlIGRldmljZSAi ZG9vcmJlbGwiLiBUaGUgZGV2aWNlIGhhcyBhbiBvcHRpbWl6YXRpb24gdGhhdCBhbGxvd3MKKyAq IGF2b2lkaW5nIGNhbGxpbmcgdGhlIHJlbGF0aXZlbHkgZXhwZW5zaXZlIHJlZ2lzdGVyIHdyaXRl IHRvCisgKiBTVkdBX1JFR19TWU5DIGlmIHRoZSBTVkdBX0ZJRk9fQlVTWSBtbWlvIHJlZ2lzdGVy IGlzIHNldCB0byAxLCBtZWFuaW5nCisgKiB0aGF0IHRoZSBkb29yYmVsbCBoYXMgYWxyZWFkeSBi ZWVuIGNhbGxlZC4gVGhlIFNWR0FfRklGT19CVVNZIG1taW8gcmVnaXN0ZXIKKyAqIHdpbGwgYmUg Y2xlYXJlZCBieSB0aGUgZGV2aWNlIHdoZW4gYSBuZXcgd3JpdGUgdG8gU1ZHQV9SRUdfU1lOQyBp cyBuZWVkZWQKKyAqIHRvIG5vdGlmeSB0aGUgZGV2aWNlIG9mIHBlbmRpbmcgY29tbWFuZHMuCisg Ki8KK3ZvaWQgdm13X2ZpZm9fcGluZ19ob3N0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs IHVpbnQzMl90IHJlYXNvbiwKKwkJCWJvb2wgbG9ja19iaCkKIHsKIAl1MzIgKmZpZm9fbWVtID0g ZGV2X3ByaXYtPm1taW9fdmlydDsKIAotCXByZWVtcHRfZGlzYWJsZSgpOwotCWlmIChjbXB4Y2hn KGZpZm9fbWVtICsgU1ZHQV9GSUZPX0JVU1ksIDAsIDEpID09IDApCi0JCXZtd193cml0ZShkZXZf cHJpdiwgU1ZHQV9SRUdfU1lOQywgcmVhc29uKTsKLQlwcmVlbXB0X2VuYWJsZSgpOworCWlmIChj bXB4Y2hnKGZpZm9fbWVtICsgU1ZHQV9GSUZPX0JVU1ksIDAsIDEpID09IDApIHsKKwkJdm13X2h3 X2xvY2soZGV2X3ByaXYsIGxvY2tfYmgpOworCQlfX3Ztd193cml0ZShkZXZfcHJpdiwgU1ZHQV9S RUdfU1lOQywgcmVhc29uKTsKKwkJdm13X2h3X3VubG9jayhkZXZfcHJpdiwgbG9ja19iaCk7CisJ fQogfQogCiB2b2lkIHZtd19maWZvX3JlbGVhc2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwgc3RydWN0IHZtd19maWZvX3N0YXRlICpmaWZvKQpAQCAtMjU2LDcgKzI3NCw3IEBAIHN0YXRp YyBpbnQgdm13X2ZpZm9fd2FpdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChs aWtlbHkoIXZtd19maWZvX2lzX2Z1bGwoZGV2X3ByaXYsIGJ5dGVzKSkpCiAJCXJldHVybiAwOwog Ci0Jdm13X2ZpZm9fcGluZ19ob3N0KGRldl9wcml2LCBTVkdBX1NZTkNfRklGT0ZVTEwpOworCXZt d19maWZvX3BpbmdfaG9zdChkZXZfcHJpdiwgU1ZHQV9TWU5DX0ZJRk9GVUxMLCB0cnVlKTsKIAlp ZiAoIShkZXZfcHJpdi0+Y2FwYWJpbGl0aWVzICYgU1ZHQV9DQVBfSVJRTUFTSykpCiAJCXJldHVy biB2bXdfZmlmb193YWl0X25vaXJxKGRldl9wcml2LCBieXRlcywKIAkJCQkJICAgaW50ZXJydXB0 aWJsZSwgdGltZW91dCk7CkBAIC00OTAsNyArNTA4LDcgQEAgc3RhdGljIHZvaWQgdm13X2xvY2Fs X2ZpZm9fY29tbWl0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IGJ5dGVz KQogCQl2bXdfbW1pb193cml0ZSgwLCBmaWZvX21lbSArIFNWR0FfRklGT19SRVNFUlZFRCk7CiAJ bWIoKTsKIAl1cF93cml0ZSgmZmlmb19zdGF0ZS0+cndzZW0pOwotCXZtd19maWZvX3BpbmdfaG9z dChkZXZfcHJpdiwgU1ZHQV9TWU5DX0dFTkVSSUMpOworCXZtd19maWZvX3BpbmdfaG9zdChkZXZf cHJpdiwgU1ZHQV9TWU5DX0dFTkVSSUMsIHRydWUpOwogCW11dGV4X3VubG9jaygmZmlmb19zdGF0 ZS0+Zmlmb19tdXRleCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pb2N0bC5jCmlu ZGV4IGI4YzZhMDMuLjhjZTA4ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaW9jdGwu YwpAQCAtMTU5LDE0ICsxNTksMTQgQEAgc3RhdGljIGludCB2bXdfZmlsbF9jb21wYXRfY2FwKHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHZvaWQgKmJvdW5jZSwKIAkJKHBhaXJfb2Zmc2V0 ICsgbWF4X3NpemUgKiBzaXplb2YoU1ZHQTNkQ2FwUGFpcikpIC8gc2l6ZW9mKHUzMik7CiAJY29t cGF0X2NhcC0+aGVhZGVyLnR5cGUgPSBTVkdBM0RDQVBTX1JFQ09SRF9ERVZDQVBTOwogCi0Jc3Bp bl9sb2NrKCZkZXZfcHJpdi0+Y2FwX2xvY2spOworCXZtd19od19sb2NrKGRldl9wcml2LCB0cnVl KTsKIAlmb3IgKGkgPSAwOyBpIDwgbWF4X3NpemU7ICsraSkgewotCQl2bXdfd3JpdGUoZGV2X3By aXYsIFNWR0FfUkVHX0RFVl9DQVAsIGkpOworCQlfX3Ztd193cml0ZShkZXZfcHJpdiwgU1ZHQV9S RUdfREVWX0NBUCwgaSk7CiAJCWNvbXBhdF9jYXAtPnBhaXJzW2ldWzBdID0gaTsKIAkJY29tcGF0 X2NhcC0+cGFpcnNbaV1bMV0gPSB2bXdfbWFza19tdWx0aXNhbXBsZQotCQkJKGksIHZtd19yZWFk KGRldl9wcml2LCBTVkdBX1JFR19ERVZfQ0FQKSk7CisJCQkoaSwgX192bXdfcmVhZChkZXZfcHJp diwgU1ZHQV9SRUdfREVWX0NBUCkpOwogCX0KLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmNhcF9s b2NrKTsKKwl2bXdfaHdfdW5sb2NrKGRldl9wcml2LCB0cnVlKTsKIAogCXJldHVybiAwOwogfQpA QCAtMjE2LDEzICsyMTYsMTMgQEAgaW50IHZtd19nZXRfY2FwXzNkX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWlmIChudW0gPiBTVkdBM0RfREVWQ0FQX01BWCkK IAkJCW51bSA9IFNWR0EzRF9ERVZDQVBfTUFYOwogCi0JCXNwaW5fbG9jaygmZGV2X3ByaXYtPmNh cF9sb2NrKTsKKwkJdm13X2h3X2xvY2soZGV2X3ByaXYsIHRydWUpOwogCQlmb3IgKGkgPSAwOyBp IDwgbnVtOyArK2kpIHsKLQkJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfREVWX0NBUCwg aSk7CisJCQlfX3Ztd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfREVWX0NBUCwgaSk7CiAJCQkq Ym91bmNlMzIrKyA9IHZtd19tYXNrX211bHRpc2FtcGxlCi0JCQkJKGksIHZtd19yZWFkKGRldl9w cml2LCBTVkdBX1JFR19ERVZfQ0FQKSk7CisJCQkJKGksIF9fdm13X3JlYWQoZGV2X3ByaXYsIFNW R0FfUkVHX0RFVl9DQVApKTsKIAkJfQotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmNhcF9sb2Nr KTsKKwkJdm13X2h3X3VubG9jayhkZXZfcHJpdiwgdHJ1ZSk7CiAJfSBlbHNlIGlmIChnYl9vYmpl Y3RzKSB7CiAJCXJldCA9IHZtd19maWxsX2NvbXBhdF9jYXAoZGV2X3ByaXYsIGJvdW5jZSwgc2l6 ZSk7CiAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCkBAIC00MjAsNyArNDIwLDcgQEAgdW5zaWdu ZWQgaW50IHZtd19mb3BzX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwb2xsX3RhYmxl X3N0cnVjdCAqd2FpdCkKIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdm13X3By aXYoZmlsZV9wcml2LT5taW5vci0+ZGV2KTsKIAotCXZtd19maWZvX3BpbmdfaG9zdChkZXZfcHJp diwgU1ZHQV9TWU5DX0dFTkVSSUMpOworCXZtd19maWZvX3BpbmdfaG9zdChkZXZfcHJpdiwgU1ZH QV9TWU5DX0dFTkVSSUMsIHRydWUpOwogCXJldHVybiBkcm1fcG9sbChmaWxwLCB3YWl0KTsKIH0K IApAQCAtNDQzLDYgKzQ0Myw2IEBAIHNzaXplX3Qgdm13X2ZvcHNfcmVhZChzdHJ1Y3QgZmlsZSAq ZmlscCwgY2hhciBfX3VzZXIgKmJ1ZmZlciwKIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 ID0KIAkJdm13X3ByaXYoZmlsZV9wcml2LT5taW5vci0+ZGV2KTsKIAotCXZtd19maWZvX3Bpbmdf aG9zdChkZXZfcHJpdiwgU1ZHQV9TWU5DX0dFTkVSSUMpOworCXZtd19maWZvX3BpbmdfaG9zdChk ZXZfcHJpdiwgU1ZHQV9TWU5DX0dFTkVSSUMsIHRydWUpOwogCXJldHVybiBkcm1fcmVhZChmaWxw LCBidWZmZXIsIGNvdW50LCBvZmZzZXQpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pcnEu YwppbmRleCAxMmFhZWQ3Li5hZjY5NzBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pcnEu YwpAQCAtMjQ2LDcgKzI0Niw3IEBAIGludCB2bXdfd2FpdF9zZXFubyhzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAogCWlmIChsaWtlbHkodm13X3NlcW5vX3Bhc3NlZChkZXZfcHJpdiwgc2Vx bm8pKSkKIAkJcmV0dXJuIDA7CiAKLQl2bXdfZmlmb19waW5nX2hvc3QoZGV2X3ByaXYsIFNWR0Ff U1lOQ19HRU5FUklDKTsKKwl2bXdfZmlmb19waW5nX2hvc3QoZGV2X3ByaXYsIFNWR0FfU1lOQ19H RU5FUklDLCB0cnVlKTsKIAogCWlmICghKGZpZm8tPmNhcGFiaWxpdGllcyAmIFNWR0FfRklGT19D QVBfRkVOQ0UpKQogCQlyZXR1cm4gdm13X2ZhbGxiYWNrX3dhaXQoZGV2X3ByaXYsIGxhenksIHRy dWUsIHNlcW5vLAotLSAKMi40LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==