From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 01/11] drm/radeon: rework vm_flush parameters Date: Mon, 13 Oct 2014 12:41:37 +0200 Message-ID: <1413196907-2160-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 26DA089FD7 for ; Mon, 13 Oct 2014 03:42:25 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: alexdeucher@gmail.com Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVXNlIHJp bmcgc3RydWN0dXJlIGluc3RlYWQgb2YgaW5kZXggYW5kIHByb3ZpZGUgdm1faWQgYW5kIHBkX2Fk ZHIgc2VwYXJhdGVseS4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jICAgICAg ICAgfCAyMyArKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9j aWtfc2RtYS5jICAgIHwgMjIgKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9uaS5jICAgICAgICAgIHwgMTQgKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vbmlfZG1hLmMgICAgICB8IDE0ICsrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oICAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYXNpYy5oIHwgMTggKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl92bS5jICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2ku YyAgICAgICAgICB8IDE4ICsrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9zaV9kbWEuYyAgICAgIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2Vk LCA2MSBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2Npay5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwppbmRl eCBkNDhhNTM5Li41ZTU4NTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Np ay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMKQEAgLTU5NTgsMjYgKzU5NTgs MjMgQEAgc3RhdGljIHZvaWQgY2lrX3ZtX2RlY29kZV9mYXVsdChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwKICAqIFVwZGF0ZSB0aGUgcGFnZSB0YWJsZSBiYXNlIGFuZCBmbHVzaCB0aGUgVk0g VExCCiAgKiB1c2luZyB0aGUgQ1AgKENJSykuCiAgKi8KLXZvaWQgY2lrX3ZtX2ZsdXNoKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAqdm0pCit2 b2lkIGNpa192bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVv bl9yaW5nICpyaW5nLAorCQkgIHVuc2lnbmVkIHZtX2lkLCB1aW50NjRfdCBwZF9hZGRyKQogewot CXN0cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW3JpZHhdOwotCWludCB1c2Vw ZnAgPSAocmlkeCA9PSBSQURFT05fUklOR19UWVBFX0dGWF9JTkRFWCk7Ci0KLQlpZiAodm0gPT0g TlVMTCkKLQkJcmV0dXJuOworCWludCB1c2VwZnAgPSAocmluZy0+aWR4ID09IFJBREVPTl9SSU5H X1RZUEVfR0ZYX0lOREVYKTsKIAogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFD S0VUM19XUklURV9EQVRBLCAzKSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgKFdSSVRFX0RB VEFfRU5HSU5FX1NFTCh1c2VwZnApIHwKIAkJCQkgV1JJVEVfREFUQV9EU1RfU0VMKDApKSk7Ci0J aWYgKHZtLT5pZCA8IDgpIHsKKwlpZiAodm1faWQgPCA4KSB7CiAJCXJhZGVvbl9yaW5nX3dyaXRl KHJpbmcsCi0JCQkJICAoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFIgKyAodm0tPmlk IDw8IDIpKSA+PiAyKTsKKwkJCQkgIChWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiAr ICh2bV9pZCA8PCAyKSkgPj4gMik7CiAJfSBlbHNlIHsKIAkJcmFkZW9uX3Jpbmdfd3JpdGUocmlu ZywKLQkJCQkgIChWTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQUREUiArICgodm0tPmlkIC0g OCkgPDwgMikpID4+IDIpOworCQkJCSAgKFZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERS ICsgKCh2bV9pZCAtIDgpIDw8IDIpKSA+PiAyKTsKIAl9CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmlu ZywgMCk7Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgdm0tPnBkX2dwdV9hZGRyID4+IDEyKTsK KwlyYWRlb25fcmluZ193cml0ZShyaW5nLCBwZF9hZGRyID4+IDEyKTsKIAogCS8qIHVwZGF0ZSBT SF9NRU1fKiByZWdzICovCiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMyhQQUNLRVQz X1dSSVRFX0RBVEEsIDMpKTsKQEAgLTU5ODUsNyArNTk4Miw3IEBAIHZvaWQgY2lrX3ZtX2ZsdXNo KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAq dm0pCiAJCQkJIFdSSVRFX0RBVEFfRFNUX1NFTCgwKSkpOwogCXJhZGVvbl9yaW5nX3dyaXRlKHJp bmcsIFNSQk1fR0ZYX0NOVEwgPj4gMik7CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMCk7Ci0J cmFkZW9uX3Jpbmdfd3JpdGUocmluZywgVk1JRCh2bS0+aWQpKTsKKwlyYWRlb25fcmluZ193cml0 ZShyaW5nLCBWTUlEKHZtX2lkKSk7CiAKIAlyYWRlb25fcmluZ193cml0ZShyaW5nLCBQQUNLRVQz KFBBQ0tFVDNfV1JJVEVfREFUQSwgNikpOwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIChXUklU RV9EQVRBX0VOR0lORV9TRUwodXNlcGZwKSB8CkBAIC02MDA2LDcgKzYwMDMsNyBAQCB2b2lkIGNp a192bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpZHgsIHN0cnVjdCBy YWRlb25fdm0gKnZtKQogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFZNSUQoMCkpOwogCiAJLyog SERQIGZsdXNoICovCi0JY2lrX2hkcF9mbHVzaF9jcF9yaW5nX2VtaXQocmRldiwgcmlkeCk7CisJ Y2lrX2hkcF9mbHVzaF9jcF9yaW5nX2VtaXQocmRldiwgcmluZy0+aWR4KTsKIAogCS8qIGJpdHMg MC0xNSBhcmUgdGhlIFZNIGNvbnRleHRzMC0xNSAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcs IFBBQ0tFVDMoUEFDS0VUM19XUklURV9EQVRBLCAzKSk7CkBAIC02MDE0LDcgKzYwMTEsNyBAQCB2 b2lkIGNpa192bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpZHgsIHN0 cnVjdCByYWRlb25fdm0gKnZtKQogCQkJCSBXUklURV9EQVRBX0RTVF9TRUwoMCkpKTsKIAlyYWRl b25fcmluZ193cml0ZShyaW5nLCBWTV9JTlZBTElEQVRFX1JFUVVFU1QgPj4gMik7CiAJcmFkZW9u X3Jpbmdfd3JpdGUocmluZywgMCk7Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMSA8PCB2bS0+ aWQpOworCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIDEgPDwgdm1faWQpOwogCiAJLyogY29tcHV0 ZSBkb2Vzbid0IGhhdmUgUEZQICovCiAJaWYgKHVzZXBmcCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9jaWtfc2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWtf c2RtYS5jCmluZGV4IGM0NzNjOTEuLjJiYzhhMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vY2lrX3NkbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npa19zZG1h LmMKQEAgLTkwNSwyNSArOTA1LDIxIEBAIHZvaWQgY2lrX3NkbWFfdm1fcGFkX2liKHN0cnVjdCBy YWRlb25faWIgKmliKQogICogVXBkYXRlIHRoZSBwYWdlIHRhYmxlIGJhc2UgYW5kIGZsdXNoIHRo ZSBWTSBUTEIKICAqIHVzaW5nIHNETUEgKENJSykuCiAgKi8KLXZvaWQgY2lrX2RtYV92bV9mbHVz aChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpZHgsIHN0cnVjdCByYWRlb25fdm0g KnZtKQordm9pZCBjaWtfZG1hX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBz dHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcsCisJCSAgICAgIHVuc2lnbmVkIHZtX2lkLCB1aW50NjRf dCBwZF9hZGRyKQogewotCXN0cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW3Jp ZHhdOwotCi0JaWYgKHZtID09IE5VTEwpCi0JCXJldHVybjsKLQogCXJhZGVvbl9yaW5nX3dyaXRl KHJpbmcsIFNETUFfUEFDS0VUKFNETUFfT1BDT0RFX1NSQk1fV1JJVEUsIDAsIDB4ZjAwMCkpOwot CWlmICh2bS0+aWQgPCA4KSB7Ci0JCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIChWTV9DT05URVhU MF9QQUdFX1RBQkxFX0JBU0VfQUREUiArICh2bS0+aWQgPDwgMikpID4+IDIpOworCWlmICh2bV9p ZCA8IDgpIHsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgKFZNX0NPTlRFWFQwX1BBR0VfVEFC TEVfQkFTRV9BRERSICsgKHZtX2lkIDw8IDIpKSA+PiAyKTsKIAl9IGVsc2UgewotCQlyYWRlb25f cmluZ193cml0ZShyaW5nLCAoVk1fQ09OVEVYVDhfUEFHRV9UQUJMRV9CQVNFX0FERFIgKyAoKHZt LT5pZCAtIDgpIDw8IDIpKSA+PiAyKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgKFZNX0NP TlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSICsgKCh2bV9pZCAtIDgpIDw8IDIpKSA+PiAyKTsK IAl9Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgdm0tPnBkX2dwdV9hZGRyID4+IDEyKTsKKwly YWRlb25fcmluZ193cml0ZShyaW5nLCBwZF9hZGRyID4+IDEyKTsKIAogCS8qIHVwZGF0ZSBTSF9N RU1fKiByZWdzICovCiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgU0RNQV9QQUNLRVQoU0RNQV9P UENPREVfU1JCTV9XUklURSwgMCwgMHhmMDAwKSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywg U1JCTV9HRlhfQ05UTCA+PiAyKTsKLQlyYWRlb25fcmluZ193cml0ZShyaW5nLCBWTUlEKHZtLT5p ZCkpOworCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFZNSUQodm1faWQpKTsKIAogCXJhZGVvbl9y aW5nX3dyaXRlKHJpbmcsIFNETUFfUEFDS0VUKFNETUFfT1BDT0RFX1NSQk1fV1JJVEUsIDAsIDB4 ZjAwMCkpOwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFNIX01FTV9CQVNFUyA+PiAyKTsKQEAg LTk0NiwxMSArOTQyLDExIEBAIHZvaWQgY2lrX2RtYV92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwgaW50IHJpZHgsIHN0cnVjdCByYWRlb25fdm0gKnZtCiAJcmFkZW9uX3Jpbmdf d3JpdGUocmluZywgVk1JRCgwKSk7CiAKIAkvKiBmbHVzaCBIRFAgKi8KLQljaWtfc2RtYV9oZHBf Zmx1c2hfcmluZ19lbWl0KHJkZXYsIHJpZHgpOworCWNpa19zZG1hX2hkcF9mbHVzaF9yaW5nX2Vt aXQocmRldiwgcmluZy0+aWR4KTsKIAogCS8qIGZsdXNoIFRMQiAqLwogCXJhZGVvbl9yaW5nX3dy aXRlKHJpbmcsIFNETUFfUEFDS0VUKFNETUFfT1BDT0RFX1NSQk1fV1JJVEUsIDAsIDB4ZjAwMCkp OwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFZNX0lOVkFMSURBVEVfUkVRVUVTVCA+PiAyKTsK LQlyYWRlb25fcmluZ193cml0ZShyaW5nLCAxIDw8IHZtLT5pZCk7CisJcmFkZW9uX3Jpbmdfd3Jp dGUocmluZywgMSA8PCB2bV9pZCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vbmkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYwppbmRleCAzZmFlZTU4Li5i ZWU0MzJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCkBAIC0yNTAyLDE1ICsyNTAyLDExIEBAIHZvaWQgY2F5 bWFuX3ZtX2RlY29kZV9mYXVsdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKICAqIFVwZGF0 ZSB0aGUgcGFnZSB0YWJsZSBiYXNlIGFuZCBmbHVzaCB0aGUgVk0gVExCCiAgKiB1c2luZyB0aGUg Q1AgKGNheW1hbi1zaSkuCiAgKi8KLXZvaWQgY2F5bWFuX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAqdm0pCit2b2lkIGNheW1h bl92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5n ICpyaW5nLAorCQkgICAgIHVuc2lnbmVkIHZtX2lkLCB1aW50NjRfdCBwZF9hZGRyKQogewotCXN0 cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW3JpZHhdOwotCi0JaWYgKHZtID09 IE5VTEwpCi0JCXJldHVybjsKLQotCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDAoVk1f Q09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFIgKyAodm0tPmlkIDw8IDIpLCAwKSk7Ci0JcmFk ZW9uX3Jpbmdfd3JpdGUocmluZywgdm0tPnBkX2dwdV9hZGRyID4+IDEyKTsKKwlyYWRlb25fcmlu Z193cml0ZShyaW5nLCBQQUNLRVQwKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERSICsg KHZtX2lkIDw8IDIpLCAwKSk7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgcGRfYWRkciA+PiAx Mik7CiAKIAkvKiBmbHVzaCBoZHAgY2FjaGUgKi8KIAlyYWRlb25fcmluZ193cml0ZShyaW5nLCBQ QUNLRVQwKEhEUF9NRU1fQ09IRVJFTkNZX0ZMVVNIX0NOVEwsIDApKTsKQEAgLTI1MTgsNyArMjUx NCw3IEBAIHZvaWQgY2F5bWFuX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBp bnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAqdm0pCiAKIAkvKiBiaXRzIDAtNyBhcmUgdGhlIFZN IGNvbnRleHRzMC03ICovCiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChWTV9JTlZB TElEQVRFX1JFUVVFU1QsIDApKTsKLQlyYWRlb25fcmluZ193cml0ZShyaW5nLCAxIDw8IHZtLT5p ZCk7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMSA8PCB2bV9pZCk7CiAKIAkvKiBzeW5jIFBG UCB0byBNRSwgb3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBpbnZhbGlkIFBGUCByZWFkcyAqLwogCXJh ZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19QRlBfU1lOQ19NRSwgMCkpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaV9kbWEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vbmlfZG1hLmMKaW5kZXggOGEzZTYyMi4uMWQxNWY2YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL25pX2RtYS5jCkBAIC00NTIsMTYgKzQ1MiwxMiBAQCB2b2lkIGNheW1hbl9kbWFfdm1fcGFk X2liKHN0cnVjdCByYWRlb25faWIgKmliKQogCQlpYi0+cHRyW2liLT5sZW5ndGhfZHcrK10gPSBE TUFfUEFDS0VUKERNQV9QQUNLRVRfTk9QLCAwLCAwLCAwKTsKIH0KIAotdm9pZCBjYXltYW5fZG1h X3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwgc3RydWN0IHJh ZGVvbl92bSAqdm0pCit2b2lkIGNheW1hbl9kbWFfdm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZywKKwkJCSB1bnNpZ25lZCB2bV9pZCwg dWludDY0X3QgcGRfYWRkcikKIHsKLQlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcgPSAmcmRldi0+ cmluZ1tyaWR4XTsKLQotCWlmICh2bSA9PSBOVUxMKQotCQlyZXR1cm47Ci0KIAlyYWRlb25fcmlu Z193cml0ZShyaW5nLCBETUFfUEFDS0VUKERNQV9QQUNLRVRfU1JCTV9XUklURSwgMCwgMCwgMCkp OwotCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsICgweGYgPDwgMTYpIHwgKChWTV9DT05URVhUMF9Q QUdFX1RBQkxFX0JBU0VfQUREUiArICh2bS0+aWQgPDwgMikpID4+IDIpKTsKLQlyYWRlb25fcmlu Z193cml0ZShyaW5nLCB2bS0+cGRfZ3B1X2FkZHIgPj4gMTIpOworCXJhZGVvbl9yaW5nX3dyaXRl KHJpbmcsICgweGYgPDwgMTYpIHwgKChWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiAr ICh2bV9pZCA8PCAyKSkgPj4gMikpOworCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIHBkX2FkZHIg Pj4gMTIpOwogCiAJLyogZmx1c2ggaGRwIGNhY2hlICovCiAJcmFkZW9uX3Jpbmdfd3JpdGUocmlu ZywgRE1BX1BBQ0tFVChETUFfUEFDS0VUX1NSQk1fV1JJVEUsIDAsIDAsIDApKTsKQEAgLTQ3MSw2 ICs0NjcsNiBAQCB2b2lkIGNheW1hbl9kbWFfdm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsIGludCByaWR4LCBzdHJ1Y3QgcmFkZW9uX3ZtCiAJLyogYml0cyAwLTcgYXJlIHRoZSBW TSBjb250ZXh0czAtNyAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIERNQV9QQUNLRVQoRE1B X1BBQ0tFVF9TUkJNX1dSSVRFLCAwLCAwLCAwKSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywg KDB4ZiA8PCAxNikgfCAoVk1fSU5WQUxJREFURV9SRVFVRVNUID4+IDIpKTsKLQlyYWRlb25fcmlu Z193cml0ZShyaW5nLCAxIDw8IHZtLT5pZCk7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMSA8 PCB2bV9pZCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCmluZGV4IGUwMTQyNGYuLjI3M2M1 ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaApAQCAtMTc4Miw3ICsxNzgyLDggQEAgc3RydWN0 IHJhZGVvbl9hc2ljX3JpbmcgewogCXZvaWQgKCpoZHBfZmx1c2gpKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpOwogCWJvb2wgKCplbWl0X3NlbWFw aG9yZSkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqY3As CiAJCQkgICAgICAgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSwgYm9vbCBlbWl0 X3dhaXQpOwotCXZvaWQgKCp2bV9mbHVzaCkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGlu dCByaWR4LCBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSk7CisJdm9pZCAoKnZtX2ZsdXNoKShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLAorCQkJIHVuc2ln bmVkIHZtX2lkLCB1aW50NjRfdCBwZF9hZGRyKTsKIAogCS8qIHRlc3RpbmcgZnVuY3Rpb25zICov CiAJaW50ICgqcmluZ190ZXN0KShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJh ZGVvbl9yaW5nICpjcCk7CkBAIC0yODI4LDcgKzI4MjksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg cmFkZW9uX3Jpbmdfd3JpdGUoc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLCB1aW50MzJfdCB2KQog I2RlZmluZSByYWRlb25fcmluZ19pYl9leGVjdXRlKHJkZXYsIHIsIGliKSAocmRldiktPmFzaWMt PnJpbmdbKHIpXS0+aWJfZXhlY3V0ZSgocmRldiksIChpYikpCiAjZGVmaW5lIHJhZGVvbl9yaW5n X2liX3BhcnNlKHJkZXYsIHIsIGliKSAocmRldiktPmFzaWMtPnJpbmdbKHIpXS0+aWJfcGFyc2Uo KHJkZXYpLCAoaWIpKQogI2RlZmluZSByYWRlb25fcmluZ19pc19sb2NrdXAocmRldiwgciwgY3Ap IChyZGV2KS0+YXNpYy0+cmluZ1socildLT5pc19sb2NrdXAoKHJkZXYpLCAoY3ApKQotI2RlZmlu ZSByYWRlb25fcmluZ192bV9mbHVzaChyZGV2LCByLCB2bSkgKHJkZXYpLT5hc2ljLT5yaW5nWyhy KV0tPnZtX2ZsdXNoKChyZGV2KSwgKHIpLCAodm0pKQorI2RlZmluZSByYWRlb25fcmluZ192bV9m bHVzaChyZGV2LCByLCB2bV9pZCwgcGRfYWRkcikgKHJkZXYpLT5hc2ljLT5yaW5nWyhyKS0+aWR4 XS0+dm1fZmx1c2goKHJkZXYpLCAociksICh2bV9pZCksIChwZF9hZGRyKSkKICNkZWZpbmUgcmFk ZW9uX3JpbmdfZ2V0X3JwdHIocmRldiwgcikgKHJkZXYpLT5hc2ljLT5yaW5nWyhyKS0+aWR4XS0+ Z2V0X3JwdHIoKHJkZXYpLCAocikpCiAjZGVmaW5lIHJhZGVvbl9yaW5nX2dldF93cHRyKHJkZXYs IHIpIChyZGV2KS0+YXNpYy0+cmluZ1sociktPmlkeF0tPmdldF93cHRyKChyZGV2KSwgKHIpKQog I2RlZmluZSByYWRlb25fcmluZ19zZXRfd3B0cihyZGV2LCByKSAocmRldiktPmFzaWMtPnJpbmdb KHIpLT5pZHhdLT5zZXRfd3B0cigocmRldiksIChyKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2FzaWMuaAppbmRleCBjNDEzNjNmLi5lMDM2MmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXNpYy5oCkBAIC02MDAsNyArNjAwLDggQEAgaW50IGNheW1hbl9hc2ljX3Jlc2V0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgY2F5bWFuX3JpbmdfaWJfZXhlY3V0ZShzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpOwogaW50IGNheW1h bl92bV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgY2F5bWFuX3ZtX2Zp bmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwotdm9pZCBjYXltYW5fdm1fZmx1c2goc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaWR4LCBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSk7 Cit2b2lkIGNheW1hbl92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0 IHJhZGVvbl9yaW5nICpyaW5nLAorCQkgICAgIHVuc2lnbmVkIHZtX2lkLCB1aW50NjRfdCBwZF9h ZGRyKTsKIHVpbnQzMl90IGNheW1hbl92bV9wYWdlX2ZsYWdzKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCB1aW50MzJfdCBmbGFncyk7CiBpbnQgZXZlcmdyZWVuX2liX3BhcnNlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiBpbnQgZXZlcmdyZWVu X2RtYV9pYl9wYXJzZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9p YiAqaWIpOwpAQCAtNjI1LDcgKzYyNiw4IEBAIHZvaWQgY2F5bWFuX2RtYV92bV9zZXRfcGFnZXMo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICAgIHVpbnQzMl90IGluY3IsIHVpbnQz Ml90IGZsYWdzKTsKIHZvaWQgY2F5bWFuX2RtYV92bV9wYWRfaWIoc3RydWN0IHJhZGVvbl9pYiAq aWIpOwogCi12b2lkIGNheW1hbl9kbWFfdm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIGludCByaWR4LCBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSk7Cit2b2lkIGNheW1hbl9kbWFfdm1f Zmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmlu ZywKKwkJCSB1bnNpZ25lZCB2bV9pZCwgdWludDY0X3QgcGRfYWRkcik7CiAKIHUzMiBjYXltYW5f Z2Z4X2dldF9ycHRyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJc3RydWN0IHJhZGVv bl9yaW5nICpyaW5nKTsKQEAgLTcwMCw3ICs3MDIsOCBAQCBpbnQgc2lfaXJxX3NldChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldik7CiBpbnQgc2lfaXJxX3Byb2Nlc3Moc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpOwogaW50IHNpX3ZtX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp Owogdm9pZCBzaV92bV9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKLXZvaWQgc2lf dm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaWR4LCBzdHJ1Y3QgcmFk ZW9uX3ZtICp2bSk7Cit2b2lkIHNpX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcsCisJCSB1bnNpZ25lZCB2bV9pZCwgdWludDY0X3Qg cGRfYWRkcik7CiBpbnQgc2lfaWJfcGFyc2Uoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0 cnVjdCByYWRlb25faWIgKmliKTsKIHN0cnVjdCByYWRlb25fZmVuY2UgKnNpX2NvcHlfZG1hKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSB1aW50NjRfdCBzcmNfb2Zmc2V0LCB1aW50 NjRfdCBkc3Rfb2Zmc2V0LApAQCAtNzIyLDcgKzcyNSw4IEBAIHZvaWQgc2lfZG1hX3ZtX3NldF9w YWdlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCSB1aW50NjRfdCBhZGRyLCB1bnNp Z25lZCBjb3VudCwKIAkJCSB1aW50MzJfdCBpbmNyLCB1aW50MzJfdCBmbGFncyk7CiAKLXZvaWQg c2lfZG1hX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwgc3Ry dWN0IHJhZGVvbl92bSAqdm0pOwordm9pZCBzaV9kbWFfdm1fZmx1c2goc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZywKKwkJICAgICB1bnNpZ25lZCB2 bV9pZCwgdWludDY0X3QgcGRfYWRkcik7CiB1MzIgc2lfZ2V0X3hjbGsoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpOwogdWludDY0X3Qgc2lfZ2V0X2dwdV9jbG9ja19jb3VudGVyKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KTsKIGludCBzaV9zZXRfdXZkX2Nsb2NrcyhzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwgdTMyIHZjbGssIHUzMiBkY2xrKTsKQEAgLTc5NCw3ICs3OTgsOCBAQCBp bnQgY2lrX2lycV9zZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogaW50IGNpa19pcnFf cHJvY2VzcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiBpbnQgY2lrX3ZtX2luaXQoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCBjaWtfdm1fZmluaShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldik7Ci12b2lkIGNpa192bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgaW50IHJpZHgsIHN0cnVjdCByYWRlb25fdm0gKnZtKTsKK3ZvaWQgY2lrX3ZtX2ZsdXNo KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcsCisJ CSAgdW5zaWduZWQgdm1faWQsIHVpbnQ2NF90IHBkX2FkZHIpOwogCiB2b2lkIGNpa19zZG1hX3Zt X2NvcHlfcGFnZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICAgc3RydWN0IHJh ZGVvbl9pYiAqaWIsCkBAIC04MTIsNyArODE3LDggQEAgdm9pZCBjaWtfc2RtYV92bV9zZXRfcGFn ZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICB1aW50MzJfdCBpbmNyLCB1aW50 MzJfdCBmbGFncyk7CiB2b2lkIGNpa19zZG1hX3ZtX3BhZF9pYihzdHJ1Y3QgcmFkZW9uX2liICpp Yik7CiAKLXZvaWQgY2lrX2RtYV92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg aW50IHJpZHgsIHN0cnVjdCByYWRlb25fdm0gKnZtKTsKK3ZvaWQgY2lrX2RtYV92bV9mbHVzaChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLAorCQkg ICAgICB1bnNpZ25lZCB2bV9pZCwgdWludDY0X3QgcGRfYWRkcik7CiBpbnQgY2lrX2liX3BhcnNl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiB1MzIg Y2lrX2dmeF9nZXRfcnB0cihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJICAgICBzdHJ1 Y3QgcmFkZW9uX3JpbmcgKnJpbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKaW5kZXgg NDUzMmNjNy4uNDU5ODdhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jCkBAIC0yNDMs NyArMjQzLDggQEAgdm9pZCByYWRlb25fdm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJaWYgKCF2bS0+bGFzdF9mbHVzaCB8fCBwZF9hZGRyICE9IHZtLT5wZF9ncHVfYWRkcikg ewogCQl0cmFjZV9yYWRlb25fdm1fZmx1c2gocGRfYWRkciwgcmluZywgdm0tPmlkKTsKIAkJdm0t PnBkX2dwdV9hZGRyID0gcGRfYWRkcjsKLQkJcmFkZW9uX3Jpbmdfdm1fZmx1c2gocmRldiwgcmlu Zywgdm0pOworCQlyYWRlb25fcmluZ192bV9mbHVzaChyZGV2LCAmcmRldi0+cmluZ1tyaW5nXSwK KwkJCQkgICAgIHZtLT5pZCwgdm0tPnBkX2dwdV9hZGRyKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2ku YwppbmRleCA0MjNhOGNkLi5jZWVmNTJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3NpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCkBAIC01MDIwLDI3ICs1 MDIwLDIzIEBAIHN0YXRpYyB2b2lkIHNpX3ZtX2RlY29kZV9mYXVsdChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKIAkgICAgICAgYmxvY2ssIG1jX2lkKTsKIH0KIAotdm9pZCBzaV92bV9mbHVz aChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpZHgsIHN0cnVjdCByYWRlb25fdm0g KnZtKQordm9pZCBzaV92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0 IHJhZGVvbl9yaW5nICpyaW5nLAorCQkgdW5zaWduZWQgdm1faWQsIHVpbnQ2NF90IHBkX2FkZHIp CiB7Ci0Jc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nID0gJnJkZXYtPnJpbmdbcmlkeF07Ci0KLQlp ZiAodm0gPT0gTlVMTCkKLQkJcmV0dXJuOwotCiAJLyogd3JpdGUgbmV3IGJhc2UgYWRkcmVzcyAq LwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19XUklURV9EQVRBLCAz KSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgKFdSSVRFX0RBVEFfRU5HSU5FX1NFTCgxKSB8 CiAJCQkJIFdSSVRFX0RBVEFfRFNUX1NFTCgwKSkpOwogCi0JaWYgKHZtLT5pZCA8IDgpIHsKKwlp ZiAodm1faWQgPCA4KSB7CiAJCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsCi0JCQkJICAoVk1fQ09O VEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFIgKyAodm0tPmlkIDw8IDIpKSA+PiAyKTsKKwkJCQkg IChWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiArICh2bV9pZCA8PCAyKSkgPj4gMik7 CiAJfSBlbHNlIHsKIAkJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywKLQkJCQkgIChWTV9DT05URVhU OF9QQUdFX1RBQkxFX0JBU0VfQUREUiArICgodm0tPmlkIC0gOCkgPDwgMikpID4+IDIpOworCQkJ CSAgKFZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSICsgKCh2bV9pZCAtIDgpIDw8IDIp KSA+PiAyKTsKIAl9CiAJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMCk7Ci0JcmFkZW9uX3Jpbmdf d3JpdGUocmluZywgdm0tPnBkX2dwdV9hZGRyID4+IDEyKTsKKwlyYWRlb25fcmluZ193cml0ZShy aW5nLCBwZF9hZGRyID4+IDEyKTsKIAogCS8qIGZsdXNoIGhkcCBjYWNoZSAqLwogCXJhZGVvbl9y aW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19XUklURV9EQVRBLCAzKSk7CkBAIC01MDU2 LDcgKzUwNTIsNyBAQCB2b2lkIHNpX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBpbnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAqdm0pCiAJCQkJIFdSSVRFX0RBVEFfRFNUX1NF TCgwKSkpOwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFZNX0lOVkFMSURBVEVfUkVRVUVTVCA+ PiAyKTsKIAlyYWRlb25fcmluZ193cml0ZShyaW5nLCAwKTsKLQlyYWRlb25fcmluZ193cml0ZShy aW5nLCAxIDw8IHZtLT5pZCk7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgMSA8PCB2bV9pZCk7 CiAKIAkvKiBzeW5jIFBGUCB0byBNRSwgb3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBpbnZhbGlkIFBG UCByZWFkcyAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19QRlBf U1lOQ19NRSwgMCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kbWEu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2lfZG1hLmMKaW5kZXggYjU4ZjEyYi4uZThiYzBh NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kbWEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3NpX2RtYS5jCkBAIC0xODUsMjAgKzE4NSwxNyBAQCB2b2lkIHNp X2RtYV92bV9zZXRfcGFnZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJfQogfQogCi12 b2lkIHNpX2RtYV92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpZHgs IHN0cnVjdCByYWRlb25fdm0gKnZtKQotewotCXN0cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZy ZGV2LT5yaW5nW3JpZHhdOwotCi0JaWYgKHZtID09IE5VTEwpCi0JCXJldHVybjsKK3ZvaWQgc2lf ZG1hX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3Jp bmcgKnJpbmcsCisJCSAgICAgdW5zaWduZWQgdm1faWQsIHVpbnQ2NF90IHBkX2FkZHIpCiAKK3sK IAlyYWRlb25fcmluZ193cml0ZShyaW5nLCBETUFfUEFDS0VUKERNQV9QQUNLRVRfU1JCTV9XUklU RSwgMCwgMCwgMCwgMCkpOwotCWlmICh2bS0+aWQgPCA4KSB7Ci0JCXJhZGVvbl9yaW5nX3dyaXRl KHJpbmcsICgweGYgPDwgMTYpIHwgKChWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiAr ICh2bS0+aWQgPDwgMikpID4+IDIpKTsKKwlpZiAodm1faWQgPCA4KSB7CisJCXJhZGVvbl9yaW5n X3dyaXRlKHJpbmcsICgweGYgPDwgMTYpIHwgKChWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0Vf QUREUiArICh2bV9pZCA8PCAyKSkgPj4gMikpOwogCX0gZWxzZSB7Ci0JCXJhZGVvbl9yaW5nX3dy aXRlKHJpbmcsICgweGYgPDwgMTYpIHwgKChWTV9DT05URVhUOF9QQUdFX1RBQkxFX0JBU0VfQURE UiArICgodm0tPmlkIC0gOCkgPDwgMikpID4+IDIpKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmlu ZywgKDB4ZiA8PCAxNikgfCAoKFZNX0NPTlRFWFQ4X1BBR0VfVEFCTEVfQkFTRV9BRERSICsgKCh2 bV9pZCAtIDgpIDw8IDIpKSA+PiAyKSk7CiAJfQotCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIHZt LT5wZF9ncHVfYWRkciA+PiAxMik7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmluZywgcGRfYWRkciA+ PiAxMik7CiAKIAkvKiBmbHVzaCBoZHAgY2FjaGUgKi8KIAlyYWRlb25fcmluZ193cml0ZShyaW5n LCBETUFfUEFDS0VUKERNQV9QQUNLRVRfU1JCTV9XUklURSwgMCwgMCwgMCwgMCkpOwpAQCAtMjA4 LDcgKzIwNSw3IEBAIHZvaWQgc2lfZG1hX3ZtX2ZsdXNoKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgcmlkeCwgc3RydWN0IHJhZGVvbl92bSAqdm0pCiAJLyogYml0cyAwLTcgYXJlIHRo ZSBWTSBjb250ZXh0czAtNyAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIERNQV9QQUNLRVQo RE1BX1BBQ0tFVF9TUkJNX1dSSVRFLCAwLCAwLCAwLCAwKSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUo cmluZywgKDB4ZiA8PCAxNikgfCAoVk1fSU5WQUxJREFURV9SRVFVRVNUID4+IDIpKTsKLQlyYWRl b25fcmluZ193cml0ZShyaW5nLCAxIDw8IHZtLT5pZCk7CisJcmFkZW9uX3Jpbmdfd3JpdGUocmlu ZywgMSA8PCB2bV9pZCk7CiB9CiAKIC8qKgotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==