From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH v2 11/18] drm/ttm: switch ttm core from bo->resv to bo->base.resv Date: Fri, 21 Jun 2019 13:57:48 +0200 Message-ID: <20190621115755.8481-12-kraxel@redhat.com> References: <20190621115755.8481-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 31F7C6E87F for ; Fri, 21 Jun 2019 11:58:03 +0000 (UTC) In-Reply-To: <20190621115755.8481-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: David Airlie , ckoenig.leichtzumerken@gmail.com, open list , Huang Rui , Gerd Hoffmann , Christian Koenig List-Id: dri-devel@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Ci0tLQogaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgfCAxMiArKy0tCiBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICB8IDk2ICsrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICB8IDE2ICsrLS0tCiBk cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jICAgICAgICB8ICA2ICstCiBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyB8IDIwICsrKy0tLQogZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fdHQuYyAgICAgICAgICAgfCAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNl cnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0v dHRtX2JvX2RyaXZlci5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAppbmRleCBj OWI4YmE0OTJmMjQuLjViNTRlMzI1NGQxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCkBAIC02 NTQsMTQgKzY1NCwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBfX3R0bV9ib19yZXNlcnZlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChXQVJOX09OKHRpY2tldCkpCiAJCQlyZXR1 cm4gLUVCVVNZOwogCi0JCXN1Y2Nlc3MgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+ cmVzdik7CisJCXN1Y2Nlc3MgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+YmFzZS5y ZXN2KTsKIAkJcmV0dXJuIHN1Y2Nlc3MgPyAwIDogLUVCVVNZOwogCX0KIAogCWlmIChpbnRlcnJ1 cHRpYmxlKQotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlKGJv LT5yZXN2LCB0aWNrZXQpOworCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9ja19pbnRlcnJ1 cHRpYmxlKGJvLT5iYXNlLnJlc3YsIHRpY2tldCk7CiAJZWxzZQotCQlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfbG9jayhiby0+cmVzdiwgdGlja2V0KTsKKwkJcmV0ID0gcmVzZXJ2YXRpb25fb2Jq ZWN0X2xvY2soYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKIAlpZiAocmV0ID09IC1FSU5UUikKIAkJ cmV0dXJuIC1FUkVTVEFSVFNZUzsKIAlyZXR1cm4gcmV0OwpAQCAtNzQ1LDEwICs3NDUsMTAgQEAg c3RhdGljIGlubGluZSBpbnQgdHRtX2JvX3Jlc2VydmVfc2xvd3BhdGgoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAlXQVJOX09OKCFrcmVmX3JlYWQoJmJvLT5rcmVmKSk7CiAKIAlpZiAo aW50ZXJydXB0aWJsZSkKLQkJcmV0ID0gd3dfbXV0ZXhfbG9ja19zbG93X2ludGVycnVwdGlibGUo JmJvLT5yZXN2LT5sb2NrLAorCQlyZXQgPSB3d19tdXRleF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJs ZSgmYm8tPmJhc2UucmVzdi0+bG9jaywKIAkJCQkJCSAgICAgICB0aWNrZXQpOwogCWVsc2UKLQkJ d3dfbXV0ZXhfbG9ja19zbG93KCZiby0+cmVzdi0+bG9jaywgdGlja2V0KTsKKwkJd3dfbXV0ZXhf bG9ja19zbG93KCZiby0+YmFzZS5yZXN2LT5sb2NrLCB0aWNrZXQpOwogCiAJaWYgKGxpa2VseShy ZXQgPT0gMCkpCiAJCXR0bV9ib19kZWxfc3ViX2Zyb21fbHJ1KGJvKTsKQEAgLTc3Myw3ICs3NzMs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX3VucmVzZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvKQogCWVsc2UKIAkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwp OwogCXNwaW5fdW5sb2NrKCZiby0+YmRldi0+Z2xvYi0+bHJ1X2xvY2spOwotCXJlc2VydmF0aW9u X29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8t PmJhc2UucmVzdik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCAzZTYwNWI5ZWUyZjMu LmUwNzkyZmQzOGI1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC0xNzMsNyArMTczLDcgQEAgc3Rh dGljIHZvaWQgdHRtX2JvX2FkZF9tZW1fdG9fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAlzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKm1hbjsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVs ZChiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJl c3YpOwogCiAJaWYgKCFsaXN0X2VtcHR5KCZiby0+bHJ1KSkKIAkJcmV0dXJuOwpAQCAtMjQ0LDcg KzI0NCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19idWxrX21vdmVfc2V0X3BvcyhzdHJ1Y3QgdHRt X2xydV9idWxrX21vdmVfcG9zICpwb3MsCiB2b2lkIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCQkgICAgIHN0cnVjdCB0dG1fbHJ1X2J1bGtf bW92ZSAqYnVsaykKIHsKLQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3Yp OworCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAogCXR0 bV9ib19kZWxfZnJvbV9scnUoYm8pOwogCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKQEAgLTI3Nyw4 ICsyNzcsOCBAQCB2b2lkIHR0bV9ib19idWxrX21vdmVfbHJ1X3RhaWwoc3RydWN0IHR0bV9scnVf YnVsa19tb3ZlICpidWxrKQogCQlpZiAoIXBvcy0+Zmlyc3QpCiAJCQljb250aW51ZTsKIAotCQly ZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5maXJzdC0+cmVzdik7Ci0JCXJlc2Vy dmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChwb3MtPmxhc3QtPnJlc3YpOworCQlyZXNlcnZhdGlv bl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5maXJzdC0+YmFzZS5yZXN2KTsKKwkJcmVzZXJ2YXRp b25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+bGFzdC0+YmFzZS5yZXN2KTsKIAogCQltYW4gPSAm cG9zLT5maXJzdC0+YmRldi0+bWFuW1RUTV9QTF9UVF07CiAJCWxpc3RfYnVsa19tb3ZlX3RhaWwo Jm1hbi0+bHJ1W2ldLCAmcG9zLT5maXJzdC0+bHJ1LApAQCAtMjkyLDggKzI5Miw4IEBAIHZvaWQg dHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmUgKmJ1bGsp CiAJCWlmICghcG9zLT5maXJzdCkKIAkJCWNvbnRpbnVlOwogCi0JCXJlc2VydmF0aW9uX29iamVj dF9hc3NlcnRfaGVsZChwb3MtPmZpcnN0LT5yZXN2KTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fz c2VydF9oZWxkKHBvcy0+bGFzdC0+cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRf aGVsZChwb3MtPmZpcnN0LT5iYXNlLnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0 X2hlbGQocG9zLT5sYXN0LT5iYXNlLnJlc3YpOwogCiAJCW1hbiA9ICZwb3MtPmZpcnN0LT5iZGV2 LT5tYW5bVFRNX1BMX1ZSQU1dOwogCQlsaXN0X2J1bGtfbW92ZV90YWlsKCZtYW4tPmxydVtpXSwg JnBvcy0+Zmlyc3QtPmxydSwKQEAgLTMwNyw4ICszMDcsOCBAQCB2b2lkIHR0bV9ib19idWxrX21v dmVfbHJ1X3RhaWwoc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlICpidWxrKQogCQlpZiAoIXBvcy0+ Zmlyc3QpCiAJCQljb250aW51ZTsKIAotCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQo cG9zLT5maXJzdC0+cmVzdik7Ci0JCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChwb3Mt Pmxhc3QtPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQocG9zLT5maXJz dC0+YmFzZS5yZXN2KTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKHBvcy0+bGFz dC0+YmFzZS5yZXN2KTsKIAogCQlscnUgPSAmcG9zLT5maXJzdC0+YmRldi0+Z2xvYi0+c3dhcF9s cnVbaV07CiAJCWxpc3RfYnVsa19tb3ZlX3RhaWwobHJ1LCAmcG9zLT5maXJzdC0+c3dhcCwgJnBv cy0+bGFzdC0+c3dhcCk7CkBAIC00MzksMTIgKzQzOSwxMiBAQCBzdGF0aWMgaW50IHR0bV9ib19p bmRpdmlkdWFsaXplX3Jlc3Yoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIHsKIAlpbnQg cjsKIAotCWlmIChiby0+cmVzdiA9PSAmYm8tPmJhc2UuX3Jlc3YpCisJaWYgKGJvLT5iYXNlLnJl c3YgPT0gJmJvLT5iYXNlLl9yZXN2KQogCQlyZXR1cm4gMDsKIAogCUJVR19PTighcmVzZXJ2YXRp b25fb2JqZWN0X3RyeWxvY2soJmJvLT5iYXNlLl9yZXN2KSk7CiAKLQlyID0gcmVzZXJ2YXRpb25f b2JqZWN0X2NvcHlfZmVuY2VzKCZiby0+YmFzZS5fcmVzdiwgYm8tPnJlc3YpOworCXIgPSByZXNl cnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoJmJvLT5iYXNlLl9yZXN2LCBiby0+YmFzZS5yZXN2 KTsKIAlpZiAocikKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jaygmYm8tPmJhc2UuX3Jlc3Yp OwogCkBAIC00ODIsMjMgKzQ4MiwyMyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9yZWZz X29yX3F1ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJCS8qIExhc3QgcmVzb3J0 LCBpZiB3ZSBmYWlsIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlCiAJCSAqIGZlbmNlcyBibG9j ayBmb3IgdGhlIEJPIHRvIGJlY29tZSBpZGxlCiAJCSAqLwotCQlyZXNlcnZhdGlvbl9vYmplY3Rf d2FpdF90aW1lb3V0X3JjdShiby0+cmVzdiwgdHJ1ZSwgZmFsc2UsCisJCXJlc2VydmF0aW9uX29i amVjdF93YWl0X3RpbWVvdXRfcmN1KGJvLT5iYXNlLnJlc3YsIHRydWUsIGZhbHNlLAogCQkJCQkJ ICAgIDMwICogSFopOwogCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKIAkJZ290byBlcnJv cjsKIAl9CiAKIAlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKLQlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfdHJ5bG9jayhiby0+cmVzdikgPyAwIDogLUVCVVNZOworCXJldCA9IHJlc2VydmF0 aW9uX29iamVjdF90cnlsb2NrKGJvLT5iYXNlLnJlc3YpID8gMCA6IC1FQlVTWTsKIAlpZiAoIXJl dCkgewogCQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KCZiby0+YmFz ZS5fcmVzdiwgdHJ1ZSkpIHsKIAkJCXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwogCQkJc3Bpbl91 bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKLQkJCWlmIChiby0+cmVzdiAhPSAmYm8tPmJhc2UuX3Jl c3YpCisJCQlpZiAoYm8tPmJhc2UucmVzdiAhPSAmYm8tPmJhc2UuX3Jlc3YpCiAJCQkJcmVzZXJ2 YXRpb25fb2JqZWN0X3VubG9jaygmYm8tPmJhc2UuX3Jlc3YpOwogCiAJCQl0dG1fYm9fY2xlYW51 cF9tZW10eXBlX3VzZShibyk7Ci0JCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2 KTsKKwkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJCQlyZXR1 cm47CiAJCX0KIApAQCAtNTE0LDkgKzUxNCw5IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVw X3JlZnNfb3JfcXVldWUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAkJCXR0bV9ib19h ZGRfdG9fbHJ1KGJvKTsKIAkJfQogCi0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJl c3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KLQlp ZiAoYm8tPnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KQorCWlmIChiby0+YmFzZS5yZXN2ICE9ICZi by0+YmFzZS5fcmVzdikKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jaygmYm8tPmJhc2UuX3Jl c3YpOwogCiBlcnJvcjoKQEAgLTU1MCw3ICs1NTAsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVh bnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlpbnQgcmV0OwogCiAJaWYg KHVubGlrZWx5KGxpc3RfZW1wdHkoJmJvLT5kZGVzdHJveSkpKQotCQlyZXN2ID0gYm8tPnJlc3Y7 CisJCXJlc3YgPSBiby0+YmFzZS5yZXN2OwogCWVsc2UKIAkJcmVzdiA9ICZiby0+YmFzZS5fcmVz djsKIApAQCAtNTYzLDcgKzU2Myw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlsb25nIGxyZXQ7CiAKIAkJaWYgKHVubG9j a19yZXN2KQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCQlyZXNl cnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCQlzcGluX3VubG9jaygmZ2xv Yi0+bHJ1X2xvY2spOwogCiAJCWxyZXQgPSByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0 X3JjdShyZXN2LCB0cnVlLApAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2Ns ZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJcmV0dXJuIC1FQlVT WTsKIAogCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKLQkJaWYgKHVubG9ja19yZXN2ICYm ICFyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+cmVzdikpIHsKKwkJaWYgKHVubG9ja19y ZXN2ICYmICFyZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkgewogCQkJ LyoKIAkJCSAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29tZW9uZSBlbHNlIGhvbGRzIHRoZSByZXNl cnZhdGlvbiBub3csCiAJCQkgKiBhbmQgaXMgcHJvYmFibHkgYnVzeSBpbiB0dG1fYm9fY2xlYW51 cF9tZW10eXBlX3VzZS4KQEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVh bnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAogCWlmIChyZXQgfHwgdW5s aWtlbHkobGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSkpIHsKIAkJaWYgKHVubG9ja19yZXN2KQot CQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCQlyZXNlcnZhdGlvbl9v YmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xv Y2spOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0aWMgaW50IHR0 bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAl0dG1fYm9f Y2xlYW51cF9tZW10eXBlX3VzZShibyk7CiAKIAlpZiAodW5sb2NrX3Jlc3YpCi0JCXJlc2VydmF0 aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2Nr KGJvLT5iYXNlLnJlc3YpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC02MzIsMTQgKzYzMiwxNCBAQCBz dGF0aWMgYm9vbCB0dG1fYm9fZGVsYXllZF9kZWxldGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIGJvb2wgcmVtb3ZlX2FsbCkKIAkJa3JlZl9nZXQoJmJvLT5saXN0X2tyZWYpOwogCQlsaXN0 X21vdmVfdGFpbCgmYm8tPmRkZXN0cm95LCAmcmVtb3ZlZCk7CiAKLQkJaWYgKHJlbW92ZV9hbGwg fHwgYm8tPnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KSB7CisJCWlmIChyZW1vdmVfYWxsIHx8IGJv LT5iYXNlLnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KSB7CiAJCQlzcGluX3VubG9jaygmZ2xvYi0+ bHJ1X2xvY2spOwotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYm8tPnJlc3YsIE5VTEwpOwor CQkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYm8tPmJhc2UucmVzdiwgTlVMTCk7CiAKIAkJCXNw aW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCQkJdHRtX2JvX2NsZWFudXBfcmVmcyhibywgZmFs c2UsICFyZW1vdmVfYWxsLCB0cnVlKTsKIAotCQl9IGVsc2UgaWYgKHJlc2VydmF0aW9uX29iamVj dF90cnlsb2NrKGJvLT5yZXN2KSkgeworCQl9IGVsc2UgaWYgKHJlc2VydmF0aW9uX29iamVjdF90 cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7CiAJCQl0dG1fYm9fY2xlYW51cF9yZWZzKGJvLCBmYWxz ZSwgIXJlbW92ZV9hbGwsIHRydWUpOwogCQl9IGVsc2UgewogCQkJc3Bpbl91bmxvY2soJmdsb2It PmxydV9sb2NrKTsKQEAgLTcwOCw3ICs3MDgsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19ldmljdChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNl bWVudDsKIAlpbnQgcmV0ID0gMDsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChi by0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3Yp OwogCiAJcGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSAwOwogCXBsYWNlbWVudC5udW1fYnVzeV9w bGFjZW1lbnQgPSAwOwpAQCAtNzc4LDggKzc3OCw4IEBAIHN0YXRpYyBib29sIHR0bV9ib19ldmlj dF9zd2Fwb3V0X2FsbG93YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogewogCWJv b2wgcmV0ID0gZmFsc2U7CiAKLQlpZiAoYm8tPnJlc3YgPT0gY3R4LT5yZXN2KSB7Ci0JCXJlc2Vy dmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7CisJaWYgKGJvLT5iYXNlLnJlc3Yg PT0gY3R4LT5yZXN2KSB7CisJCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+YmFz ZS5yZXN2KTsKIAkJaWYgKGN0eC0+ZmxhZ3MgJiBUVE1fT1BUX0ZMQUdfQUxMT1dfUkVTX0VWSUNU CiAJCSAgICB8fCAhbGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSkKIAkJCXJldCA9IHRydWU7CkBA IC03ODcsNyArNzg3LDcgQEAgc3RhdGljIGJvb2wgdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dh YmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChidXN5KQogCQkJKmJ1c3kg PSBmYWxzZTsKIAl9IGVsc2UgewotCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhi by0+cmVzdik7CisJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5iYXNlLnJl c3YpOwogCQkqbG9ja2VkID0gcmV0OwogCQlpZiAoYnVzeSkKIAkJCSpidXN5ID0gIXJldDsKQEAg LTgxNSwxMCArODE1LDEwIEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF93YWl0X2J1c3koc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidXN5X2JvLAogCQlyZXR1cm4gLUVCVVNZOwogCiAJaWYg KGN0eC0+aW50ZXJydXB0aWJsZSkKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrX2ludGVy cnVwdGlibGUoYnVzeV9iby0+cmVzdiwKKwkJciA9IHJlc2VydmF0aW9uX29iamVjdF9sb2NrX2lu dGVycnVwdGlibGUoYnVzeV9iby0+YmFzZS5yZXN2LAogCQkJCQkJCSAgdGlja2V0KTsKIAllbHNl Ci0JCXIgPSByZXNlcnZhdGlvbl9vYmplY3RfbG9jayhidXN5X2JvLT5yZXN2LCB0aWNrZXQpOwor CQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYnVzeV9iby0+YmFzZS5yZXN2LCB0aWNrZXQp OwogCiAJLyoKIAkgKiBUT0RPOiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8ga2VlcCB0aGUgQk8gbG9j a2VkIHVudGlsIGFsbG9jYXRpb24gaXMgYXQKQEAgLTgyNiw3ICs4MjYsNyBAQCBzdGF0aWMgaW50 IHR0bV9tZW1fZXZpY3Rfd2FpdF9idXN5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYnVzeV9i bywKIAkgKiBvZiBUVE0uCiAJICovCiAJaWYgKCFyKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5s b2NrKGJ1c3lfYm8tPnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJ1c3lfYm8t PmJhc2UucmVzdik7CiAKIAlyZXR1cm4gciA9PSAtRURFQURMSyA/IC1FQUdBSU4gOiByOwogfQpA QCAtODUyLDcgKzg1Miw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKIAkJCWlmICghdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dh YmxlKGJvLCBjdHgsICZsb2NrZWQsCiAJCQkJCQkJICAgICZidXN5KSkgewogCQkJCWlmIChidXN5 ICYmICFidXN5X2JvICYmCi0JCQkJICAgIGJvLT5yZXN2LT5sb2NrLmN0eCAhPSB0aWNrZXQpCisJ CQkJICAgIGJvLT5iYXNlLnJlc3YtPmxvY2suY3R4ICE9IHRpY2tldCkKIAkJCQkJYnVzeV9ibyA9 IGJvOwogCQkJCWNvbnRpbnVlOwogCQkJfQpAQCAtODYwLDcgKzg2MCw3IEBAIHN0YXRpYyBpbnQg dHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJCWlmIChw bGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywKIAkJCQkJCQkJICAg ICAgcGxhY2UpKSB7CiAJCQkJaWYgKGxvY2tlZCkKLQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhiby0+cmVzdik7CisJCQkJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2Uu cmVzdik7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlicmVhazsKQEAgLTkzMiw5ICs5MzIsOSBA QCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAogCXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAKIAlpZiAoZmVuY2UpIHsK LQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsK KwkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgZmVu Y2UpOwogCi0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVz diwgMSk7CisJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+YmFz ZS5yZXN2LCAxKTsKIAkJaWYgKHVubGlrZWx5KHJldCkpIHsKIAkJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCQkJcmV0dXJuIHJldDsKQEAgLTk2Nyw3ICs5NjcsNyBAQCBzdGF0aWMgaW50IHR0bV9i b19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYgKG1l bS0+bW1fbm9kZSkKIAkJCWJyZWFrOwogCQlyZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYs IG1lbS0+bWVtX3R5cGUsIHBsYWNlLCBjdHgsCi0JCQkJCSAgYm8tPnJlc3YtPmxvY2suY3R4KTsK KwkJCQkJICBiby0+YmFzZS5yZXN2LT5sb2NrLmN0eCk7CiAJCWlmICh1bmxpa2VseShyZXQgIT0g MCkpCiAJCQlyZXR1cm4gcmV0OwogCX0gd2hpbGUgKDEpOwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAg aW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlib29s IHR5cGVfZm91bmQgPSBmYWxzZTsKIAlpbnQgaSwgcmV0OwogCi0JcmV0ID0gcmVzZXJ2YXRpb25f b2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2LCAxKTsKKwlyZXQgPSByZXNlcnZhdGlvbl9v YmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPmJhc2UucmVzdiwgMSk7CiAJaWYgKHVubGlrZWx5KHJl dCkpCiAJCXJldHVybiByZXQ7CiAKQEAgLTExNzAsNyArMTE3MCw3IEBAIHN0YXRpYyBpbnQgdHRt X2JvX21vdmVfYnVmZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldCA9 IDA7CiAJc3RydWN0IHR0bV9tZW1fcmVnIG1lbTsKIAotCXJlc2VydmF0aW9uX29iamVjdF9hc3Nl cnRfaGVsZChiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGJvLT5i YXNlLnJlc3YpOwogCiAJbWVtLm51bV9wYWdlcyA9IGJvLT5udW1fcGFnZXM7CiAJbWVtLnNpemUg PSBtZW0ubnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CkBAIC0xMjQwLDcgKzEyNDAsNyBAQCBpbnQg dHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJaW50IHJldDsK IAl1aW50MzJfdCBuZXdfZmxhZ3M7CiAKLQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQo Ym8tPnJlc3YpOworCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2 KTsKIAkvKgogCSAqIENoZWNrIHdoZXRoZXIgd2UgbmVlZCB0byBtb3ZlIGJ1ZmZlci4KIAkgKi8K QEAgLTEzMzIsNyArMTMzMiw3IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKIAlpZiAocmVzdikgewogCQliby0+cmVzdiA9IHJlc3Y7CiAJCWJv LT5iYXNlLnJlc3YgPSByZXN2OwotCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8t PnJlc3YpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7 CiAJfSBlbHNlIHsKIAkJYm8tPnJlc3YgPSAmYm8tPmJhc2UuX3Jlc3Y7CiAJCWJvLT5iYXNlLnJl c3YgPSAmYm8tPmJhc2UuX3Jlc3Y7CkBAIC0xMzYxLDcgKzEzNjEsNyBAQCBpbnQgdHRtX2JvX2lu aXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJICogc2luY2Ugb3RoZXJ3 aXNlIGxvY2tkZXAgd2lsbCBiZSBhbmdlcmVkIGluIHJhZGVvbi4KIAkgKi8KIAlpZiAoIXJlc3Yp IHsKLQkJbG9ja2VkID0gcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpOworCQls b2NrZWQgPSByZXNlcnZhdGlvbl9vYmplY3RfdHJ5bG9jayhiby0+YmFzZS5yZXN2KTsKIAkJV0FS Tl9PTighbG9ja2VkKTsKIAl9CiAKQEAgLTE4MDUsMTMgKzE4MDUsMTMgQEAgaW50IHR0bV9ib193 YWl0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJbG9uZyB0aW1lb3V0ID0gMTUgKiBI WjsKIAogCWlmIChub193YWl0KSB7Ci0JCWlmIChyZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWdu YWxlZF9yY3UoYm8tPnJlc3YsIHRydWUpKQorCQlpZiAocmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rf c2lnbmFsZWRfcmN1KGJvLT5iYXNlLnJlc3YsIHRydWUpKQogCQkJcmV0dXJuIDA7CiAJCWVsc2UK IAkJCXJldHVybiAtRUJVU1k7CiAJfQogCi0JdGltZW91dCA9IHJlc2VydmF0aW9uX29iamVjdF93 YWl0X3RpbWVvdXRfcmN1KGJvLT5yZXN2LCB0cnVlLAorCXRpbWVvdXQgPSByZXNlcnZhdGlvbl9v YmplY3Rfd2FpdF90aW1lb3V0X3JjdShiby0+YmFzZS5yZXN2LCB0cnVlLAogCQkJCQkJICAgICAg aW50ZXJydXB0aWJsZSwgdGltZW91dCk7CiAJaWYgKHRpbWVvdXQgPCAwKQogCQlyZXR1cm4gdGlt ZW91dDsKQEAgLTE4MTksNyArMTgxOSw3IEBAIGludCB0dG1fYm9fd2FpdChzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogCWlmICh0aW1lb3V0ID09IDApCiAJCXJldHVybiAtRUJVU1k7CiAK LQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsIE5VTEwpOworCXJl c2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBOVUxMKTsKIAly ZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2JvX3dhaXQpOwpAQCAtMTkzNSw3ICsxOTM1 LDcgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iLCBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIAkgKiBhbHJlYWR5IHN3YXBwZWQgYnVmZmVyLgog CSAqLwogCWlmIChsb2NrZWQpCi0JCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPnJlc3Yp OworCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCWtyZWZfcHV0 KCZiby0+bGlzdF9rcmVmLCB0dG1fYm9fcmVsZWFzZV9saXN0KTsKIAlyZXR1cm4gcmV0OwogfQpA QCAtMTk3MywxNCArMTk3MywxNCBAQCBpbnQgdHRtX2JvX3dhaXRfdW5yZXNlcnZlZChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgm Ym8tPnd1X211dGV4KTsKIAlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQlyZXR1cm4gLUVSRVNU QVJUU1lTOwotCWlmICghd3dfbXV0ZXhfaXNfbG9ja2VkKCZiby0+cmVzdi0+bG9jaykpCisJaWYg KCF3d19tdXRleF9pc19sb2NrZWQoJmJvLT5iYXNlLnJlc3YtPmxvY2spKQogCQlnb3RvIG91dF91 bmxvY2s7Ci0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJsZShiby0+ cmVzdiwgTlVMTCk7CisJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJs ZShiby0+YmFzZS5yZXN2LCBOVUxMKTsKIAlpZiAocmV0ID09IC1FSU5UUikKIAkJcmV0ID0gLUVS RVNUQVJUU1lTOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X3VubG9jazsK LQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwlyZXNlcnZhdGlvbl9vYmpl Y3RfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygm Ym8tPnd1X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0 aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwppbmRleCA1OWYxYjk3OWIw ZGEuLmE4NjcxZWM1Zjk4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9f dXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpAQCAtNTE3LDkg KzUxNyw5IEBAIHN0YXRpYyBpbnQgdHRtX2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKIAlrcmVmX2luaXQoJmZiby0+YmFzZS5rcmVmKTsKIAlmYm8t PmJhc2UuZGVzdHJveSA9ICZ0dG1fdHJhbnNmZXJlZF9kZXN0cm95OwogCWZiby0+YmFzZS5hY2Nf c2l6ZSA9IDA7Ci0JZmJvLT5iYXNlLnJlc3YgPSAmZmJvLT5iYXNlLmJhc2UuX3Jlc3Y7Ci0JcmVz ZXJ2YXRpb25fb2JqZWN0X2luaXQoZmJvLT5iYXNlLnJlc3YpOwotCXJldCA9IHJlc2VydmF0aW9u X29iamVjdF90cnlsb2NrKGZiby0+YmFzZS5yZXN2KTsKKwlmYm8tPmJhc2UuYmFzZS5yZXN2ID0g JmZiby0+YmFzZS5iYXNlLl9yZXN2OworCXJlc2VydmF0aW9uX29iamVjdF9pbml0KGZiby0+YmFz ZS5iYXNlLnJlc3YpOworCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGZiby0+YmFz ZS5iYXNlLnJlc3YpOwogCVdBUk5fT04oIXJldCk7CiAKIAkqbmV3X29iaiA9ICZmYm8tPmJhc2U7 CkBAIC02ODksNyArNjg5LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlpbnQgcmV0OwogCXN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqZ2hvc3Rfb2JqOwogCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJv LT5yZXN2LCBmZW5jZSk7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5i YXNlLnJlc3YsIGZlbmNlKTsKIAlpZiAoZXZpY3QpIHsKIAkJcmV0ID0gdHRtX2JvX3dhaXQoYm8s IGZhbHNlLCBmYWxzZSk7CiAJCWlmIChyZXQpCkBAIC03MTYsNyArNzE2LDcgQEAgaW50IHR0bV9i b19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYg KHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2Zl bmNlKGdob3N0X29iai0+cmVzdiwgZmVuY2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4 Y2xfZmVuY2UoZ2hvc3Rfb2JqLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAogCQkvKioKIAkJICogSWYg d2UncmUgbm90IG1vdmluZyB0byBmaXhlZCBtZW1vcnksIHRoZSBUVE0gb2JqZWN0CkBAIC03NTIs NyArNzUyLDcgQEAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAKIAlpbnQgcmV0OwogCi0JcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2Zl bmNlKGJvLT5yZXN2LCBmZW5jZSk7CisJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNl KGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAogCWlmICghZXZpY3QpIHsKIAkJc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpnaG9zdF9vYmo7CkBAIC03NzIsNyArNzcyLDcgQEAgaW50IHR0bV9ib19w aXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmIChyZXQpCiAJ CQlyZXR1cm4gcmV0OwogCi0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShnaG9z dF9vYmotPnJlc3YsIGZlbmNlKTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNl KGdob3N0X29iai0+YmFzZS5yZXN2LCBmZW5jZSk7CiAKIAkJLyoqCiAJCSAqIElmIHdlJ3JlIG5v dCBtb3ZpbmcgdG8gZml4ZWQgbWVtb3J5LCB0aGUgVFRNIG9iamVjdApAQCAtODQxLDcgKzg0MSw3 IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfZ3V0dGluZyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSByZXNlcnZhdGlvbl9vYmpl Y3RfY29weV9mZW5jZXMoZ2hvc3QtPnJlc3YsIGJvLT5yZXN2KTsKKwlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfY29weV9mZW5jZXMoZ2hvc3QtPmJhc2UucmVzdiwgYm8tPmJhc2UucmVzdik7CiAJ LyogTGFzdCByZXNvcnQsIHdhaXQgZm9yIHRoZSBCTyB0byBiZSBpZGxlIHdoZW4gd2UgYXJlIE9P TSAqLwogCWlmIChyZXQpCiAJCXR0bV9ib193YWl0KGJvLCBmYWxzZSwgZmFsc2UpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3ZtLmMKaW5kZXggZmI2ODc1YTc4OWI3Li44NWY1YmNiZTBjNzYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fYm9fdm0uYwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1f Ym9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQl0dG1fYm9f Z2V0KGJvKTsKIAkJdXBfcmVhZCgmdm1mLT52bWEtPnZtX21tLT5tbWFwX3NlbSk7CiAJCSh2b2lk KSBkbWFfZmVuY2Vfd2FpdChiby0+bW92aW5nLCB0cnVlKTsKLQkJcmVzZXJ2YXRpb25fb2JqZWN0 X3VubG9jayhiby0+cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYm8tPmJhc2Uu cmVzdik7CiAJCXR0bV9ib19wdXQoYm8pOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpAQCAtMTMx LDcgKzEzMSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1f ZmF1bHQgKnZtZikKIAkgKiBmb3IgcmVzZXJ2ZSwgYW5kIGlmIGl0IGZhaWxzLCByZXRyeSB0aGUg ZmF1bHQgYWZ0ZXIgd2FpdGluZwogCSAqIGZvciB0aGUgYnVmZmVyIHRvIGJlY29tZSB1bnJlc2Vy dmVkLgogCSAqLwotCWlmICh1bmxpa2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8t PnJlc3YpKSkgeworCWlmICh1bmxpa2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8t PmJhc2UucmVzdikpKSB7CiAJCWlmICh2bWYtPmZsYWdzICYgRkFVTFRfRkxBR19BTExPV19SRVRS WSkgewogCQkJaWYgKCEodm1mLT5mbGFncyAmIEZBVUxUX0ZMQUdfUkVUUllfTk9XQUlUKSkgewog CQkJCXR0bV9ib19nZXQoYm8pOwpAQCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyB2bV9mYXVsdF90 IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIG91dF9pb191bmxvY2s6CiAJ dHRtX21lbV9pb191bmxvY2sobWFuKTsKIG91dF91bmxvY2s6Ci0JcmVzZXJ2YXRpb25fb2JqZWN0 X3VubG9jayhiby0+cmVzdik7CisJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFzZS5y ZXN2KTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRp bC5jCmluZGV4IDk1N2VjMzc1YTRiYS4uODYxYzQxNDViNDYyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgdm9pZCB0dG1fZXVf YmFja29mZl9yZXNlcnZhdGlvbl9yZXZlcnNlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZV9yZXZlcnNlKGVudHJ5LCBsaXN0LCBoZWFkKSB7CiAJ CXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSBlbnRyeS0+Ym87CiAKLQkJcmVzZXJ2YXRp b25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2so Ym8tPmJhc2UucmVzdik7CiAJfQogfQogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgdHRtX2V1X2Jh Y2tvZmZfcmVzZXJ2YXRpb24oc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAKIAkJaWYg KGxpc3RfZW1wdHkoJmJvLT5scnUpKQogCQkJdHRtX2JvX2FkZF90b19scnUoYm8pOwotCQlyZXNl cnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhiby0+YmFzZS5yZXN2KTsKIAl9CiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsK IApAQCAtMTE0LDcgKzExNCw3IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCB3 d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCiAJCXJldCA9IF9fdHRtX2JvX3Jlc2VydmUoYm8sIGlu dHIsICh0aWNrZXQgPT0gTlVMTCksIHRpY2tldCk7CiAJCWlmICghcmV0ICYmIHVubGlrZWx5KGF0 b21pY19yZWFkKCZiby0+Y3B1X3dyaXRlcnMpID4gMCkpIHsKLQkJCXJlc2VydmF0aW9uX29iamVj dF91bmxvY2soYm8tPnJlc3YpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+YmFz ZS5yZXN2KTsKIAogCQkJcmV0ID0gLUVCVVNZOwogCkBAIC0xMzAsNyArMTMwLDcgQEAgaW50IHR0 bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJCQlp ZiAoIWVudHJ5LT5udW1fc2hhcmVkKQogCQkJCWNvbnRpbnVlOwogCi0JCQlyZXQgPSByZXNlcnZh dGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YsCisJCQlyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPmJhc2UucmVzdiwKIAkJCQkJCQkJZW50cnktPm51 bV9zaGFyZWQpOwogCQkJaWYgKCFyZXQpCiAJCQkJY29udGludWU7CkBAIC0xNDQsMTYgKzE0NCwx NiBAQCBpbnQgdHRtX2V1X3Jlc2VydmVfYnVmZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRp Y2tldCwKIAogCQlpZiAocmV0ID09IC1FREVBRExLKSB7CiAJCQlpZiAoaW50cikgewotCQkJCXJl dCA9IHd3X211dGV4X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKCZiby0+cmVzdi0+bG9jaywKKwkJ CQlyZXQgPSB3d19tdXRleF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSgmYm8tPmJhc2UucmVzdi0+ bG9jaywKIAkJCQkJCQkJICAgICAgIHRpY2tldCk7CiAJCQl9IGVsc2UgewotCQkJCXd3X211dGV4 X2xvY2tfc2xvdygmYm8tPnJlc3YtPmxvY2ssIHRpY2tldCk7CisJCQkJd3dfbXV0ZXhfbG9ja19z bG93KCZiby0+YmFzZS5yZXN2LT5sb2NrLCB0aWNrZXQpOwogCQkJCXJldCA9IDA7CiAJCQl9CiAJ CX0KIAogCQlpZiAoIXJldCAmJiBlbnRyeS0+bnVtX3NoYXJlZCkKLQkJCXJldCA9IHJlc2VydmF0 aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwKKwkJCXJldCA9IHJlc2VydmF0aW9u X29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+YmFzZS5yZXN2LAogCQkJCQkJCQllbnRyeS0+bnVt X3NoYXJlZCk7CiAKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewpAQCAtMjAxLDE0ICsyMDEs MTQgQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHd3X2FjcXVpcmVf Y3R4ICp0aWNrZXQsCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgbGlzdCwgaGVhZCkgewog CQlibyA9IGVudHJ5LT5ibzsKIAkJaWYgKGVudHJ5LT5udW1fc2hhcmVkKQotCQkJcmVzZXJ2YXRp b25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsKKwkJCXJlc2VydmF0 aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5iYXNlLnJlc3YsIGZlbmNlKTsKIAkJZWxz ZQotCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7 CisJCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPmJhc2UucmVzdiwgZmVu Y2UpOwogCQlpZiAobGlzdF9lbXB0eSgmYm8tPmxydSkpCiAJCQl0dG1fYm9fYWRkX3RvX2xydShi byk7CiAJCWVsc2UKIAkJCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCBOVUxMKTsKLQkJcmVz ZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CisJCXJlc2VydmF0aW9uX29iamVjdF91 bmxvY2soYm8tPmJhc2UucmVzdik7CiAJfQogCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7 CiAJaWYgKHRpY2tldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCmluZGV4IGUzYTA2OTE1ODJmZi4uMDBiNGEz MzM3ODQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKQEAgLTQ4LDcgKzQ4LDcgQEAgaW50IHR0bV90dF9j cmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCB6ZXJvX2FsbG9jKQogCXN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7CiAJdWludDMyX3QgcGFnZV9mbGFn cyA9IDA7CiAKLQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3YpOworCXJl c2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKIAogCWlmIChiZGV2 LT5uZWVkX2RtYTMyKQogCQlwYWdlX2ZsYWdzIHw9IFRUTV9QQUdFX0ZMQUdfRE1BMzI7Ci0tIAoy LjE4LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==