From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH v6 10/17] drm/ttm: switch ttm core from bo->resv to bo->base.resv Date: Mon, 5 Aug 2019 16:01:12 +0200 Message-ID: <20190805140119.7337-11-kraxel@redhat.com> References: <20190805140119.7337-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190805140119.7337-1-kraxel@redhat.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@shipmail.org, David Airlie , ckoenig.leichtzumerken@gmail.com, intel-gfx@lists.freedesktop.org, open list , Huang Rui , bskeggs@redhat.com, tzimmermann@suse.de, Christian Koenig , Gerd Hoffmann List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+ClJldmlld2Vk LWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQogaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgfCAxMiArKy0tCiBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICB8IDk4ICsrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICB8IDE2ICsrLS0tCiBk cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jICAgICAgICB8ICA2ICstCiBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyB8IDIwICsrKy0tLQogZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fdHQuYyAgICAgICAgICAgfCAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNl cnRpb25zKCspLCA3NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0v dHRtX2JvX2RyaXZlci5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAppbmRleCAw ZTZhMTExYmVkMGIuLjNmMTkzNWMxOWE2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCkBAIC02 NTQsMTQgKzY1NCwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBfX3R0bV9ib19yZXNlcnZlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChXQVJOX09OKHRpY2tldCkpCiAJCQlyZXR1 cm4gLUVCVVNZOwogCi0JCXN1Y2Nlc3MgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+ cmVzdik7CisJCXN1Y2Nlc3MgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+YmFzZS5y ZXN2KTsKIAkJcmV0dXJuIHN1Y2Nlc3MgPyAwIDogLUVCVVNZOwogCX0KIAogCWlmIChpbnRlcnJ1 cHRpYmxlKQotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlKGJv LT5yZXN2LCB0aWNrZXQpOworCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1 cHRpYmxlKGJvLT5iYXNlLnJlc3YsIHRpY2tldCk7CiAJZWxzZQotCQlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfbG9jayhiby0+cmVzdiwgdGlja2V0KTsKKwkJcmV0ID0gcmVzZXJ2YXRpb25fb2Jq ZWN0X2xvY2soYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKIAlpZiAocmV0ID09IC1FSU5UUikKIAkJ cmV0dXJuIC1FUkVTVEFSVFNZUzsKIAlyZXR1cm4gcmV0OwpAQCAtNzQ1LDEwICs3NDUsMTAgQEAg c3RhdGljIGlubGluZSBpbnQgdHRtX2JvX3Jlc2VydmVfc2xvd3BhdGgoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAlXQVJOX09OKCFrcmVmX3JlYWQoJmJvLT5rcmVmKSk7CiAKIAlpZiAo aW50ZXJydXB0aWJsZSkKLQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfc2xvd19pbnRl cnJ1cHRpYmxlKGJvLT5yZXN2LAorCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19zbG93 X2ludGVycnVwdGlibGUoYm8tPmJhc2UucmVzdiwKIAkJCQkJCQkJIHRpY2tldCk7CiAJZWxzZQot CQlyZXNlcnZhdGlvbl9vYmplY3RfbG9ja19zbG93KGJvLT5yZXN2LCB0aWNrZXQpOworCQlyZXNl cnZhdGlvbl9vYmplY3RfbG9ja19zbG93KGJvLT5iYXNlLnJlc3YsIHRpY2tldCk7CiAKIAlpZiAo bGlrZWx5KHJldCA9PSAwKSkKIAkJdHRtX2JvX2RlbF9zdWJfZnJvbV9scnUoYm8pOwpAQCAtNzcz LDcgKzc3Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9fdW5yZXNlcnZlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJZWxzZQogCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbChi bywgTlVMTCk7CiAJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5nbG9iLT5scnVfbG9jayk7Ci0JcmVz ZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhiby0+YmFzZS5yZXN2KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IGNlMWU2 MjIxZTdlYS4uNmI4ZTc4NTEwMzhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTE3Myw3ICsxNzMs NyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fYWRkX21lbV90b19scnUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2OwogCXN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwogCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2Fz c2VydF9oZWxkKGJvLT5yZXN2KTsKKwlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8t PmJhc2UucmVzdik7CiAKIAlpZiAoIWxpc3RfZW1wdHkoJmJvLT5scnUpKQogCQlyZXR1cm47CkBA IC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9zZXRfcG9zKHN0 cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZV9wb3MgKnBvcywKIHZvaWQgdHRtX2JvX21vdmVfdG9fbHJ1 X3RhaWwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCSAgICAgc3RydWN0IHR0bV9s cnVfYnVsa19tb3ZlICpidWxrKQogewotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChi by0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3Yp OwogCiAJdHRtX2JvX2RlbF9mcm9tX2xydShibyk7CiAJdHRtX2JvX2FkZF90b19scnUoYm8pOwpA QCAtMjc3LDggKzI3Nyw4IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3Qg dHRtX2xydV9idWxrX21vdmUgKmJ1bGspCiAJCWlmICghcG9zLT5maXJzdCkKIAkJCWNvbnRpbnVl OwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChwb3MtPmZpcnN0LT5yZXN2KTsK LQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+bGFzdC0+cmVzdik7CisJCXJl c2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChwb3MtPmZpcnN0LT5iYXNlLnJlc3YpOworCQly ZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5iYXNlLnJlc3YpOwogCiAJ CW1hbiA9ICZwb3MtPmZpcnN0LT5iZGV2LT5tYW5bVFRNX1BMX1RUXTsKIAkJbGlzdF9idWxrX21v dmVfdGFpbCgmbWFuLT5scnVbaV0sICZwb3MtPmZpcnN0LT5scnUsCkBAIC0yOTIsOCArMjkyLDgg QEAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92 ZSAqYnVsaykKIAkJaWYgKCFwb3MtPmZpcnN0KQogCQkJY29udGludWU7CiAKLQkJcmVzZXJ2YXRp b25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+Zmlyc3QtPnJlc3YpOwotCQlyZXNlcnZhdGlvbl9v YmplY3RfYXNzZXJ0X2hlbGQocG9zLT5sYXN0LT5yZXN2KTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0 X2Fzc2VydF9oZWxkKHBvcy0+Zmlyc3QtPmJhc2UucmVzdik7CisJCXJlc2VydmF0aW9uX29iamVj dF9hc3NlcnRfaGVsZChwb3MtPmxhc3QtPmJhc2UucmVzdik7CiAKIAkJbWFuID0gJnBvcy0+Zmly c3QtPmJkZXYtPm1hbltUVE1fUExfVlJBTV07CiAJCWxpc3RfYnVsa19tb3ZlX3RhaWwoJm1hbi0+ bHJ1W2ldLCAmcG9zLT5maXJzdC0+bHJ1LApAQCAtMzA3LDggKzMwNyw4IEBAIHZvaWQgdHRtX2Jv X2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmUgKmJ1bGspCiAJCWlm ICghcG9zLT5maXJzdCkKIAkJCWNvbnRpbnVlOwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hc3Nl cnRfaGVsZChwb3MtPmZpcnN0LT5yZXN2KTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9o ZWxkKHBvcy0+bGFzdC0+cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChw b3MtPmZpcnN0LT5iYXNlLnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQo cG9zLT5sYXN0LT5iYXNlLnJlc3YpOwogCiAJCWxydSA9ICZwb3MtPmZpcnN0LT5iZGV2LT5nbG9i LT5zd2FwX2xydVtpXTsKIAkJbGlzdF9idWxrX21vdmVfdGFpbChscnUsICZwb3MtPmZpcnN0LT5z d2FwLCAmcG9zLT5sYXN0LT5zd2FwKTsKQEAgLTQzOSwxMiArNDM5LDEyIEBAIHN0YXRpYyBpbnQg dHRtX2JvX2luZGl2aWR1YWxpemVfcmVzdihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQog ewogCWludCByOwogCi0JaWYgKGJvLT5yZXN2ID09ICZiby0+YmFzZS5fcmVzdikKKwlpZiAoYm8t PmJhc2UucmVzdiA9PSAmYm8tPmJhc2UuX3Jlc3YpCiAJCXJldHVybiAwOwogCiAJQlVHX09OKCFy ZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jaygmYm8tPmJhc2UuX3Jlc3YpKTsKIAotCXIgPSByZXNl cnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoJmJvLT5iYXNlLl9yZXN2LCBiby0+cmVzdik7CisJ ciA9IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2ZlbmNlcygmYm8tPmJhc2UuX3Jlc3YsIGJvLT5i YXNlLnJlc3YpOwogCWlmIChyKQogCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKCZiby0+YmFz ZS5fcmVzdik7CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fZmx1c2hf YWxsX2ZlbmNlcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCiAJZm9yIChpID0gMDsg Zm9iaiAmJiBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpIHsKIAkJZmVuY2UgPSByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKLQkJCQkJcmVzZXJ2YXRpb25fb2Jq ZWN0X2hlbGQoYm8tPnJlc3YpKTsKKwkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQoYm8tPmJh c2UucmVzdikpOwogCiAJCWlmICghZmVuY2UtPm9wcy0+c2lnbmFsZWQpCiAJCQlkbWFfZmVuY2Vf ZW5hYmxlX3N3X3NpZ25hbGluZyhmZW5jZSk7CkBAIC00ODIsMjMgKzQ4MiwyMyBAQCBzdGF0aWMg dm9pZCB0dG1fYm9fY2xlYW51cF9yZWZzX29yX3F1ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8pCiAJCS8qIExhc3QgcmVzb3J0LCBpZiB3ZSBmYWlsIHRvIGFsbG9jYXRlIG1lbW9yeSBm b3IgdGhlCiAJCSAqIGZlbmNlcyBibG9jayBmb3IgdGhlIEJPIHRvIGJlY29tZSBpZGxlCiAJCSAq LwotCQlyZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShiby0+cmVzdiwgdHJ1ZSwg ZmFsc2UsCisJCXJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT5iYXNlLnJl c3YsIHRydWUsIGZhbHNlLAogCQkJCQkJICAgIDMwICogSFopOwogCQlzcGluX2xvY2soJmdsb2It PmxydV9sb2NrKTsKIAkJZ290byBlcnJvcjsKIAl9CiAKIAlzcGluX2xvY2soJmdsb2ItPmxydV9s b2NrKTsKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+cmVzdikgPyAwIDog LUVCVVNZOworCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5iYXNlLnJlc3Yp ID8gMCA6IC1FQlVTWTsKIAlpZiAoIXJldCkgewogCQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3Rl c3Rfc2lnbmFsZWRfcmN1KCZiby0+YmFzZS5fcmVzdiwgdHJ1ZSkpIHsKIAkJCXR0bV9ib19kZWxf ZnJvbV9scnUoYm8pOwogCQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKLQkJCWlmIChi by0+cmVzdiAhPSAmYm8tPmJhc2UuX3Jlc3YpCisJCQlpZiAoYm8tPmJhc2UucmVzdiAhPSAmYm8t PmJhc2UuX3Jlc3YpCiAJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jaygmYm8tPmJhc2UuX3Jl c3YpOwogCiAJCQl0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Ci0JCQlyZXNlcnZhdGlv bl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2so Ym8tPmJhc2UucmVzdik7CiAJCQlyZXR1cm47CiAJCX0KIApAQCAtNTE0LDkgKzUxNCw5IEBAIHN0 YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVwX3JlZnNfb3JfcXVldWUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKIAkJCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKIAkJfQogCi0JCXJlc2VydmF0 aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2Nr KGJvLT5iYXNlLnJlc3YpOwogCX0KLQlpZiAoYm8tPnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KQor CWlmIChiby0+YmFzZS5yZXN2ICE9ICZiby0+YmFzZS5fcmVzdikKIAkJcmVzZXJ2YXRpb25fb2Jq ZWN0X3VubG9jaygmYm8tPmJhc2UuX3Jlc3YpOwogCiBlcnJvcjoKQEAgLTU1MCw3ICs1NTAsNyBA QCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAlpbnQgcmV0OwogCiAJaWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoJmJvLT5kZGVzdHJv eSkpKQotCQlyZXN2ID0gYm8tPnJlc3Y7CisJCXJlc3YgPSBiby0+YmFzZS5yZXN2OwogCWVsc2UK IAkJcmVzdiA9ICZiby0+YmFzZS5fcmVzdjsKIApAQCAtNTYzLDcgKzU2Myw3IEBAIHN0YXRpYyBp bnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQls b25nIGxyZXQ7CiAKIAkJaWYgKHVubG9ja19yZXN2KQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhiby0+cmVzdik7CisJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJl c3YpOwogCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCiAJCWxyZXQgPSByZXNlcnZh dGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB0cnVlLApAQCAtNTc2LDcgKzU3Niw3 IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAogCQkJcmV0dXJuIC1FQlVTWTsKIAogCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2Nr KTsKLQkJaWYgKHVubG9ja19yZXN2ICYmICFyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+ cmVzdikpIHsKKwkJaWYgKHVubG9ja19yZXN2ICYmICFyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9j ayhiby0+YmFzZS5yZXN2KSkgewogCQkJLyoKIAkJCSAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29t ZW9uZSBlbHNlIGhvbGRzIHRoZSByZXNlcnZhdGlvbiBub3csCiAJCQkgKiBhbmQgaXMgcHJvYmFi bHkgYnVzeSBpbiB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZS4KQEAgLTU5Myw3ICs1OTMsNyBA QCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAogCWlmIChyZXQgfHwgdW5saWtlbHkobGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSkp IHsKIAkJaWYgKHVubG9ja19yZXN2KQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+ cmVzdik7CisJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCQlz cGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTYwNiw3 ICs2MDYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAl0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7CiAKIAlpZiAo dW5sb2NrX3Jlc3YpCi0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQly ZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCiAJcmV0dXJuIDA7CiB9 CkBAIC02MzIsMTQgKzYzMiwxNCBAQCBzdGF0aWMgYm9vbCB0dG1fYm9fZGVsYXllZF9kZWxldGUo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKIAkJa3JlZl9nZXQo JmJvLT5saXN0X2tyZWYpOwogCQlsaXN0X21vdmVfdGFpbCgmYm8tPmRkZXN0cm95LCAmcmVtb3Zl ZCk7CiAKLQkJaWYgKHJlbW92ZV9hbGwgfHwgYm8tPnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KSB7 CisJCWlmIChyZW1vdmVfYWxsIHx8IGJvLT5iYXNlLnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KSB7 CiAJCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwotCQkJcmVzZXJ2YXRpb25fb2JqZWN0 X2xvY2soYm8tPnJlc3YsIE5VTEwpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYm8tPmJh c2UucmVzdiwgTlVMTCk7CiAKIAkJCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCQkJdHRt X2JvX2NsZWFudXBfcmVmcyhibywgZmFsc2UsICFyZW1vdmVfYWxsLCB0cnVlKTsKIAotCQl9IGVs c2UgaWYgKHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KSkgeworCQl9IGVsc2Ug aWYgKHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7CiAJCQl0dG1f Ym9fY2xlYW51cF9yZWZzKGJvLCBmYWxzZSwgIXJlbW92ZV9hbGwsIHRydWUpOwogCQl9IGVsc2Ug ewogCQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKQEAgLTcwOCw3ICs3MDgsNyBAQCBz dGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXN0 cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKIAlpbnQgcmV0ID0gMDsKIAotCXJlc2VydmF0 aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2Fz c2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJcGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSAw OwogCXBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAwOwpAQCAtNzc4LDggKzc3OCw4IEBA IHN0YXRpYyBib29sIHR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogewogCWJvb2wgcmV0ID0gZmFsc2U7CiAKLQlpZiAoYm8tPnJlc3Yg PT0gY3R4LT5yZXN2KSB7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVz dik7CisJaWYgKGJvLT5iYXNlLnJlc3YgPT0gY3R4LT5yZXN2KSB7CisJCXJlc2VydmF0aW9uX29i amVjdF9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAkJaWYgKGN0eC0+ZmxhZ3MgJiBUVE1f T1BUX0ZMQUdfQUxMT1dfUkVTX0VWSUNUCiAJCSAgICB8fCAhbGlzdF9lbXB0eSgmYm8tPmRkZXN0 cm95KSkKIAkJCXJldCA9IHRydWU7CkBAIC03ODcsNyArNzg3LDcgQEAgc3RhdGljIGJvb2wgdHRt X2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s CiAJCWlmIChidXN5KQogCQkJKmJ1c3kgPSBmYWxzZTsKIAl9IGVsc2UgewotCQlyZXQgPSByZXNl cnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+cmVzdik7CisJCXJldCA9IHJlc2VydmF0aW9uX29i amVjdF90cnlsb2NrKGJvLT5iYXNlLnJlc3YpOwogCQkqbG9ja2VkID0gcmV0OwogCQlpZiAoYnVz eSkKIAkJCSpidXN5ID0gIXJldDsKQEAgLTgxNSwxMCArODE1LDEwIEBAIHN0YXRpYyBpbnQgdHRt X21lbV9ldmljdF93YWl0X2J1c3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidXN5X2JvLAog CQlyZXR1cm4gLUVCVVNZOwogCiAJaWYgKGN0eC0+aW50ZXJydXB0aWJsZSkKLQkJciA9IHJlc2Vy dmF0aW9uX29iamVjdF9sb2NrX2ludGVycnVwdGlibGUoYnVzeV9iby0+cmVzdiwKKwkJciA9IHJl c2VydmF0aW9uX29iamVjdF9sb2NrX2ludGVycnVwdGlibGUoYnVzeV9iby0+YmFzZS5yZXN2LAog CQkJCQkJCSAgdGlja2V0KTsKIAllbHNlCi0JCXIgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9jayhi dXN5X2JvLT5yZXN2LCB0aWNrZXQpOworCQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYnVz eV9iby0+YmFzZS5yZXN2LCB0aWNrZXQpOwogCiAJLyoKIAkgKiBUT0RPOiBJdCB3b3VsZCBiZSBi ZXR0ZXIgdG8ga2VlcCB0aGUgQk8gbG9ja2VkIHVudGlsIGFsbG9jYXRpb24gaXMgYXQKQEAgLTgy Niw3ICs4MjYsNyBAQCBzdGF0aWMgaW50IHR0bV9tZW1fZXZpY3Rfd2FpdF9idXN5KHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYnVzeV9ibywKIAkgKiBvZiBUVE0uCiAJICovCiAJaWYgKCFyKQot CQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJ1c3lfYm8tPnJlc3YpOworCQlyZXNlcnZhdGlv bl9vYmplY3RfdW5sb2NrKGJ1c3lfYm8tPmJhc2UucmVzdik7CiAKIAlyZXR1cm4gciA9PSAtRURF QURMSyA/IC1FQlVTWSA6IHI7CiB9CkBAIC04NTIsNyArODUyLDcgQEAgc3RhdGljIGludCB0dG1f bWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCQkJaWYgKCF0dG1f Ym9fZXZpY3Rfc3dhcG91dF9hbGxvd2FibGUoYm8sIGN0eCwgJmxvY2tlZCwKIAkJCQkJCQkgICAg JmJ1c3kpKSB7CiAJCQkJaWYgKGJ1c3kgJiYgIWJ1c3lfYm8gJiYgdGlja2V0ICE9Ci0JCQkJICAg IHJlc2VydmF0aW9uX29iamVjdF9sb2NraW5nX2N0eChiby0+cmVzdikpCisJCQkJICAgIHJlc2Vy dmF0aW9uX29iamVjdF9sb2NraW5nX2N0eChiby0+YmFzZS5yZXN2KSkKIAkJCQkJYnVzeV9ibyA9 IGJvOwogCQkJCWNvbnRpbnVlOwogCQkJfQpAQCAtODYwLDcgKzg2MCw3IEBAIHN0YXRpYyBpbnQg dHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJCWlmIChw bGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywKIAkJCQkJCQkJICAg ICAgcGxhY2UpKSB7CiAJCQkJaWYgKGxvY2tlZCkKLQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhiby0+cmVzdik7CisJCQkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2Uu cmVzdik7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlicmVhazsKQEAgLTkzMiw5ICs5MzIsOSBA QCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAogCXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAKIAlpZiAoZmVuY2UpIHsK LQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsK KwkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgZmVu Y2UpOwogCi0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVz diwgMSk7CisJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+YmFz ZS5yZXN2LCAxKTsKIAkJaWYgKHVubGlrZWx5KHJldCkpIHsKIAkJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCQkJcmV0dXJuIHJldDsKQEAgLTk2MSw3ICs5NjEsNyBAQCBzdGF0aWMgaW50IHR0bV9i b19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlzdHJ1Y3Qg d3dfYWNxdWlyZV9jdHggKnRpY2tldDsKIAlpbnQgcmV0OwogCi0JdGlja2V0ID0gcmVzZXJ2YXRp b25fb2JqZWN0X2xvY2tpbmdfY3R4KGJvLT5yZXN2KTsKKwl0aWNrZXQgPSByZXNlcnZhdGlvbl9v YmplY3RfbG9ja2luZ19jdHgoYm8tPmJhc2UucmVzdik7CiAJZG8gewogCQlyZXQgPSAoKm1hbi0+ ZnVuYy0+Z2V0X25vZGUpKG1hbiwgYm8sIHBsYWNlLCBtZW0pOwogCQlpZiAodW5saWtlbHkocmV0 ICE9IDApKQpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgaW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlib29sIHR5cGVfZm91bmQgPSBmYWxzZTsKIAlpbnQg aSwgcmV0OwogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5y ZXN2LCAxKTsKKwlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPmJh c2UucmVzdiwgMSk7CiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCXJldHVybiByZXQ7CiAKQEAgLTEx NzIsNyArMTE3Miw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21vdmVfYnVmZmVyKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldCA9IDA7CiAJc3RydWN0IHR0bV9tZW1fcmVnIG1l bTsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJcmVzZXJ2 YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJbWVtLm51bV9wYWdl cyA9IGJvLT5udW1fcGFnZXM7CiAJbWVtLnNpemUgPSBtZW0ubnVtX3BhZ2VzIDw8IFBBR0VfU0hJ RlQ7CkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBpbnQgdHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldDsKIAl1aW50MzJfdCBuZXdfZmxhZ3M7CiAKLQly ZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3YpOworCXJlc2VydmF0aW9uX29i amVjdF9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAkvKgogCSAqIENoZWNrIHdoZXRoZXIg d2UgbmVlZCB0byBtb3ZlIGJ1ZmZlci4KIAkgKi8KQEAgLTEzMzQsNyArMTMzNCw3IEBAIGludCB0 dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAlpZiAocmVz dikgewogCQliby0+cmVzdiA9IHJlc3Y7CiAJCWJvLT5iYXNlLnJlc3YgPSByZXN2OwotCQlyZXNl cnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmpl Y3RfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CiAJfSBlbHNlIHsKIAkJYm8tPnJlc3YgPSAm Ym8tPmJhc2UuX3Jlc3Y7CiAJCWJvLT5iYXNlLnJlc3YgPSAmYm8tPmJhc2UuX3Jlc3Y7CkBAIC0x MzYyLDcgKzEzNjIsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCiAJICogc2luY2Ugb3RoZXJ3aXNlIGxvY2tkZXAgd2lsbCBiZSBhbmdlcmVk IGluIHJhZGVvbi4KIAkgKi8KIAlpZiAoIXJlc3YpIHsKLQkJbG9ja2VkID0gcmVzZXJ2YXRpb25f b2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpOworCQlsb2NrZWQgPSByZXNlcnZhdGlvbl9vYmplY3Rf dHJ5bG9jayhiby0+YmFzZS5yZXN2KTsKIAkJV0FSTl9PTighbG9ja2VkKTsKIAl9CiAKQEAgLTE4 MDYsMTMgKzE4MDYsMTMgQEAgaW50IHR0bV9ib193YWl0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCiAJbG9uZyB0aW1lb3V0ID0gMTUgKiBIWjsKIAogCWlmIChub193YWl0KSB7Ci0JCWlm IChyZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3UoYm8tPnJlc3YsIHRydWUpKQor CQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KGJvLT5iYXNlLnJlc3Ys IHRydWUpKQogCQkJcmV0dXJuIDA7CiAJCWVsc2UKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCi0J dGltZW91dCA9IHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT5yZXN2LCB0 cnVlLAorCXRpbWVvdXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShiby0+ YmFzZS5yZXN2LCB0cnVlLAogCQkJCQkJICAgICAgaW50ZXJydXB0aWJsZSwgdGltZW91dCk7CiAJ aWYgKHRpbWVvdXQgPCAwKQogCQlyZXR1cm4gdGltZW91dDsKQEAgLTE4MjAsNyArMTgyMCw3IEBA IGludCB0dG1fYm9fd2FpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCWlmICh0aW1l b3V0ID09IDApCiAJCXJldHVybiAtRUJVU1k7CiAKLQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4 Y2xfZmVuY2UoYm8tPnJlc3YsIE5VTEwpOworCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9m ZW5jZShiby0+YmFzZS5yZXN2LCBOVUxMKTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wo dHRtX2JvX3dhaXQpOwpAQCAtMTkzNiw3ICsxOTM2LDcgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0 cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkK IAkgKiBhbHJlYWR5IHN3YXBwZWQgYnVmZmVyLgogCSAqLwogCWlmIChsb2NrZWQpCi0JCXJlc2Vy dmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5s b2NrKGJvLT5iYXNlLnJlc3YpOwogCWtyZWZfcHV0KCZiby0+bGlzdF9rcmVmLCB0dG1fYm9fcmVs ZWFzZV9saXN0KTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTk3NCwxNCArMTk3NCwxNCBAQCBpbnQg dHRtX2JvX3dhaXRfdW5yZXNlcnZlZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCXJl dCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmYm8tPnd1X211dGV4KTsKIAlpZiAodW5saWtl bHkocmV0ICE9IDApKQogCQlyZXR1cm4gLUVSRVNUQVJUU1lTOwotCWlmICghcmVzZXJ2YXRpb25f b2JqZWN0X2lzX2xvY2tlZChiby0+cmVzdikpCisJaWYgKCFyZXNlcnZhdGlvbl9vYmplY3RfaXNf bG9ja2VkKGJvLT5iYXNlLnJlc3YpKQogCQlnb3RvIG91dF91bmxvY2s7Ci0JcmV0ID0gcmVzZXJ2 YXRpb25fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJsZShiby0+cmVzdiwgTlVMTCk7CisJcmV0ID0g cmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJsZShiby0+YmFzZS5yZXN2LCBOVUxM KTsKIAlpZiAocmV0ID09IC1FSU5UUikKIAkJcmV0ID0gLUVSRVNUQVJUU1lTOwogCWlmICh1bmxp a2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X3VubG9jazsKLQlyZXNlcnZhdGlvbl9vYmplY3Rf dW5sb2NrKGJvLT5yZXN2KTsKKwlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJl c3YpOwogCiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygmYm8tPnd1X211dGV4KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX3V0aWwuYwppbmRleCBmNTAwOWMxYjZhOWMuLjQyNWE2ZDYyN2IzMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpAQCAtNTE3LDkgKzUxNyw5IEBAIHN0YXRpYyBpbnQg dHRtX2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK IAlrcmVmX2luaXQoJmZiby0+YmFzZS5rcmVmKTsKIAlmYm8tPmJhc2UuZGVzdHJveSA9ICZ0dG1f dHJhbnNmZXJlZF9kZXN0cm95OwogCWZiby0+YmFzZS5hY2Nfc2l6ZSA9IDA7Ci0JZmJvLT5iYXNl LnJlc3YgPSAmZmJvLT5iYXNlLmJhc2UuX3Jlc3Y7Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X2luaXQo ZmJvLT5iYXNlLnJlc3YpOwotCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGZiby0+ YmFzZS5yZXN2KTsKKwlmYm8tPmJhc2UuYmFzZS5yZXN2ID0gJmZiby0+YmFzZS5iYXNlLl9yZXN2 OworCXJlc2VydmF0aW9uX29iamVjdF9pbml0KGZiby0+YmFzZS5iYXNlLnJlc3YpOworCXJldCA9 IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGZiby0+YmFzZS5iYXNlLnJlc3YpOwogCVdBUk5f T04oIXJldCk7CiAKIAkqbmV3X29iaiA9ICZmYm8tPmJhc2U7CkBAIC02ODksNyArNjg5LDcgQEAg aW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKIAlpbnQgcmV0OwogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqZ2hvc3Rfb2JqOwogCi0J cmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7CisJcmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAlp ZiAoZXZpY3QpIHsKIAkJcmV0ID0gdHRtX2JvX3dhaXQoYm8sIGZhbHNlLCBmYWxzZSk7CiAJCWlm IChyZXQpCkBAIC03MTYsNyArNzE2LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7 CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGdob3N0X29iai0+cmVzdiwg ZmVuY2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoZ2hvc3Rfb2JqLT5i YXNlLnJlc3YsIGZlbmNlKTsKIAogCQkvKioKIAkJICogSWYgd2UncmUgbm90IG1vdmluZyB0byBm aXhlZCBtZW1vcnksIHRoZSBUVE0gb2JqZWN0CkBAIC03NTIsNyArNzUyLDcgQEAgaW50IHR0bV9i b19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAKIAlpbnQgcmV0 OwogCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7 CisJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNl KTsKIAogCWlmICghZXZpY3QpIHsKIAkJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpnaG9zdF9v Ymo7CkBAIC03NzIsNyArNzcyLDcgQEAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCXJl c2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShnaG9zdF9vYmotPnJlc3YsIGZlbmNlKTsK KwkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGdob3N0X29iai0+YmFzZS5yZXN2 LCBmZW5jZSk7CiAKIAkJLyoqCiAJCSAqIElmIHdlJ3JlIG5vdCBtb3ZpbmcgdG8gZml4ZWQgbWVt b3J5LCB0aGUgVFRNIG9iamVjdApAQCAtODQxLDcgKzg0MSw3IEBAIGludCB0dG1fYm9fcGlwZWxp bmVfZ3V0dGluZyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoZ2hvc3Qt PnJlc3YsIGJvLT5yZXN2KTsKKwlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMo Z2hvc3QtPmJhc2UucmVzdiwgYm8tPmJhc2UucmVzdik7CiAJLyogTGFzdCByZXNvcnQsIHdhaXQg Zm9yIHRoZSBCTyB0byBiZSBpZGxlIHdoZW4gd2UgYXJlIE9PTSAqLwogCWlmIChyZXQpCiAJCXR0 bV9ib193YWl0KGJvLCBmYWxzZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fYm9fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKaW5kZXgg ZmI2ODc1YTc4OWI3Li44NWY1YmNiZTBjNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwpAQCAt NzEsNyArNzEsNyBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQl0dG1fYm9fZ2V0KGJvKTsKIAkJdXBfcmVhZCgm dm1mLT52bWEtPnZtX21tLT5tbWFwX3NlbSk7CiAJCSh2b2lkKSBkbWFfZmVuY2Vfd2FpdChiby0+ bW92aW5nLCB0cnVlKTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJ CXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJCXR0bV9ib19wdXQo Ym8pOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyB2 bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkgKiBmb3Ig cmVzZXJ2ZSwgYW5kIGlmIGl0IGZhaWxzLCByZXRyeSB0aGUgZmF1bHQgYWZ0ZXIgd2FpdGluZwog CSAqIGZvciB0aGUgYnVmZmVyIHRvIGJlY29tZSB1bnJlc2VydmVkLgogCSAqLwotCWlmICh1bmxp a2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpKSkgeworCWlmICh1bmxp a2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPmJhc2UucmVzdikpKSB7CiAJCWlm ICh2bWYtPmZsYWdzICYgRkFVTFRfRkxBR19BTExPV19SRVRSWSkgewogCQkJaWYgKCEodm1mLT5m bGFncyAmIEZBVUxUX0ZMQUdfUkVUUllfTk9XQUlUKSkgewogCQkJCXR0bV9ib19nZXQoYm8pOwpA QCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdChzdHJ1 Y3Qgdm1fZmF1bHQgKnZtZikKIG91dF9pb191bmxvY2s6CiAJdHRtX21lbV9pb191bmxvY2sobWFu KTsKIG91dF91bmxvY2s6Ci0JcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJ cmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAlyZXR1cm4gcmV0Owog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCmluZGV4IDcyM2ZiNTgzZmRk YS4uM2FlZmU3MmZiNWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVj YnVmX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwpA QCAtMzksNyArMzksNyBAQCBzdGF0aWMgdm9pZCB0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbl9y ZXZlcnNlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250 aW51ZV9yZXZlcnNlKGVudHJ5LCBsaXN0LCBoZWFkKSB7CiAJCXN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8gPSBlbnRyeS0+Ym87CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+ cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJfQog fQogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24oc3Ry dWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAKIAkJaWYgKGxpc3RfZW1wdHkoJmJvLT5scnUp KQogCQkJdHRtX2JvX2FkZF90b19scnUoYm8pOwotCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2Nr KGJvLT5yZXN2KTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFzZS5yZXN2KTsK IAl9CiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKIApAQCAtMTE0LDcgKzExNCw3IEBA IGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0 LAogCiAJCXJldCA9IF9fdHRtX2JvX3Jlc2VydmUoYm8sIGludHIsICh0aWNrZXQgPT0gTlVMTCks IHRpY2tldCk7CiAJCWlmICghcmV0ICYmIHVubGlrZWx5KGF0b21pY19yZWFkKCZiby0+Y3B1X3dy aXRlcnMpID4gMCkpIHsKLQkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOwor CQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAogCQkJcmV0ID0g LUVCVVNZOwogCkBAIC0xMzAsNyArMTMwLDcgQEAgaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMo c3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJCQlpZiAoIWVudHJ5LT5udW1fc2hhcmVk KQogCQkJCWNvbnRpbnVlOwogCi0JCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9z aGFyZWQoYm8tPnJlc3YsCisJCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFy ZWQoYm8tPmJhc2UucmVzdiwKIAkJCQkJCQkJZW50cnktPm51bV9zaGFyZWQpOwogCQkJaWYgKCFy ZXQpCiAJCQkJY29udGludWU7CkBAIC0xNDQsMTYgKzE0NCwxNiBAQCBpbnQgdHRtX2V1X3Jlc2Vy dmVfYnVmZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAogCQlpZiAocmV0ID09 IC1FREVBRExLKSB7CiAJCQlpZiAoaW50cikgewotCQkJCXJldCA9IHJlc2VydmF0aW9uX29iamVj dF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZShiby0+cmVzdiwKKwkJCQlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfbG9ja19zbG93X2ludGVycnVwdGlibGUoYm8tPmJhc2UucmVzdiwKIAkJCQkJCQkJ CQkgdGlja2V0KTsKIAkJCX0gZWxzZSB7Ci0JCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfc2xv dyhiby0+cmVzdiwgdGlja2V0KTsKKwkJCQlyZXNlcnZhdGlvbl9vYmplY3RfbG9ja19zbG93KGJv LT5iYXNlLnJlc3YsIHRpY2tldCk7CiAJCQkJcmV0ID0gMDsKIAkJCX0KIAkJfQogCiAJCWlmICgh cmV0ICYmIGVudHJ5LT5udW1fc2hhcmVkKQotCQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jl c2VydmVfc2hhcmVkKGJvLT5yZXN2LAorCQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKGJvLT5iYXNlLnJlc3YsCiAJCQkJCQkJCWVudHJ5LT5udW1fc2hhcmVkKTsKIAog CQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7CkBAIC0yMDEsMTQgKzIwMSwxNCBAQCB2b2lkIHR0 bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwK IAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7CiAJCWJvID0gZW50cnkt PmJvOwogCQlpZiAoZW50cnktPm51bV9zaGFyZWQpCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRk X3NoYXJlZF9mZW5jZShiby0+cmVzdiwgZmVuY2UpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fk ZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgZmVuY2UpOwogCQllbHNlCi0JCQlyZXNlcnZh dGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsKKwkJCXJlc2VydmF0 aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBmZW5jZSk7CiAJCWlmIChs aXN0X2VtcHR5KCZiby0+bHJ1KSkKIAkJCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKIAkJZWxzZQog CQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwotCQlyZXNlcnZhdGlvbl9vYmpl Y3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFz ZS5yZXN2KTsKIAl9CiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKIAlpZiAodGlja2V0 KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX3R0LmMKaW5kZXggZTNhMDY5MTU4MmZmLi4wMGI0YTMzMzc4NDAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fdHQuYwpAQCAtNDgsNyArNDgsNyBAQCBpbnQgdHRtX3R0X2NyZWF0ZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIHplcm9fYWxsb2MpCiAJc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAl1aW50MzJfdCBwYWdlX2ZsYWdzID0gMDsKIAotCXJl c2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2Jq ZWN0X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJaWYgKGJkZXYtPm5lZWRfZG1hMzIp CiAJCXBhZ2VfZmxhZ3MgfD0gVFRNX1BBR0VfRkxBR19ETUEzMjsKLS0gCjIuMTguMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs