From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 3/4] drm/vmwgfx: Relax irq locking somewhat Date: Fri, 30 Oct 2015 02:42:45 -0700 Message-ID: <1446198166-3068-3-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-2.vmware.com (smtp-outbound-2.vmware.com [208.91.2.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF84E6E692 for ; Fri, 30 Oct 2015 02:43:44 -0700 (PDT) Received: from sc9-mailhost1.vmware.com (sc9-mailhost1.vmware.com [10.113.161.71]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 0597028468 for ; Fri, 30 Oct 2015 02:43:45 -0700 (PDT) Received: from EX13-CAS-002.vmware.com (ex13-cas-002.vmware.com [10.113.191.52]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id 7D4F8184CB for ; Fri, 30 Oct 2015 02:43:44 -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 UmVsYXggbG9ja2luZyB3aXRoIHRoZSBnb2FsIG9mIHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgbG9j a2luZyBjeWNsZXMgYW5kCnRpbWUgc3BlbnQgd2l0aCBpcnFzIGRpc2FibGVkLgoKU2lnbmVkLW9m Zi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgpSZXZpZXdlZC1i eTogU2luY2xhaXIgWWVoIDxzeWVoQHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZHJ2LmMgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuaCAgfCAgIDkgKystCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMg fCAgMjMgKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lycS5jICB8IDEw NCArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAz OSBpbnNlcnRpb25zKCspLCA5OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jCmluZGV4IGQxYzM0YWIuLmEwOWNmODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jCkBAIC02NDMsNyArNjQzLDcgQEAgc3RhdGljIGludCB2bXdfZHJpdmVyX2xvYWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBjaGlwc2V0KQogCWluaXRfd2FpdHF1 ZXVlX2hlYWQoJmRldl9wcml2LT5mZW5jZV9xdWV1ZSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgm ZGV2X3ByaXYtPmZpZm9fcXVldWUpOwogCWRldl9wcml2LT5mZW5jZV9xdWV1ZV93YWl0ZXJzID0g MDsKLQlhdG9taWNfc2V0KCZkZXZfcHJpdi0+Zmlmb19xdWV1ZV93YWl0ZXJzLCAwKTsKKwlkZXZf cHJpdi0+Zmlmb19xdWV1ZV93YWl0ZXJzID0gMDsKIAogCWRldl9wcml2LT51c2VkX21lbW9yeV9z aXplID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAppbmRleCAxOThjOGIxLi5h OGFlOWRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaApAQCAtNDQwLDEzICs0NDAs MTIgQEAgc3RydWN0IHZtd19wcml2YXRlIHsKIAlzcGlubG9ja190IHdhaXRlcl9sb2NrOwogCWlu dCBmZW5jZV9xdWV1ZV93YWl0ZXJzOyAvKiBQcm90ZWN0ZWQgYnkgd2FpdGVyX2xvY2sgKi8KIAlp bnQgZ29hbF9xdWV1ZV93YWl0ZXJzOyAvKiBQcm90ZWN0ZWQgYnkgd2FpdGVyX2xvY2sgKi8KLQlp bnQgY21kYnVmX3dhaXRlcnM7IC8qIFByb3RlY3RlZCBieSBpcnFfbG9jayAqLwotCWludCBlcnJv cl93YWl0ZXJzOyAvKiBQcm90ZWN0ZWQgYnkgaXJxX2xvY2sgKi8KLQlhdG9taWNfdCBmaWZvX3F1 ZXVlX3dhaXRlcnM7CisJaW50IGNtZGJ1Zl93YWl0ZXJzOyAvKiBQcm90ZWN0ZWQgYnkgd2FpdGVy X2xvY2sgKi8KKwlpbnQgZXJyb3Jfd2FpdGVyczsgLyogUHJvdGVjdGVkIGJ5IHdhaXRlcl9sb2Nr ICovCisJaW50IGZpZm9fcXVldWVfd2FpdGVyczsgLyogUHJvdGVjdGVkIGJ5IHdhaXRlcl9sb2Nr ICovCiAJdWludDMyX3QgbGFzdF9yZWFkX3NlcW5vOwotCXNwaW5sb2NrX3QgaXJxX2xvY2s7CiAJ c3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuOwotCXVpbnQzMl90IGlycV9tYXNrOworCXVp bnQzMl90IGlycV9tYXNrOyAvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB3YWl0ZXJfbG9jayAqLwog CiAJLyoKIAkgKiBEZXZpY2Ugc3RhdGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ZpZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYwpp bmRleCAwY2JhZjg4Li5hOGJhZjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9maWZvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5j CkBAIC0yNTIsNyArMjUyLDYgQEAgc3RhdGljIGludCB2bXdfZmlmb193YWl0KHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgdW5zaWduZWQgbG9uZyB0aW1lb3V0KQogewogCWxvbmcg cmV0ID0gMUw7Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CiAKIAlpZiAobGlrZWx5KCF2bXdf Zmlmb19pc19mdWxsKGRldl9wcml2LCBieXRlcykpKQogCQlyZXR1cm4gMDsKQEAgLTI2MiwxNiAr MjYxLDggQEAgc3RhdGljIGludCB2bXdfZmlmb193YWl0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCXJldHVybiB2bXdfZmlmb193YWl0X25vaXJxKGRldl9wcml2LCBieXRlcywKIAkJ CQkJICAgaW50ZXJydXB0aWJsZSwgdGltZW91dCk7CiAKLQlzcGluX2xvY2soJmRldl9wcml2LT53 YWl0ZXJfbG9jayk7Ci0JaWYgKGF0b21pY19hZGRfcmV0dXJuKDEsICZkZXZfcHJpdi0+Zmlmb19x dWV1ZV93YWl0ZXJzKSA+IDApIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgaXJxX2ZsYWdzKTsKLQkJb3V0bChTVkdBX0lSUUZMQUdfRklGT19QUk9HUkVTUywKLQkJ ICAgICBkZXZfcHJpdi0+aW9fc3RhcnQgKyBWTVdHRlhfSVJRU1RBVFVTX1BPUlQpOwotCQlkZXZf cHJpdi0+aXJxX21hc2sgfD0gU1ZHQV9JUlFGTEFHX0ZJRk9fUFJPR1JFU1M7Ci0JCXZtd193cml0 ZShkZXZfcHJpdiwgU1ZHQV9SRUdfSVJRTUFTSywgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQkJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCX0K LQlzcGluX3VubG9jaygmZGV2X3ByaXYtPndhaXRlcl9sb2NrKTsKKwl2bXdfZ2VuZXJpY193YWl0 ZXJfYWRkKGRldl9wcml2LCBTVkdBX0lSUUZMQUdfRklGT19QUk9HUkVTUywKKwkJCSAgICAgICAm ZGV2X3ByaXYtPmZpZm9fcXVldWVfd2FpdGVycyk7CiAKIAlpZiAoaW50ZXJydXB0aWJsZSkKIAkJ cmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQKQEAgLTI4NywxNCArMjc4LDgg QEAgc3RhdGljIGludCB2bXdfZmlmb193YWl0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJZWxzZSBpZiAobGlrZWx5KHJldCA+IDApKQogCQlyZXQgPSAwOwogCi0Jc3Bpbl9sb2NrKCZk ZXZfcHJpdi0+d2FpdGVyX2xvY2spOwotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZkZXZfcHJp di0+Zmlmb19xdWV1ZV93YWl0ZXJzKSkgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYt PmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCQlkZXZfcHJpdi0+aXJxX21hc2sgJj0gflNWR0FfSVJR RkxBR19GSUZPX1BST0dSRVNTOwotCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0lSUU1B U0ssIGRldl9wcml2LT5pcnFfbWFzayk7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnFfbG9jaywgaXJxX2ZsYWdzKTsKLQl9Ci0Jc3Bpbl91bmxvY2soJmRldl9wcml2LT53 YWl0ZXJfbG9jayk7CisJdm13X2dlbmVyaWNfd2FpdGVyX3JlbW92ZShkZXZfcHJpdiwgU1ZHQV9J UlFGTEFHX0ZJRk9fUFJPR1JFU1MsCisJCQkJICAmZGV2X3ByaXYtPmZpZm9fcXVldWVfd2FpdGVy cyk7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pcnEuYwppbmRl eCBiMGE2ZTY1Li4xMmFhZWQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pcnEuYwpAQCAt MzYsMTUgKzM2LDEzIEBAIGlycXJldHVybl90IHZtd19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lk ICphcmcpCiAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7CiAJ dWludDMyX3Qgc3RhdHVzLCBtYXNrZWRfc3RhdHVzOwogCi0Jc3Bpbl9sb2NrKCZkZXZfcHJpdi0+ aXJxX2xvY2spOwogCXN0YXR1cyA9IGlubChkZXZfcHJpdi0+aW9fc3RhcnQgKyBWTVdHRlhfSVJR U1RBVFVTX1BPUlQpOwotCW1hc2tlZF9zdGF0dXMgPSBzdGF0dXMgJiBkZXZfcHJpdi0+aXJxX21h c2s7Ci0Jc3Bpbl91bmxvY2soJmRldl9wcml2LT5pcnFfbG9jayk7CisJbWFza2VkX3N0YXR1cyA9 IHN0YXR1cyAmIFJFQURfT05DRShkZXZfcHJpdi0+aXJxX21hc2spOwogCiAJaWYgKGxpa2VseShz dGF0dXMpKQogCQlvdXRsKHN0YXR1cywgZGV2X3ByaXYtPmlvX3N0YXJ0ICsgVk1XR0ZYX0lSUVNU QVRVU19QT1JUKTsKIAotCWlmICghbWFza2VkX3N0YXR1cykKKwlpZiAoIXN0YXR1cykKIAkJcmV0 dXJuIElSUV9OT05FOwogCiAJaWYgKG1hc2tlZF9zdGF0dXMgJiAoU1ZHQV9JUlFGTEFHX0FOWV9G RU5DRSB8CkBAIC0xODgsNjUgKzE4Niw1MSBAQCBvdXRfZXJyOgogCXJldHVybiByZXQ7CiB9CiAK LXZvaWQgdm13X3NlcW5vX3dhaXRlcl9hZGQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikK K3ZvaWQgdm13X2dlbmVyaWNfd2FpdGVyX2FkZChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJICAgIHUzMiBmbGFnLCBpbnQgKndhaXRlcl9jb3VudCkKIHsKLQlzcGluX2xvY2soJmRl dl9wcml2LT53YWl0ZXJfbG9jayk7Ci0JaWYgKGRldl9wcml2LT5mZW5jZV9xdWV1ZV93YWl0ZXJz KysgPT0gMCkgewotCQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQotCQlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCQlvdXRsKFNWR0FfSVJRRkxB R19BTllfRkVOQ0UsCi0JCSAgICAgZGV2X3ByaXYtPmlvX3N0YXJ0ICsgVk1XR0ZYX0lSUVNUQVRV U19QT1JUKTsKLQkJZGV2X3ByaXYtPmlycV9tYXNrIHw9IFNWR0FfSVJRRkxBR19BTllfRkVOQ0U7 CisJc3Bpbl9sb2NrX2JoKCZkZXZfcHJpdi0+d2FpdGVyX2xvY2spOworCWlmICgoKndhaXRlcl9j b3VudCkrKyA9PSAwKSB7CisJCW91dGwoZmxhZywgZGV2X3ByaXYtPmlvX3N0YXJ0ICsgVk1XR0ZY X0lSUVNUQVRVU19QT1JUKTsKKwkJZGV2X3ByaXYtPmlycV9tYXNrIHw9IGZsYWc7CiAJCXZtd193 cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfSVJRTUFTSywgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwog CX0KLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPndhaXRlcl9sb2NrKTsKKwlzcGluX3VubG9ja19i aCgmZGV2X3ByaXYtPndhaXRlcl9sb2NrKTsKIH0KIAotdm9pZCB2bXdfc2Vxbm9fd2FpdGVyX3Jl bW92ZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQordm9pZCB2bXdfZ2VuZXJpY193YWl0 ZXJfcmVtb3ZlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgICAgdTMyIGZs YWcsIGludCAqd2FpdGVyX2NvdW50KQogewotCXNwaW5fbG9jaygmZGV2X3ByaXYtPndhaXRlcl9s b2NrKTsKLQlpZiAoLS1kZXZfcHJpdi0+ZmVuY2VfcXVldWVfd2FpdGVycyA9PSAwKSB7Ci0JCXVu c2lnbmVkIGxvbmcgaXJxX2ZsYWdzOwotCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+ aXJxX2xvY2ssIGlycV9mbGFncyk7Ci0JCWRldl9wcml2LT5pcnFfbWFzayAmPSB+U1ZHQV9JUlFG TEFHX0FOWV9GRU5DRTsKKwlzcGluX2xvY2tfYmgoJmRldl9wcml2LT53YWl0ZXJfbG9jayk7CisJ aWYgKC0tKCp3YWl0ZXJfY291bnQpID09IDApIHsKKwkJZGV2X3ByaXYtPmlycV9tYXNrICY9IH5m bGFnOwogCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0lSUU1BU0ssIGRldl9wcml2LT5p cnFfbWFzayk7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywg aXJxX2ZsYWdzKTsKIAl9Ci0Jc3Bpbl91bmxvY2soJmRldl9wcml2LT53YWl0ZXJfbG9jayk7CisJ c3Bpbl91bmxvY2tfYmgoJmRldl9wcml2LT53YWl0ZXJfbG9jayk7CiB9CiAKK3ZvaWQgdm13X3Nl cW5vX3dhaXRlcl9hZGQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKK3sKKwl2bXdfZ2Vu ZXJpY193YWl0ZXJfYWRkKGRldl9wcml2LCBTVkdBX0lSUUZMQUdfQU5ZX0ZFTkNFLAorCQkJICAg ICAgICZkZXZfcHJpdi0+ZmVuY2VfcXVldWVfd2FpdGVycyk7Cit9CisKK3ZvaWQgdm13X3NlcW5v X3dhaXRlcl9yZW1vdmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKK3sKKwl2bXdfZ2Vu ZXJpY193YWl0ZXJfcmVtb3ZlKGRldl9wcml2LCBTVkdBX0lSUUZMQUdfQU5ZX0ZFTkNFLAorCQkJ CSAgJmRldl9wcml2LT5mZW5jZV9xdWV1ZV93YWl0ZXJzKTsKK30KIAogdm9pZCB2bXdfZ29hbF93 YWl0ZXJfYWRkKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3Bpbl9sb2NrKCZk ZXZfcHJpdi0+d2FpdGVyX2xvY2spOwotCWlmIChkZXZfcHJpdi0+Z29hbF9xdWV1ZV93YWl0ZXJz KysgPT0gMCkgewotCQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQotCQlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCQlvdXRsKFNWR0FfSVJRRkxB R19GRU5DRV9HT0FMLAotCQkgICAgIGRldl9wcml2LT5pb19zdGFydCArIFZNV0dGWF9JUlFTVEFU VVNfUE9SVCk7Ci0JCWRldl9wcml2LT5pcnFfbWFzayB8PSBTVkdBX0lSUUZMQUdfRkVOQ0VfR09B TDsKLQkJdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19JUlFNQVNLLCBkZXZfcHJpdi0+aXJx X21hc2spOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGly cV9mbGFncyk7Ci0JfQotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+d2FpdGVyX2xvY2spOworCXZt d19nZW5lcmljX3dhaXRlcl9hZGQoZGV2X3ByaXYsIFNWR0FfSVJRRkxBR19GRU5DRV9HT0FMLAor CQkJICAgICAgICZkZXZfcHJpdi0+Z29hbF9xdWV1ZV93YWl0ZXJzKTsKIH0KIAogdm9pZCB2bXdf Z29hbF93YWl0ZXJfcmVtb3ZlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3Bp bl9sb2NrKCZkZXZfcHJpdi0+d2FpdGVyX2xvY2spOwotCWlmICgtLWRldl9wcml2LT5nb2FsX3F1 ZXVlX3dhaXRlcnMgPT0gMCkgewotCQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQotCQlzcGlu X2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCQlkZXZfcHJp di0+aXJxX21hc2sgJj0gflNWR0FfSVJRRkxBR19GRU5DRV9HT0FMOwotCQl2bXdfd3JpdGUoZGV2 X3ByaXYsIFNWR0FfUkVHX0lSUU1BU0ssIGRldl9wcml2LT5pcnFfbWFzayk7Ci0JCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxX2ZsYWdzKTsKLQl9Ci0Jc3Bp bl91bmxvY2soJmRldl9wcml2LT53YWl0ZXJfbG9jayk7CisJdm13X2dlbmVyaWNfd2FpdGVyX3Jl bW92ZShkZXZfcHJpdiwgU1ZHQV9JUlFGTEFHX0ZFTkNFX0dPQUwsCisJCQkJICAmZGV2X3ByaXYt PmdvYWxfcXVldWVfd2FpdGVycyk7CiB9CiAKIGludCB2bXdfd2FpdF9zZXFubyhzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMzAzLDcgKzI4Nyw2IEBAIHZvaWQgdm13X2lycV9wcmVp bnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKCEoZGV2X3ByaXYtPmNhcGFiaWxp dGllcyAmIFNWR0FfQ0FQX0lSUU1BU0spKQogCQlyZXR1cm47CiAKLQlzcGluX2xvY2tfaW5pdCgm ZGV2X3ByaXYtPmlycV9sb2NrKTsKIAlzdGF0dXMgPSBpbmwoZGV2X3ByaXYtPmlvX3N0YXJ0ICsg Vk1XR0ZYX0lSUVNUQVRVU19QT1JUKTsKIAlvdXRsKHN0YXR1cywgZGV2X3ByaXYtPmlvX3N0YXJ0 ICsgVk1XR0ZYX0lSUVNUQVRVU19QT1JUKTsKIH0KQEAgLTMyNiwzMCArMzA5LDMgQEAgdm9pZCB2 bXdfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0YXR1cyA9IGlubChk ZXZfcHJpdi0+aW9fc3RhcnQgKyBWTVdHRlhfSVJRU1RBVFVTX1BPUlQpOwogCW91dGwoc3RhdHVz LCBkZXZfcHJpdi0+aW9fc3RhcnQgKyBWTVdHRlhfSVJRU1RBVFVTX1BPUlQpOwogfQotCi12b2lk IHZtd19nZW5lcmljX3dhaXRlcl9hZGQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKLQkJ CSAgICB1MzIgZmxhZywgaW50ICp3YWl0ZXJfY291bnQpCi17Ci0JdW5zaWduZWQgbG9uZyBpcnFf ZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxh Z3MpOwotCWlmICgoKndhaXRlcl9jb3VudCkrKyA9PSAwKSB7Ci0JCW91dGwoZmxhZywgZGV2X3By aXYtPmlvX3N0YXJ0ICsgVk1XR0ZYX0lSUVNUQVRVU19QT1JUKTsKLQkJZGV2X3ByaXYtPmlycV9t YXNrIHw9IGZsYWc7Ci0JCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfSVJRTUFTSywgZGV2 X3ByaXYtPmlycV9tYXNrKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYt PmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotfQotCi12b2lkIHZtd19nZW5lcmljX3dhaXRlcl9yZW1v dmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgICB1MzIgZmxhZywgaW50 ICp3YWl0ZXJfY291bnQpCi17Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7Ci0KLQlzcGluX2xv Y2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFfZmxhZ3MpOwotCWlmICgtLSgqd2Fp dGVyX2NvdW50KSA9PSAwKSB7Ci0JCWRldl9wcml2LT5pcnFfbWFzayAmPSB+ZmxhZzsKLQkJdm13 X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19JUlFNQVNLLCBkZXZfcHJpdi0+aXJxX21hc2spOwot CX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycV9mbGFn cyk7Ci19Ci0tIAoyLjQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK